比如一个蛋糕生产线的 OEM 设备提供商,有些工厂需要烘焙的生产线,那么该设备提供商需要组态一个烘焙项目,需要 S7-1200 CPU 和 I/O 模块 A 来负责蛋糕加热的工艺。如图 1-1 所示。
图 1-1 烘焙生产线
同时,有的工厂在烘焙的基础上,还需要添加包装工艺,如果没有组态控制功能,那么该设备提供商需要建立另外一个烘焙与包装项目,在原先 S7-1200 CPU 和I/O 模块 A 的基础上添加 I/O 模块 B 来负责包装工艺,如图 1-2。
图 1-2 烘焙与包装生产线
另外,这个设备提供商的有些客户还需要蛋糕装饰工艺,在原先烘焙和包装基础上添加例如裱花或打奶油工艺,同样如果没有组态控制功能,该设备提供商还需要针对此类客户创建一个新项目,再增加一个 I/O 模块 C 来负责装饰工艺环节,如图 1-3 。
由此可见,在没有组态控制之前,设备提供商需要针对不同客户的不同需求配置多个项目,但是其实这些项目都是基于同一个烘焙设备上添加了不同的组件。利用现在的组态控制功能就可以组态一个最全的配置,然后根据不同需要,通过用户程序灵活调整组态。
2组态控制功能组态
S7-1200cpu从固件版本V4.1起开始支持组态控制功能,其组态如下所述:
2.1组态控制功能启用
使用组态控制功能之前,需要在CPU设备组态的属性里选择“允许通过用户程序重新组态设备”复选框来启动组态控制功。如图2-1
图2-1启动组态功能
2.2创建新数据类型
2.3 创建控制数据块
用刚刚创建的数据类型创建一个包含控制数据的数据块,如图 2-3 。
图 2-3 添加新的数据块
在新生成的数据块中,按图 2-4 所示组态 Block_length、Block_ID、版本以及次版本。
根据是否存在插槽以及其在实际安装中的位置组态插槽的值:
Ø 0:实际组态中不存在已组态的模块。 (插槽为空。)
Ø 1 到 9,101 到 103: 已组态插槽的实际插槽位置
Ø 255:STEP 7 设备组态在此插槽中不包含模块。
2.4 编程传送控制数据记录
在启动OB中,调用扩展的WRREC(写入数据记录)指令,将创建的控制数据记录传送到硬件ID 33的索引196。使用标签和JMP(跳转)指令等待WRREC指令完成。
图2-5启动OB中程序
注意,WRREC指令在启动OB中传送完控制数据记录后组态控制才会生效。如果已启用组态控制但CPU不具有控制数据记录,则在退出STARTUP模式时会转到STOP模式。所以需要确保启动OB 中包含传输控制数据记录的程序。
图 2-6 插槽号分配
控制数据记录 196 包含插槽分配并表示实际组态,如下所示:
图 3-2 实际设备安装
要指示实际安装模块的不存在,必须在控制数据记录中使用 0 组态插槽 3,即Slot_3 = 0,而插槽 4 组态的模块实际位于插槽 3 中,所以 Slot_4=3。如图 3-3所示。
图3-3示例1的数据记录
3.2 示例 2 —— 模块位置颠倒
项目最大组态仍如示例1中图3-1所示,但在实际安装时,原本位于插槽3的模块与位于插槽4的模块颠倒了位置。如图3-4所示。
要将设备组态与实际安装关联,可编辑控制数据记录 Slot_3=4,将模块分配到正确的插槽位置。
图 3-5 示例2的数据记录