组态王ModbusMaster产品说明书10.docx

上传人:b****1 文档编号:10303197 上传时间:2023-05-24 格式:DOCX 页数:21 大小:56.90KB
下载 相关 举报
组态王ModbusMaster产品说明书10.docx_第1页
第1页 / 共21页
组态王ModbusMaster产品说明书10.docx_第2页
第2页 / 共21页
组态王ModbusMaster产品说明书10.docx_第3页
第3页 / 共21页
组态王ModbusMaster产品说明书10.docx_第4页
第4页 / 共21页
组态王ModbusMaster产品说明书10.docx_第5页
第5页 / 共21页
组态王ModbusMaster产品说明书10.docx_第6页
第6页 / 共21页
组态王ModbusMaster产品说明书10.docx_第7页
第7页 / 共21页
组态王ModbusMaster产品说明书10.docx_第8页
第8页 / 共21页
组态王ModbusMaster产品说明书10.docx_第9页
第9页 / 共21页
组态王ModbusMaster产品说明书10.docx_第10页
第10页 / 共21页
组态王ModbusMaster产品说明书10.docx_第11页
第11页 / 共21页
组态王ModbusMaster产品说明书10.docx_第12页
第12页 / 共21页
组态王ModbusMaster产品说明书10.docx_第13页
第13页 / 共21页
组态王ModbusMaster产品说明书10.docx_第14页
第14页 / 共21页
组态王ModbusMaster产品说明书10.docx_第15页
第15页 / 共21页
组态王ModbusMaster产品说明书10.docx_第16页
第16页 / 共21页
组态王ModbusMaster产品说明书10.docx_第17页
第17页 / 共21页
组态王ModbusMaster产品说明书10.docx_第18页
第18页 / 共21页
组态王ModbusMaster产品说明书10.docx_第19页
第19页 / 共21页
组态王ModbusMaster产品说明书10.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

组态王ModbusMaster产品说明书10.docx

《组态王ModbusMaster产品说明书10.docx》由会员分享,可在线阅读,更多相关《组态王ModbusMaster产品说明书10.docx(21页珍藏版)》请在冰点文库上搜索。

组态王ModbusMaster产品说明书10.docx

组态王ModbusMaster产品说明书10

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结束

设备地址格式定义补充说明

2012-9-17

60.5.19.30

赵迪

修改设备地址的通讯范围,并对设备地址的范围进行限制

2012-12-17

60.6.19.30

温志杰

修改设备地址的通讯范围,并对设备地址的范围进行限制,修改校验错误

2013-3-21

60.7.20.30

邢志远

添加4寄存器位类型读写功能,在添加功能时发现TCP连接存在严重故障,已经修正。

2013-5-21

60.7.23.30

邢志远

修正TCP故障,合并代码增加域名解析功能,实现248到255正常通信。

2013-6-20

60.6.24.30

邢志远

修正TCP在组态王下尝试连接成功后初始化失败的故障.

2013-11-14

60.11.25.30

赵迪

增加一个寄存器,使得这个驱动支持10和06功能码,同时能够实现4aa.bbbit寄存器可读写。

2014-06-24

60.12.29.30

邢志远

彻底修改驱动代码结构,修改打包模式,增加全链路的配置文件作用,合并以前代码的所有功能。

2014-12-4

60.13.29.30

赫思奇

增加地址页中关于Swap字节序的设置。

增加对DTU的支持。

2015-01-4

60.14.29.30

邢志远

为每个float类型变量加上swap配置(2级通道)

2015-2-4

60.14.30.30

邢志远

增加发帧次数(对于正常设备没有影响)增加通信稳定性,修改句柄和线程泄露。

2015-3-30

60.14.31.30

邢志远

修改尝试连接时的尝试包,将尝试重连包按站号区分。

2015-4-20

60.14.32.30

邢志远

修改尝试连接句柄泄露故障,关闭无效网络连接。

2015-8-12

60.14.33.30

邢志远

修改ModbusRTU(unpack)配置不起作用的问题。

2015-8-17

60.14.34.30

汪智全

修改寄存器通道逆序后有些变量不显示数值的问题

2015-12-17

60.14.38.30

韩智超

修改以3结尾的变量无法正确读取数据的情况

2016-03-24

60.15.38.30

赵迪

增加16功能码批量写功能

[项目经理填写]

一、产品功能简介

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][|SwapF|SwapL|SwapC]

Address0-255设备地址

Delay0-60000发送每条命令帧后的延迟时间(毫秒)

BeforeDelay0-60000发送每条命令帧前的延迟时间(毫秒)

SwapF0-3浮点数的字节顺序,默认为配置文件中所写

SwapL0-3长征性的字节顺序,默认为配置文件中所写

SwapC0-1CRC校验的字节顺序,默认为配置文件中所写

如:

1:

500:

500|1|0|0

注:

如果在设备定义中对Swap系列功能设定,需要同时设定3个Swap顺序,且SwapF、SwapL、SwapC次序不得有误。

 

串口连接方式(ASCII):

同RTU

TCP连接方式:

IP[:

Port]Address[/TimeOut][|SwapF|SwapL|SwapC]

IP0-255设备IP地址或域名

Port0-65535设备IP地址端口,(不写时默认为502)

Address0-255设备地址

TimeOut0-65535网络超时(不写时默认3秒)

SwapF0-3浮点数的字节顺序,默认为配置文件中所写

SwapL0-3长征性的字节顺序,默认为配置文件中所写

SwapC0-1CRC校验的字节顺序,默认为配置文件中所写

 

