1 引言
目前工业控制现场大量使用了各种智能仪表用于生产过程检测,把智能仪表检测出来的数据传送到监控计算机供显示和分析是非常必要的环节,虽然智能仪表的通信协议种类繁多,但是很多智能仪表都具备RS-232和RS-485 两种通信接口类型。
RS-232 是美国EIA(Electronic Ingustry Association) 与BELL 等公司一起开发的1969 年公布的通信协议,也是工业控制中应用最广泛的一种串行接口,采取不平衡传输方式,即所谓单端通讯,但是它的传输距离短,最大约为30 米,传输速率低,最高速率为20kb/s,共模抑制能力差,抗噪声干扰性弱的缺点,所以RS-232 只适合本地设备之间的通信。
RS-485 是EIA 为了弥补RS-232 通信距离短、传输速度低等不足之处,于1983 年提出的一种串行数据接口标准,RS-485 采用差分传输方式,也称作平衡传输,具有比较高的噪声抑制能力,最大传输距离约为1200 米,最大传输速率为10Mb/s,还增加了多点、双向通信能力,所以RS-485 成为首选的串行接口。
工业监控计算机一般只具备RS-232 串行接口,而智能仪表安装的位置与监控计算机的距离也经常超过30 米,所以要把智能仪表检测出来的数据传送到监控计算机RS-485 是首选,也就是说要把监控计算机的RS-232 串行接口转换成RS-485 串行接口才能和智能仪表搭建一个RS-485 的网络。
UT-201 是深圳宇泰公司生产的一种通用型RS-232 到RS-485 接口转换器,该转换器兼容RS-232、RS-485 标准,能够将单端的RS232信号转换为平衡差分的RS485信号。
本文基于自来水厂泵站泵组温度自动检测系统的设计,着重介绍监控计算机通过UT-201接口转换器和现场智能仪表连成RS-485 网络的实现方法。
2 系统联网方案
自来水厂对泵站泵组保护的一个重要手段就是对泵组温度的实时监测,一般通过埋置式铂热电阻和埋置式铜电阻作为传感器,对泵组的电机和水泵轴承的温度进行检测,检测出来的信号送到现场智能仪表,智能仪表把信号转换成对应的温度值并在LED屏显示出来。随着自动化水平的不断提高,还必需要把温度值在监控计算机上显示出来。利用UT-201 接口转换器在监控计算机和现场智能仪表之间建立一个RS-485 网络,监控计算机就能够通过RS-485网络读取现场智能仪表的温度值。设备层部分网络结构如图1。
图1 设备层拓扑结构示意图
系统采用简单的主从总线结构,以监控计算机作为主机发起通信,多台现场智能仪表作为从机,各从机在进行传输之前必需要等待来自主机的允许信号。主机可以发送和接收来自通信链上从机的信息,而从机则始终处于被动状态,随时准备相应来自主机的通信请求。
本系统采用点对多点/两线半双工的通信方式,UT-201 接口转换器与智能仪表的硬件接线示意图如图2。
图2 RS-485 点对多点/两线半双工连接示意图。
3 UT-201 转换器的介绍
UT-201 转换器采用DB-9/DB-9 通用转接插头,输出接口配有普通接线柱,它的引脚分配如下表1 和表2:
表1 RS-232 端的引脚分配
表2 RS-485 端的引脚分配
表1 中是UT-201 转换器与监控计算机连接的RS-232 接口,因为不使用监控计算机的传送控制信号,所以只需三条接口线,即“发送数据”、“接收数据”和“信号地”。表2 中T/R+、T/R-代表收发A+、B-,VCC 代表备用电源输入,GND 代表公共地线,点到点、点到多点、半双工通信接两根线(T/R+、T/R-),接线原则“发/收+”接对方的“发/收+” 、“发/收-”
接对方的“发/收-” ,RS-485 半双工模式接线时将T/R+(发/收+)接对方的A+ 、T/R-(发/收-)接对方的B-。
4 网络通讯协议的介绍
通过UT-201 在监控计算机和智能仪表之间搭建的RS-485 网络,硬件是采用RS-485 接线,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。通信协议是遵循MODBUS 协议,由于是和现场智能仪表进行通讯,所以选择MODBUS 通讯协议的RTU(远程终端设备)模式,数据帧10 位,1 个起始位,8 个数据位,1 个停止位,无校验。波特率:9600;19200;38400。
MODBUS 协议共有二十几个功能编码,我们用的智能仪表是XMD5000 万能输入多路巡检仪,它只需要用到MODBUS 协议的03H、06H、83H、86H 等几个功能编码就能够实现基本数据的传送。
例如主机希望读取1 号仪表第1 通道(寄存器地址0010)的瞬时值(假设为130),则只需要调用功能编码03H。主机请求和从机响应的帧格式如下:
主机发送:
第1 字节ARD : 从机地址码(=001~254)
第 2 字节03H : 读寄存器值功能码
第3、4 字节 : 要读的寄存器开始地址
第5、6 字节 : 要读的寄存器数量
第7、8 字节 : 从字节1 到6 的CRC16 校验和
从机回送:
浮点数:43020000 表示整数130 (符合IEEE-754 标准的单精度浮点数)
第1 字节ARD : 从机地址码(=001~254)
第2 字节03H : 返回读功能码
第3 字节 : 字节总数
第4~7 字节 : 寄存器数据
第8、9 字节 : 从字节1 到7 的CRC16 校验和
当从机接收错误时,从机回送:
第1 字节ARD : 从机地址码(=001~254)
第2 字节83H : 读寄存器值出错
第3 字节信息码 : 可查信息码表
第4、5 字节 : 从字节1 到3 的CRC16 校验和
UT-201 接口转换器遵循MODBUS 通讯协议,帧格式以及所执行的功能都有明确的定义,不能随意更改。在通信过程中,要确保主机和从机的对应关系正确。此外,用户可以根据实际需要配置合适的传输波特率。
5 应用VB(Visual Basic)开发通信程序
自来水厂泵站监控组态软件很多都是应用美国罗克韦尔(Rockwell)公司开发的RSView32软件,RSView32 软件支持VB 编程,在此基础上开发通信应用程序相当方便、实用。
在开发VB 通信应用程序中,调用MSComm 控件,使得程序更加简明、有效。MSComm控件是Microsoft 公司提供的简化Windows 下串行通信编程的ActiveX 控件,它为应用程序提供了通过串行接口收发数据的简便方法。程序主要由以下几个部分组成:
初始化MSComm 控件,主要是对串口进行设置,包括波特率、校验位、数据位、停止位的设置。
设置并发送读指令,主要是根据MODBUS 通讯协议对要读取的智能仪表和寄存器地址进行设置,以及计算出CRC16 校验和。
接收数据,主要是读取智能仪表回送的响应帧。
处理数据,主要是判断响应帧数据的有效性,正确则存取数据,否则重新再读取。
根据UT-201 转换器及智能仪表的通信原理画出了图3 所示的主机通信程序结构框图。
图3 通讯程序框图。
6 结束语
经过现场调试,实现了1 台监控计算机通过1 个UT-201 接口转换器与10 台智能仪表组成的RS-485 网络连接,每台智能仪表连接两个埋置式铂热电阻和三个埋置式铜电阻。实际应用证明,这种方式组成的系统,结构简单,应用方便,能满足控制需要。
本文的创新点是:通过该系统能够根据具体的协议实现智能仪表与监控组态软件RSView32 之间的数据交换,从而把现场智能仪表检测到的数据实时地在监控计算机上显示。