1.消息概述: 通过组态消息可使我们对生产过程中发生的故障状态及报警事件进行快速监测、定位与处置。西门子自动化系统(SIMATIC S7 300/400及HMI)实现基于应用的、用户可组态的消息的方法主要包括位消息(Bit Messaging)方法和消息号(Message Numbering)方法两种,二者就其特点、性能、应用范围及实现机理等方面各有不同。 位消息方法通过在S7-300/400 PLC中编程置位消息位、操作屏循环查询消息位状态来触发消息的方法实现,消息的全部组态〔如消息触发、消息文本等〕均在操作屏的组态软件〔WinCC/WinCC flexible/ProTool〕中实现。显然这是HMI系统主动查询并产生消息的方法,而且这也是大多数HMI系统实现消息功能所采用的方法。西门子自动化系统还提供了消息功能实现的另一种方法,即消息号方法,它是在S7-300/400 PLC的组态软件STEP 7中对消息进行组态,在STEP 7中编程触发消息的产生并调用系统功能发送消息,而且消息文本等的消息组态也在STEP 7中进行,因此这是一种S7-300/400 PLC主动发送消息并在操作屏接收和显示的方法。 就二者的性能比较而言,位消息方法实现的消息是与过程控制异步的,也就是说它在消息中提供的信息只能来自消息在操作屏中产生时的操作屏中的信息,如消息的时间
标签及附加的过程值等,而且其采用的通过通讯循环查询消息位状态产生消息的机理,加重了通讯系统的负荷,降低了通讯系统的效率,使控制系统的总体性能受到影响。而消息号方法实现的消息可以与过程控制程序执行相同步,即消息可以由S7-300/400 PLC实时产生,这样消息的相关属性也就可以具有实时性,如消息的时间标签能更精确的反映出消息的真实发生时间,而且通过组态过程值还可获得消息发生时刻的过程状态值。而且显然消息号方法通过通讯实现消息显示的通讯效率高,通讯负荷低,从而可以确保和提升系统的总体性能。 由此也可看出上述实现消息功能的两种方法的应用范围,对于消息的实时性要求不高且实现消息而对通讯的影响能满足系统要求的可以采用消息的位消息方法实现,反之则应采用消息的消息号方法来实现。 消息号方法进一步又分为三类:即基于块的消息号方法、基于符号的消息号方法和自定义诊断消息号方法。其中,基于块的消息号方法用于实现与程序同步的消息,需调用相应的消息块,适用于S7-300/400及WinCC/WinCC flexible/ProTool组态的项目,其中对WinCC需要AS-OS连接组态,对WinCC flexible/ProTool只能用ALARM_S消息块来实现。基于符号的消息号方法用于实现与程序异步的消息,通过符号表(定义属性通过SDB下载方式)而无需调用消息块,仅适用于S7-400及WinCC组态的项目,其中对WinCC需要AS-OS连接组态。自定义诊断消息号方法用于将用户自定义的诊断消息显示在PLC中的诊断缓冲器中,它与程序执行同步并需调用WR_USMSG系统功能,实现与程序同步的消息,需调用相应的消息块,适用于S7-300/400,该消息并不给操作屏传输,而只显示在PG的诊断缓冲器中。 SIMATIC S7 300/400提供了实现基于块的消息号方法所需的各种功能块,本文将以其中的ALARM_S消息块为例来介绍。其中ALARM_S消息块按确认方式分为SFC17 ALARM_SQ(需确认)与SFC18 ALARM_S(无需确认),均只有一个通道(即调用一次消息块只触发一个消息),并只可附加一个过程值。 下面将描述基于ProTool组态的操作屏采用ALARM_S消息块实现的消息号方法。 假定本系统由一套S7-300PLC及TP270通过MPI连接构成。
2.STEP7 的编程与组态步骤2.1 首先完成SIMATIC S7 300站的硬件组态,包括S7-300与TP270通讯用的MPI网络参数组态,并编译下载。
2.2 ALARM_S消息块的实现要基于功能块FB并需对FB做相应的参数设定。创建功能块FB1,打开该FB1,在变量声明区新建一input变量(如aa),其Data Type选择为双字并修改其Attributes如下图。从而可以在FB块中的背景数据块中产生一报警消息类别。
2.3 对FB1进行编程:在本例中调用SFC17 ALARM_SQ,假定MW10作为实际过程值,当MW10大于50时,触发M0.2产生报警,即触发SFC17传输消息。其中SFC17形参"ID"为固定值W#16#EEEE,"EV_ID"即上面生成的"aa"变量,"SD"即附加的过程值源。
2.4 对OB1进行编程:在OB块中调用FB1,并为FB1自动建立一背景数据块DB1。其中FB1的形参变量"aa"值(即消息序列号)由STEP7自动生成。
2.5 组态消息文本: 右键点击DB1,点击Special Object properties,选择Message,
组态消息文本:
如需附加过程值,应在消息文本中插入"块",其结构为: @<过程值的通道号><元素类型><格式代码>@。其中"过程值的通道号"对ALARM_S块只能为1,元素类型及格式代码参见下表。
注: 格式代码中[i]为选项,可用于指定附加值的显示长度(如选择,应去掉[]) 在本例中,假定过程值MW10为整数,插入块"@1i-@"则在报警信息中显示过程值,显示其中两位:
3.操作屏的组态。 3.1 只有Protool与Step7进行集成组态时,才能实现ALARM_S消息功能。故应首先创建一个与Step7集成的Protool项目。
3.2 可在STEP7中为每个消息分配不同的显示等级,这样当在Protool中组态时,可以为操作单元选择特定的显示等级,用户可用这种方法在不同的操作设备之间有选择的分配消息。为此,可从菜单中选择“系统”>“消息”>“设置,进行下述组态:
3.3. 组态一画面,设置一消息视图用于显示消息:
3.4 对项目保存、编译、下载
4.项目运行结果测试:如设定MW10为80,从而触发消息,在操作屏上该消息被显示:
5.总结: 西门子自动化系统为消息功能的实现提供了各种可能的实现方案,用户可以根据工程项目对消息系统的性能要求以及相应消息功能的不同实现方法对系统的不同影响等因素综合考虑来选择和确定具体的方案。其中本文介绍的西门子自动化系统基于消息号的消息功能的实现方法,提供了对消息系统有高实时性能要求的应用解决方案。