基于RS-485串行总线的广播发射机房监控系统

  • 优秀论文奖
  • 文章作者:中国新闻技术工作者联合会 2021/12/30-04:43 阅读: loading...

    张亚蓉

    (国家新闻出版广电总局七二二台)

    闫晓豫

    (陕西广播电视台)

    摘要:本文介绍了一个广播发射机房的监控系统。该监控系统利用RS-485串行总线与受控设备进行通信,通过监控软件实现设备的计算机远程监控。关键词:RS-485串行总线 监控系统 广播发射机 MOSBUS协议 1.引言RS-485串行总线作为工业控制总线的一种形式,使用一对双绞线作为控制总线、线路简单、传输距离远、组网灵活、稳定性高,目前已经被广泛应用在多种监控系统中。对广播发射机房的监控,目前监控系统的工作主要集中在发射机监控和供电系统监控两方面,要求系统有较好的稳定性,较强的可操作性,人机界面友好,易于管理维护。本文就我台短波发射机房监控系统的结构和设计作简单的论述。 2.RS-485串行总线概述RS-485串行总线接口标准是在RS-422标准的基础上发展来的。针对RS-232接口通信距离短、速率低、只能点对点传输等缺点,电子工业协会(EIA)提出了利用平衡传输进行通信的RS-422接口,该接口将传输速率提高到10Mb/s,传输距离延长到4000英尺(≈1219米。速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。RS-485串行总线采用平衡传输方式,最多支持32个设备,可以采用二线与四线方式,二线制可实现真正的多点双向通信。RS-485接口共模输出电压在-7V至+12V之间,接收器最小输入阻抗为12kΩ。其驱动器最大空载输出电压为±6V,接收器输入门限为±200mV,传输电压范围如图1。

    图 1 RS-485串行总线传输电压范围

    3.系统结构
    图2所示为目前投入运行的监控系统结构。使用两条RS-485串行总线,以主从方式工作,一个主设备多个从设备,从设备具有唯一的识别地址。计算机作为主设备,不断向总线上的从设备发送操作请求,从设备接受请求后对其作出响应。由于通信协议有所差别,且模块较多,为了减小延时,增加稳定性,将发射机和电源分开为两条总线分别控制。电源部分的监控采用了智能电力监控仪表,该仪表已提供了可使用标准MODBUS协议的RS-485串行总线接口。三部短波发射机有两部50KW PSM发射机预留了原始采样和控制接口,另外一部10KW PSM短波发射机没有提供任何遥控接口。这就需要制作采样和控制电路,并选取稳定的控制模块进行系统的构建和整合。天线倒换系统和音频切换系统是集成在一起的,也预留了原始采样和控制接口,需要增加支持RS-485接口的采样和控制模块才能实现RS-485串行总线的接入。

    图2监控系统结构图

    4.系统设计及实现

    (1)硬件实现

    由于发射机不支持RS-485接口标准,需要对硬件进行设计完善,以提供接入RS-485串行总线网络的硬件支持。首先对10KW机进行分析,加装用于远程监测的采样电路以及远程控制电路。采样电路对输出功率、反射功率、高末板压、高末阴流、高末帘栅压、高末帘栅流、高前板压、灯丝稳压八个模拟量数据进行采样、滤波和调整,输出±10V以内的电压数据供给模拟量输入模块使用。远程控制电路通过12路数字控制模块控制24V继电器动作,由24V继电器控制发射机内原有的继电器工作,从而实现控制模块送来的操作。为了防止远程/本地控制同时有效,在发射机上加装了选通装置。经过上述改进,该10KW发射机已经对外提供了类似于50KW发射机提供的接口。在此接口基础上,通过选型,采用了较为可靠的泓格I-7000系列分布式I/O模块。该系列模块支持工业级多点RS-485网络,支持热插拔,具有3000V的隔离能力,且易于安装和接线。在本监控系统中,我们采用了I-7042D(12位数字量输出模块)、I-7041D (13位数字量输入模块)、I-70178(8路模拟量输入模块)三种模块组合来搭建数据采集和控制模块。每个I-7000系列模块设置一个ID,作为RS-485网络中的一个独立的从设备。使用上述型号的模块已经可以满足实际应用的需求。在10KW发射机的数据采集和控制模块中,我们使用了一块I-7017进行八个模拟量的采样,使用一块I-7041D进行开关信号的采样,使用两块I-7042D输出的开关量对发射机进行整体控制。这4个模块一起组成了10KW的数据采样和控制模块。在50KW发射机上,也采用了这一模式。50KW发射机数据采集由两块I-7017完成(16路模拟量信号),在输入模块之前加装了滤波电路和调整电路;使用一块I-7041D进行开关量的采集;使用三块I-7042D对发射机进行控制,其中两块用作频率合成器的频率预置(频率合成器采用PTS040接口标准),另外一块用作发射机开关量的控制。这6个模块组成了50KW的数据采样和控制模块。在天线倒换系统上,我们使用了一块I-7041D以及一块I-7042D组成天线倒换系统的数据采样和控制模块,完成对天线倒换和音频切换的监控。由于采用了I-7000系列模块,使得基于RS-485串行总线结构的监控网络实现起来变得容易。实践证明该方案安全、可靠。对于电源的监控部分,由于只能电控仪表已经提供标准的RS-485接口,并支持MODBUS协议,亦使得电控部分在硬件上无需进行更改就可以直接整合在RS-485串行总线控制网络中。由于监控系统需要在有大功率电磁辐射的电磁环境中工作,系统的抗干扰能力必须重点考虑。采取的抗干扰措施有:每个模块和仪表均良好接地,模块装入全屏蔽、有效接地的机壳中,通信电缆采用了优质屏蔽通信电缆,并进行了合理的布线设计,计算机采用了性能优良的工业控制计算机等。这一系列抗干扰措施有效的提高了系统的抗干扰能力,增加了系统的稳定性。

    (2)软件设计及实现

    监控软件首先要解决的是底层的通信问题,也即要能通过串口转换(RS-232转RS-485)实现在串行总线上的稳定通信。为此,我们直接用VC++编写底层代码访问RS-232串口,利用事件对象(CEvent)阻塞其它线程对串口的访问请求,直到数据读写完成。对于智能电控仪表,由于仅支持RTU模式的标准MODBUS协议,每个MODBUS包都由地址域、功能码域、数据域以及校验域四个部分组成。地址域即设备地址,包括I-7000模块在内的所有RS-485通信模块都预先设置好了唯一的设备地址;功能码为要对设备采取的操作代码,MUDBUS协议中有具体规定;数据域为读、写寄存器的数据,长度视功能码及实际读取需求而定;校验域为16位CRC校验。每个字节都包含一个起始位、8个数据位、无校验位、一个停止位。经过编写和调试,我们将智能电控仪表抽象为类(Class),将所有操作封装在类中,制作成动态链接库供监控程序使用。对于I-7000模块,直接利用厂方提供的动态链接库来进行通信,其通信采用的是ASCII码的方式,与电控仪表有所不同。

    图 3 监控程序结构示意图


    监控程序结构如图3。程序首先运行主线程,由主线程启动用户界面,并完成与用户界面的通信。同时启动两个工作者线程,两个工作者线程各自负责一条RS-485串行总线的设备。工作者线程通过调用库函数以顺序循环方式对相应总线上的设备发送请求,响应后处理接收到的数据并送回主线程,再由主线程将数据送到用户界面上显示。程序采用9600bps、8数据位、1停止位、无校验位的串口设置与设备通信。智能电控仪表的监控相对简单,除了读取数据以外只有合闸∕分闸的操作。工作者线程在与其通信之前,先判断是否有来自用户界面的操作请求,若有,则掠过其它设备,仅给待操作设备发送操作请求,读取该设备的操作结果,并直接返回(图4-b);若没有,则顺序读取状态数据(图4-a)。具体实现如下:线程在循环中得到合闸∕分闸指令后,在下一次进入循环时掠过之前没有操作指令的设备(图4-b)。线程先读取状态数据和电流数据并判断可以执行合闸∕分闸操作后开启相应继电器,经过延时后关闭继电器,并读取状态数据以判断操作是否完成,之后返回,转入下一轮循环。操作失败及其它异常的处理放在循环读取数据的函数中。这样的设计主要是为了使主线程的操作尽快得到响应,以提高实时性能。实际测试中,在充分考虑稳定性的前提下,读取数据在4秒内可以完成一次循环,有操作时3秒内可以完成操作(包括1.6秒的继电器合闸延时时间)。

    图 4 电控仪表操作流程示意图

    对于发射机,操作过程相对复杂,且与智能电控仪表的监控有所不同。图5-a为工作者线程整体操作流程的示意图。操作的循环为定时器控制的无限循环,每一次循环结束,等待时间触发消息触发下一次循环。主线程将操作指令传递给工作者线程中的相关控制变量,在一次循环中调用数据读取函数和所有操作函数,操作判断、操作实现以及异常处理均包含在操作函数中。图5-b


    是50KW发射机(1号机及2号机,10KW机类似)的操作函数流程。工作者线程调用50KW发射机操作函数后进入该流程。该流程调用所有50KW发射机的实际操作函数,以得到对相关操作的响应(是否执行操作、操作结果以及异常处理)。以灯丝函数为例,主线程将灯丝指令变量置位,在工作者线程中调用50KW发射机操作函数,由操作函数再调用50KW机的灯丝函数(图 5-c),灯丝函数首先判断之前得到的灯丝数据是否已经在指令要求的状态,若不在,则判断指令的操作是否正在执行中,即灯丝是否正在预热中,若还未执行,则向对应的RS-485从设备发出合灯丝∕断灯丝指令(合灯丝时还需记录合灯丝的时间作为判断依据之一提供给下次调用),经判断操作正常或进行异常处理后返回操作信息。由于发射机的这些操作一般都需要单步执行,所以每次循环的通信负担并不大,这可以保证线程的循环时延在可以接受的范围之内。实际测试时延在2秒以内。
    在程序的数据记录模块中,目前采取的是文件记录的方式,对通信设置、播音时间表、监测数据等均设立了单独的记录文件进行记录。今后拟采用数据库方式对其进行替换。本程序采用了一个工作者线程对应一个串口操作的方式,与采用一个物理设备对应一个线程的方式相比,少了线程间复杂的相互通信和相互协调,容易实现线程控制,编程相对简单,而对设备顺序循环操作的方式已经可以满足广播发射机房地监控要求。 5.整体构想本监控系统目前已经基本调试完毕并已投入使用中。下一步的构想是加入其它部分的监控,包括信号源监测和切换,接收射频信号及解调信号的监测等,以完善本监控系统的功能。在互联网高度发展的今天,利用网络实现异地远程监控已是监控系统发展的一个方向。远景构想是搭建Web Service服务器,并在广播机房监控系统中添加网络模块。通过该服务器可以方便的实现对各个广播发射机房的异地监控。 6.结语 监控系统是广播发射技术里必不可少的一个组成部分,科学、合理的监控系统在提高设备工作稳定性、安全性,减少人员工作量上具有重要作用。监控系统的设计在不同的应用场合有不同的结构和组成,但是都应该遵循安全可靠、简单易用的设计原则。只有符合这一原则,才能设计出科学合理的监控系统。 参考文献:1.《RS-232、RS-422与RS-485标准及应用》,龚建伟技术主页;2.《MODBUS? Protocol》,Modicon ,1979年;3.《I-7000使用手册》,泓格科技;4.《PMAC?720标准电量监测仪MODBUS串行通信协议V3.0》,珠海派诺;5.《PMAC?9900E标准电量监测仪MODBUS串行通信协议》,珠海派诺;6.《SW50-C FCM 短波发射机技术资料》,航天二院二十三所;7.《SW10 PSM 短波发射机技术资料》,陕西七六二厂。

    联系电话:0917-3975011

    手机:13892788298E-MAIL: 421472579@qq.com 编辑:中国新闻技术工作者联合会

    评论 点击评论