组态来自于PLC的编号消息

n

1. WinCC消息系统简介
消息系统是SCADA系统中非常重要的组成部分,用来监视自动化系统的异常和事件,借助于可视或有声提示,帮助操作人员快速发现、定位、解决处理故障和错误,从而有效减少宕机时间和生产事故的发生,并能通过消息归档,追溯报警和事件,进而分析事故起因、认定事故责任等。
WinCC的消息来源可以分为两大类:由数据管理器的消息变量触发的消息和来自与WinCC系统内部的消息,如下图所示:n

组态来自于PLC的编号消息

对于来自于数据管理器的消息变量又分为:
• 布尔值变量
• 模拟量变量(上下限报警)
• 消息帧变量
其中,布尔值变量和模拟量变量较常用,分别是指WinCC普通的位报警和模拟量上下限报警。而消息帧变量是指WinCC使用一个RawData (原始数据类型) 变量来获取来自于一个PLC主动发送的所有消息帧,然后用特定的格式动态链接库,从该数据帧中提取出相关的消息信息,在HMI上实现归档显示等功能。n

2. 消息方式的比较

消息帧方式一般常见与WinCC(或WinCC Flexible等)集成在Simatic Manager中的项目,如下图所示:n

组态来自于PLC的编号消息

经过简单设置和OS编译后,WinCC项目中会自动生成与PLC的连接,并自动生成变量,其中就有类型为Raw Data的消息帧变量xxx#RawEvent,如下图所示:n

组态来自于PLC的编号消息

该消息变量会在WinCC的报警记录中使用,如下图所示:n

组态来自于PLC的编号消息

在消息属性中可以看到所使用的格式动态链接库,如下图所示:n

组态来自于PLC的编号消息

这类似与PCS7的消息实现方式,消息组态是在Step7中完成的,消息经编译进入WinCC报警记录中,并且每条消息被自动分配了不同的消息号,我们称这类消息为编号消息,它又可分为块消息和符号表消息。n

块消息是指PLC侧通过调用相应的消息功能块将消息主动上发给WinCC等HMI系统,适用于:n

  • 西门子HMI:WinCC 或面板n
  • S7-300/400n
  • 使用ALARM_S等块主动发送消息n
  • HMI项目集成在Simatic Manager中

符号表消息:n

  • WinCCn
  • 仅S7-400支持n
  • 组态符号表,无需编程n
  • WinCC项目集成在Simatic Manager中

和WinCC的位消息相比,编号消息的优点在于:n

  • PLC是基于事件主动上发消息,故总线通讯负载占用少n
  • 消息使用PLC时间戳或自定义时间戳,具有更高的时间精度。n
  • 更多高级的功能是基于编号消息实现的:
  • 在线系统诊断工具:智能维护站Maintenance Station,详细信息请参见:24327046
  • 在线过程诊断工具:ProAgent ,详细信息请参见:15239189
  • 利用RSE功能实现设备的故障诊断,详细信息请参见:24796673
  • 借助Alarm_8P实现1ms高分比率的SOE功能,详细信息请参见:78464222

对于WinCC来讲组态符号表消息和块消息都需要:n

• 安装WinCC的组件“AS-OS Engineering”
• WinCC集成进Simatic Manager中
• 在 WinCC 项目的“Computer Properties”对话框中的启动列表内启用“Alarm Logging Runtime”n

3. 组态集成在Simatic Manager中的WinCC项目

组态来自于PLC的编号消息

打开Simatic Manager,插入PLC站,和OS站,组态PLC站的硬件并为其添加网络,如MPI、Profibus或以太网等;
在Simatic Manager中双击OS站,打开WinCC项目,需要预先设置报警类别和类型,一种方法可以打开Alarm Logging ,手动添加相应的报警类别和类型。
另一种简单的方法可以使用“OS Project Editor”,在WinCC 资源管理器中双击“OS Project Editor”打开最后一个页签“General”,按下图设置,点击“OK”。这样只产生报警组态设置,而不会产生其他的内容。如下图所示:n

组态来自于PLC的编号消息

打开Simatic Manager 编译OS,选择WinCC用何种方式与哪一个CPU连接:n

组态来自于PLC的编号消息

这个步骤会将PLC中做过特殊设置的变量,消息等内容传到WinCC的组态数据库中,从而提高组态效率。
下面将分别介绍如何在Step7 中组态符号表消息和块消息并上传到WinCC中。
关于如何将Step7中的变量通过编译上传到WinCC的方法,请参见:71759485

