MODBUS RTU标准协议读写器寄存器操作说明

MODBUS RTU标准协议读写器寄存器操作说明_第1张图片

淘宝:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-17663462238.17.73bce728T44duc&id=41901622939

 

  • IC-10MRW型MODBUS读写器适用S50、S70射频卡。
  • IC-10MRW型MODBUS读写器能通过MODBUS-RTU方式与PLC通信,MODBUS读器为从站(出厂一般默认站号为2)、PLC为主站,通讯参数:波特率,N,8,1(出厂默认19200,波特率有4800,9600,19200,38400四档可设,设定方法请看第四点)。需要实现即时刷卡功能,可用PLC设备每隔0.2秒读卡一次。
  • 寄存器说明

寄 存 器 表

寄存器地址

(十进制)

说明

备注

0000

读取或设定机号

断电保存

0001

设置读卡器参数:

刷卡是否响声、通讯延时是否设定

断电保存

0002

驱动读卡器蜂鸣器响声

断电不保存

0003

卡号长度(4、7、10)

断电不保存

0004

卡号的第7、6字节

 

0005

卡号的第1字节

断电不保存

0006

暂无使用

 

0007

读写卡控制寄存器(写入十进制128时,存入卡认证密码)

除第12位,其他位断电不保存

0008~0009

四个字节时表示卡号的第2、1、4、3字节,7个字节时表示卡号的第3、2、5、4字节

断电不保存

0010~0033

第1操作空间的48个字节

对应IC卡0~14扇区中的任意一个

断电不保存

0034~0057

第2操作空间的48个字节

对应IC卡0~14扇区中的任意一个

断电不保存

0058

设定第1操作空间的区号及A、B密码

1、读寄存器:开机时寄存器的默认值为密码卡设定后的值、比如读出的值是0105(十六进制),其中01表示B密码,05表示第5区,即表示该操作空间使用B密码来校验,读写IC卡的第5扇区,如读出值为 00 0F,即表示该空间未使用。

2、写寄存器

比如要设定读写IC卡的第5扇区和用B密码校验,需往该寄存器写值261(十进制),0105(十六进制),即5+256=261,其中5代表5扇区,256代表B密码(0代表A密码)。

写 00 0F或01 0F 时表示该操作空间停止使用。

写寄存器只能临时改变其值,关机重启或写FF FF后,将重新恢复为开机时的默认值,

 

断电恢复开机时的默认值

0059

设定第2操作空间的区号及AB密码标志,赋值方法参照第1操作空间

断电不保存

0060

波特率值设定

断电保存

0061

波特率设定操作确认码(必须等于十六进制数55AA)

 

0062

校验位设定

断电保存

0063

校验位设定操作确认码(必须等于十六进制数55AA)

 

0064~0066

第1操作空间的卡密码(只写,读出来时为0)

断电不保存

0067~0069

第2操作空间的卡密码(只写,读出来时为0)

断电不保存

 

 

0070

驱动继电器1

断电不保存

0071

驱动继电器2

断电不保存

 

 

0078

设定读卡后发出继电器开关信号功能

 

15-11

10-8

7-2

1

0

写寄存器

无定义

为0:继电器闭合0.5秒

为1:继电器闭合1秒

为2:继电器闭合5秒

为7:卡在继电器闭合卡离开继电器断开

无定义

为1驱动继电器2为0不驱动

为1驱动继电器1为0不驱动

比如设定继电器1和继电器2刷卡时闭合0.5秒,需往0078寄存器写值00 03

比如设定继电器1和继电器2卡在感应区时闭合卡离开时断开,需往0078寄存器写值07 03

读寄存器

无定义

 

 

断电保存

0079

设定读卡后发出开关信号功能的确认码(必须等于十六进制数55AA)

 

0080

