S7-1200 PLCSIM V18 及以下版本
S7-1200 PLC 仿真功能有以下硬件和软件要求:
硬件要求:
1. 固件版本4.0或更高版本的S7-1200 PLC
2.固件版本4.1或更高版本的S7-1200F PLC
软件要求:
PLCSIM V13 SP1 及以上版本
本文档适用于PLCSIM V18 以下版本。对于V18以上的版本,请参阅链接。
S7-1200 PLCSIM 支持范围
1.技术对象支持
PLCSIM 不支持对S7-1200 的任何工艺对象进行仿真。
2.命令支持
PLCSIM 以与物理PLC 相同的方式支持模拟S7-1200 和S7-1200F 的几乎所有指令(系统功能和系统功能块)。 PLCSIM 将不支持的块视为未运行。
部分命令支持某些命令。对于这些SFC 和SFB,PLCSIM 将验证输入参数并返回有效输出,但不一定是具有实际I/O 的真实PLC 会返回的内容。
3.通讯命令支持
PLCSIM 仅支持S7-1200(F)C 的以下通信协议:
S7-1200 集成PN 端口和基于以太网的S7 通信,适用于S7-1200/1500/300/400
S7-1200集成PN口和S7-1200/1500的TCP/IP通讯(支持程序连接,不支持组态连接)
S7-1200集成PN口和S7-1200/1500的ISO ON TCP通讯(支持程序连接,不支持组态连接)
S7-1200集成PN口与WinCC和模拟HMI触摸屏通讯
4.其他功能
PLCSIM 不支持专有技术保护块、配方、数据日志、跟踪、装载存储器读写、时间错误中断(OB80)、存储卡功能。
支持程序循环(OB1)、时间中断(OB10)、延迟中断(OB20)、循环中断(OB30)和启动OB(OB100)。
从PLCSIM V16 开始,通过事件功能支持硬件中断(OB40)、诊断错误中断(OB82)、模块移除或插入中断(OB83)、机架或站故障中断(OB86)。
入门
1.启动并下载PLCSIM
启动方法一
新建一个PLC程序,如图1所示,然后执行图中操作。
图1 开始仿真
左键单击需要下载到PLCSIM的CPU
左键单击“开始模拟”按钮,弹出如图2、图3所示窗口。
图2 紧凑视图
图3 下载页面
PG/PC接口:默认选择PLCSIM,此时无法连接真实CPU
左键单击“开始搜索”按钮
选择搜索到的CPU
左键单击“下载”按钮
这样就完成了一次下载操作。
启动方法二
在桌面上找到如图4所示的图标,双击左侧按钮。将自动打开图5 所示的窗口。该窗口与图2 类似,但略有不同。此时PLCSIM CPU未上电,需要上电。
图4 PLCSIM图标
图5 未上电仿真界面
左键单击该图标,打开PLCSIM电源。之后PLCSIM的状态将与图2一致。然后正常下载PLC程序,参见图3。
下载完成
下载完成后如果没有错误,仿真界面如图6所示。
图6 下载后的仿真界面
正常的监控程序与真实CPU基本相同。
阐明
1. PLCSIM 中只能创建2 个实例,这意味着最多可以同时模拟2 个S7-1200 和S7-1500。
2. PLCSIM的简化视图和项目视图
图6中的界面称为简化视图。此时PLC可以正常模拟、启动和停止,并可以监控指示灯的状态。
如果需要使用一些高级功能,例如设置I点、序列功能、事件触发等,则需要进入项目视图,如图7所示。
图7 紧凑视图和项目视图
在简化视图中左键单击该按钮切换到项目视图
左键单击项目视图中的新建按钮,可在项目视图中创建新的仿真文件,并在仿真视图左侧生成项目树:SIM表、序列、事件表等。
如果想从工程视图返回精简视图,可以左键单击该按钮
阐明
1. 在PLCSIM V13SP1或PLCSIM V13SP2中,必须切换到项目视图并创建新的模拟文件,然后才能使用模拟功能。 PLCSIM V14之后,您可以在简化视图、项目视图中使用仿真功能、创建新的仿真文件或不创建新的仿真文件。
2、如果不在工程视图中新建仿真文件,则无法使用I点设置、做序列、事件触发等高级功能,但可以使用扫描控制、设置仿真界面的语言、查询PLCSIM帮助文件等
3. PLCSIM工程视图的功能
设备视图
如图8所示,可以在PLCSIM工程视图中打开设备视图,可以直观地设置CPU主机架模块的DI、AI点以及PROFIBUS DP/PROFINET IO/AS-i的分布式IO,并显示DQ 和AQ 结果。一次只能显示一个模块的所有IO。
注:该功能在PLCSIM V17中被取消。
图8 PLCSIM 的设备视图
在左侧项目树中,展开PLC,双击“设备配置”,打开右侧设备视图
此处选择机架,默认为PLC主机架
此处选择需要查看或修改的IO模块
设定DI/AI设定值
DQ/AQ 显示运算结果
SIM表格
如图9所示,可以打开PLCSIM项目视图的SIM表,在这里可以监控PLC全局变量的修改。与PLC监控表不同,SIM表无法监控DTL、字符串等复杂数据类型的修改。但DI和AI可以修改和监控,与PLC监控表有一些差异,请参见下面的说明。
图9 SIM表
展开SIM表,可以看到点击“添加新SIM表”可以创建更多SIM表。
对于PLCSIM V16及以上版本支持的功能,点击“浏览”导入PLC变量表和监控表。
点击“SIM Form_x”,在右侧工作区打开指定的SIM表单。
添加变量名或绝对地址。请注意,不支持PLC 监控表支持的数据类型,例如DTL 和字符串。
可以修改变量显示的数据格式。
可以对单个变量进行修改,同时显示各个变量的实际值。
如果变量是Bool类型或者非优化Byte类型,可以在这里设置显示变量中单个位的状态。
如果要同时修改多个变量,则需要在需要同时修改的变量中设置值,然后激活下面的“”。
完成处修改后,点击此按钮同时进行修改。
此SIM表格默认只能修改DI和AI的变量。如果需要修改其他变量,则需要点击该按钮。
?PLCSIM V15及更高版本支持的功能。当所选变量的显示格式为布尔、十六进制、八进制、DEC、DEC+/-、浮点时,控制视图将显示在此处。如果是布尔类型,则为瞬时按钮;如果是十六进制、八进制、DEC、DEC+/-,则为如图所示的滑块。取值范围取决于数据类型,如Int类型,从-32768~32767中选择DEC+/-;如果是浮点数,也是图中所示的滑块,取值范围为0.0~1.0。
顺序
如图10所示,可以打开PLCSIM项目视图的序列功能,按照时间序列设置PLC全局变量的值。
图10 序列
展开序列,可以看到点击“添加新序列”可以创建更多序列。
点击“Sequence_x”,在右侧工作区中打开指定的序列。
添加变量名或绝对地址。如果变量是优化的块变量,则要求该变量必须是“可从HMI/OPC UA访问”且不支持片段访问;如果变量是绝对地址访问,则没有上述要求。
可以修改变量显示的数据格式。
可以将变量设置为数值,也可以专门将脉冲输入的DI 点设置为频率。
设定值或频率。
设置时间格式或单位,可以设置毫秒、秒、分钟、hhss.ms。
设置步骤的开始时间和结束时间。以图中第2行为例。第2行该步骤之前的时间是该步骤的开始时间,1.5s。第3 行中的步骤之前的时间就是该步骤。的开始时间也是上一步的结束时间,3s,所以第2行这一步的总执行时间为3-1.5=1.5s。
您可以设置某个步骤来禁用或重新启用。
选择步骤,点击处禁用的步骤,该步骤将被禁用。
?单击此按钮可循环浏览整个序列。
?来回执行的序列显示“重复序列”,否则显示“停止序列”。
?启动序列、暂停序列、停止序列。
?当前正在执行的步骤。
?当前步的执行时间,括号内的重复次数。
可以设置步骤立即启动或触发条件,如图11所示。
图11 触发变量
设置触发变量。支持的数据类型包括位变量、位序列、整数和浮点数。仅支持符号可寻址变量,并且该变量必须“可从HMI/OPC UA 访问”。
设置触发事件。位变量支持“=True”和“=False”,位序列和整数支持“=value”和“value”,浮点数支持“value”和“value”。
设定比较值。
点击确认按钮。
最终触发条件。
事件
PLCSIM V16 添加了新功能和事件激活测试。您可以通过模拟事件来测试程序中的诊断功能是否生效。如图12所示,以机架故障为例。
图12 事件设置
展开事件表,可以看到点击“添加新事件”可以创建更多事件。
点击“事件表_x”,在右侧工作区中打开指定的事件。
选择需要模拟的事件。您可以选择拔出或插入模块、机架或站故障、硬件中断或诊断错误中断。在图中选择机架或站故障。
根据不同的事件设置受故障影响的设备的硬件标识符。图中为IO设备IO_device_1~IODevice。
设置事件是故障还是错误返回。
选择需要激活的事件。
启动该活动。激活后,如图13所示,IO设备报告故障。如果OB86中有诊断指令或者编写了程序,则可以读取相关的错误信息。
图13 仿真结果
扫描控制
PLCSIM V16增加了新功能,扫描控制。您可以设置要运行的扫描周期数、或运行多长时间以及其他功能。 PLCSIM 需要处于项目视图中,但不需要创建新的仿真文件,如图14 所示。
图14 扫描控制
单击PLCSIM项目视图最右侧的“在线工具”。
在操作面板中,单击“暂停”按钮。
在扫描控制中选择模式。默认为连续扫描。此时,您可以选择运行启动OB,然后暂停或指定扫描持续时间,如图15和图16所示。
运行OB 启动后会暂停,如果OB 尚未启动,则重新启动后会暂停。如果需要取消扫描控制功能,需要将扫描控制改为连续扫描,然后点击操作面板上的“RUN”按钮。
图15 运行启动OB 后暂停
图16 指定扫描持续时间
模拟PLC 和“真实”PLC 之间的区别
1. I/O设备支持
PLCSIM 不支持专用I/O 设备功能。仅提供过程映像和I/O寄存器的直接访问模拟。例如,可以通过模拟输出范围监控来查看此专用功能。在物理设备上,如果STEP 7 程序将超出范围的值写入模拟输出寄存器,模拟模块将返回诊断错误。在PLCSIM 中不会发生这种情况。
2. 诊断
PLCSIM 不支持将所有错误消息写入诊断缓冲区。例如,PLCSIM 不会模拟与电池故障或CPU 中的EPROM 错误相关的消息。然而,PLCSIM 可以模拟大多数I/O 和程序错误。
3. 基于时间的表现
由于PLCSIM 软件在装有Windows 操作系统的PC 上运行,因此PLCSIM 中的扫描周期时间和操作的确切时间与在物理硬件上执行的操作所需的时间不同。这是因为PC 对处理资源的“竞争”会产生额外的开销,这取决于多种因素。
如果程序高度依赖于执行操作所需的时间,请注意不应仅根据PLCSIM 仿真的时序结果来评估程序。
4.受专有技术保护的块
PLCSIM 不支持专有或受密码保护的块。下载PLCSIM 之前必须取消保护。
5. 访问保护和复制保护
PLCSIM 不模拟访问保护或复制保护。
6. 模拟通讯
PLCSIM 支持仿真实例之间的通信。该实例可以是PLCSIM 仿真或WinCC Runtime 仿真。
PLCSIM 的两个实例可以运行并相互通信。
可以运行一个PLCSIM V1x 实例和一个PLCSIM V5.4.6 或更高版本实例并相互通信。
模拟实例之间的通信
所有模拟实例必须运行在同一台PC 上才能相互通信。每个实例不得有重复的IP 地址。
PLCSIM 支持TCP/IP 连接。
对于S7-1200 和S7-1200F PLC,可以使用PUT/GET 和TSEND/TRCV(T 块)指令模拟通信。
T 块指令和UDP
PLCSIM 无法模拟配置为使用UDP 协议的T 块连接。
T块指令和数据分段
当PLCSIM执行T块指令时,数据被分段为1024字节。实际CPU数据分段为8192字节。
如果在单个TSEND 指令中发送的数据超过1024 字节,并且在adhoc 模式下通过TRCV 指令接收数据,则TRCV 指令仅生成1024 字节的新数据。在这种情况下,必须多次执行TRCV 指令才能接收额外的字节。
T块指令和数据缓冲区
PLCSIM 执行T 块指令,而不在接收CPU 中缓冲数据。
但在PLCSIM中,只有模拟接收CPU中的程序执行完TRCV指令后,模拟发送CPU才能完成TSEND指令。
但是,在PLCSIM 中执行TSEND 指令时,只有接收CPU 上的程序执行了TRCV 指令后,TSEND 指令才能完成。
每个模拟PLC的IP地址不能重复
如果每个模拟PLC 具有相同的IP 地址,则无法运行多个模拟。每个模拟PLC的IP地址不能重复。
在开始仿真之前,应确保IP 地址在STEP 7 中是唯一的。
7.使LED闪烁
可以在TIA PORTAL 的“扩展下载到设备”对话框中使PLC 上的LED 闪烁,但PLCSIM 无法模拟此功能。但事件模拟可以使ER灯闪烁。
8. 需要SD存储卡的功能
PLCSIM 不模拟SD 存储卡。因此,无法模拟需要存储卡的CPU功能。例如,数据记录功能将所有输出写入SD卡,从而无法模拟数据记录功能。
9. 数据记录
PLCSIM 不支持数据记录。
10. 食谱
PLCSIM 不支持使用配方。
11. 网络服务器
PLCSIM 不支持Web 服务器功能。
12.现场总线
如果STEP 7 项目包含PROFIBUS 元素,则PLCSIM 不会模拟PROFIBUS 元素,但会照常模拟项目的其他部分。在开始仿真之前,无需从项目中删除PROFIBUS 元素。需要注意的是,PLCSIM 会忽略PROFIBUS 元素。
13.F-CPU仿真
要仿真F-CPU,必须首先在STEP 7 项目中调整F 参数F 监视时间,然后再执行下载到PLCSIM。这是因为基于软件的模拟和物理硬件之间存在时间滞后。
要调整F 监控时间,请按以下步骤操作:
1. 在STEP 7 项目树中,右键单击F-CPU 并选择“属性”。
2. 在“属性”对话框中,导航至“中央F-I/O 的故障安全F 参数默认F 监视时间”。
3. 将F 监控时间从默认值150 ms 调整为更高的值。
4. 单击“确定”。可能需要重复此步骤,直到找到允许F-CPU 仿真运行且没有错误的F 监视器值。
14.命令支持
PLCSIM 像物理PLC 一样支持模拟S7-1200 和S7-1200F 的大多数指令。所有成功编译成虚拟PLC的程序都可以下载。然而,一些指令调用仅部分支持的
SFC(系统功能)或SFB(系统功能块),并且仿真可能无法按预期工作。对于部分支持指令的程序,PLCSIM 将验证输入参数并返回有效输出,但不一定是具有物理I/O 的真实PLC 将返回的内容。例如,PLCSIM 不支持SIMATIC SD 存储卡,因此将数据保存到存储卡的程序指令在执行仿真时实际上不会保存任何数据。
审稿人:李茜