MODBUS读写器功能及寄存器说明.docx

上传人:b****1 文档编号:530976 上传时间:2023-04-29 格式:DOCX 页数:13 大小:554.19KB
下载 相关 举报
MODBUS读写器功能及寄存器说明.docx_第1页
第1页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第2页
第2页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第3页
第3页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第4页
第4页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第5页
第5页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第6页
第6页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第7页
第7页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第8页
第8页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第9页
第9页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第10页
第10页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第11页
第11页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第12页
第12页 / 共13页
MODBUS读写器功能及寄存器说明.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MODBUS读写器功能及寄存器说明.docx

《MODBUS读写器功能及寄存器说明.docx》由会员分享,可在线阅读,更多相关《MODBUS读写器功能及寄存器说明.docx(13页珍藏版)》请在冰点文库上搜索。

MODBUS读写器功能及寄存器说明.docx

MODBUS读写器功能及寄存器说明

MODBUS读写器功能及寄存器说明

一、MODBUS读写器适用S50、S70射频卡。

二、MODBUS读写器能通过MODBUS-RTU方式与PLC通信,MODBUS读写器为从站、PLC为主站,波特率为19200,N,8,1。

需要实现即时刷卡功能,可用PLC设备每隔0.2秒读卡一次。

三、寄存器说明:

40001:

存放读卡器的站号(机号),可读可写,写可以更改站号,只能用06功能码,可用03寄存器来读或连读。

40002:

在读写型的MODBUS读写器为无效寄存器。

40003:

驱动读卡器响声,只能用06功能码,可用03寄存器来读或连读。

如写为0表示短滴一声,见下表

0

短滴一声

1

短滴两声

2

短滴三声

3

长鸣一声

4

长鸣两声

5

长鸣三声

6

一长一短

7

一长两短

8

一长三短

9

两长一短

10

两长两短

11

两长三短

其他

短滴一声

40004至40007寄存器保留,暂不使用

40008寄存器为读写卡控制寄存器:

只能用06功能码写,可用03寄存器来读或连读。

15~8位

7~6位

5位

4位

3位

2位

1位

0位

自定义

自定义

为1表示IC卡密码错,对应IC卡的密码要通过密码管理卡在MODUBS读卡器上设定

为1表示仅读或写指定卡号的卡,指定卡号放在寄存器,40009,

40010

写1驱动读卡操作,读寄存器这个位只能读出0

写1驱动写卡操作,读寄存器这个位只能读出0

读卡成功

写卡成功

40009至40010共2个寄存器存放IC卡卡号(4个字节)。

40011至40034共24个寄存器对应于IC卡的扇区内48字节内容。

 

四、数据报文格式

在数据报文层面,寄存器起始地址都是从0开始。

数据报文格式:

设备地址+功能码+起始地址+寄存器个数+校验码。

其中起始地址是从0开始的。

如:

从站号2读卡器读取40009开始的两个寄存器数据的报文

发送:

设备地址功能码起始地址寄存器个数校验码(CRC16)

02030008000245FA

成功返回:

设备地址功能码数据长度数据信息校验码(CRC16)

020304285B90BB9D33

其中:

285B90BB为卡的内码数据,寄存器内高字节在前。

所以:

正码为:

5B28BB90,转换成十进制为:

反码为:

90BB285B,转换成十进制为:

IC卡应用于MODBUS读写器

操作步骤:

五、使用密码卡更新MODBUS读写器的校验密码,密码卡制作方法如下:

在PC端运行IC卡发卡软件;

Ø选取1-14扇区的任意一个区号(MODBUS读写器只使用一个扇区),自己设定IC卡的A、B密码,将设定的扇区跟密码信息保存起来,方便调试;

Ø连接USB发卡器,发卡器需装驱动,用供应商提供的驱动完成安装;

Ø将IC卡放在USB发卡器感应区,点击制作密码卡按键,制作成功按照提示,将密码卡拿到MODBUS读写器感应区刷卡更新校验密码;

其他IC卡必须要初始化(密码卡除外),方法如下:

Ø选填好之前制作密码卡时设定的区号跟卡的A/B密码;

Ø连接USB发卡器,发卡器需装驱动,用供应商提供的驱动完成安装;

Ø将IC卡放在USB发卡器感应区,点击初始化IC卡按键,初始化成功的IC卡即可拿到刷过对应密码卡的MODBUS读写器上进行读写操作;

Modbus读写器操作初始化成功的IC卡

六、读、写卡说明

Ø写卡操作:

第一步,用06或10(十六进制)指令更新40011至40034寄存器内容(顺序对应卡内48字节内容),如果只用到40011到40034中的几个寄存器,其他寄存器可以不理会(不需要更新)。

第二步,用功能码06(不能用10)

写值00004到40008寄存器,作用是40011至40034寄存器的数据写到卡中。

写值00020(十六进制为00014)到40008寄存器,作用是40011至40034寄存器的数据写到指定的卡中。

卡号用40009,40010寄存器指定。

第三步,读40008寄存器看是否第0位为1表示写卡成功。

读40008寄存器尽量在写40008寄存器后马上操作。

Ø读卡操作:

第一步:

用功能码06(不能用10)

写值00008到40008寄存器,作用是将卡上的内容更新到40011至40034寄存器中。

写值00024(十六进制为00018)到40008寄存器,是将指定卡上的内容更新到40011至40034寄存器中。

卡号放到40009,40010寄存器。

第二步,读40008寄存器看是否第1位为1表示读卡成功,此时40009、40010、40011至40034中的数据才有效。

读40008寄存器尽量在写40008寄存器后马上操作。

第三步,用03指令读40011至40034寄存器中的内容。

