PLC组态控制应用与实例

2019年1月14日11:51:54 发表评论 198 阅读

组态控制的优点和应用

当您想创建一个要在多个不同安装中使用的自动化解决方案(机器)时,组态控制将发挥 作用。

可加载 STEP 7 设备组态和用户程序到不同的已安装 PLC 组态。 仅需进行一些简单的调整,即可使 STEP 7 项目与实际安装对应。

组态集中安装和可选模块

使用 STEP 7 和 S7-1200的组态控制功能,可以为标准机器组态一个最大组态,并可操作选用其中一部分组态的版本(选项)。 《使用 STEP 7 组态 PROFINET》手册

在启动程序块中编程的控制数据记录将通知 CPU 与组态相比实际安装中丢失了哪些模块,或是哪些模块位于与组态不同的插槽中。 组态控制不会影响模块的参数分配。

只要用户能够从STEP 7的最大设备组态中获取实际组态,便可使用组态控制进行多种不同的灵活安装。 要激活组态控制并构建所需的控制数据记录,请按以下步骤操作:

  1. 也可以将CPU 复位成出厂设置,以确保 CPU 中不存在不兼容的控制数据记录。
  2. 在 STEP 7 的设备组态中选择CPU。
  1. 从 CPU 属性的“组态控制”(Configurationcontrol)节点中,选择“启用使用用户程序重新组态设备”(Enable reconfiguration of device with user program) 复选框。

  1. 创建一个用于包含控制数据记录的PLC 数据类型。 将其组态为以下结构,包含 4 个用于存储组态控制信息的 USint,以及对应于 S7-1200 设备最大组态的插槽的其它 USint,操作如下:

  1. 为已创建的 PLC数据类型创建一个数据块。

  1. 在启动 OB中,调用扩展的WRREC(写入数据记录)指令,将创建的控制数据记录传送到硬件 ID 33 的索引196。使用标签和 JMP(跳转)指令等待 WRREC 指令完成。

程序段 1

程序段 2

说明

WRREC 指令在启动 OB 中传送完控制数据记录后组态控制才会生效。如果已启用组态控制但 CPU 不具有控制数据记录,则在退出 STARTUP 模式时会转到 STOP 模式。 确保已将启动 OB 设置为传送控制数据记录。

模块排列

 下表列出了插槽号分配情况:

插槽 模块
1 信号板或通信板(CPU 附件卡)
2 到 9 信号模块
101 到 103 通信模块

控制数据记录

 控制数据记录 196 包含插槽分配并表示实际组态,如下所示:

Byte 元素 说明
0 块长度 16 Header
1 块 ID 196
2 版本 5
3 次版本 0
4 CPU 附件卡的分配 实际附件卡,0 或 255* 控制元素

说明已将设备中的哪个实际插 槽分配给每个单元中组态的插 槽。

5 组态的插槽 2 的分配 实际插槽,0 或 255*
... ... ...
12 组态的插槽 9 的分配 实际插槽,0 或 255*
13 组态的插槽 101 的分配 实际插槽或 255* 与信号模块不同,实际存在的 通信模块的实际插槽必须与已 组态的插槽相同。
14 组态的插槽 102 的分配 实际插槽或 255*
15 组态的插槽 103 的分配 实际插槽或 255*

*插槽值:

0: 实际组态中不存在已组态的模块。 (插槽为空。)1到9,101 到103:已组态插槽的实际插槽位置255: STEP 7 设备组态在此插槽中不包含模块。

说明

创建PLC变量类型的替代方法作为创建自定义PLC变量类型的替代方法,您可以使用控制数据记录的所有结构元素来直接创建数据块。

甚至可以在该数据块中组态多个结构以用作多个控制数据记录组态。 两种实现方式都可在启动期间有效传输控制数据记录。

