无人值守能源平台主要包括结构与温控系统、电源系统、现场主控系统、数据存储系统、通信及监控系统,其中电源系统为整个平台的运行提供电源保障[1],主要由5台发电机组组成,其运行状况的好坏直接影响到平台的工作性能。平台必须时刻保持对发电机组的监测,可以实时采集发电机组运行状态数据,并能远程控制发电机组启停。本文对通信系统进行优化设计,结合系统现有硬件设施的特点设计了基于RS-485总线的数据通信子系统,上位机PC104可以通过该通道直接与发电机组进行通信,采集发电机组的实时运行数据,控制发电机组启停,提高系统的可靠性。
1无人值守能源平台数据通信子系统介绍
无人值守能源平台的现场主控系统用PLC控制器通过I/O模块实现对下层设备的数据采集,远程控制设备的启停[2]。上位机通过与PLC的通信,将采集到的数据进行分类存储,并将数据传回国内监控中心。但是无法保证PLC不会出现死机情况,一旦PLC出现故障,会导致设备处于失联状态,很可能导致系统崩溃。结合系统现有的硬件特点在通信系统上增加备用数据通道,当PLC出现故障时,可以将数据通道切换到该备用通道,使PC104仍可保持与发电机组的联系。电源系统中的发电机组选用GOOYO品牌的发电机,该发电机配备KP310V1.0控制器,用于控制单台发电机组的启动与停止,监控机组的运行状态,远程操作机组的开机与停机,机组运行数据的测量,报警保护等功能。KP310V1.0控制器提供有TTL电平接口,可以通过该接口与PC104直接连接,作为备用数据通道。数据通信子系统利用PC104提供的软件运行环境,设计程序通过备用数据通道定时采集机组运行数据,必要时也可以远程控制发电机组的启停。
2数据通信子系统设计
2.1通讯协议
MODBUS是工业上常用的标准通讯协议,可以支持多种电气接口,如RS-232/422/484等,数据帧格式简单,可靠性高[3],KP310V1.0控制器的数据帧如图1。MODBUS网络只有一个主机,由主机发起通讯请求,支持多个从机设备,每个从机有自己唯一的地址码[3]。在本系统中,上位机PC104作为主机发起通讯请求,5台发电机组作为从机响应主机请求,波特率为19200,从机地址设置为1-5。功能码为03,读取模块数据;功能码为10,写入模块数据。起始地址为要读取或写入的寄存器起始地址,具体的数据点位可参照厂家提供的点位表。校验码采用CRC-16/MODBUS计算方式。
2.2硬件连接设计
RS-485是一种工业串口通信接口标准,采用差分传输方式,相较于RS-232和RS-422标准,通信速率更高,通信距离更远,一根传输线路上可以接入多个节点的接收设备,其中一个节点为主机,其余节点为从机,从机之间不可相互通信。RS-485扩大了总线信号的共模范围,并增大发送设备的驱动能力和冲突保护机制,传输长度可达1000m,最大传输速率可达10Mb/s[4-5]。因此选用RS-485串口通信作为总线通信模式。PC104采用了双机冗余的设计模式,主备机通过交换机与其他设备进行通信[6],故将RS-485通信转为以太网,从而与PC104进行通信。选用risym的TTL转485模块,可以实现TTL与485信号的相互转换,该模块采用工业级设计,抗干扰能力强,工作温度为-40~85℃,传输距离可达千米。选用有人物联网公司的RS-485转以太网模块可以提供串口转网络功能,能够将RS-485串口转换成TCP/IP网络接口,该模块配备优化的TCP/IP协议栈,稳定可靠,能快速实现RS-485串口与TCP/IP网络接口的数据双向透明传输,工作温度为-40~80℃,适用于舱内的环境要求。系统结构如图2。硬件连接方法如下:发电机组上保留了一个九针串口与KP310V1.0控制器对应的通信端相连,对应串口引脚定义2-RXD(接收数据),3-TXD(发送数据),5-GND(地线)。使用串口线,将这三个引脚与TTL转485模块上对应的RX-D,TXD和GND引脚相连,模块另一端便可以输出RS-485信号。再用杜邦线将TTL转RS-485模块与RS-485转以太网模块的A,B信号接口对应连接。将RS-485转以太网模块的网络接口用网线与交换机连接,则可以实现PC104与发电机组的硬件连接。
2.3软件设计
南极现场上位机采用性能稳定的工业级计算机pc104,其上安装了linux系统和gcc编译工具,在此基础上采用C语言进行程序开发[7]。TCP是面向连接的协议,建立于服务端与客户端之间,每次发出的请求都需要对方确认。客户端主动向服务端发送SYN报文,并进入SYN_SENT状态,等待服务端回复。服务端收到报文后向客户端回复确认信息和SYN报文,此时服务端进入SYN_RECV状态。客户端收到回复后,向服务端发送确认包,之后客户端和服务端都进入ESTABLISHED状态,成功建立连接。以上过程被称为三次握手,数据传输完毕后,客户端与服务端之间通过四次挥手向对方发送确认包释放TCP连接。RS-485转网络模块通过串口转网络调试助手USR-TCP232-M4进行配置,波特率设置为19200,透传方式选择TCPserver模式,配置模块局域网IP为192.168.1.117,端口为23号端口,该IP地址和端口号用于服务端与客户端之间建立TCP连接,该模块作为TCP连接中的服务端,监听设定的23号端口是否有TCP客户端连接。在上位机程序的配置文件Config.ini中可以配置建立TCP连接的目的IP地址和端口号,从机数量,从机地址,功能码,数据起始地址,查询数据长度和数据存储位置。发电机组可以通过控制器设置唯一通讯地址,按照配备的说明书操作,将5台发电机组的地址依次设置为1~5。在配置文件中配置从机数量为5,从机地址分别为1~5,功能码为03(读取数据),数据起始地址为0×1000,查询数据长度设为27,发电机组的读取模块中共有27个INT型数据(包括发电电压、电流、转速值、累计运行时间、故障状态、警告状态等),数据存储位置为数据文件的存储路径,根据实际需要设置。上位机作为TCP连接的客户端,初始化程序时,读取配置文件,根据配置文件初始化数据请求指令,建立套接字,使用connect方法向服务端发起连接请求,如连接不成功,向PC104的主程序发送异常消息,主程序可以监测个子程序状态,并在必要时重启各程序。连接成功后,用send方法将数据请求发送至服务端(RS-485转网络模块),服务端会将收到的数据转为适合485通讯的格式,发送给发电机组。发电机组收到与自己地址匹配的命令后返回对应的数据,如地址不相符,忽略此数据请求。上位机通过recv方法接收数据,收到数据后,检查数据的长度,并进行CRC校验,数据确保无误后,将数据保存为对应文件夹中以“当前时间”命名的文件中,存储在南极现场的存储设备中,以便有需要时进行查询。本次数据请求过程结束后,等待定时时间到后,再发起下一次数据请求。如果超时未接收到数据,关闭套接字并向PC104的监控程序发送消息记录异常,并结束本次查询操作,等待下次查询请求的发起,防止程序卡死。当需要通过该通道对发电机组进行控制时,可以修改配置文件中的功能码参数,再向发电机组发送数据帧,可以实现机组的启停。程序流程如图3。
3通信测试结果分析
按照之前介绍的硬件连接方法,在实际现场中搭建该数据通道,并在PC104上通过串口助手进行测试,根据厂家提供的点位表,发送数据请求,机组地址为01,功能码为03,读取模块数据,寄存器起始地址为(1010),读取1个寄存器的数据,即为(0001),最后的(0F81)为CRC校验码,该数据请求的实际意义为读取发电机组1的转速值。返回的数据中按照通讯格式读取到转速值为1388(十六进制),转换为十进制为5000,与机组默认值一致,由此可知数据接收情况良好,如图4所示。上位机和发电机组之间的通信测试结果如下:将采集周期设置为30min,每采集一次便以当前采集时间命名该数据文件,文件保存结果如图5所示。将配置文件中的功能码改为写入功能,发送停止命令,可以现场观察到发电机组确实停机。根据测试结果可知,PC104通过该数据通道可以直接与发电机组通信,通过程序可以自动实时采集发电机组运行数据,并可以远程控制发电机组的启停。
4结束语
本文先介绍了南极科考支撑平台的主要功能和系统结构,考虑到发电机组在平台中的重要性,结合系统的硬件条件分析后,设计了一条上位机与发电机组的数据通道,并在PC104上开发了相应的程序实现定时采集机组数据,并可以远程控制机组的启停,提高了系统的可靠性。测试结果显示该通道满足数据采集和远程控制发电机组的需求,可以提高无人值守能源平台的可靠性和安全性。
《基于RS-485的无人值守能源平台数据通信子系统设计》来源:《信息技术与信息化》,作者:刘一鸣 张侃健 葛健 方仕雄