ModbusMaster
产品规格说明书
[修订记录]
日期 | 版本号 | 创建人 | 说明 |
2008-6-13 | 1.0 | 王东海 | 创建 |
2008-6-20 | 1.1 | 徐珺 | 修改,去掉8寄存器等 |
2008-6-24 | 1.2 | 徐珺 | 修改,去掉7,8,9寄存器等 |
2008-7-18 | 1.3 | 王东海 | 修改串口设备地址格式,增加延时 |
2008-8-6 | 1.4 | 王东海 | 修改TCP的通讯方式,改成串口 |
2008-12-30 | 1.5 | 李霞 | 3寄存器和4寄存器增加String数据类型 尝试连接改为尝试最后一次成功的读包 |
2009-03-27 | 1.6 | 李霞 | 增加去除噪音功能,过滤掉帧前帧后多余的干扰字节 |
2009-12-03 | 1.7 | 索春明 | 增加CRC校验SwapC寄存器,调整校验字节次序 |
2010-01-20 | 1.8 | 索春明 | 增加对于FMC寄存器使用的说明 |
2010-04-09 | 1.9 | 单维旺 | 修改配置文件格式以及打包规则说明 |
2010-11-30 | 2.0 | 杨晨 | 在TCP设备地址加上延时 |
2011-03-08 | 60,4,16,30 | 曹萌萌 | 添加对当第一帧写命令失败是,从配置文件读取指定的尝试连接帧的处理 |
2011-04-13 | 60,4,18,30 | 董秀芹 | 使用域名定义设备时,定义不下去,提示设备地址格式错误。 |
2011-6-15 | 60.5.18.30 | 肖自辉 | 4号寄存器String类型变量读写以斜杠0结束 设备地址格式定义补充说明 |
2011-11-2 | 60.6.18.30 | 江兴川 | 添加CW寄存器,对同一字里的高低字节在发送和接收时进行调换 |
[项目经理填写]
一、 产品功能简介
a) 支持协议说明
通用协议:ModbusRtu,ModbusASCII,ModbusTCP
b) 支持的硬件型号说明:
所有支持上述协议的设备。
1 支持的连接说明及发送方式
支持串口连接和TCP连接。如果是串口连接,支持按Rtu和ASCII发送;如果是TCP连接,支持以socket发送。
二、 驱动接口:
3.0开发包
三、 设备添加方式
a) 在组态王中定义设备时请选择:
通用版下:
[PLC] > [莫迪康] > [ModbusRTU] > [COM]
[PLC] > [莫迪康] > [ModbusRTU(unpack)] > [COM]
[PLC] > [莫迪康] > [ModbusASCII] > [COM]
[PLC] > [莫迪康] > [ModbusTCP] > [TCP]
其他的设备,设备名中必须包含有ModbusRTU,或ModbusASCII,或ModbusTCP字样。区分大小写。否则无法使用该驱动。由于驱动是通过des文件里面的这些关键字进行匹配的。
英文版下:
[PLC] > [Modicon] > [ModbusRTU] > [COM]
[PLC] > [Modicon] > [ModbusRTU(unpack)] > [COM]
[PLC] > [Modicon] > [ModbusASCII] > [COM]
[PLC] > [Modicon] > [ModbusTCP] > [TCP]
注:串口统一为“COM”,以太网统一为“TCP”
b) 设备向导页选项的特殊说明:
如果是串口设备:
是否选串口 | 是 |
是否有地址选择页 | 是 |
通讯方式 | RS232/RS485/RS422/ |
描述 | COM |
如果是以太网设备:
是否选串口 | 是 |
是否有地址选择页 | 是 |
通讯方式 | 串口 |
描述 | TCP |
网络设备需要选择串口的原因是:一个设备接口(如Com1、网卡)开启一个线程。
c) 对于串口设备通讯参数的推荐设置如下
无,视具体设备而定
四、 本设备的地址格式及地址范围
串口连接方式(Rtu):
Address[:Delay: BeforeDelay]
Address 1-255 设备地址
Delay 0-60000 发送每条命令帧后的延迟时间(毫秒)
BeforeDelay 0-60000 发送每条命令帧前的延迟时间(毫秒)
串口连接方式(ASCII):
同RTU
TCP连接方式:
IP[:Port] Address[/TimeOut]
IP 设备IP地址或域名
Port 设备IP地址端口,(不写时默认为字符串长度规则502)
Address 1-255 设备地址
TimeOut 网络超时(不写时默认30秒)
[] []内不写则采用驱动默认值,写则采用用户自定义值。
【说明】
1 采用TCP连接方式,TCP常用设备格式有三种:
<1>172.16.7.107:502 1/50
含义如下:
172.16.7.107 为IP地址。
: 为端口分隔符
502 为端口号
1 为设备地址
/ 为网络超时分隔符
50 为延时时间(单位秒)
<2>172.16.7.107 1
含义:IP地址和设备地址,这时端口和网络超时默认值分别为502和50
<3>172.16.7.107 1/30
含义:IP地址、设备地址和网络延时
2.使用域名定义设备时,只需要把上面的ip地址改成域名即可,后面端口号、设备号、超时和上面的一样。如:www.baidu: 502 1/50.
设备格式<2> 为常用格式,如果出现设备通信不正常的情况<3>格式为最佳选择。
设备地址格式定义补充说明:
在定义设备地址时没有按照地址格式定义时,虽然能够通过,但是在实际运行中会出现错误,可以在信息窗口中看到设备初始化失败信息。
五、 寄存器列说明
寄存器 | 范围 | 数据类型 | 读写 | 说明 |
0 | 1 ~ 65535 | Bit | 读写 | 逻辑线圈,I/O离散 (0XXXX) |
1 | 1 ~ 65535 | Bit | 读 | 输入位寄存器(1XXXX) |
3dd 3m.n | dd: 1 ~ 65535 xx: 0-1 m:1~65535 n:0~127 并且 m+n<=65535 | Byte/Ushort/short/BCD/float/Long/LongBCD/String | 读 | 输入寄存器(3XXXX) |
4dd 4m.n | dd: 1 ~ 65535 xx: 0-1 m:1~65535 n:0~127 并且 m+n<=65535 | Byte Ushort//short/BCD/float/Long/LongBCD/String | 读 读写 | 保持寄存器(4XXXX) |
SwapF | 0 | Byte | 写 | 浮点型字节顺序 |
SwapL | 0 | Byte | 写 | 长整型字节顺序 |
SwapC | 0 | Byte | 写 | CRC校验字节次序 |
CW | 0 | Byte | 写 | 添加CW寄存器,对同一字里的高低字节在发送和接收时进行调换 默认为0,不进行高低字节调换;值为1进行高低字节调换 |
FMC | 1~65535 | String | 写 | 强制多线圈状态 说明: 1. 该寄存器最多强制16个连续的线圈状态; 2. 通道号为线圈的起始地址; 3. 只能写入’0’或’1’组合的字符串 如:FMC1写入 111表示线圈1-3置位 00000表示线圈1-5复位 111111111表示线圈1-9置位 |
下表2是Modbus功能码与本驱动支持的寄存器间的关系:
功能码 | 名称 | 作用 | 相关寄存器 |
01 | 读取线圈状态 | 取得一组逻辑线圈的当前状态(ON/OFF) | 0 |
02 | 读取输入状态 | 取得一组开关输入的当前状态(ON/OFF) | 1 |
03 | 读取保持寄存器 | 在一个或多个保持寄存器中取得当前的二进制值 | 4 |
04 | 读取输入寄存器 | 在一个或多个输入寄存器中取得当前的二进制值 | 3 |
05 | 强置单线圈 | 强置一个逻辑线圈的通断状态 | 0 |
06 | 预置单寄存器 | 把具体二进值装入一个保持寄存器 | 4 |
15 | 强置多线圈 | 强置一串连续逻辑线圈的通断 | FMC |
说明:
1) SWAPF寄存器用于改变浮点数的字节顺序,SWAPL寄存器用语改变long型数据的字节顺序,只有0, 1, 2, 3四种取值。
例如在通讯时从0001地址读取的四个十六进制值为 HV1,HV2, HV3, HV4则:
当SWAP = 0时,转换后浮点数对应的内存值为: HV4 HV3 HV2 HV1。
当SWAP = 1时,转换后浮点数对应的内存值为: HV3 HV4 HV1 HV2。
当SWAP = 2时,转换后浮点数对应的内存值为: HV1 HV2 HV3 HV4。
当SWAP = 3时,转换后浮点数对应的内存值为: HV2 HV1 HV4 HV3。
2) 对于只写寄存器,请将采集频率设置为0。
3) 3,4寄存器,如果客户需要读取Byte数据类型,需要定义二级通道。分别表示字的高字节和低字节。例:31.0表示地址为0的数据的低字节,31.1表示地址为0的数据的高字节。Byte数据类型只可以读,不可以写。如果需要写,请定义Short或Ushort数据类型。
4) 寄存器4读功能码为03,写单字(Short,Ushort,BCD)的功能码为06,写双字(Long,Float,LongBCD)的功能码为0x10。
5) 驱动的变量后的寄存器通道号(寄存器范围),是按照以1为起始地址的。对于以0为起始地址的设备,定义变量应该加1。例如,如果某设备的一个变量在数据4区,为40100,如果地址是从1开始,对应变量定义为40100;如果地址是从0开始,定义为40101。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论