控制读卡器指示灯,用06H或10H写一个寄存器,用03H可读多个寄存器。
其中寄存器的16个bit位,最高位bit15到bit8保留不用使用,bit7~bit4这4个位控制绿灯的显示,bit3~bit0控制红灯。4个位组合代表的0~15个数值,分别对应不同的LED灯的开关模式,

如往0080寄存器写值(十六进制):

0000表示 关闭指示灯;

0001表示 打开红灯;

0002表示 红灯每秒闪一次;

0010 表示 打开绿灯;

0020 表示 绿灯每秒闪一次;

 

0011 表示 红绿灯一起亮;

0021 表示 绿灯闪红灯亮;

0022 表示 红绿灯交替每秒闪一次

0012 表示 绿灯亮红灯闪;

FFFF (出厂默认值)表示 不控制指示灯,感应到卡指示灯自动变绿色。

断电不保存

 

 

0098

返回感应区状态

有卡时返回0001

无卡时返回0000

断电不保存

0099

返回每次操作的结果
由于读0007寄存器来判断结果用起来太复杂,可以用读0099寄存器来判断每次操作的返回结果,如读出0099寄存器的值(十六进制):
0000 表示 无操作(开机时默认)
0001表示 成功
0002表示 相关寄存器写入值不合法,导致操作停止
0003 表示 密码已锁定,无法再更改
0004 表示 卡不在感应区
0005 表示 卡密码认证失败
0006 表示 刷卡的卡不是指定卡

断电不保存

 

00007寄存器说明

 

 

7位

6位

5位

4位

3位

2位

1位

0位

当写寄存器时

写1驱动存入第一操作空间和第二操作空间的密码,等同于刷密码卡设定,

 

写值时本寄存器其他位必须为0,否则此指令无效。

为1表示0064~0069寄存器中的密码作为临时密码,及0058和0059寄存器指定的区号进行读写卡,

0064~0069中0064~0066为第1空间,0067~0069为第2空间,

为0表示用密码卡设定的密码、模式及区号读写卡

 

无定义

为1表示仅读或写指定卡号的卡,指定卡号放在寄存器00008,00009,7字节卡号再用上00004~00006寄存器

当6位为1时,为1驱动读00058寄存器指定的区

 

当6位为0时,为1驱动读密码卡设定的区

当6位为1时,为1驱动写00058寄存器指定的区

 

当6位为0时,为1驱动写密码卡设定的区

 

可以写0清零

无定义

 

 

 

可以写0清零

当读寄存器时

如果设定成功:返回1,否则为0

0

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

为1表示有卡在感应区

0

0

为1表示读00058寄存器指定区或密码卡设定的区成功(在主动读书模式下,刷卡成功也为1)

为1表示写00058寄存器指定区或密码卡设定的区成功

 

 

15位

14位

13位

12位

11位

10位

9位

8位

当写寄存器时

保留

保留

写1设定主/被动刷卡模式,

主动或被动以12位的值为准。

不会自动清零

 

同时本寄存器除13位、12位外的其他位必须为0,否则此指令无效。

1为刷卡时读出卡号和扇区内容,

 

0为被动等待指令读扇区内容。

同时本寄存器除13位、12位外的其他位必须为0,否则此指令无效

当6位为1时,为1驱动读00059寄存器指定的区

 

当13位为0时,为1驱动读密码卡设定的区

当6位为1时,为1驱动写00059寄存器指定的区

 

当13位为0时,为1驱动写密码卡设定的区

 

 

 

 

可以写0清零

无定义

 

 

 

可以写0清零

当读寄存器时

0

0

0

1:刷卡读出卡序列号扇区内容及,

 

0:刷卡只读卡序列号。

0

0

为1表示读00059寄存器指定区或密码卡设定的区成功(在主动读书模式下,刷卡成功也为1)

为1表示写00059寄存器指定区或密码卡设定的区成功

 

00007寄存器操作实例

 

功能

操作方向

数值

说明

十六进制数

十进制数

开机时设定主动读扇区模式(主动模式)