4. 符号表消息的组态方法
在Simatic Manager中打开PLC程序的符号表,通过菜单“View” 选择“Columns R,O,M,C,CC” ,这样在符号表中的就会出现多个列,鼠标单击选中要监视的布尔型变量的M列;
或在符号表中右键点击的要监视的布尔型变量,在弹出菜单中进入“Special Object Properties”->“Message”,如下图所示:n

组态来自于PLC的编号消息

在消息组态对话框中的Message Text列中,填入相应的消息文本:n

组态来自于PLC的编号消息

点击“OK”,保存符号表,退出。然后编译OS并下载整个站到PLC。n

5. 块消息函数的实现方法
S7-300/400 CPU支持多种消息函数,下表列出的是各消息函数的区别:n

名称 SFB/SFC S7 CPU 可确认 通道数 过程值 WinCC OP
ALARM_SQ SFC 17 S7-300/400 Yes 1 Yes Yes Yes
ALARM_S SFC 18 S7-300/400 No 1 Yes Yes Yes
ALARM_SC SFC 19 S7-300/400 - - - Yes Yes
ALARM_DQ SFC 107 仅 S7-400 Yes 1 Yes Yes Yes
ALARM_D SFC 108 仅 S7-400 No 1 Yes Yes Yes
NOTIFY_8P SFB 31 仅 S7-400 No 8 Yes Yes No
ALARM SFB 33 仅 S7-400 Yes 1 Yes Yes No
ALARM_8 SFB 34 仅 S7-400 Yes 8 No Yes No
ALARM_8P SFB 35 仅 S7-400 Yes 8 Yes Yes No
NOTIFY SFB 36 仅 S7-400 No 1 Yes Yes No

需要注明的是某些新型的S7-300 CPU也支持 Alarm_D/Alarm_DQ,如:CPU 315-2DP/PNn

下面以 SFC107 Alarm_DQ 为例说明组态的过程:
在Step7中建立FB1,定义DOWRD型输入参数EV_ID1和EV_ID2,并分别设置参数属性:n

组态来自于PLC的编号消息

设置后,该参数上会出现绿色的小旗标,如下图所示。在FB1中调用SFC107, 其参数:
• SIG为所监视的报警变量
• ID = W#16#EEEE
• EV_ID为FB1的输入参数EV_ID1/ EV_ID1
• CMP_ID =DW#16#1
• SD:为报警所携带的过程值的地址,ALARM_DQ可携带最多12个字节的过程值,这些过程值可以在报警消息文本中使用
• RET_VAL为执行状态返回值n

组态来自于PLC的编号消息

保存,退出。
打开OB1,调用FB1。其输入参数EV_ID1和EV_ID2系统会自动分配事件编号,无需用户设置。为输入参数Sig1和Sig2指定要监视的布尔量。
参数输入完成后,打开菜单“Edit”->“Special Object Properties”->“Message…”或直接右键单击FB1的调用程序,在弹出菜单中选择“Special Object Properties”->“Message…”:n

组态来自于PLC的编号消息

在弹出的消息组态对话框中输入相应的消息文本:n

组态来自于PLC的编号消息

消息文本中可以携带过程值如上图所示。其格式为:n

@ PwnTpy%Width. precision Format @, 具体含义见下表:n

符号 含义 值及含义
@ 起始符
Pwn 过程值号 1、2、3、…
Typ 过程值数据类型 b:BOOL;y:BYTE|y;c:Chr; w:WORD;
i:Int; x:DWORD; d:DINT; r:REAL
%width 数据显示宽度
.precision 数据显示精度 (可选项)
Format 数据显示格式 d:有符号十进制;u: 无符号十进制;
X:十六进制; f:有符号定点数; s: ANSI字符串
@ 截止符

保存退出,下载整个站到PLC中。
在Simatic Manager中编译OS,结束后,打开Alarm Logging可以看到Step7中组态的消息已经编译进WinCC的报警记录中了。

组态来自于PLC的编号消息

在WinCC中新建一幅画面,放置Alarm 控件。激活WinCC。PLC程序运行在PLCSim上,打开变量监控表,如下图赋值,并设置M1.0 和M1.1为1触发报警:

组态来自于PLC的编号消息

在WinCC的报警控件上,可以立即看到相应的报警消息,并可对其进行确认:

WinCC支持多语言项目,对于来自于PLC消息的组态,可以在WinCC 的文本库中实现消息文本翻译;也可以在Simatic Manager菜单“Options”->“Language for Display Devices”中设置项目中用到的语言,并在此设置默认语言,在每种默认语言状态下输入相应语言文本。多语言文本经OS编译后也可进入WinCC的文本库。

组态来自于PLC的编号消息

关键词
Alarm_D, Alarm_S, 报警,WinCC

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc326151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论