[][]内不写则采用驱动默认值,写则采用用户自定义值。

【说明】

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.

3.最后的关于Swap字节序的添加,与RTU中相同

如:

192.168.21.20:

5021/50|1|0|0

注:

如果在设备定义中对Swap系列功能设定,需要同时设定3个Swap顺序,且SwapF、SwapL、SwapC次序不得有误。

设备格式<2>为常用格式,如果出现设备通信不正常的情况<3>格式为最佳选择。

设备地址格式定义补充说明:

在定义设备地址时没有按照地址格式定义时,虽然能够通过,但是在实际运行中会出现错误,可以在信息窗口中看到设备初始化失败信息。

五、寄存器列说明

寄存器

范围

数据类型

读写

说明

0

1~65535

Bit

读写

逻辑线圈,I/O离散(0XXXX)

1

1~65535

Bit

输入位寄存器(1XXXX)

3dd.xx

 

3nn.mm

 

3dd

3dd

3m.n

 

3aa.bb

dd:

1~65535

xx:

0-1

nn:

1~65535

mm:

0-3

dd:

1~65535

dd:

1~65534

m:

1~65535

n:

0~127

并且

m+(n+1)/2-1<=65535

aa:

1~65535

bb:

0~15

Byte

 

float

 

Ushort/short/BCD

float/Long/LongBCD

String

 

Bit

输入寄存器(3XXXX)

4dd.xx

 

4nn.mm

 

4dd

4dd

4m.n

 

4aa.bb

dd:

1~65535

xx:

0-1

nn:

1~65535

mm:

0-3

dd:

1~65535

dd:

1~65534

m:

1~65535

n:

0~127

并且

m+(n+1)/2-1<=65535

aa:

1~65535

bb:

0~15

Byte

 

float

 

Ushort/short/BCD

float/Long/LongBCD

String

 

Bit

读写

保持寄存器(4XXXX)

写操作时Bit/Byte/Ushort/short/BCD类型用06功能码

float/Long/LongBCD/String类型用10功能码

6dd.xx

 

6nn.mm

 

6dd

6dd

6m.n

 

6aa.bb

dd:

1~65535

xx:

0-1

nn:

1~65535

mm:

0-3

dd:

1~65535

dd:

1~65534

m:

1~65535

n:

0~127

并且

m+(n+1)/2-1<=65535

aa:

1~65535

bb:

0~15

Byte

 

float

 

Ushort/short/BCD

float/Long/LongBCD

String

 

Bit

读写

同4寄存器的所有功能,但是写操作所有类型只下发0x10功能码

SwapF

0

Byte

浮点型字节顺序

SwapS

0

Byte

字符串型字节顺序

SwapL

0

Byte

长整型字节顺序

SwapC

0

Byte

CRC校验字节次序

SwapBCD

0

Byte

长BCD型字节顺序

Ja

0

Bit

位类型写操作成功标志

Sa

0

String

字符串类型写操作成功标志

FMC

1~65535

String

强制多线圈状态

说明:

1.该寄存器最多强制16个连续的线圈状态;

2.通道号为线圈的起始地址;

3.只能写入’0’或’1’组合的字符串

如:

FMC1写入

111表示线圈1-3置位

00000表示线圈1-5复位

111111111表示线圈1-9置位

4

0

Short

此为批量写开关,若写1则开启批量写功能,此时再写float、

Ushort/short/BCD/Long/LongBCD数据类型的数据时,不会立即执行只有执行HEXS0的时候会对所写的数据下发

HEXS

0~65535

float、

Ushort/short/BCD/Long/LongBCD

1-65535分别用来写保存对应数据类型的数据

0通道是对于HEXS写入的数据直接下发,数据类型shortHEXS0写1下发数据帧

(通讯过程如下:

KV下发-接收设备响应-

KV确认响应-接收设备确认响应)

下表2是Modbus功能码与本驱动支持的寄存器间的关系:

功能码(16进制)

名称

作用

相关寄存器

01

读取线圈状态

取得一组逻辑线圈的当前状态(ON/OFF)

0

02

读取输入状态

取得一组开关输入的当前状态(ON/OFF)

1

03

读取保持寄存器

在一个或多个保持寄存器中取得当前的二进制值

4

04

读取输入寄存器

在一个或多个输入寄存器中取得当前的二进制值

3

05

强置单线圈

强置一个逻辑线圈的通断状态

0

06

预置单寄存器

把具体二进值装入一个保持寄存器

4

0F

强置多线圈

强置一串连续逻辑线圈的通断

FMC

10

预置多寄存器

把连续的二进制值装入对应的连续的保持寄存器

4/6

说明:

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校验

8)3、4、6寄存器float类型的二级通道

3,4,6寄存器float类型现在支持二级通道,二级通道范围为0到3,分别代表说明

(1)中的字节序。

例如要建立4寄存器4321顺序的float类型变量则建立41.0即可。

六、打包规格描述:

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]

Swap栏的配置是默认的字节序配置下方逗号开头的是对字节序的解释

[Swap]

HV4321=0,HV3412=1,HV1234=2,HV2143=3,crc=1or0

long=3

float=3

longbcd=0

crc=0

string=0

比如long=3即为原字节序1234调整为2143以此类推;

而crc和string类似,只有0和1的区分,意义分别是调整crc校验的高低位和调整字符串类型变量的字符顺序

比如一个字符串变量原顺序为“abcdefg”,赋值为1后则为“badcgf”以字为单位颠倒顺序。

 

添加对当第一帧写命令失败是,从配置文件读取指定的尝试连接帧的处理

[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或

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2