写入

3000

12288

写一个寄存器,用06或10功能码写入

读出

1000

4096

用03功能码读,12位为1表示设置成功,可以把左表格的单元值,除以4096(十进制)再取模(MOD)2,最后结果为1表示成功,为0表示不成功。

如左表格单元的值,都表示成功。

开机时设定需写值驱动读扇区模式

叫做被动模式(出厂默认模式)

写入

2000

8192

写一个寄存器,用06或10功能码写入

读出

0000

 

0

用03功能码读,12位为0表示设置成功,

如左表格单元的值,都表示成功。

 

主动读扇区模式下直接读取0007寄存器

读出

1000

4096

用03功能码读出,表示无卡在感应区。

1212

4626

用03功能码读出,表示读两个操作空间的扇区成功,卡号返回存在0008-0009寄存器,数据返回存在0010-0057的寄存器。

1012

4114

用03功能码读出,表示读第一操作空间扇区数据成功,且第二操作空间未启用,卡号返回存在0008-0009寄存器。

1210

4624

用03功能码读出,表示读第二操作空间扇区数据成功,且第一操作空间未启用,卡号返回存在0008-0009寄存器。

1030

4144

用03功能码读出,表示IC卡密码错误,请修改可片密码或修改读写器密码,卡号返回存在0008-0009寄存器中。

被动读扇区模式下直接读取0007寄存器

读出

0000

0

用03功能码读出,表示无卡在感应区。

0010

16

用03功能码读出,表示感应到卡在感应区,返回卡号存在0008-0009寄存器。

写值驱动读卡扇区数据

(读写器在主动或被动模式下都可以驱动)

写入

0008

8

用06或10功能码写入一个寄存器,按照读写器默认的扇区和密码驱动读取第一操作空间扇区数据。

0800

2048

用06或10功能码写入一个寄存器,按照读写器默认的扇区和密码驱动读取第二操作空间扇区数据。

0808

2056

用06或10功能码写入一个寄存器,按照读写器默认的扇区和密码驱动读取两个操作空间的扇区数据。

0048

72

用06或10功能码写入一个寄存器,按照读写器临时的扇区和密码驱动读取第一操作空间扇区数据,临时扇区和密码赋值请查看地址表说明。

0840

2112

用06或10功能码写入一个寄存器,按照读写器临时的扇区和密码驱动读取第二操作空间扇区数据,临时扇区和密码赋值请查看地址表说明。

0848

2120

用06或10功能码写入一个寄存器,按照读写器临时的扇区和密码驱动读取两个操作空间的扇区数据,临时扇区和密码赋值请查看地址表说明。

读出

0000

0

用03功能码读取,表示无卡在(被动模式下驱动)

1000

4096

用03功能码读取,表示无卡在(主动模式下驱动)

0012

18

用03功能码读取,表示读取第一操作空间的扇区成功,数据返回存在0010-0033寄存器中(被动模式下驱动)。

1012

4114

用03功能码读取,表示读取第一操作空间的扇区成功,数据返回存在0010-0033寄存器中(主动动模式下驱动)。

0210

530

用03功能码读取,表示读取第二操作空间的扇区成功,数据返回存在0034-0057寄存器中(被动模式下驱动)。

1200

4608

用03功能码读取,表示读取第二操作空间的扇区成功,数据返回存在0034-0057寄存器(主动动模式下驱动)。

0212

530

用03功能码读取,表示读两个操作空间的扇区成功,数据返回存在0010-0057寄存器(被动模式下驱动)。

1212

4626

用03功能码读取,表示读两个操作空间的扇区成功,数据返回存在0010-0057寄存器(主动模式下驱动)。

0030

48

用03功能码读取,表示卡密码错误,(被动模式下驱动)

1030

4144

用03功能码读取,表示卡密码错误,(主动模式下驱动)

写值驱动写卡扇区数据

(读写器在主动或被动模式下都可以驱动)

