在 S7-1200 的固件版本为 4.1或更高版本时,组态控制可用于组态控制系统的结构并且有助于使用与该组态不同的变型(选项)。
一系列相似设备单元或机器所需的所有模块都在具有Zui大组态的主项目(全站组态方式)中进行组态。
在主项目的用户程序中,包含有适用于不同设备单元或机器的各种站组态方式,以及站组态方式的选件。例如,某种站组态方式仅使用一部分已组态的模块,这些模块以不同的顺序插入。
操作员可根据现场特定的设备选择某种站组态方式。他们无需修改项目,也无需下载修改后的组态。
在启动程序中编程的控制数据记录会通知 CPU哪些模块缺失以及哪些模块所在的插槽不同于预设组态。组态控制对模块的参数分配没有影响。
组态控制为用户提供了灵活性,只要实际组态不超过预设的Zui高组态,就可以改变集中式安装。
下文将介绍如何激活组态控制(CPU 参数分配)以及如何构造所需的数据记录。
要求
STEP 7 版本 V13 SP1 或更高版本
CPU S7-12XX 固件版本 V4.1或更高版本:支持“组态控制”功能的模块还在硬件目录的说明(信息文本)中提供“组态控制”(Configuration control)条目。
建议:在装载带有修改后的控制数据记录的新程序前,请执行存储器复位。此操作可以防止因存在不兼容的控制数据记录而造成状态不一致。
启动参数“比较预设组态与实际组态”设置为“不一致也启动 CPU”(默认设置)。
所需步骤
在“组态控制”(Configuration control) 区域组态 CPU 时启用“允许通过用户程序重新组态设备”(Allowto reconfigure the device via the user program) 参数。
根据以下描述的控制数据记录示例,按照当前组态创建控制数据记录(例如在数据块中)。控制数据记录的编号为196。如果要将控制数据记录以整块的方式传送到 WRREC 指令(输入参数RECORD)中,则需注意,需要先创建一个包含控制数据记录结构的 PLC 数据类型,并将该数据块定义为此 PLC 数据类型。
在启动程序中将控制数据记录传输到 CPU。
对于集中插入的模块,仅当 CPU 的操作模式从 STOP 更改为 RUN 后,组态控制才会生效。请在启动 OB 中调用扩展的WRREC(写入数据记录)指令,将创建的控制数据记录传输到 CPU;请参见下一章节。
如果在启动 OB 中未传输有效的控制数据记录,则控制未做好运行准备。在这种情况下,CPU 从启动状态恢复到 STOP 状态。
在启动程序中传输控制数据记录
CPU 处理 WRREC 指令以便异步传输控制数据记录。必须在一个循环内,在启动 OB 中重复地调用WRREC,直到输出参数“BUSY”或“DONE”指出数据记录已传输。
提示信息:请使用 SCL 编程语言和 REPEAT ... UNTIL 指令编程此循环。
REPEAT
"WRREC_DB"(REQ :="start_config_control",
ID := 33,
INDEX := 196,
LEN := "conf_LEN",
DONE => "conf_DONE",
BUSY => "conf_BUSY",
ERROR => "conf_ERROR",
RECORD := "ConfDB".ConfigControl,
STATUS => "conf_STATUS");
UNTIL NOT "conf_BUSY"
END_REPEAT;
下表中列出了组态控制中需指定特定值的块参数。有关其它块参数,另请参见“WRREC”:
参数 | 说明 |
---|---|
ID | 硬件标识符,对于集中排列模块的组态控制,始终为 33(十进制)。 |
INDEX | 数据记录编号,对于集中排列模块的组态控制,始终为 196(十进制)。 |
RECORD | 要传输的控制数据记录。 参见“控制数据记录”部分的控制数据记录结构。 提示信息:WRREC 指令(V1.1以及更高版本)块参数“RECORD”的数据类型为“VARIANT”,需要带数据类型的变量。如果将控制数据记录存储在数据块中,那么此数据块必须具有数据类型。所创建的数据块不得是“全局DB”类型,更确切地说,它必须属于用户数据类型。 请按以下步骤操作:
|
在图形编程语言中,使用程序控制指令实现循环。
FBD 中的示例:使用 LABEL(跳转标签)和 JMP(RLO=1 时跳转)指令编写循环。