工控编程吧
标题: 如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输 [打印本页]
作者: baikhgmv 时间: 2016-9-15 14:24
标题: 如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
本帖最后由 baikhgmv 于 2016-9-15 14:27 编辑
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输明:
本条目说明了如何在 S7-300 CPU 与 WinCC 之间实现按时间排序的消息传输。按时间排序消息是指从 PLC 向 WinCC 站发送消息。在 PLC 中创建消息后,PLC 将会给消息分配一个时间戳并且将其传送给 WinCC 站。WinCC 站无需轮询 PLC。这样就显著减轻了总线的负荷。基本上 STEP 7 中有两种类型的消息:
对于 S7-300 CPU 仅能组态块相关的消息。可以在 STEP 7 程序中通过系统消息块创建这些与块有关的消息。一旦 STEP 7 程序调用系统消息块,并且具备了发送消息的条件,系统就会发送消息。消息触发和程序执行是同步的。在 S7-300 CPU 中 (从CPU 314 开始),可以使用系统消息块 SFC17 (ALARM_SQ) 、SFC18 (ALARM_S) 、SFC107 (ALARM_DQ) 和 SFC108 (ALARM_D) 传送与块相关的消息。相比于 ALARM_S/SQ,ALARM_D/DQ 提供管理系统资源的可能;其它功能完全一样。S7-312 和 S7-313 CPUs 不支持这些系统消息块!
更多的信息:
手册“SIMATIC S7-300 CPU 31xC 和 CPU 31x,技术数据”
这里提供了关于 CPU 报警过程的工作特性数据的具体信息 - 条目 ID 12996906。
手册“Operation List CPU 31xC,CPU 31x,IM 151-7 CPU,IM 154-8 CPU,BM 147-1 CPU,BM 147-2 CPU”
这里提供了关于创建 CPU 报警消息的系统功能和系统功能块的详细信息 - 条目 ID 13206730。
STEP 7 在线帮助
您可以在 STEP 7 在线帮助“组态消息”下找到关于报警过程、报警类型和系统报警块的详细信息。如果您在程序中使用了这些块,那么可以点击 F1 获取详细信息。
必要条件:
已经安装了 WinCC 组件“AS-OS Engineering”。
对 WinCC 进行用户自定义安装时可以选择该组件。请遵循如下安装顺序:
- STEP 7
- 包含“AS-OS Engineering”组件的 WinCC
条目 ID 22272911包含了关于如何安装“AS-OS Engineering”组件的描述。
WinCC 项目已集成到 STEP 7 项目中。
条目 ID 11841504 中包含如何将 WinCC 项目集成到 STEP 7 中的信息。
- 在 WinCC 项目的“Computer Properties”对话框中的启动列表内启用“Alarm Logging Runtime”。
以下介绍了如何组态与块有关的消息传送。
组态与块有关的消息
这里使用系统消息块 SFC17 (ALARM_SQ) 来实现与块有关的消息传送。使用系统消息块的步骤本质上是相同的。将两个消息组态在一个功能块中。
序号
操作说明
1
将 SFC17 (ALARM_SQ) 拷贝到当前项目
在 SIMATIC Manager 中通过“File > Open... > Standard Library”打开标准库。选择系统消息块 SFC17 (ALARM_SQ)。它位于“Standard Library > System Function Blocks > Blocks”目录中。将系统消息块 SFC17 拷贝到项目中。
2
创建一个消息兼容块- 将一个新的功能块,比如“FB1”,插入到 STEP 7 项目中。使用 STL 语言编程。
- 打开“FB1”功能块。
- 创建如下输入变量:
EV_ID1 (DWORD)
EV_ID2 (DWORD)
SIG1 (BOOL)
SIG2 (BOOL)
SD1 (WORD)
SD2 (WORD) - 创建如下输出变量:
RET_VAL1 (INT)
RET_VAL2 (INT) - 创建如下临时变量:
RET_iVal (INT) - 打开输入变量“EV_ID1”的“Object Properties”对话框。为以下属性赋值:
S7_a_type = alarm_s
S7_server = alarm_archiv