摘要:本文介绍了ZF200中波发射机遥控软件的设计思路,在重点分析了发射机的通信协议和稳压器通信协议后编写软件实现了对两部发射机和稳压器的遥控操作。遥控软件界面美观、操作简单实用。
一、前言
ZF200中波发射机是北广科技有限公司生产全固态大功率数字调幅200KW中波发射机。它采用了数字化音频控制控制信号在射频功率放大器末级实行高电平调幅先进技术。同时整机为全固态器件设计,控制系统采用了大量数字逻辑器件和可编程器件。这些先进技术和器件的使用使得整机的稳定性高,操作简单、日常维护工作量小,运行指标也十分优越。笔者因工作原因为埃塞俄比亚国家某电台两部ZF200中波发射机编写了一个遥控软件。
下面将自己软件设计的主要过程做一些介绍。
二、软件设计
1.需求分析
用户需求:(1)对机房的两部发射机进行遥控和实时读取发射机状态。(2)对发射机供电的两台稳压器进行实时监控。
ZF200中波发射机设计时有本地控制模式和遥控模式两种工作模式。本地控制模式时通过面板开关按钮或本机的触摸屏操控发射机。当发射机处于遥控模式时,可以通过发射机的PLC可编程控制器的485串口进行遥控发射机。该机型的遥控模式还用于多个200发射机通过并机网络进行并机工作时的控制和读取表值状态,所以通过串口对ZF200发射机发送遥控指令来实现控制发射机和读取发射机表值状态时是具有硬件基础。发射机的稳压器是上海松丰公司生产500KVA三相交流稳压器,同样具有串口通信功能和完善的通信协议。
因此编写软件通过串口遥控发射机和稳压器实现遥控软件是可行的。一般距离不超过200米的距离,可直接在计算机上加装一个4串口的485通信卡,通过串口与远端设备以485方式进行通信,编写一个遥控软件即可实现遥控功能。
2.功能模块
根据用户的需求,没有对按照运行图进行自动控制、运行数据的存储查询以及操作用户进行分级管理等要求,只是一个远程控制的需求,所以没有日常的数据管理要求。因此不需数据库支撑,软件的架构相对简单些。只需设计两个通信模块与两部发射机进行通信,将数据处理后显示到主界面,在状态显示模块上显示发射机开关量状态,控制指令通过数据处理模块后通过通信模块发送到发射机即可。同样设计两个通信模块与两稳压器进行通信获取数据,数据处理模块将处理成可供用户识别的数据在稳压器状态显示窗体上显示。
三、模块介绍
1.发射机通信模块
发射机PLC通信协议:串口参数9600,n,8,1无握手协议,输入模式二进制模式。主从方式通信,发射机为从机,监控端为主机,主机发指令从机响应。指令格式为:[设备号]+[指令字].[设备号]:长度为一个字节;[指令字]:长度为一个字节。由于原发射机的485串口是组网方式,所以要设定设备号才可正确通信。设备号要根据PLC通信模块的拨码开关来设定。T01发射机的设备号为3,T02发射机的设备号为2.指令字从0到15,软件使用以下指令:
状态量查询:X+1,PLC应答X+1+7BYTE(7个字节的状态量)。
模拟量查询:X+2,PLC应答X+2+22BYTE(22个字节的模拟量)。
关机:X+9,PLC无应答数据。
低功率:X+10,PLC无应答数据。
中功率:X+11,PLC无应答数据。
高功率:X+12,PLC无应答数据。
状态量传送格式:
模拟量传送格式:模拟量数据共11个(共占用22个字节,也就是11个字)。11个模拟量长度均各占用一个字(即2个字节)。发送方式为高字节在前低字节在后,即先发送高字节后发送低字节。11个模拟量的发送顺序如下:
程序设计流程:使用mscomm模块进行通信,定时查询串口有无数据,有数据则通信正常,将数据传数据处理模块处理数据。无数据则通信不正常,清空数据模块内数据。
然后检查有无控制命令数据,有发送控制命令数据并清空命令数据,无控制命令数据分别发送状态查询指令和模拟查询指令。
2.稳压器通信模块
稳压器通信协议:串口参数9600,n,8,1无握手协议,输入模式文本模式。主从方式通信,发射机为从机,监控端为主机,主机发指令从机响应。
协议基本格式:
SOI:协议头(协议起始标志)固定为7EH;
VER:通信协议版本号(如本协议为32H);
CID1:设备地址(1~254,0、255保留);
CID2:设备类型(如26H);
CID2:命令信息:控制标识码。响应信息:返回码RTN;
LENGTH:INFO字节长度,包括LENID和LCHKSUM两部分;
INFO:命令信息:控制数据信息COMMANDINFO.
响应信息:应答数据信息DATAINFO;CHKSUM:校验码(和校验);EOI:协议尾(协议结束码)固定为0DH;稳压器的通信协议比较丰富详细,稳压器的设备地址、通信版本、设备类型已经设定好,在软件的通信程序固定设定好即可。只是校验码的计算和INFO长度的计算要按照协议的方法计算。因具体的协议内容较长本文只对所涉及内容要点做简率介绍,其他内容不做过多介绍。
获取系统模拟量量化数据(定点数):
命令信息:CID1=26H,CID2=42H.响应的信息根据返回码判断数据正常,则在指定数据位截取数据即可。只是获取的模拟数据要除以100才是实际值。
获取开关输入状态: 命令信息:
CID1=26H,CID2=43H.响应的信息根据返回码判断数据正常,则在指定数据位截取数据即可。
程序设计流程:使用mscomm模块进行通信,定时查询串口有无数据,有数据则通信正常,将数据传数据处理模块处理数据。无数据则通信不正常,清空数据模块内数据。分别发送状态查询指令和模拟查询指令。
3.主界面
主界面中T01显示的编号为T01发射机的主要表值,点击states即可进入状态显示界面查看开关量状态,点击power即可进入稳压器显示界面查看稳压器的工作状态和表值。T02机的显示内容,操作与T01机一样。点击system set进入系统设置界面。Connet State显示两个发射机的通信是否正常。程序只需使用一个定时器每隔800毫秒根据读取的数据刷新主界面,实时显示数据。
4.状态界面
状态界面分别显示了T01机功放机柜和整流电源柜的开关量状态,有故障时红灯显示,正常绿灯显示。下方是带灯按钮指示。程序使用了一个定时器每隔800毫秒根据读取的数据刷新界面,实时显示数据。点击按钮,程序将生成相应的控制指令通过串口将指令发送到发射机PLC控制发射机。
5.稳压电源界面
稳压电源界面显示的01号稳压器的设备号、通信状态、输入电压、输入电流、输出电压、输出电流、运行方式状态和告警内容。程序使用了一个定时器每隔800毫秒根据读取的数据刷新界面,实时显示数据。
6.系统设置模块
由于发射机的编号和发射机PLC的通信设备号已经固定,所以系统设置界面只提供设置的数据显示,未真正提供修改功能。
四、软件实现情况
由于用户要求使用英语系统,因此选择英文XP版作为运行环境,分辨率采用1023*768.主界面风格采用蓝色基调,高量度炫目风格。通过VB编程调试和测试所有功能均达到要求。该软件若采用数据库向结合,便可很轻松的增加按照运行图自动开关机功能、自动抄表功能、故障查询功能、数据统计分析等功能。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。