西门子s7-plcsim提供了方便、强大的仿真模拟功能。与真实的plc相比,它的灵活性高,提供了许多plc硬件无法实现的功能,使用也更加方便。但是仿真软件毕竟不能完全取代真实的硬件,不可能实现完全仿真。用户利用s7-plcsim进行仿真时,还应该了解它与真实plc的差别。
1.s7-plcsim上有如下功能在真实plc上无法实现
1)仿真的cpu中正在运行时可以用“stop”选项中断程序,恢复“运行”时是从程序中断处开始继续处理程序。
2)与真实的cpu一样,仿真软件可以改变cpu的操作模式(run、run-p和stop)。但与实际cpu不同的是仿真的cpu切换到stop模式并不会改变输出的状态。
3)仿真软件中在目标视图中变量的每个改变,其存储区对应相关地址的内容会被同时更新。cpu并不是等到循环周期结束或开始时才更新改变的数据。
4)使用关于程序处理的选项可以指定cpu如何执行程序:
●选择“by cycles”程序执行一个周期后等待命令再执行下一个循环周期。
●选择“automatic”程序的处理同实际自控系统一样,一旦一个循环周期结束马上执
行下一个周期。
5)仿真定时器可以使用自动或手动方式处理,自动方式按照程序执行结果,手动方式可以给定特殊值或复位定时器。复位定时器可以复位单独的定时器或一次复位所有定时器。
6)可以手动触发诊断中断ob。ob40到ob47(过程中断)、ob70(i/o冗余错误)、ob72(cpu冗余错误)、ob73(通信冗余错误)、ob80(时间错误)、ob82(诊断警告)、ob83(插拔模块警告)、ob85(程序执行错误)和ob86(机架故障)。
7)过程映像区和i/o区。如果改变一个输入映像区的值,s7-plcsim立即将此值复制到输入外设区。这就意味着从输入外设区写到输入过程映像区所需要的值在下一个循环周期开始时不会丢失。同样如果改变了输出映像区的一个值,此值立即被复制到输出外设区。
2.s7-plcsim与“实际”的自动化系统还有以下不同
1)诊断缓冲区。s7-plcsim不能支持所有写入诊断缓冲区的错误消息。例如,关于cpu中的电池电量不足的消息或者eeprom错误是不能仿真的。但大部分i/o和程序错误都是可以仿真的。
2)在改变操作模式时(比如从run切换到stop)输入/输出没有“安全”状态。
3)不支持功能模块(fm)。
4) s7-plcsim与s7-400 plc cpu一样支持4个累加器。在某些情况下s7-plcsim上运行的程序与真实的只有两个累加器s7-300 plc cpu上运行结果不同。
5)输入/输出的不同。大多数s7-300 plc产品系列的cpu可以自动配置输入/输出设备。如果将模块连接到控制器,cpu即自动地识别此模块。对于仿真的自动化系统,这种自动地识别是不能模拟的。如果把一个自动组态好i/o的s7-300 plc cpu程序装载到s7-plcsim中,系统数据中将不包含任何i/o组态。因此,如果使用s7-plcsim来仿真s7-300 plc的程序,为了使cpu能识别所使用的模块,必须首先装载硬件组态。在s7-plcsim中s7-300 plc cpu不能自动识别i/o,例如cpu 315-2dp,cpu 316-2dp或cpu 318-2dp等,为了能将硬件组态装载到s7-plcsim,需要创建一个项目。复制相应的硬件组态到这个项目并装载到s7-plcsim。然后从任意step 7项目装载程序块,i/o处理都不会有错误。
此外,s7-plcsim v5.4 sp3以前的版本不能对通信进行仿真。