写入

0004

4

用06或10功能码写入一个寄存器,按照读写器默认的扇区和密码驱动将第一操作空间扇区数据写到卡上。

0400

1024

用06或10功能码写入一个寄存器,按照读写器默认的扇区和密码驱动将第二操作空间扇区数据写到卡上。

0404

1028

用06或10功能码写入一个寄存器,按照读写器默认的扇区和密码驱动将两个操作空间的扇区数据写到卡上。,

0044

68

用06或10功能码写入一个寄存器,按照读写器临时的扇区和密码驱动将第一操作空间扇区数据写到卡上,临时扇区和密码赋值请查看地址表说明。

0440

1088

用06或10功能码写入一个寄存器,按照读写器临时的扇区和密码驱动将第二操作空间扇区数据写到卡上,临时扇区和密码赋值请查看地址表说明。

0444

1092

用06或10功能码写入一个寄存器,按照读写器临时的扇区和密码驱动将两个操作空间的扇区数据写到卡上,临时扇区和密码赋值请查看地址表说明。

读出

0000

0

用03功能码读取,表示无卡在(被动模式下驱动)。

1000

4096

用03功能码读取,表示无卡在(主动模式下驱动)。

0011

17

用03功能码读取,表示已成功将第一操作空间的扇区数据写入卡上,(被动模式下驱动)。

1011

4113

用03功能码读取,表示已成功将第一操作空间的扇区数据写入卡上,(主动动模式下驱动)。

0110

272

用03功能码读取,表示已成功将第二操作空间的扇区数据写入卡上,(被动模式下驱动)。

1100

4352

用03功能码读取,表示已成功将第二操作空间的扇区数据写入卡上,(主动动模式下驱动)。

0111

273

用03功能码读取,表示已成功将两个操作空间的扇区数据写入卡上,(被动模式下驱动)。

 

 

1111

4369

用03功能码读取,表示已成功将两个空间的扇区数据写入卡上,(主动模式下驱动)。

0030

48

用03功能码读取,表示卡密码错误,(被动模式下驱动)。

1030

4144

用03功能码读取,表示卡密码错误,(主动模式下驱动)。

 

                                                    

注:西门子PLC 中的40001寄存器对应于本读写器的0000寄存器,以此类推(下面有关于寄存器的说明都是以本读写器的说明为准)。

0000:存放读卡器的站号(机号),可读可写,写可以更改站号,只能用06功能码或10(十六进制)功能码写1个寄存器的方式。可用03寄存器来读或连读。

    0001:设置读卡器参数:刷卡时是否发声,通讯延时应答。仅支持功能码06或10(十六进制)写1个寄存器的方式来写,如:用功能码06写值1表示刷卡发出响声,或者0表示刷卡不发出响声,其他设定请查看软件。

    0002:驱动读卡器响声,只能用06功能码或10(十六进制)功能码写1个寄存器的方式来写值驱动响声。可用03寄存器来读或连读。

如写为1表示短滴一声,如下表

表2

1

短滴一声

8

一长两短

2

短滴两声

9

一长三短

3

短滴三声

10

两长一短

4

长鸣一声

11

两长两短

5

长鸣两声

12

两长三短

6

长鸣三声

其他

短滴一声

7

一长一短

 

 

 

0003 存放卡号长度(4、7、10),用03功能码读一个或多个寄存器、写寄存器没有定义。

0004-0006,存放卡号后6个字节。

0007寄存器为读写卡控制寄存器:只能用06功能码或10(十六进制)功能码写1个寄存器的方式来写。可用

03功能码来读或连读。

 

    0008-0009,共2个寄存器存放IC卡前四个字节卡号(4个字节)。

    0010-0033,第一操作区,共24个寄存器,对应IC卡的扇区内的48字节内容(0-14扇区,选定一个)。

0034-0057,第二操作区,共24个寄存器,对应IC卡的扇区内的48字节内容(0-14扇区,选定一个)。

