S7-1200 CPU 从固件版本V4.1起开始支持组态控制功能,其组态过程如下所述。
使用组态控制功能之前,需要在CPU 设备组态的属性里选择“允许通过用户程序重新组态设备”复选框来启动组态控制功能。如图2-1。
图2-1 启动组态控制功能
在博途的PLC数据类型中添加新的数据类型,创建一个用于包含控制数据记录的PLC数据类型,其中前4个USInt变量用于存储组态控制信息,后面12个USInt变量对应于S7-1200最大组态时的各个插槽的实际状态,具体如2-2所示:
图2-2 新数据类型
用刚刚创建的数据类型创建一个包含控制数据的数据块,如图2-3 。
图2-3 添加新的数据块
在新生成的数据块中,按图2-4所示组态 Block_length、Block_ID、版本以及次版本。
根据是否存在插槽以及其在实际安装中的位置组态插槽的值:
图2-4 数据块组态
在启动OB中,调用扩展的WRREC(写入数据记录)指令,将创建的控制数据记录传送到硬件 ID 33 的索引 196。使用标签和 JMP(跳转)指令等待 WRREC 指令完成。
图2-5 启动OB中程序
注意,WRREC 指令在启动 OB 中传送完控制数据记录后组态控制才会生效。如果已启用组态控制但 CPU 不具有控制数据记录,则在退出 STARTUP 模式时会转到 STOP 模式。所以需要确保启动 OB 中包含传输控制数据记录的程序。
图2-6中列出了插槽号分配情况:
图2-6 插槽号分配
控制数据记录196包含插槽分配并表示实际组态,如下所示:
图2-7 数据记录196结构
修改控制数据记录时请遵守以下准则: