ModbusMaster规格说明书30V20.docx
- 文档编号:20125222
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:15
- 大小:54.51KB
ModbusMaster规格说明书30V20.docx
《ModbusMaster规格说明书30V20.docx》由会员分享,可在线阅读,更多相关《ModbusMaster规格说明书30V20.docx(15页珍藏版)》请在冰豆网上搜索。
ModbusMaster规格说明书30V20
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结束
[项目经理填写]
一、产品功能简介
a)支持协议说明
通用协议:
ModbusRtu,ModbusASCII,ModbusTCP
b)支持的硬件型号说明:
所有支持上述协议的设备。
c)支持的连接说明及发送方式
支持串口连接和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]
Address1-255设备地址
Delay0-60000发送每条命令帧后的延迟时间(毫秒)
BeforeDelay0-60000发送每条命令帧前的延迟时间(毫秒)
串口连接方式(ASCII):
同RTU
TCP连接方式:
IP[:
Port]Address[/TimeOut]
IP设备IP地址或域名
Port设备IP地址端口,(不写时默认为502)
Address1-255设备地址
TimeOut网络超时(不写时默认30秒)
[][]内不写则采用驱动默认值,写则采用用户自定义值。
【说明】
1.采用TCP连接方式,TCP常用设备格式有三种:
<1>172.16.7.107:
5021/50
含义如下:
172.16.7.107为IP地址。
:
为端口分隔符
502为端口号
1为设备地址
/为网络超时分隔符
50为延时时间(单位秒)
<2>172.16.7.1071
含义:
IP地址和设备地址,这时端口和网络超时默认值分别为502和50
<3>172.16.7.1071/30
含义:
IP地址、设备地址和网络延时
2.使用域名定义设备时,只需要把上面的ip地址改成域名即可,后面端口号、设备号、超时和上面的一样。
如:
:
5021/50.
设备格式<2>为常用格式,如果出现设备通信不正常的情况<3>格式为最佳选择。
五、寄存器列说明
寄存器
范围
数据类型
读写
说明
0
1~65535
Bit
读写
逻辑线圈,I/O离散(0XXXX)
1
1~65535
Bit
读
输入位寄存器(1XXXX)
3dd
3dd.xx
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
4dd.xx
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校验字节次序
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时,转换后浮点数对应的内存值为:
HV4HV3HV2HV1。
当SWAP=1时,转换后浮点数对应的内存值为:
HV3HV4HV1HV2。
当SWAP=2时,转换后浮点数对应的内存值为:
HV1HV2HV3HV4。
当SWAP=3时,转换后浮点数对应的内存值为:
HV2HV1HV4HV3。
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。
6)3,4寄存器的String类型说明:
a)二级通道表示x.y
X表示读/写字符串的起始地址;y表示字符串的长度。
长度说明:
字符串长度为N,但在内存中还有一位结束符,由于ModbusHoldingRegister只能以双字节为单位写,所以实际发帧的时候共发N+1个字节或N+2个字节。
即若写入N长度的字符串,实际在PLC中写入N+1或N+2个字节。
Y=0时:
驱动代码中赋一个空串给组态王,但组态王显示为“0”。
Y=1时:
读取的字符串为地址X的当前ASCII字符。
Y=N(N>1)时:
读取长度为N的字符串,从地址X开始。
b)组态王支持可输入的ASCII码。
c)#号只能读不能写入。
d)长度问题:
字符串长度为N,但在内存中还有一位结束符,实际共占N+1位。
即若写入N长度的字符串,实际在内存中写入N+1位
e)当写入字符串的长度小于y时,其他内存全部填充'\0'。
y为奇数时,实际在内存中写入y+1位。
7)SWAPC寄存器用于调整CRC校验字节次序.
例如在通讯时从1#Modbus从设备40001地址读取的数据为01030200063846
当SWAPC=0时,将按LOBYTE=38,HIBYTE=46正常方式进行CRC校验
当SWAPC=1时,将按LOBYTE=46,HIBYTE=38反向方式进行CRC校验
六、打包规格描述:
1)相同的寄存器,数据长度相同,不超过最大打包长度时,可以打一个包。
2)Byte,Ushort,short,bcd长度相同;long,float,longbcd长度相同。
3)配置文件中能够配置打包长度和打包段。
七、接收缓冲区的大小:
(程序员需要提供此参数,此说明只用于测试工程师测试,用户文档中不列此项。
)
1024个字节
八、配置文件格式以及打包规则说明
(1)配置文件格式
配置文件名称为ModbusMaster,是一个文本格式文件,文件后缀名为.ini,其格式以及相关说明如下:
[设备名称1]//设备名称,与Devlst中的设备名称一致
PackLen=125//最大打包长度,0为不打包
SupReg=[0,1,3,4]//支持的寄存器,如果支持就添加到括号中
Timeout=15000//使用GPRS或者Modem时的通讯超时,默认15000毫秒
Num=4//后续的打包规则个数
1=01,010,Fixed//打包规则1,0寄存器的1~80点数据可以打
//在一个包里(协议层),Fixed为可选项,当协议里规
//定,该数据段的数据必须在一个数据帧里请求,则定义该标记;//驱动在请求该数据段中的任何数据时,都会组帧请求1到10的//固定帧。
2=1200,1250//1寄存器的1593~2000点数据可以打在一个包里
3=31,310,320,330//3寄存器的1~10点数据可以打在一个包里(协议层),20~30
//点数据可以打在一个包里(协议层)。
4=41,410,420,430,Fixed//4寄存器的1~10点数据可以打在一个包里(协议层),//由于定义了Fixed标记,驱动在请求该数据段中的任何
//数据时,都会组帧请求1到10的固定帧;同样,对于//20~30点数据可以打在一个包里,由于Fixed标记的存
//在,请求20~30数据段之间的任何数据时,都会组帧请//求20到30的固定帧。
[设备名称2]
…
添加对当第一帧写命令失败是,从配置文件读取指定的尝试连接帧的处理
[TryConnect]
nTryStartAddress=1//注意起始地址是1
nTryEndAddress=1//结束地址应该大于等于起始地址
nTryRegType=3//寄存器的类型(寄存器的顺序取值0,1,2,3分别对应寄存器0,1,3,4)
nTryDataType=2//数据类型,可以按默认处理
//
解释nTryDataType可以选取如下值,数字代表所对应的数据类型
BIT_DATATYPE1
BYTE_DATATYPE2
INT_DATATYPE4
UINT_DATATYPE8
BCD_DATATYPE16
LONG_DATATYPE32
LONGBCD_DATATYPE64
FLOAT_DATATYPE128
STRING_DATATYPE256
(2)打包规则说明
配置文件是一个信息文件格式,其中定义了设备名称以及打包规则。
需要说明的是,这里定义的打包规则是基于协议的。
比如协议里规定,4寄存器的1~10是一个数据段,可以在一个包里请求,那么就在配置文件里定义41,410
如果客户在组态王中定义了变量的情况如下:
42,45,46,47,48,49
则会依据下面的步骤进行判断,
1)从配置文件里,载入配置信息,获得协议层的打包规则;
2)42,45,46,47,48,49这些变量在一个包里可以读出。
3)如果相应的规则后没有fixed,那么组包为42-49。
4)如果相应的规则后有fixed,那么组包为41-410。
5)如果变量不在规则指定的范围内,则每个变量单独一个包。
(3)配置文件使用说明
目前配置文件[ModbusRTU]段后的信息为标准的modbus协议的打包规则。
[ModbusRTU(unpack)]段后的信息为不打包的打包规则。
如果需要修改相应的规则,则按照文件的格式要求进行修改。
(4)其他说明
1)ModbusMaster.ini文件保存在组态王驱动安装文件夹下,默认安装在:
C:
\ProgramFiles\Kingview\driver。
2)PackLen单位为字(WORD)。
由于ModbusRTU应答的数据最多255字节(127个WORD),PackLen最大设置为127。
3)每个寄存器需单独列出打包规则。
若有多个打包段,按顺序写。
最多支持32个打包段。
4)0和1寄存器是以字节(BYTE)为单位,其他寄存器是以字(WORD)为单位。
例如:
1=10003,10004表示寄存器变量10017--10032可以打一个包
2=40008,40012表示寄存器变量40008--40012可以打在一个包
5)如果用户没有使用配置文件,则默认打包规则见“六打包规则描述”;如果用户定义了配置文件,则默认打包规则无效,用户定义的打包段外的寄存器不打包。
例:
用户定义配置文件:
3=310,320,最大打包长度127
定义寄存器35,310,320,321,322,则35一个包,310-320一个包,321一个包,322一个包。
6)ModbusTCP/IP的一帧比通用的Modbus的一帧在帧前多加了6个字节,而且在帧尾除去了CRC或LRC校验。
九、重点测试部分说明
(需要测试工程师重点测试部分的说明)
一十、程序员测试特殊说明
(程序员在调试程序中发现的一些特殊需要说明的问题,例如某个寄存器写范围超过多大的数据就有问题了)
一十一、是否需要双机热备测试?
一十二、驱动运行需要涉及的其他软件的支持
(备注:
驱动运行需要安装的软件或需要调用的库文件或数据库文件的说明)
一十三、其他软硬件环境支持的简要操作说明和注意事项
(备注:
1,和通讯相关的硬件参数的设置,例如仪表需要设备某个参数才能和组态王通讯
2,设备软件上影响通讯的参数的设置方法,例如对于plc设备,需要用软件对设备进行特殊的参数设置后,设备才能和组态王通讯,结合图片说明)
一十四、具体接线图的说明(有特殊连线要求的填写)
一十五、对于性能事项的特别说明
一十六、参考资料的说明
附录:
3.0接口程序编程规范
关于程序的规范,会影响到测试环节的部分
a)寄存器和通道号之间的0不做限制,0通道的0可输入可不输入。
寄存器加通道号的总长度不能超过32。
b)寄存器通道的多级通道之间使用英文输入下的英文点号(”.”),例如A寄存器有三级通Ax.y.z
c)设备地址有多层含义时用英文输入下的冒号(”:
”)分开.比如Modbustcp地址格式为IP地址:
端口号:
单元号,地址举例应为为:
127.0.0.1:
502:
12(IP地址按照国际标准之间用英文”.”)
各个分隔符中间只能是数字。
数字可以是十进制的或者十六进制的。
十六进制A~F字符大小写不敏感。
如果需要表示字符信息,用数字代表,并且在规格说明书中注明,例如:
某电力仪表的驱动需要在地址栏中注明选用的电压测量范围,0~5v或者0~220v,那么可以规定数字0代表0~5v,数字1代表0~220v,其他输入非法。
d)设备列表编写规范
通信方式
描述方法
串口
COM
TCP
TCP
UDP
UDP
PCI
PCI
ISA
ISA
USB
USB
对于不选择串口的板卡,通信卡名应写成卡的型号。
如图中的红圈所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ModbusMaster 规格 说明书 30 V20