常见通信协议的接口调试方法
版本号:1.0.1
发布时间:2012-2-4
1. Modbus
Modbus是一种工业领域通信协议标准,并且现在是工业电子设备之间相当常用的连接方式。
Modbus协议是一个Master/Slave架构的协议。有一个节点是Master节点,其他使用Modbus协议参与通信的节点是Slave节点。Master节点类似Client/Server架构中的Client,Slave则类似Server。工业上Modbus协议的常见架构如下图所示。
1.1. 应用场合
Modbus协议主要用于测风塔数据实时读取、风机数据实时读取。将来有可能用于集控系统中,读取各类数据和进行远程控制。
在清三营、长风风电场,莱维赛尔的测风塔使用ModbusRTU协议与功率预测系统通信。
在向阳风电场,明阳的SCADA服务器通过ModbusTCP协议向功率预测系统提供各风机的实时运行数据。
在乌力吉、浩日格吐、马力、前后查台等风电场,赛风的测风塔使用ModbusRTUoverTCP协议与功率预测系统通信。
1.2. Modbus数据模型
在Slave和Master进行通信时,Slave会将其提供的变量映射到四张不同的表上,Master从表中相应位置读/写变量,就完成了数据获取或命令下达。这四张不同的表,称作Modbus数据模型(ModbusDataModel)。
为了理解方便,这里将四张表分别称作1位只读表、1位可读可写表、16位只读表、16位可读可写表。(类似电力通信国标中的遥信、遥控、遥测、遥调。)1位表用来映射单比特数据类型的变量,通常是布尔型变量;16位表用来映射双字节数据类型的变量,如int16、float16等,如果希望映射int32、float32等四字节变量,可以通过一次使用16位表中的两个位置来实现。只读表用来映射Master只能读取的变量;可读可写表用来映射Master既可读取、又可改写的变量。
1位只读表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
...
1位可读可写表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
...
16位只读表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
...
windowsserver2012四个版本
16位可读可写表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
...
例如,在某温度监视系统中,一部温度传感器与一台上位机通过Modbus总线进行通信,温度传感器是Server,上位机是Client。对温度传感器提供的变量做如下映射:
变量含义
数据类型
映射表
在映射表中的起始位置
高8位在前
是否停止运行
bool
1位只读表
0
-
有无故障
bool
1位只读表
2
-
外部温度
float32
16位只读表
1
内部温度
float32
16位只读表
3
外部温度告警值
float16
16位可读可写表
2
内部温度告警值
float16
16位可读可写表
4
1位只读表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
是否停止运行
有无故障
...
1位可读可写表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
...
16位只读表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
外部温度
内部温度
...
16位可读可写表
变量地址
0
1
2
3
4
5
...
数据区域
(1个方格表示1bit)
外部温度告警值
内部温度告警值
...
再次说明,1位只读表、1位可读可写表、16位只读表、16位可读可写表等名称是本文档为了方便读者理解自拟的,在Modbus协议规范中有它们的正式名称。另外,不同厂商的设备/软件说明书中,对这四张表的称呼又有不同。
1位只读表
1位可读可写表
16位只读表
16位可读可写表
Modbus协议规范
DiscretesInput
Coils
InputRegisters
HoldingRegisters
BachmannPLC
Disc
Coils
Regs
HRegs
SiemensPLC
InputCoil
OutputCoil
InputRegister
OutputRegister
HoldingRegister
1.3. ModbusRTU、ModbusTCP与ModbusRTUoverTCP
Modbus协议有很多种变体,最常见的是ModbusRTU、ModbusTCP和ModbusRTUoverTCP。
为了能从众多Slave中唯一地标识出希望与其通信的Slave,需要知道Slave的地址。不同的变体对Slave地址的描述方式不同。对于ModbusRTU、ModbusTCP和ModbusRTUoverTCP,其硬件接口与对Slave地址的描述方式如下表:
硬件接口
是否需要指定SlaveId
是否需要指定IP地址与TCP端口
其他需要指定的参数
ModbusRTU
串口
通信端口、波特率、数据位、校验方式、停止位
ModbusTCP
网口
ModbusRTUoverTCP
网口
1.4. 调试工具与调试方法
ModbusPoll和ModbusSlave是ModbusTools系列软件中的两个工具软件,可运行在Windows2000/XP/Vista/7平台。ModbusPoll可用于测试从Slave中实时读取数据。ModbusSlave是一款Slave模拟软件,可用于模拟出一个假想的Slave设备。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。