1.S7-PDIAG软件简单介绍
诊断消息用于指示操作人员系统当前的运行状态和故障的位置及原因。通常情况下取plc中的一个位信号作为触发信号,在hmi中设置相应的报警文本,当信号为1时,表示有故障,弹出设置的报警文本,当信号为0时,故障消除,报警文本显示故障消除并归档,这样的报警消息由HMI扫描PLC中故障位的状态,占用大量的通信负荷,同样通过符号表产生的消息同样由CPU扫描消息触发位信号,如图1所示,消息的类型为“SCAN”,扫描的间隔可以设定。
图1 由符号表产生的消息
采用与程序块调用等相关的报警消息由PLC触发(例如调用SFB34、35或SFC17、18、107、108等发送消息,S7-400 CPU支持SFB的调用)只有当故障触发时才发送报警消息,由于PLC与HMI集成在一个项目下,PLC中定义文本消息存储于HMI中,故障触发时只发送位状态而不发送整个文本消息,减少通信负荷,消息的类型为“ALARM_X”(X:为S、8、8P等不同的子类型),如图2所示:
图2 块调用产生的消息
S7-PDIAG软件通过内部调用系统函数SFC17、18、107、108完成消息的传送(SFC107、108替代SFC17、18,与之相比带有通信资源管理功能)。
2.S7-PDIAG软件诊断功能的种类
S7-PDIAG包含三种诊断功能,分别是地址监控(Address monitoring)、全局监控(global monitoring或General monitoring)和运动监控(Motion monitoring),下面分别介绍这三种诊断功能。
2.1 地址监控
地址监控功能监控一个位信号的状态变化,可以设定一个沿信号和电平信号,设置界面如图3所示:
图3 地址监控功能设置界面
在“Initial Diagnostic Address”设置监控的地址,如M1.1,然后选择监控的信号,如沿信号和电平信号,如果激活“Delay”功能,则需要设定相应的延迟时间,表示如果监控信号变化,将延迟设定的时间后触发,S7-PDIAG在程序内部调用SFC64,时间格式为IEC标准,例如T#1H19M12S100MS 表示的时间值为1小时19分12秒100毫秒,配置的延时定时器的个数没有限制。在“Meassage”栏中设定信号触发的消息和优先级,配置完成后点击“OK”键确认。
2.2 全局监控
全局地址监控功能监控一个表达式,如果表达式结果为1则触发消息,设置界面如图4所示:
图4 全局监控功能设置界面
在“Initial Diagnostic Address”设置监控的初始地址,如M1.1,在“Monitoring Definition”中定义事件触发的条件,触发条件必须使用S7-PDIAG语言编写,S7-PDIAG语言包含下列基本指令:
AND 与操作,例如表达式为 M1.1 AND M1.2,如果M1.1与M1.2为1,表达式结果为1;
ONDT 执行信号ON延时,例如表达式为ONDT(M1.1,T#2S),如果M1.1为1并延时2秒后表达式结果为1;
EN 存入下降沿结果,例如表达式为EN(M1.1),M1.1产生下降沿时表达式结果为1,M1.1再次为1时,表达式结果为0;
EP存入上升沿结果,与EN相反;
NOT 取反,例如表达式为NOT M1.1, 如果M1.1为0时表达式结果为1;
OR 或操作,例如表达式为 M1.1 OR M1.2,如果M1.1与M1.2其中一个为1,表达式结果为1;
SRT置位复位延时,例如表达式为SRT(M1.1,M1.2 T#2S),如果M1.1为1(沿信号)2秒后,表达式结果为1,如果如果M1.1再次为1,表达式结果为0,2秒后表达式结果为1,如果M1.2为1(沿信号),表达式结果为0。
XOR异或,例如表达式为M1.1 XOR M1.2,当M1.1与M1.2不相同时表达式结果为1。
如果在一个表达式中使用多个指令,指令的优先级参考表1
表1: S7-PDIAG 指令优先级
指令 |
优先级 |
() |
1 |
EP, EN, ONDT, SRT |
2 |
NOT |
3 |
AND |
4 |
XOR |
5 |
OR |
6 |
在“Meassage”栏中设定信号触发的消息和优先级,配置完成后点击“OK”键确认。
2.3 运动监控
运动监控对用户编写的定位过程进行监控,运动监控有下列几种监控方式:
1)执行监控(Action Monitoring)
当启动命令执行后,在设定的时间内没有到达定位的位置(限位信号),触发消息的生成。执行监控的设置界面如图5所示:
图5 运动监控-执行监控功能设置界面
执行监控界面中使用S7-DIAG语言预先设定触发条件并不可以修改,如图5中,如果M1.2为1(执行),20秒后M1.1(限位开关)没有到达,触发报警消息。
2)启动监控(Startup Monitoring)
如果启动命令发出后,在设定的时间内没有动作,则触发消息,这与用户生成的启动失败的报警过程相同,启动监控的设置界面如图6所示:
图6 运动监控-启动监控功能设置界面
启动监控界面中使用S7-DIAG语言预先设定触发条件并不可以修改,如图6中,如果M1.2为1(执行),1秒后M1.1(限位开关)为1(物体没有移动),触发报警消息。
3)定位监控(Reaction Monitoring)
当定位任务完成后但是并没有达到要求的位置,在设定的时间延时后触发报警消息,满足定位范围需要附加的限位开关,定位监控的设置界面如图7所示:
图7 运动监控-定位监控功能设置界面
定位监控界面中使用S7-DIAG语言预先设定触发条件并不可以修改,如图7中,如果M1.2为1(定位完成),M1.1(限位开关)不为1(辅助限位开关),1秒后触发报警消息。
4)连锁监控(Interlock Monitoring)
检测控制命令触发后连锁条件是否满足,连锁监控的设置界面如图8所示:
图8 运动监控-连锁监控功能设置界面
连锁监控界面中使用S7-DIAG语言预先设定触发条件并不可以修改,如图8中,如果M1.2为1(命令触发)1秒后,M1.1(连锁条件)不满足(为0),触发报警消息。
注意:
运动监控只适合用户编写的简单位置控制,所有监视通过行程开关、接近开关等来实现,西门子所有定位模块都包含上述故障监控,不需要使用S7-DIAG软件实现。
3.替代功能
使用替代功能可以在消息文本中插入故障触发时某一个过程值或在编译时生成替代文本。
3.1 插入过程值
在消息文本中可以插入一个故障触发时的过程值,如图8所示,在“Record Associated Value”定义一个过程值,如MD12,在文本中使用@1X%显示格式@替代MD12,显示格式可以参考S7_DAIG手册,例如6d表示以十进制显示,数值最大为6位,U表示无符号十进制数,没有位数限制。例如输入的消息文本为“ACTION FAILURE,PRESSURE VALUE = @1Xm@”,如果MD12为123,在HMI显示的文本为“ACTION FAILURE,PRESSURE VALUE =123”。
3.2 文本替代值
如果监控一个FB块的形参,这个FB块又在其它的FB块中作为形参多次调用,这样在初始的FB块定义的消息文本只能作为一个模板,无法表示其它多次嵌套调用该FB而生成的消息文本,在消息文本模板中使用$$替代符号$$,例如“U2”表示在编译时使用作为形参的FB名称替代U,2表示FB被调用2次(两个单元),详细替代符号参考S7_DAIG手册。
4.配置一个消息
下面以例子的方式介绍消息的生成。
1)首先在LAD/STL/FBD程序编辑器,点击需要监控的地址,按鼠标右键,选择“Special Object Properties”->“Monitoring”进入消息配置界面,如图9所示:
图9 监控设置界面
在“Template”中选择监控的类型,点击“New”键进入消息配置界面(参考图3~图8),按照模板提供的选择配置消息,配置完成后点击“OK”键确认。按上述的方法配置所需的消息。
2)选择BLOCK文件夹,点击“Options”-> “Configure Process Diagnostics”命令进入过程诊断配置界面如图10所示:
图10 过程诊断配置界面
点击菜单“Options”->“Customize”设置编译选项,如图11所示:
图11 过程诊断编译设定界面
选择“Using Auxiliary Networks”配置附加程序段选项后,如触发故障,可以在HMI中显示引起故障的程序和原因,如果故障原因带有M和Q将会被输入替代,参考如下程序:
A M1.1
A I1.1
= M1.2 //监控点
A I1.2
= M1.1
如果M1.2为1触发报警消息,在HMI显示故障程序为:
A I1.2
A I1.1
= M1.2
如果没有选择该选项,则在HMI显示故障程序为:
A M1.1
A I1.1
= M1.2
在“Default Settings”栏中设定故障检测和初始状态检测需要调用的功能块和相应的报警数据块,如图12所示:
图12 缺省设置界面
设置完成后点击确认键推出。
3)点击“Options”->“ Exclusion Addresses”或Termination Addresses配置排除地址(Exclusion Addresses)和终止地址(Termination Addresses)。
排除地址和终止地址都是作用于附加程序段(Auxiliary Networks)的,如果在排除地址设置中选择某个地址,例如I1.1,如果故障触发时,在HMI显示故障程序中将不在显示I1.1。
选择生成附加程序段后,所有的故障程序在HMI中将直接显示输入地址,如果在某段程序中不需要显示附加程序段,则可以使用终止地址,例如选择M1.1,当M1.1为1时,同时故障触发,在HMI显示的故障程序为。
A M1.1
A I1.1
= M1.2
4)编译过程诊断,选择菜单命令“Process Diagnostics”->“Compile Completely”,生成相应的诊断程序。
5)在OB1中调用FB44(按照缺省设置),FB44内部自动调用FB45,FB44的调用示例如下:
CALL FB 44 , DB44
PDIAGZyklus:=#OB1_SCAN_1 //OB1的开始信息。
5.显示一个消息
在相同的项目中插入SIMATIC OP站 双击该站,打开ProTool项目。选择面板类型后,点击“OK”键完成项目的创建,然后在ProTool中的“Controllers”中建立面板和PLC的通讯连接。
点击菜单命令“System”->“ProAgent”将配置的诊断信息添加到HMI系统中,如图13所示:(在PROTOOL中需要安装ProAgent软件,否则在菜单“System”下没有“ProAgent”项。ProAgent软件可在 ProTool/Pro 欧洲版的CD中 找到)
图13 HMI ProAgent设置界面
配置完成后点击“OK”键确认。
在画面中加入消息显示窗口,如果触发故障事件,用户配置的消息文本将显示在消息窗口中。
如果需要可以插入“Detail VIEW”窗口,在该窗口中可以显示故障的触发时间(故障程序);“Unit VIEW”显示S7-PDIAG提供的UDT_Unit和 UDT_S_Unit信息;“Motion VIEW”显示S7-PDIAG提供的UDT _Motion的信息,UDT的数据格式不能修改,画面的功能这里不再详细介绍。