请遵守以下准则:

  • 组态控制不支持通信模块的位置更改。插槽101到103的控制数据记录插槽位置必须与实际安装对应。 如果没有为插槽配置模块,请为该插槽位置输入255。
  • 在已填充(已使用)的插槽之间不能有嵌入式空(未使用)插槽。 例如,如果实际组态在插槽4中有一个模块,则实际组态在插槽2和3中也必须有模块。相应地,如果实际组态在插槽102中有一个通信模块,则实际组态在插槽101中也必须有一个模块。
  • 如果已启用组态控制,却没有控制数据记录,则CPU仍未做好运行准备。 如果启动 OB 未传送一个有效的控制数据记录,则 CPU 从启动模式返回到 STOP 模式。 CPU 在这种情况下不会初始化集中式 I/O,并将在诊断缓冲区中输入转到 STOP 模式的原因。
  • CPU将成功传送的控制数据记录保存在保持性存储器中,也就是说,在不更改组态的情况 下重启时无需重新写入控制数据记录 196。
  •  每个实际插槽只能在控制数据记录中出现一次。
  • 只能将一个实际插槽分配给一个已组态插槽。

修改组态

使用已修改的组态写入控制数据记录将触发 CPU 的下述自动响应:存储器通过后续启动复位并采用已修改组态。由于该响应,CPU 将删除原始的控制数据记录并保持性地保存新的控制数据记录。

运行期间的特性

 对于在线显示以及诊断缓冲区中的显示(模块正常或模块故障),STEP 7都将使用设备组态而不是不同的实际组态。

示例: 输出诊断数据的模块。 该模块组态插入插槽4,但实际却插入插槽3。在线视图将指示已组态的插槽4存在故障。 在实际组态中,插槽3中的模块通过 LED 显示屏指示错误。

如果已在控制数据记录中将模块组态为丢失(0 个条目),则自动化系统会按如下方式运行:

  • 在控制数据记录中被标识为不存在的模块不会提供诊断并且它们的状态始终为正常。 值状态正常。
  • 对不存在的输出量的直接写访问或对不存在的输出量的过程映像的写访问将不产生任 何影响;CPU不会报告任何访问错误。
  • 对不存在的输入量的直接读访问或对不存在的输入量的过程映像的读访问将为每个输 入生成一个“0”值;CPU不会报告任何访问错误。
  • 向不存在的模块写入数据记录将不产生任何影响;CPU不会报告任何错误。
  • 尝试从不存在的模块读取数据记录将生成错误,因为CPU无法返回一个有效的数据记录。

错误消息

如果在写入控制数据记录期间发生错误,CPU 将返回下列错误消息:

错误代码 含义
16#80B1 非法长度;控制数据记录中的长度信息不正确。
16#80B5 未分配组态控制参数
16#80E2 数据记录在错误的 OB 上下文中传送。 数据记录必须在启动 OB 中传送。
16#80B0 控制数据记录的块类型(字节 2)不等于 196。
16#80B8 参数错误;模块指示存在无效参数,例如:

· 控制数据记录试图修改通信模块或通信附件卡的组态。 通信模块和通信附件卡的实际组态必须等于 STEP 7 组态。

· 为 STEP 7 项目中未组态插槽分配的值不等于 255。

· 为已组态插槽分配的值超出范围。

· 分配的组态具有一个“内部”空闲插槽,例如,插槽 n 已分配而插槽 n-1 未分配。

组态控制示例

本示例介绍了由一个 CPU 和三个 I/O 模块组成的配置。在第一次实际安装中,插槽 3

处的模块并不存在,因此可使用组态控制将其“隐藏”。

第二次安装时,应用将包括最初隐藏的模块,但现在该模块位于最后一个插槽中。 修改后的控制数据记录可提供有关模块插槽分配的信息。

示例: 使用已组态但未使用模块的实际安装

设备组态包含实际安装中可能存在的所有模块(最大组态)。 这种情况下,在设备组态中应位于插槽 3 中的模块在实际组态中不存在。

图 6-1 最大安装的设备组态

图 6-2 插槽 3 中组态的模块不存在,以及插槽 4 的组态模块位于实际插槽 3
中时的实际安装

要指示丢失模块的不存在,必须在控制数据记录中使用 0 组态插槽 3。

示例: 随后将模块添加到不同插槽中的实际安装

在第二个示例中,设备组态中应位于插槽 3 中的模块在实际安装中存在,但位于插槽 4中。

图 6-3插槽 3 和 4 中的模块交换后,设备组态与实际安装的比较

图 6-3 插槽 3 和 4 中的模块交换后,设备组态与实际安装的比较

要将设备组态与实际安装关联,可编辑控制数据记录,将模块分配到正确的插槽位置。

weinxin
plc入门知识问答
每一个PLC工程师都应该关注的微信公众账号,只需输入您的问题,就会有答案

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: