常见通信协议的接口调
试方法
公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]
常见通信协议的接口调试方法
版本号:发布时间:2012-2-4
1.Modbus
Modbus是一种工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus协议是一个Master/Slave架构的协议。有一个节点是Master 节点,其他使用Modbus协议参与通信的节点是 Slave 节点。Master节点类似Client/Server架构中的Client,Slave则类似Server。工业上Modbus协议的常见架构如下图所示。
……
1.1. 应用场合
Modbus 协议主要用于测风塔数据实时读取、风机数据实时读取。将来有可能用于集控系统中,读取各类数据和进行远程控制。
在清三营、长风风电场,莱维赛尔的测风塔使用Modbus RTU 协议与功率预测系统通信。
在向阳风电场,明阳的SCADA 服务器通过Modbus TCP 协议向功率预测系统提供各风机的实时运行数据。
在乌力吉、浩日格吐、马力、前后查台等风电场,赛风的测风塔使用Modbus RTU over TCP 协议与功率预测系统通信。
1.2. Modbus 数据模型
在Slave 和Master 进行通信时,Slave 会将其提供的变量映射到四张不同的表上,Master 从表中相应位置读/写变量,就完成了数据获取或命令下达。这四张不同的表,称作Modbus 数据模型(Modbus Data Model )。
为了理解方便,这里将四张表分别称作1位只读表、1位可读可写表、16位只读表、16位可读可写表。(类似电力通信国标中的遥信、遥控、遥测、遥调。)1位表用来映射单比特数据类型的变量,通常是布尔型变量;16位表用来映射双字节数据类型的变量,如
int16、float16等,如果希望映射int32、float32等四字节变量,可以通过一次使用16位表中的两个位置来实现。只读表用来映射Master只能读取的变量;可读可写表用来映射Master既可读取、又可改写的变量。
1位只读表
位可读可写表
1
16位可读可写表
例如,在某温度监视系统中,一部温度传感器与一台上位机通过Modbus总线进行通信,温度传感器是Server,上位机是Client。对温度传感器提供的变量做如下映射:
1位只读表
1位可读可写表
16位只读表
16位可读可写表
再次说明,1位只读表、1位可读可写表、16位只读表、16位可读可写表等名称是本文档为了方便读者理解自拟的,在Modbus协议规范中有它们的正式名称。另外,不同厂商的设备/软件说明书中,对这四张表的称呼又有不同。
1.3.Modbus RTU、Modbus TCP与Modbus RTU over TCP
Modbus协议有很多种变体,最常见的是Modbus RTU、Modbus TCP和Modbus RTU over TCP。
为了能从众多Slave中唯一地标识出希望与其通信的Slave,需要知道Slave的地址。不同的变体对Slave地址的描述方式不同。对于Modbus RTU、Modbus TCP和Modbus RTU over TCP,其硬件接口与对Slave地址的描述方式如下表:
1.4.调试工具与调试方法
Modbus Poll和Modbus Slave是Modbus Tools系列软件中的两个工具软件,可运行在Windows 2000/XP/Vista/7平台。Modbus Poll可用于测试从Slave中实时读取数据。Modbus Slave是一款Slave模拟软件,可用于模拟出一个假想的Slave设备。
modpoll的用法
./modpoll-mtcp-a1-r2-c8-t3-p5021
-a后面接slaveid
-r后面接起始偏移地址,这个地址要比配置文件中的地址大1
-c后面接读取数据个数
-t后面接数据类型
-p后面接端口
最后加上ip
:10004
liksun
liksungogogo/liksunispower/liksun
/home/opps/config/
2.OPC DA
OPC是OLE for Process Control 的缩写,其最大的特点是必须运行在Windows平台,因为它基于微软的OLE、COM、DCOM技术而实现。
严格地说,OPC是指一系列协议,如OPC DA、OPC HDA、OPC DA-XML、OPC AE、OPC UA、OPC DX等。但由于OPC DA的使用最为广泛,所以一般说OPC就是指OPC DA,即OPC Data Access。
OPC DA最新的协议版本是OPC DA ,目前主流的版本是OPC DA 。
2.1.应用场合
OPC协议目前多用于风机实时数据的读取,且主要为华锐SCADA服务器的风机实时数据接口。将来有可能用于集控系统中,读取各类数据和进行远程控制。
在高山子、阜北、彰北、通榆等风电场,华锐的SCADA服务器通过OPC协议向功率预测系统提供各风机的实时运行数据。
2.2.OPC DA 的特点
为了从同一局域网的众多机器中标识出OPC服务软件所在的机器,需要指定该机器的IP 地址。由于同一台机器上有可能运行多个OPC服务,需要指定该OPC服务的名称。最后,通过字符串形式的变量名称来指定希望读/写的变量。
例如高山子风电场华锐SCADA系统的OPC服务器的信息和部分变量如下:
与Modbus不同,OPC的变量名称一旦指定,其数据类型与是否可写就是确定的了。
另外,OPC的变量除了具有value属性(表示该变量的实时值)之外,还具有quality 和timestamp属性,表示读取该变量时的通信质量和该变量的更新时间。Modbus的变量只有值。