发射机热备状态下自动控制系统日志子系统的设计
2016-05-14郭亚明
郭亚明
摘要:日志系统用于记录保存应用系统操作运行中产生的重要客观历史数据,是应用系统不可或缺的重要组成部分。本文以DX-10型中波发射机1+1热备状态下自动化控制系统的日志子系统设计为例,对日志系统设计所涉及的日志的产生、分类,日志的报文格式、日志的记录、存储、发送、转存和清除以及PLC程序与上位机服务器之间的日志传输通讯机制等进行了详细阐述。
关键词:日志系统 PLC 报文格式 通讯机制
中图分类号:TP302.1 文献标识码:A 文章编号:1007-9416(2016)07-0159-02
1 引言
近年来,随着科学技术的迅猛发展和管理部门对广播电视安全播出管理要求的提高,越来越多的广播电视台站正在对播控系统和传输发射系统进行运行自动化方面的的研究和改造,以实现“不间断、高质量、讲效益、重安全”的安全播出管理目标。而日志子系统作为自动化控制系统的重要组成部分,主要用于记录系统运行中的各种操作、故障和异态数据记录,方便后期的监测追踪、查询和分析统计。
不同应用系统中日志子系统的内容和形式各异,本文主要介绍一种适用于中波广播发射台站的发射机1+1热备状态下自动化控制系统的日志子系统的设计。
2 日志的种类
在DX-10型发射机1+1热备状态下自动化控制系统中,日志的种类主要分为故障日志和操作日志两种,其中故障日志又分为故障发生日志和故障恢复日志两种。而故障又归纳为如下3类:
(1)发射机自身工作时产生的故障,如风机联锁故障等。
(2)PLC控制箱因发射机处于本地或者自身工作模式非自动等原因产生的故障,该类故障发生后控制箱一般会进入拒绝操作模式,需要控制箱自动模式按键的上升沿使其重新初始化才能恢复。
(3)开关机操作以及倒天线等操作失败的故障,该类故障也一般会使控制箱进入拒绝工作模式或引起倒备机等操作。
以上三种类型的故障中只有第一种能够产生故障恢复日志,其他两种可以将随后的控制箱进入初始化的日志当做其故障恢复日志。
3 日志的报文格式
在日志系统的设计中,为方便日志信息的生成和查询处理,首先需对日志的报文格式进行定义。根据DX-10型发射机1+1热备状态下自动化控制系统的功能需求分析,日志通讯协议报文的格式定义为: 日志编码|日志类型|时间|主备机状态|日志代码。
每条日志报文的长度为16字节,其中:
(1)日志编码:下位机生成该条日志的唯一码,占用1字节,为1~30间的数字。
(2)日志类型:1、2、3分别表示三种类型,占用1字节,1为操作日志,2为故障日志,3为故障恢复日志。
(3)时间:日志产生时间,DTL数据类型,占用12字节。
(4)主备机状态:日志发生时当前工作机是主机还是备机,以天线状态标识。1:主机;2:备机;0:既非主机又非备机。
(5)日志代码:日志代码占用1字节。
4 日志的产生
在DX-10型发射机1+1热备状态下自动化控制系统中,日志的产生来自如下几种情况:
(1)DX-10型发射机自身一类故障和其他输入中标识的几种故障情况,其中:
1)主机故障来自DB9.DBB16的bit0~bit7;DB9.DBB15的bit0和bit1;2)备机故障来自DB10.DBB16的bit0~bit7;DB10.DBB15的bit0和bit1。
其中DB表示发射机自动控制系统的PLC程序中使用到的数据存储区,在自动化控制系统的设计之初,需对整个PLC程序的存储区的进行规划。日志系统中以下降沿标识故障的发生,故障发生后的上升沿作为标识故障的恢复;用MB70和MB71的bit0和bit1分别对应于当前工作机的10种故障状态。
(2)主机和备机进入到本地工作模式引起的故障日志,主机和备机的本地工作模式标识位置分别为MB102.7和MB105.7,日志部分使用MB71的bit2和bit3分别标识发射机的进入和退出本地模式产生的故障;其中MB表示在发射机自动控制系统的PLC程序中规划的数据存储标志位。
(3)PLC控制箱进行操作时引起的成功或失败日志,包括开机成功、失败,关机成功、失败,倒天线成功、失败等等,使用MB72和MB73的各个Bit进行标识。
(4)通讯失败故障,用MB71的bit4和bit5分别标识主机和备机的通讯失败故障信息。
在DX-10型发射机1+1热备状态下自动化控制系统的日志系统设计中,需对主电源故障、调制编码电缆联锁故障、风机故障、主电源过压故障、输出监测+5V故障、输出监测-5V故障、直流稳压器B+故障、直流稳压器B-故障、外部联锁故障、门联锁故障、主机处于本地、备机处于本地、主机数据采集故障、备机数据采集故障、开机失败故障、关机失败故障、天线从主机倒备机故障、天线从备机倒主机故障、控制箱非自动模式、处于开机但开机指令未执行、处于关机但关机指令未执行、控制箱进入初始化状态、开机成功、关机成功、天线成功倒向主机、天线成功倒向备机、开始主机倒向备机、开始备机倒向主机、系统校时和下发运行图等故障和操作按定义的日志报文格式一一指定标识位、日志类型和代码。
以上标志位的变化也就是各种日志的产生需要依据PLC采集到的发射机的数据、PLC当前的工作状态以及PLC各相关工作流程的结果等,在此不再赘述其产生过程。日志的产生主要考虑两种情况,一是发射机自身故障的发生和恢复日志;二是控制箱PLC程序的操作成功或失败日志。
4.1 发射机自身故障日志
若天线在主机(I0.0为高),则DB9.DBB16的bit0~bit7和DB9.DBB15的bit0和bit1的下降沿分别对应于主电源故障、调制编码电缆联锁故障、风机故障、主电源过压故障、输出监测+5V故障和-5V故障、直流稳压器B+故障、直流稳压器B-故障、外部联锁故障、门联锁故障的发生,亦即M70.0~M70.7、M71.0、M71.1的上升沿;若天线在备机(I0.1为高),则DB10.DBB16的bit0~bit7和DB10.DBB15的bit0和bit1的下降沿分别对应于主电源故障、调制编码电缆联锁故障、风机故障、主电源过压故障、输出监测+5V故障和-5V故障、直流稳压器B+故障、直流稳压器B-故障、外部联锁故障、门联锁故障的发生,亦即M70.0~M70.7、M71.0、M71.1的上升沿。
当M70.0~70.7、M71.0、M71.1为高时,若发生DB9.DBB16的bit0~bit7和DB9.DBB15的bit0和bit1的上升沿或者DB10.DBB16的bit0~bit7和DB10.DBB15的bit0和bit1则认为是有发射机故障的恢复。
4.2 操作类日志
操作类的日志无论是操作成功还是操作失败,都能够在状态发生变化的时候体现出来,因此将操作类日志的发生标志位在状态切换控制流程部分(FC1)进行置位,在确认日志记录已经存储后进行复位。
如开机失败故障(M72.0)和开机成功日志(M73.0)在FC1的NW7中进行置位,然后在FC107中进行日志的产生和记录;关机成功(M73.1)和关机失败(M72.1)日志在FC1的NW9中进行置位,然后在FC107中进行日志的产生和输出记录。
5 日志的记录存储
在设计中,若选用的PLC型号不支持指针操作,则对于日志的记录存储和读取都需要将存储区的各个位置逐条进行判断,并且读写各自各自独立。在PLC中声明了一个可以存储30条日志的断电保持数据区DB105进行日志的保存,DB105.DBB0表示上次写入日志的位置(1到30之间的数字),DB105.DBB1表示上次读取时所读日志的位置,DB105的其他部分依据定义的日志报文格式“|日志编码|日志类型|时间|主备机状态|日志代码|”进行30条日志的存储。
日志的记录和存储流程如下:
(1)当发现有日志产生需要记录时,首先判断DB105.DBB0的值,若DB105.DBB0>29,则令DB105.DBB0=1,否则将DB105.DBB0值加1。
(2)将上述刚处理过的DB105.DBB0的值、FC107的输出结果(日志类型和代码)和天线的当前状态值以及系统的当前时间(DTL格式)作为输入参数,送给功能块FC108,FC108内做一个对DB105中30条日志存储区进行操作的查找表,根据要写入的位置信息(DB105.DBB0)将相应的日志编码(等于DB105.DBB0)、日志类型、时间、发射机天线位置状态和日志编码写入DB105的相应位置中。
6 日志的发送转存和清除
日志的发送、转存和清除包括了FC110、FC109和FC111三个相对独立的模块,具体为:
FC110:判断PLC程序日志记录存储区DB105的位置1到30处是否有需要发送的日志数据(日志编码是否等于所处的位置),若有,则赋值日志发送位置和日志发送请求。
FC109:根据FC110的输出将相应位置的内容从DB105读取并转存入日志发送模块的发送数据缓冲区DB106中。
FC111:根据输入位置清除相应位置的日志编码(赋值为0)。
在主程序块OB1的NW20中首先调用FC110判断是否有日志发送需求,若有日志发送需求,则在日志发送请求的上升沿调用FC109将待发送的日志数据从DB105转存到发送模块的发送缓冲区DB106;然后在日志发送请求为高期间,建立TCP/IP发送模块的链接并每隔2秒令发送模块的发送请求为高,若TCP/IP接收模块接收到的数据编码等于待发送的日志编码,则复位日志发送请求并且调用FC111将DB105相应位置存储的日志编码清零;若没有接收到反馈数据或反馈数据的编码不等于发送区数据的编码则继续每隔2秒进行一次数据的发送。
日志的记录存储与发送和清除完全独立处理的弊端是当服务器未实时接收日志导致产生的日志条数超过30条时,会因存储区溢出而造成日志丢失以及发送的日志未能严格按照实际发生时间先后进行发送。
7 故障报警
当有故障发生(M70.0~M70.7,M71.0~M71.5,M72.0~M72.3为高)并且PLC控制箱处于自动状态时,置位M217.1,表明需要进行报警,而在M217.1为高期间,蜂鸣器每隔10秒连续响10秒,若故障一直持续存在,则保持停10秒响10秒再停10秒再响10秒的规律持续报警,故障报警功能在PLC程序OB1的NW21和NW22中加以实现,并在日志系统中记录。
8 PLC与上位机的日志传输通讯机制
PLC程序与上位机服务器之间通过SOCKET通讯,上位机(自动化系统)做为TCP服务端,下位机(PLC)做为TCP客户端。
(1)下位机发起连接,上位机监听端口。下位机连接成功后按照通讯协议报文发送协议内容,上位机接收成功后解析数据内容。
(2)若上位机接收成功会将通讯报文中的日志编码返回给下位机,下位机接收到日志编码后即认为上位机已经接收处理成功。
(3)若下位机发送协议报文后,下位机没有接到上位机回复的编码内容则视为通讯失败。
(4)下位机接收到日志编码,根据日志编码清除该条记录并关闭连接,该次通讯完成。
(5)所有通讯均为下位机发起连接,下位机关闭连接。下位机正常情况下应为实时发送日志记录,如果下位发送后2秒内没有接到正确的反馈,则不停的每隔2秒重新发送一次日志数据。
9 结语
日志系统用于记录保存应用系统操作运行中产生的重要客观历史数据,是应用系统不可或缺的重要组成部分。本文以发射机1+1热备状态下自动化控制系统的日志子系统设计为例,对日志系统设计所涉及的日志的产生、分类,日志的报文格式、日志的记录、存储、发送、转存和清除以及PLC程序与上位机服务器之间的日志传输通讯机制等进行了详细介绍,本文具体的设计以美国哈里斯公司的DX-10型中波发射机为对象,其他机型的设备由于操作方式和故障种类不同,需对操作步骤和故障类型对应标识位的日志含义进行适当修改,但其实现原理和方法是完全一致的,因此在其他机型的日志系统开发设计时也可以进行参考。