IC卡结构

七、IC卡的技术特性

Ø分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位

Ø每个扇区有独立的一组密码及访问控制

Ø每张卡有唯一序列号,为32位

Ø具有防冲突机制,支持多卡操作

Ø无电源,自带天线,内含加密控制逻辑和通讯逻辑电路

Ø数据保存期为10年,可改写10万次,读无限次

Ø工作温度:

-20℃~50℃

Ø工作频率:

13.56MHZ

Ø通信速率:

106KBPS

八、IC卡的存储结构

M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:

区号

名称

绝对块号

绝对块号

绝对块号

绝对块号

(密码区)

0

基本信息区

0

1

2

3

1

4-63

 

4

5

6

7

2

8

9

10

11

3

12

13

14

15

4

16

17

18

19

5

20

21

22

23

6

24

25

26

27

7

28

29

30

31

8

32

33

34

35

9

36

37

38

39

A

40

41

42

43

B

44

45

46

47

C

48

49

50

51

D

52

53

54

55

E

56

57

58

59

F

60

61

62

63

比如定义IC卡第3扇区0、1、2块的存储结构:

说明:

1.BCC为所有字节累加和;

2.卡片余额为十六进制,字节倒叙,单位:

分钱比如100元钱表示为102700

3.认证KEY_B之后可以对卡片进行读写操作。

IC卡存储块与MODBUS读写器寄存器的对应关系

 

九、读写器寄存器与IC卡某扇区0、1、2块字节的对应关系

 

寄存器

40011

40012

40013

40014

40015

40016

40017

40018

块0字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

寄存器

40019

40020

40021

40022

40023

40024

40025

40026

块1字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

寄存器

40027

40028

40029

40030

40031

40032

40033

40034

块2字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

USB发卡器读写IC卡的DEMO

因为大家很多都是初次接触IC卡方面的操作,不熟悉IC卡信息的读写,所以提供我们usb读写器PC端的读写简单DEMO(如需要对发卡器进行二次开发,可以联系索取发卡器的SDK),方便大家在调试时进行IC卡数据信息的对比。

比如设定制作密码卡时选取的扇区区号是1,A、B密码都是。

进行MODBUS读写器IC卡读写操作后,可以使用该demo读取或者写IC卡数据进行调试。

 

PLC与读写器的连接

西门子S7-200

信捷的PLC(一体机),型号XP3-18R

欧姆龙CP1EN60

关键的数据格式书写

Modbus地址

通常Modbus地址由5位数字组成,包括起始的数据类型代号,以及后面的偏移地址。

ModbusMaster协议库把标准的Modbus地址映射为所谓Modbus功能号,读写从站的数据。

ModbusMaster协议库支持如下地址:

∙00001-09999:

数字量输出(线圈)

∙10001-19999:

数字量输入(触点)

∙30001-39999:

输入数据寄存器(通常为模拟量输入)

∙40001-49999:

数据保持寄存器

ModbusMaster协议库支持的功能

为了支持上述Modbus地址的读写,ModbusMaster协议库需要从站支持下列功能:

表1.需要从站支持的功能

Modbus地址

读/写

Modbus从站须支持的功能

00001-09999

数字量输出

功能1

功能5:

写单输出点

功能15:

写多输出点

10001-19999

数字量输入

功能2

30001-39999

输入寄存器

功能4

40001-49999

保持寄存器

功能3

功能6:

写单寄存器单元

功能16:

写多寄存器单元

如何理解Modbus地址与功能码的区别?

Modbus地址与Modbus的功能码是两个层次的概念。

根据Modbus通信协议,Modbus数据的地址使用0xxxx、1xxxx、3xxxx和4xxxx的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。

在使用S7-200的指令库时,Modbus数据地址与S7-200的I/O和数据存储区地址间有特定的对应关系。

有些设备表明它支持ModbusRTU通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何指定Modbus站的地址,需要读写数据类型、长度等等。

数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓“功能码”,如功能1指定读取单个/多个数字量输出点的值。

支持Modbus协议的设备或软件,使用时用户直接设置或看到的应当是Modbus数据地址。

Modbus地址所访问的数据,是通过各种“功能”读写而来。

功能码是Modbus地址的底层。

如果Modbus通信的一方提供的所谓Modbus协议只有功能码,则需要注意了解此功能号与Modbus地址间的对应关系。

使用modbus地址时应注意下述问题:

   1)40001~4xxxx是美国modicon公司和ge公司plc使用的modbus地址,它是基于1的地址,即同类元件的首地址为1。

西门子plc的modbus地址是基于0的地址。

   2)美国的modbus地址左起第2位用来表示元件的类型,例如i0.0的modbus地址为010001。

因为数据类型已经包含在功能码中了,西门子的i0.0的modbus地址实际上为000000,i2.0的modbus地址为000016(或十六进制数16#0010),而不是010017。

 

其他问题:

1、modbus的保持和输入寄存器是以word(16bit)为单位的。

(Dataispackedastwobytesperregister.)

比如4****(保持寄存器/输出寄存器)和3****(输入寄存器)是以字为单位的。

所以,如果读40001寄存器开始的一个16位的无符号数,那么返回2个Byte,并可以从40002开始读下一个16位的无符号数。

但是,如果读40001寄存器开始的一个32位浮点数,那么,返回4个Byte,而且,下一个32位浮点数必须从40003开始。

客户问题:

1)、将40001定义为一个Byte的数据;

2)、将40001定义为32位浮点数,40002为下一个32位浮点数。

我们可以参考一下国标GBT_19582-12008(基于Modubs协议的工业自动化网络规范)的功能码表:

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

当前位置:首页 > 经管营销 > 经济市场

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

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