您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>通信技术>

Modbus通讯地址设定方法说明

2018年02月08日 08:38 电子发烧友整理 作者: 用户评论(0

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。

Modbus通讯地址设定

利用Modbus协议可以实现设备间的数据交换。Modbus通讯理论上支持4种ModiconPLC地址,即0*、1*、3*和4*四种,分别表示开出(中间线圈)、开入、模入、模出(中间寄存器)等数据地址。与西门子或其它设备中的开入、开出、模入、模出地址完全不对应。可以理解为0*和1*对应位地址的读写操作,3*和4*字地址的读写操作。

此处0*、1*、3*和4*表示长度有的为5位数字、有的为6位,其实和Modbus通讯无关,只是和软件的表示方式有关。

按照Modbus通讯时最常用的是RTU读请求格式:

从站地址(1个字节)、功能代码(1个字节)、从站数据起始地址(2个字节)、读数据长度(2个字节)、CRC校验(2个字节)

可见,只需设置起始从站数据区起始地址和通讯长度即可。

特别注意,Modbus地址遵从IEC1的地址标准(最小地址为*1),西门子遵从IEC0的标准(最小地址为0,如M0.0)。因此,不同标准的地址做通讯时需要做地址变换,即加1的操作。

ACRXXXE的应用细节及参量地址表

该系列测量值用Modbus-RTU 通讯规约的03号命令读出。

通讯值与实际值之间的对应关系如下表:(约定Val_t为通讯读出值,Val_s为实际值)

Modbus通讯地址设定方法说明

几点说明:

1 数据类型:“BYTE”指1个字节;“word” 指16位无符号整数;“Integer”指16位有符号整数;“Dword” 指32位无符号整数,“Fword”指32位浮点数。

2 读写属性:“R”只读,读参量用03H号命令;“R/W”可读可写,写系统参量用10H号命令。禁止向未列出的或不具可写属性的地址写入。

3 波特率的设定范围4800 bps,9600 bps,19200 bps,38400 bps.在此范围外的设定是不允许的。如果写入超范围的设定值,仪表会启用默认波特率:38400 bps。

4 ACR320EFK所测电能值均为二次侧电能。高字节在前,低字节在后,单位WH 或VARH, 统计一次侧电能数据的时候,请乘以相应的变比。例如10KV/100V,75A/5A 的仪表,请在计量抄表的数据乘以PT=100和CT=15 的乘积1500。

5 ACR320EFK 提供4 路开关量输入功能和2路继电器开关量输出功能。4 路开关输入是采用湿接点电阻开关信号输入方式,仪表内部配备+5V 的工作电源,无须外部供电。当外部接通的时候,经过仪表开关输入模块DI 采集其为接通信息、显示为1;当外部断开的时候,经过仪表开关输入模块DI 采集其为断开信息、显示为0。开关量输入模块不仅能够采集和显示本地的开关信息,同时可以通过仪表的数字接口RS485 实现远程传输功能,即“遥信”功能;2路继电器输出功能可用于各种场所下的报警指示、保护控制等输出功能。在开关输出有效的时候,继电器输出导通,显示为1;开关输出关闭的时候,显示为0,继电器输出关断。

6 ACRXXXE(K)电度一次侧时的值采用浮点变量数据类型。它用符号位表示数的符号,用阶码和尾数表示数的大小。仪表采用的数据格式为IEEE754数据格式具有24位精度,尾数的高位始终为“1”,因而不保存,位的分布如下

● 1位符号位;

● 8位指数位;

● 23位尾数。

符号位是最高位,尾数为最低的23位,按字节描述如下:

范例:UA的通讯读出值为08C6H(2246),DPT为5,则UA的实际值

Va =(2246/10000)*(10^5) = 22.46KV。

IA的通讯读出值为0FA0H(4000),DCT为3,则IA的实际值

Ia =(4000/10000)*(10^3) = 400.0A。

Modbus通讯地址设定方法说明

其中, S:符号位,1表示负,0表示正;

E:阶码(在两个字节中)偏移为127;

M:23位尾数,最高位为“1”。

具体举例如下:

读出0 10001110 100 1011 1010 1100 0000 0000B

0 代表符号位,“1”为负,“0”为正;

10001110 为计算指数,设为a, a为10进制,a为142;

100 1011 1010 1100 0000 0000 为计算尾数,设为b,b为10进制,b为4959232。

计算公式:

一次侧电量=

上例计算结果为:

==52140

通讯应用格式祥解

Modbus通讯地址设定方法说明

Addr:从机地址

Fun:功能码

Data start reg hi:数据起始地址 寄存器高字节

Data start reg lo:数据起始地址 寄存器低字节

Data #of reg hi:数据读取个数 寄存器高字节

Data #of reg lo:数据读取个数 寄存器低字节

CRC16 Hi: 循环冗余校验 高字节

CRC16 Lo: 循环冗余校验 低字节

非常好我支持^.^

(30) 29.1%

不好我反对

(73) 70.9%

( 发表人:李建兵 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!