0058 第一操作区的区号和A/B密码设定。

0059 第二操作区的区号和A/B密码设定。

0064-0066,第一操作区的临时密码。

0067-0069,第二操作区的临时密码。

0070,支持06和10功能码写寄存器驱动电器1。

0071,支持06和10功能码写寄存器驱动电器2。

0072-0077,暂无定义。

0078-0079,设定刷卡时继电器主动闭合,不需要写值控制,继电器刷卡主动输出开关信号。

0080,控制红绿双色灯,亮或灭或闪。

 

 

  • 波特率更改说明

波特率出厂时默认为19200,波特率有4800,9600,19200,38400 ,57600四档可设,在0060寄存器中写入波特率值,再在0061寄存器中写入21930(十六进制为055AA)。如需将波特率改为9600,在0060寄存器写入9600,接着在一秒中内在00061寄存器中写入21930。
 

  • 通讯校验位更改说明

校验位出厂是为N(None),也就是无校验,共有None无、Odd奇、Even偶、Mask常1、Space常0五种方式可设,在00062寄存器中写入0~4中的一个值(分别对应None、Odd、Even、Mask、Space),再在00063寄存器中写入21930(十六进制为055AA)。也可以采用连写00062、00063两个寄存器,也就是用功能码10(十六进制)。如需将校验为改为为None,在00062寄存器写入0,接着在一秒中内在00062寄存器中写入21930。

 

  • 数据报文格式

在数据报文层面,寄存器起始地址都是从0开始。数据报文格式:设备地址+功能码+起始地址+寄存器个数+校验码。其中起始地址是从0开始的。

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

发送:

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

   02       03     00 08       00 02    45 FA

成功返回:

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

02       03        04             28 5B 90 BB           9D 33

 

其中:285B 90BB 为卡的内码数据(每张卡的卡号是唯一的),寄存器内高字节在前

所以卡号为:

正码为:5B28BB90,转换成十进制为:1529396112;

反码为:90BB285B, 转换成十进制为:2428184667;

IC卡结构

  • IC卡的技术特性
  • 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
  • 每个扇区有独立的一组密码及访问控制
  • 每张卡有唯一序列号,为32位
  • 具有防冲突机制,支持多卡操作
  • 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
  • 数据保存期为10年,可改写10万次,读无限次
  • 工作温度:-20℃~50℃
  • 工作频率:13.56MHZ
  • 通信速率:106KBPS
  • IC卡的存储结构

 

卡片实际应用划分结构举例(开发人员自定义的数据结构),比如定义IC卡第3扇区(可选1-14任意一个扇区)0、1、2块的存储结构:

 

 

第三扇区

字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

卡余额(分)

 

上次消费时间(yyMMddHHmm)

 

 

BCC

1

卡余额(备份)

 

上次消费时间(备份)

 

 

BCC

2

 

 

 

 

 

 

 

 

卡类1

可流水号

(Ox000001)

 

BCC

3

KEY_A

 

KEY_B

 

说明:

  1. BCC为所有字节累加和;
  2. 卡片余额为十六进制,字节倒叙,单位:分钱  比如100元钱表示为 10 27 00
  3. 使用KEY_B或KEY_A对卡片进行读写操作。
  4.  

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

 

  • 读写器每个操作空间有48个字节,所以可以用两个操作空间来对应IC卡扇区0-14扇区的任意2个扇区

寄存器与IC卡某扇区0、1、2块字节的对应关系。以第一操作空间对应关系为例:

寄存器

00010

00011

00012

00013

00014

00015

00016

00017

块0字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

寄存器

00018

00019

00020

00021

00022

00023

00024

00025

块1字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

寄存器

00026

00027

00028

00029

00030

00031

00032

00033

块2字节

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

 

 

你可能感兴趣的:(18002295132,QQ:954486673,单片机,嵌入式)