淘宝:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-17663462238.17.73bce728T44duc&id=41901622939
寄 存 器 表
寄存器地址 (十进制) |
说明 |
备注 |
|||||||||||||||||||||||
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 |
设定读卡后发出继电器开关信号功能
|
断电保存 |
|||||||||||||||||||||||
0079 |
设定读卡后发出开关信号功能的确认码(必须等于十六进制数55AA) |
|
|||||||||||||||||||||||
0080 |
控制读卡器指示灯,用06H或10H写一个寄存器,用03H可读多个寄存器。 如往0080寄存器写值(十六进制): 0000表示 关闭指示灯; 0001表示 打开红灯; 0002表示 红灯每秒闪一次; 0010 表示 打开绿灯; 0020 表示 绿灯每秒闪一次;
0011 表示 红绿灯一起亮; 0021 表示 绿灯闪红灯亮; 0022 表示 红绿灯交替每秒闪一次 0012 表示 绿灯亮红灯闪; FFFF (出厂默认值)表示 不控制指示灯,感应到卡指示灯自动变绿色。 |
断电不保存 |
|||||||||||||||||||||||
… |
|
|
|||||||||||||||||||||||
0098 |
返回感应区状态 有卡时返回0001 无卡时返回0000 |
断电不保存 |
|||||||||||||||||||||||
0099 |
返回每次操作的结果 |
断电不保存 |
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卡第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 |
说明:
IC卡存储块与MODBUS读写器寄存器的对应关系
寄存器与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 |