西朗快速门控制系统第三方通信协议V1.5
一、概述
系统遵循Modbus协议标准,采用RTU传输模式,CRC16校验(多项式X16+X15+X2+1),第三方软件可以通过RS485接口与系统控制器通信,从而实现门体的开关门动作控制及工作状态查询。
二、通信协议
1、门体控制指令
功能码:0x05(写单个线圈) | |||
功能说明 | 输出地址 | 输出数值 | 应答数据 |
开门指令 | 0x0004 | 0xFF00:开门 | 原数据应答 |
关门指令 | 0x0005 | 0xFF00:关门 | |
停止运行命令 | 0x000A | 0xFF00:停止 | |
解除停止命令 | 0x000A | 0x0000:解除停止 |
开门指令格式示例:
开门指令 | 数据格式(十六进制) |
1号控制器开门 | 01 05 00 04 FF 00 CD FB |
2号控制器开门 | 02 05 00 04 FF 00 CD C8 |
3号控制器开门 | 03 05 00 04 FF 00 CC 19 |
4号控制器开门 | 04 05 00 04 FF 00 CD AE |
关门指令格式示例:
关门指令 | 数据格式(十六进制) |
1号控制器关门 | 01 05 00 05 FF 00 9C 3B |
2号控制器关门 | 02 05 00 05 FF 00 9C 08 |
3号控制器关门 | 03 05 00 05 FF 00 9D D9 |
4号控制器关门 | 04 05 00 05 FF 00 9C 6E |
停止运行指令格式示例:
停止指令 | 数据格式(十六进制) |
1号控制器停止 | 01 05 00 0A FF 00 AC 38 |
2号控制器停止 | 02 05 00 0A FF 00 AC 0B |
3号控制器停止 | 03 05 00 0A FF 00 AD DA |
4号控制器停止 | 04 05 00 0A FF 00 AC 6D |
解除停止运行指令格式示例:
关门指令 | 数据格式(十六进制) |
1号控制器解除停止 | 01 05 00 0A 00 00 ED C8 |
2号控制器解除停止 | 02 05 00 0A 00 00 ED FB |
3号控制器解除停止 | 03 05 00 0A 00 00 EC 2A |
4号控制器解除停止 | 04 05 00 0A 00 00 ED 9D |
2、状态查询指令
功能码:0x03(读多个寄存器) | |||
功能说明 | 起始地址 | 寄存器数量 | 应答数据 |
查询状态 | 0x0080 | 14 | 状态寄存器的当前值
(状态寄存器的定义详见后表) |
注意:仅支持一次性查询0x0080 – 0x008D共14个寄存器的状态。
状态查询指令格式示例:
状态查询指令 | 数据格式(十六进制) |
查询1号控制器状态 | 01 03 00 80 00 0E C5 E6 |
查询1号控制器应答 | 01 03 1C 00 00 20 83 00 00 04 ED 00 00 00 01 00 64
(1) (2) (3) (4) (5) (6) (7) 01 49 00 00 00 00 00 00 00 00 79 37 00 EE B6 96 (8) (9) (10) (11) (12) (13) (14) * |
查询2号控制器状态 | 02 03 00 80 00 0E C5 D5 |
查询3号控制器状态 | 03 03 00 80 00 0E C4 04 |
查询4号控制器状态 | 04 03 00 80 00 0E C5 B3 |
*注释:(1)—(14)表示14个状态寄存器的值。
3、状态寄存器
序号 | 寄存器地址 | 功能 | 类型 | 特性 | 备注 |
1 | 0x0080 | 总运行次数Hi | 16bit | 只读 | |
2 | 0x0081 | 总运行次数Lo | 16bit | 只读 | |
3 | 0x0082 | 维护后运行次数Hi | 16bit | 只读 | |
4 | 0x0083 | 维护后运行次数Lo | 16bit | 只读 | |
5 | 0x0084 | 系统状态 | 16bit | 只读 | 0:无故障
其它数值:对应当前故障代码 |
6 | 0x0085 | 当前运行状态 | 16bit | 只读 | 0:在关门位置
1:在开门位置 2:开门中 3:关门中 4:门体运行即将停止 5:门体停在非开、关门位置 |
7 | 0x0086 | 当前门体高度 | 16bit | 只读 | 数值范围:0 – 100 |
8 | 0x0087 | 母线电压 | 16bit | 只读 | |
9 | 0x0088 | 相线电流 | 16bit | 只读 | |
10 | 0x0089 | 电机运行速度 | 16bit | 只读 | |
11 | 0x008A | 输入传感器状态 | 16bit | 只读 | bit0:手动开门信号
bit1:手动关门信号 bit2:手动停止信号 bit3:急停输入信号 bit4:安全信号1 bit5:安全信号2 bit6:自动开门信号 bit7:部分开门信号 bit8:单键循环信号 bit9:开门限位输入信号 bit10:关门限位输入信号 bit11:互锁输入信号 bit12:保留 bit13:通信停止信号 bit14:通信开门信号 bit15:通信关门信号 |
12 | 0x008B | 保留 | 16bit | 只读 | |
13 | 0x008C | 保留 | 16bit | 只读 | |
14 | 0x008D | 保留 | 16bit | 只读 |
4、指令优先级
基于安全方面的考虑,开门指令优先级高于关门指令,即:
1)开门过程中,关门指令无效。
2)关门过程中,控制器收到开门指令后,会立即中断关门流程,开始执行开门流程。
5、通信时间要求
项目 | 时间(ms) | 说明 |
最小发送间隔 | 300 | 收到应答后间隔300ms方可发送下一条指令 |
应答超时时间 | 500 | 指令发出后500ms未收到应答则认定为应答超时 |
6、通信地址配置
在控制器主界面,依次选择“设置”-“设备高级设定”-“联网通信设定”-“设备站号设定”,可进入地址设定界面对通信地址进行设定。有效地址范围为1 – 247,每个台控制器必须有唯一的通信地址。
7、通信速率与数据格式
通信速率出厂默认为4800bps,8位数据位,1位停止位,无奇偶检验位。在控制器主界面,依次选择“设置”-“设备高级设定”-“联网通信设定”-“通信速率设定”,可进入速率设定界面对通信速率进行设定,控制器从新上电后即可生效。第三方软件必须确保与所有控制器的通信速率一致。
三、故障代码
检查状态寄存器0x0084(系统状态)可以得知是否发生故障,并可根据寄存器数值所指示的故障代码来确定故障类型。
故障代码 | 故障名称 |
1 | 系统过流 |
2 | / |
3 | 系统欠压 |
4 | 停机时过压 |
5 | 运行时过压 |
6 | 电机堵转 |
7 | 超出限位位置 |
8 | 主板数据存储故障 |
9 | 超速故障 |
10 | 反转故障 |
11 | 系统过载 |
12 | 电流检测回路故障 |
13 | 电机编码器故障 |
14 | 电机初始角错误 |
15 | 通信故障 |
16 | 上电检测 |
17 | 掉电检测 |
18 | 制动回路故障 |
19 | 外置编码器故障 |
20 | 运行超时 |
21 | 单周期内安全信号1异常 |
22 | 单周期内安全信号2异常 |
23 | 未进行电子行程设定 |
24 | 24V电源短路 |
25 | / |
26 | 限位开关故障 |
27 | 系统过热 |
28 | 电磁制动器故障 |
29 | 绝对值编码器复位 |
30 | 电机参数匹配故障 |
31 | 电机编码器故障2 |
32 | 电机编码器故障3 |
33 | 绝对值编码器故障2 |
34 | 绝对值编码器复位2 |
35 | 绝对值编码器运行时复位 |
36 | 行程设定距离过短 |
37 | / |
38 | 电磁制动器故障2 |
39 | 电机编码器故障4 |
40 | 电机编码器故障5 |
四、更多说明与建议
1、状态查询指令的用途
通过状态查询指令可以了解门体的运行状态,及当前是否有故障发生。发生故障时,门体将不能正常工作,需要排除故障以使其恢复正常。
2、发送开门(关门)指令
当业务逻辑上需要开门(关门)时,请直接发送开门(关门)指令,即使通过查询指令查到当前运行状态为在开门(关门)位置,也建议发送开门(关门)指令。
3、确保开门(关门)指令发送成功
开门(关门)指令发送后,收到应答才算发送成功,否则要等超时后从新发送。
4、异常状态检查
开门(关门)指令发送成功后,但门体长时间未到达开门(关门)位置,请检查故障代码,看是否有故障发生。
5、保证关门过程的安全
关门指令一旦成功发送,最好不要再自动重复发送该次关门指令,否则可能会造成安全隐患。
6、注意开门(关门)指令优先级
开门指令优先级要高于关门指令,设计中需要加以考虑。
7、停止运行和解除停止运行
发送停止运行指令后,电机停止运行,此时发送开、关门运行指令(包括本地开、关门信号)都将无效,需发送解除停止运行指令后,才能执行其它运行指令。在停止运行期间,状态查询指令可正常使用。