本帖最后由 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
-
S7-300 CPUs 与 WinCC
- 对输入变量“EV_ID2”重复上述过程。
- 在程序部分选择系统消息块 SFC17 (ALARM_SQ)。将系统消息块的参数连接到相应功能块的输入/输出上
- 注意:
“ID”参数的值永远设为“W#16#EEEE”。
SIG 参数触发消息。
EV_ID 参数接收系统产生的消息号。
通过 SD 参数可以组态一个消息关联值。
RET_VAL 参数包含错误信息。
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
- 因为该消息块只能监测一个消息变量,所以需要再次调用 SFC17,按照上述步骤进行相关的设置。
- 保存功能块 FB1 并且关闭编辑器。
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
指定消息 EV_ID1 和 EV_ID2 的消息文本。 注意:
组态多种语言的消息文本是可行的。在“Message Configuration” 对话框中显示当前所选择的显示语言。必须为随后在 WinCC 运行系统中用到的所有语言组态消息文本。只需通过菜单命令“Options > Display Language...”即可改变 SIMATIC Manager 中的标准语言,然后再分别为每种语言分别重复组态消息。
4 在程序中调用消息兼容块
必须在您的程序中调用功能块 FB1。可以打开组织块 OB1 然后输入如下代码:
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
5组态与块有关的消息
集成消息兼容块后就可以改变消息文本。例如,可以将测量点的实际名称加入到消息文本中。通过选择背景数据块 (例如 SIMATIC Manager 中的“DB1”) 来实现此过程。在弹出菜单中调用命令“Special Object Properties > Messages...”。
消息组态对话框随即打开。根据各种相关语言改变对应的消息文本。
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
6 将程序载入 PLC
将程序载入 PLC。
7 [/td][td=1323] 编译 OS
“OS Compile”在 WinCC 中创建消息。在早期的版本中这个过程也可以使用“Mapping”或者“AS/OS Connection Data > Transfer”来完成。必要条件:
PLC 的 CPU 和 OS 必须已经联网。在 NetPro 中必须至少有一个共用的网络连接。
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
启动 OS 编译程序。在 SIMATIC Manager 中选择 OS,然后在相应的弹出菜单中选择“Compile”。
向导将通过多个对话框引导用户进行操作,在此可以设置 OS 编译的各种设置项。必须选择将哪个 PLC 程序分配给哪个 OS,以及使用的是哪个连接。 使用“Back”和“Next”按钮可以在向导的设置画面中进行切换。使用“Finish”按键可以获得所显示的编译过程小结。使用“Compile”按钮启动编译程序。
8
载入 OS
将程序载入 OS。
9 在 WinCC Runtime 中测试消息
启动 WinCC Runtime,使用变量表触发消息。消息将显示在 WinCC 的报警窗口中,并且可以在需要的地方进行确认。也可以选择通过 STEP 7 程序“CPU Messaging”来诊断消息。
如何在 S7-300 CPUs 与 WinCC 之间实现按时间排序的消息传输
组态标准的消息
在 SIMATIC Manager 中选中功能块“FB1”。在弹出菜单中调用命令“Special Object Properties > Messages...”。
消息组态对话框随即打开。
|