广播在日常生活中有举足轻重的地位。广播中波发射台担负着极其重要的广播任务,开发一套行之有效的监控系统,不仅能够监测发射机的播发质量,更能够提高播发质量,保障播发系统的可靠性与稳定性。论文旨在设计中波发射机监控系统,其可以通过组建基于RS-485的主从式(master-slave)总线型网络来实现,在一台PC机上监控10台中波发射机的运行状态。
1 通信方式的选择
常用的串行通信有2种:1)RS-232通信方式;2)RS-485通信方式。现如今,RS-232可以称得上是计算机标配,无论是工业领域还是民用领域,RS-232都十分普遍。
1.1 RS-232通信方式
1969年,美国EIA(Electronic Industries Association,EIA)与BELL等公司开发并公布了RS-232C标准通信协议,适用于数据传输速度在0~20 000 b/s的通信。 串行通信易使用的特性使其在工业领域被大量的应用。但噪声是工业领域中的一个常见问题,外界的电气干扰经常会扰乱RS-232数据传输信号而致使错误发生。为解决这一问题,RS-485应运而生,并开始被广泛应用。
1.2 RS-485通信方式
RS-485与RS-232接口有所不同,其采用的平衡驱动器和差分接收器保证了其具有较强的抗噪声干扰的能力。RS-485传输信号使用的是双绞线,信号在两线上极性相异,因而线路所产生的磁场得到很大程度的抵消,使电磁干扰(electromagnetic interference,EMI)减至最小。较低的布线成本和长达3 000 m的超远传输距离使得RS-485串行接口被广泛应用于车载电子产品、工控以及电子通讯领域。
在本系统中,要对中波发射机监控系统实现远程监控,发射机距离较远,分布也不均匀,由于发射机周围电磁干扰较为强烈,因而通信的抗干扰性尤为重要,因此在本系统中采用RS-485主从式(master-slave)串行通信。 图 1为基于RS-485总线的中波发射机监控系统概况图。
该系统亦可通过网络技术和通讯方法把监控扩展到远端,在这种基于单总线控制的监控构架下系统走线得到很大程度的简化。目前,由于232接口转485较为便捷,加之其优越的特性,使得这种系统可适用于大多数的发射台站,成为目前发射机监控技术的主流。
2 中波发射机通信协议分析与设计
在OSI的7层通信协议中,Data Link Layer Protocol是兼具实用性和稳定性的一类较成熟的协议。面向字符协议和面向比特协议是数据链路层的2种基本协议。 面向字符的通信协议,顾名思义,即通信控制等功能是通过特定字符的执行来实现的,在小型网络中,更适合于使用面向字符协议。 在此系统中,中波发射机采用串行通信协议(一种面向字符的通信协议),监控系统上位机通过RS-485网络与发射机主控单元进行实时通信,以约定的通信协议发送数据采集类命令,从而采集各个模拟量数据信息,同时亦可按协议发送控制命令远程控制发射机工作。
1)通信参数
通信方式:半双工通信;Bit Rates:38 400 bit/s;Parity:None;字符格式:数据位+1停止位
2)发送数据帧结构
STX | SID | DID | Divider | Divider | Command | ETX |
其中Sender ID(SID)和Receiver ID (DID)由发射机系统决定。
3)接收数据帧结构
STX | SID | DID | Divider | Response | ETX |
其中Response结构为Command所相应的数据信息。
4)发送/接收流程
如图 2所示,完成一次通信需要2步:工控机按协议发送命令;发射机接收、处理并作出相应动作。由于电气条件限制和物理条件限制,必须给发射机预留出一定的响应时间,一般为100~200 ms。当发射机主控单元接收到命令码时(如开关机,功率选择,时间校准等),主控单元将迅速返回“ACK00,Command”,代表下位机成功接收到命令;若返回数据为“NAK00”,则可能数据接收出现了错误或执行失败。
本监控系统中按照以上通信方式进行命令的发送与处理,通过事先拟定的协议控制发射机进行一系列动作,通过循环发送数据上传指令,不断采集发射机当前状态,从而实现了对发射机实时运行状态的监测和控制。
3 中波发射机监控系统通讯网络的设计与实现
中波发射机监控系统通讯网络由硬件部分和上位机软件部分2部分构成。
3.1 系统通讯网络硬件结构
监控系统拓扑结构如图 4所示。主控单元与上位机通过RS-485进行连接并通信,下位机接收上位机传送的模拟量数据读取类命令、工况调整类命令,并把实际采集的各类数据及时上传回复给上位机进行辨识和分析。
主控单元主要由上位机与下位机2大部分组成。其中下位机由核心芯片STM32进行调度、运行、监测和控制,STM32芯片是由意法半导体公司生产的,基于ARM V7架构和Cortex-M3核心的一款芯片,该芯片外设丰富,实时性能优异,功耗控制好,开发成本也较低。下位机通过STM32芯片的AD采集口进行外部模拟量的数据采集,通过其他的众多的通用I/O口进行数字量的输入与输出,从而实现对发射机的监测与控制。外部数据存储芯片使用AT24WC16芯片,存储大小为2 KB,从而实现对系统功率等级,开关机时间,故障记录,掉电恢复等数据的存储。其中,采集到的模拟量和数字量输入将同时按照通信协议的要求通过RS485总线发送给上位机,由上位机进行辨识和分析。(故障反馈输入为数字量输入,控制输出为数字量输出,入射功率~网络零位等代表模拟量输入)。数字量输出信号是由上位机通过RS485总线发送给下位机,由下位机直接对发射机进行操作。
3.2 上位机监控软件设计
1)Borland Delphi7
Delphi是Windows平台下的快速应用程序开发工具(rapid application development)。中波发射机监控软件的研发过程通过Delphi的IDE、VCL工具与编译器,以及其简单易操作的数据库功能,将得到很大程度的简化。
2)SQL Server 2005数据库
Microsoft SQL Server 2005是一个优秀的数据库平台,以其集成的BI工具为基础提供强大的数据管理功能。上位机软件主要在用户信息部分、数据采集与存储部分以及用户参数设置、日志管理、历史数据查询方面需要Microsoft SQL Server 2005的支持。
3.3 监控系统功能设计
监控系统的功能主要是基于对发射机工作系统的整体把控,并对系统下达各种控制指令来完成监测工作。其软件具有的功能如下。
1)数据采集与监控。通过发送指令命令下位机上传数据,从而检测和存储中波发射机的实时工作状态参数数据,例如入射功率、反射功率、自动开关机时间等信息。监控系统主界面如图 5所示,监测参数超出上限会以弹窗和红、黄色指示条提醒用户。
2)开关量检测。可对如功放等开关量进行检测,其状态变化时能通过声光或屏幕弹窗等方式进行警示。
3)历史数据读取、打印。具有自动或手动记录发射机参数及故障的功能,存储在SQL Server 2005数据库中,具备打印报表、简单数据分析等功能。
4)远程控制。通过事先约定的通信协议发送命令代码实现远程控制,如开关机、升降功率、设定系统时间等。
5)远程查询。能够查询、记录发射机历史数据,根据用户需要生成指定样式的统计图表。
6)具备用户友好界面。各应用程序或监视画面的切换简单、快捷。同时应具备一定的用户个性化功能,如监控界面风格,弹窗风格和参数等。 3.4 主要功能模块的实现 3.4.1 系统设置模块
系统设置模块主要是对发射机管理维护人员的登陆信息进行安全有效的识别。
该模块根据注册人的职务信息进行分类,在系统登陆时验证其职务及相应的权限,以确定登陆的用户可以进行何种程度的操作。例如普通值守人员只拥有普通控制权限,而部门主管则拥有全部权限,例如修改值守人员权限、注销离职人员信息等。
3.4.2 通信模块如图 7为通信模块程序流程图,适用于主从式多机通信。
通信模块是监控系统的重点设计部分,其设计好坏直接影响了监控系统的效率和工作效果。在Delphi环境下,实现串口通信有以下常用办法:1)利用VCL控件,如SPCOMM控件;2)调用API函数;3)调用其他串口通信程序。
由于SPCOMM控件所提供的对串口的种类丰富的操作完全满足发射机监控系统的通信需求,因而选用SPCOMM实现通信。程序运行时,首先要对串口进行初始化,设置的内容包括每个串口的数据位,停止位,波特率,奇偶校验等内容。程序中,每一路数据单独存入相应串口的缓冲区,然后进行数据解析。 上位机软件使用SPCOMM的主要属性及事件如下:
1)主要属性
CommName:表示 COM1、 COM2等串口的名字;
BaudRate:即波特率,本设计中设计为38 400 bps;
ParityCheck:表示是否需要奇偶校验;
ByteSize:可根据实际情况设定的字节长度;
2)主要方法
Startcomm:该方法用于打开串口; WriteCommData:此方法是带有布尔类型返回值的函数,使用时可将代表下位机监控命令的数组加入到写进程,利用返回的Boolean值判定发送是否成功。
3)主要事件
OnReceiveData:触发该事件的条件:有数据输入缓存。在使用时可在该事件中对下位机返回的数据进行一系列识别和分析。接收数据存储在Buffer中,BufferLength表示数据长度。
OnReceiveError :当接收出错时触发该事件,该事件中可对数据或程序进行一系列调试处理。 3.4.3 数据库模块
数据的实时存储是非常必要的,一套完整的中波发射机监控系统除了能够进行实时动态监控,还应该具备历史数据查询、数据对比、监控信息查询、操作信息查询等功能,数据的存储就是为了实现这些功能。 在本系统中,利用Delphi7的ADO控件访问数据库。ADO是Microsoft公司提供的数据库访问接口,通过OLE DB技术来访问数据库。如图 8为用户权限识别与登录模块,使用数据库存储用户信息,其主要代码如下:
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(′select*from 用户信息表 where 用户姓名=:name and 密码=:key′);
adoquery1.Parameters.ParamByName(′name′).Value:=edit1.Text;
adoquery1.Parameters.ParamByName(′key′).Value:=edit2.Text;
adoquery1.Open;
if not adoquery1.IsEmpty then
begin
//在数据库中查询到该用户,用户验证成功;
end;
else
begin
messagedlg(′登录失败!′,mtwarning,[mbOK],0);
end;
4 监控系统可靠性设计 4.1 提高监控系统可靠性的硬件办法 4.1.1 降低分布电容对RS485网络性能的影响
在RS485组成的总线型网络中,平行的AB信号线是分布电容的“罪魁祸首”。数据流在总线上传播,可称为基波信号,以高低电平表达。在如“0000 0011”的数据包中,“0”信号使电容充分充电,而信号“1”到来时则来不及放电,最终对其识别时,仍然认为它是“0”信号,就有可能导致数据传输出现重大错误,影响指令的准确性。解决这个问题有2种方法: 1)降低数据传输的波特率; 2)提高硬件水准,购买使用小分布电容电缆。 4.1.2 避免多机通信中出现总线冲突
在RS-485主从式通信网络中,上位机应该拥有总线控制权,且同一时刻只能有一台设备处于发送状态,如果多个下位机同时向总线发送数据,会造成数据冲突,在监控系统设计实验过程中,发现当产生数据冲突时,往往会出现多个设备上传的数据夹杂在一起的情况,造成数据的大量堆积,最终都无法被上位机识别。因此,在对各个下位机ARM系统进行硬件设计时要设计相应的防冲突闭锁电路。 4.1.3 防备节点故障
导致 RS485 收发器损坏的原因有很多,常见的有雷击、线路浪涌等,严重影响通信的可靠性。 防备方法有以下几点: 1)选择 MAX487E、SN75276 等芯片,其按抗雷击或故障保护设计; 2)外加保护电路,如使用光耦隔离下位机和RS485总线; 3)可在各从机的通信出口端和系统总线之间串入 10~20 Ω电阻,使得即使出现如上极端情况,仍能保持一定的节点电阻。
4.2 提高监控系统可靠性的软件办法 4.2.1 在协议中增加校验
通过串口接收数据时,除校验地址码之外对数据进行累加和、CRC校验等一系列校验可有效增加通讯的可靠性。 以本系统为例,在工程应用中实际使用的协议增加了‘AA 55’和‘CC 33’的帧头帧尾,随数据以十六进制形式储存,以字节形式发送;使用累加和校验方法增加数据的可靠性。上位机或下位机系统接收数据后判断“AA 55 ...CC 33”段,并提取该段数据,滤除可能存在的干扰数据;在SPCOMM控件的OnReceiveData事件中编写程序计算数据和,并判断自行计算的累加和是否与接受的累加和校验位一致,若一致,则数据接受完整,可用于执行或判断。 4.2.2 在软件设计中适当增加延时
在基于RS485总线的多机通讯过程中,由于硬件的电气特性,其传输过程并不是瞬间完成的:半双工状态工作的RS485进行输入输出状态的转换时都需一定的时间。因此在在使用Delphi编程中,当上位机接口转换电路(RS232-485)在切换状态时,编程实现一定时间的延时,在Delphi环境下,可以使用Sleep函数或以循环的方式进行延时。以本系统为例,设定延时为100 ms,这样大大提高了数据传输的可靠性。 4.2.3 在通信模块中增加超时监测
为防止因为某一节点故障不能回复信息而导致的系统假死情况的发生,上下位机在通讯过程中都应该根据实际情况酌情加入超时检测程序段。本系统选取15~20倍的常规通信时间作为最大超时时间(Tmax),如果超过Tmax仍然检测不到回复,则结束该指令,将该指令认定为执行失败,将超时记录进数据库,并提醒用户对相关硬件节点进行检测。
5 结束语
该中波发射机监控系统投入运行后,发射机监控工作将由“人控”转向“机控”—充分发挥计算机的优势,值班人员从原有的要到机房一线的恶劣环境工作到只需操作几个按钮就能完成任务,其工作量将大大减少;当发射机出现故障能够第一时间报警,将发生大型事故的可能性扼杀在摇篮之中,从根本上提高了其长期运行的稳定性。除此之外,本系统采用的SQL Server 2005数据库所存储的数据,可以作为未来广播系统升级换代所参考的原始数据的一部分,以期对中波发射机的工作情况、运营成本、运行效率、故障率做出有效评判。
[1] | 迟春华. 基于虚拟仪器的电动汽车上位机远程监控系统的设计[D]. 大连:大连理工大学, 2012:21-24. |
[2] | 高静敏. 数字通讯在铁路信号智能电源屏系统中的应用 [D]. 天津: 天津大学, 2007:58-60. |
[3] | 于坚. 电视发射机监控系统的设计与实现[J]. 中国有线电视, 2011 (1): 49-53. |
[4] | 吴铭. 分布式自动检测系统 RS485 通信网络的设计与实现[J]. 工业控制计算机, 2005, 18(2): 34-35. |
[5] | 袁长斌,李晓飞,胡昭培,等. 哈里斯3DX50发射机原理及调机实践[J]. 西部广播电视,2003,11:49-52. |
[6] | 赵伍民. 中波发射台实时监控系统设计与实现[D].成都:电子科技大学,2005:64-76. |
[7] | 刘文怡, 李进武. 基于 RS485 总线多机通信系统可靠性的研究[J]. 弹箭与制导学报, 2006, 25(3): 102-104. |