425 lines
14 KiB
Plaintext
425 lines
14 KiB
Plaintext
App3定扭矩扳手通讯协议(C协议)
|
||
|
||
一、通讯参数说明
|
||
1、装置端与上位端以TCP/IP连接传输报文,装置端可以是Server端,也可以是Client端
|
||
|
||
二、报文格式说明
|
||
报文格式
|
||
报文头
|
||
2字节 地址码
|
||
1字节 功能码
|
||
1字节 保留
|
||
2字节 数据长度
|
||
1字节 数据内容
|
||
校验码(累加和)
|
||
1字节
|
||
0xC5 0xC5 0x01 0x01 0xFF 0xFF XX XX… XX XX
|
||
|
||
报文头: 0xC5 0xC5
|
||
地址码: 表示每台装置的地址
|
||
功能码:表示该帧报文的功能类型定义
|
||
保留:保留2字节今后扩展使用
|
||
数据长度:表示后面数据内容的长度,不包含报文头、地址码、功能码、保留字节和校验码
|
||
数据内容:根据功能码有不同数据定义
|
||
校验码:从报文头开始到数据内容结束的单字节累加和
|
||
|
||
三、功能码说明
|
||
1、功能吗0x11:启停远程控制,启用远程控制后,锂电扳手才会接受远程启停控制(App->扳手)
|
||
2、功能码0x01:扳手启停控制 (App->扳手) 此指令在启动远程控制0x11帧后生效
|
||
3、功能码0x06:作为接收方应答发送方使用
|
||
4、功能码0x10 参数设置 (App -> 扳手)
|
||
5、功能码0x12: 每秒钟扭矩角度数据(扳手->App)
|
||
6、功能吗0x15: 运行结果反馈,在锂电扳手每次运行结束后发出该报文(扳手->App)
|
||
7、功能码0x21: 扳手请求对时(扳手->App)
|
||
8、功能码0x22: App发送对时报文(App -> 扳手)
|
||
9、功能码 0x33: 设备延时自动关机心跳报文(App -> 扳手), 每分钟向设备发送,保证设备不自动断电
|
||
10、功能码:0x44:设备GPS定位,周期发送(上电后一直发送)包含信息:是否有效、经度、纬度、高度
|
||
11、功能码 0x04:电池电量百分比数据 (此帧可作为心跳包定时发送)
|
||
12、功能码:0x50: 脉冲、离合、冲击扳手参数设置
|
||
13、功能码:0x55: 脉冲、离合、冲击扳手执行结果反馈
|
||
脉冲、离合、冲击扳手运行过程扭矩数据同0x12帧
|
||
14、功能码:0x23:扳手发送复位螺母个数选择项
|
||
15、功能码:0x25查询扳手SN码
|
||
16、功能码:0x26 应答扳手SN码
|
||
17、功能码:0x17: 发送结果反馈帧0x15确认(App -> 扳手)
|
||
18、功能码:0x05: 发状态到APP
|
||
|
||
四、报文内容
|
||
1、功能码0x11:启动/停止远程控制
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x11
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 0xXX 0x00:停止远程控制
|
||
0x01:启用远程控制
|
||
9 校验码(累加和) 0xXX
|
||
报文示例:
|
||
C5 C5 01 11 FF FF 01 01 9C
|
||
|
||
2、功能码0x01:启停控制
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x01
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 0xXX 0x00:停止STOP
|
||
0x01:正转启动RUN
|
||
0x02:反转启动RUN
|
||
9 校验码(累加和) 0xXX
|
||
报文示例:
|
||
C5 C5 01 01 FF FF 01 02 8D
|
||
|
||
3、功能码0x06: 应答控制
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x06
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 0xXX 0x00:应答ACK
|
||
0x01:应答NAK
|
||
9 校验码(累加和) 1字节
|
||
报文示例:
|
||
C5 C5 01 06 FF FF 01 00 90
|
||
|
||
4、 功能码0x10: 参数设置(App -> 扳手)
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x10
|
||
5-6 反退角 0xFF 0xFF
|
||
7 数据长度 0x50
|
||
8-17 产品ID 10字节 ASCII码,不足补0
|
||
18-37 工位名称 20字节 中英字符,不足补0
|
||
38-47 员工号 10字节 ASCII码,不足补0
|
||
48-57 工具系列号 10字节 ASCII码, 不足补0
|
||
58-67 控制器系列号 10字节 ASCII码, 不足补0
|
||
68-69 时间-年 2字节
|
||
70 时间-月 1字节
|
||
71 时间-日 1字节
|
||
72 时间-小时 1字节
|
||
73 时间-分钟 1字节
|
||
74 时间-秒 1字节
|
||
75 参数模式 1字节 M1模式:0x01 M2模式:0x02
|
||
76-77 目标扭矩高位
|
||
目标扭矩低位 2字节 此参数为目标扭矩 此参数为预设扭矩
|
||
78-79 扭矩下限高位
|
||
扭矩下限低位 2字节 目标扭矩下限值
|
||
次值为=目标扭矩*(1-A)
|
||
A为扭矩偏差百分比 扭矩下限值
|
||
目标角度执行过程中超出扭矩上下限值即停机;如填0,不受上下限扭矩控制
|
||
80-81 扭矩上限高位
|
||
扭矩上限低位 2字节 目标扭矩上限值
|
||
次值为=目标扭矩*(1+A)
|
||
A为扭矩偏差百分比 扭矩上限值
|
||
目标角度执行过程中超出扭矩上下限值即停机;如填0,不受上下限扭矩控制
|
||
82-83 目标角度高位
|
||
目标角度低位 2字节
|
||
0x00
|
||
0x00 目标角度值
|
||
84-85 角度上限高位
|
||
角度上限低位 2字节
|
||
角度上限值
|
||
实际转角超出角度上、下限值即停机;如填0,不受角度上下限控制 目标角度上限值
|
||
86-87 角度下限高位
|
||
角度下限低位 2字节
|
||
角度下限值
|
||
实际转角超出角度上、下限值即停机;如填0,不受角度上下限控制 目标角度下限值
|
||
88 校验码(累加和) 1字节
|
||
注:此帧中所有角度设定值需要乘10后填入协议, 例如需要设置目标角度20°, 协议中应填写目标角度 00 C8
|
||
报文示例1:
|
||
时间:2024/9/30 10:01:08 M1模式 目标扭矩500,扭矩偏差A=10%(450Nm-550Nm),角度上限360,角度下限1
|
||
C5 C5 01 10 FF FF 50 30 30 30 30 30 30 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 32 32 32 32 32 32 32 32 32 32 30 30 30 30 30 30 30 30 30 30 33 33 33 33 33 33 33 33 33 33 07 E8 09 1E 0A 01 08 01 01 F4 01 C2 02 26 00 00 0E 10 00 0A A1
|
||
|
||
报文示例2:
|
||
时间:2024/9/30 10:01:08 M2模式 目标扭矩180,扭矩下限200Nm,扭矩上限400NM,目标角度值90,目标角度上限360,目标角度下限1
|
||
C5 C5 01 10 FF FF 50 30 30 30 30 30 30 30 30 30 30 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 32 32 32 32 32 32 32 32 32 32 30 30 30 30 30 30 30 30 30 30 33 33 33 33 33 33 33 33 33 33 07 E8 09 1E 0A 01 08 02 00 B4 00 C8 01 F4 03 84 0E 10 00 0A BA
|
||
|
||
|
||
5、功能码0x12: 每秒钟扭矩角度数据
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x12
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 12+n*4
|
||
8-17 员工号 10字节 ASCII码
|
||
18-19 螺栓号 2字节
|
||
20-21 第1个点扭矩值高位
|
||
第1个点扭矩值低位
|
||
22-23 第1个点角度值高位
|
||
第1个点角度值低位
|
||
24-25 第2个点扭矩值高位
|
||
第2个点扭矩值低位
|
||
26-27 第2个点角度值高位
|
||
第2个点角度值低位
|
||
……
|
||
第n个点扭矩值高位
|
||
第n个点扭矩值低位
|
||
第n个点角度值高位
|
||
第n个点角度值低位
|
||
校验码(累加和) 1字节
|
||
报文示例:
|
||
螺栓号:0001,第1点扭矩值0,角度值0,第2点扭矩值16,角度值2,第3点扭矩值49,角度值6,第4点扭矩值66,角度值10,第5点扭矩值85,角度值17
|
||
C5 C5 01 12 FF FF 20 30 30 30 30 30 30 30 30 30 30 00 01 00 00 00 00 00 10 00 02 00 31 00 06 00 42 00 0A 00 55 00 11 97
|
||
|
||
|
||
6、功能码0x15: 执行结果反馈
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x15
|
||
5 结果状态 0xFF 0x00 : 成功OK
|
||
0x01: OK-扭矩到达
|
||
0x02: OK-位置到达
|
||
|
||
0x10: 失败NG
|
||
0x11: NG-小于扭矩下限
|
||
0x12: NG-大于扭矩上限
|
||
0x13: NG-打滑
|
||
0x14: NG-小于角度下限
|
||
0x15: NG-大于角度上限
|
||
0x16: NG-2次拧紧
|
||
6 保留 0xFF
|
||
7 数据长度 0x24
|
||
8-17 员工号 10字节 ASCII码
|
||
18-19 螺栓号 2字节
|
||
20-21 时间-年 2字节
|
||
22 时间-月 1字节
|
||
23 时间-日 1字节
|
||
24 时间-小时 1字节
|
||
25 时间-分钟 1字节
|
||
26 时间-秒 1字节
|
||
27 参数模式 1字节 M1模式:0x01 M2模式:0x02
|
||
28-29 目标扭矩高位
|
||
目标扭矩低位 2字节 目标扭矩值 预设扭矩实际值
|
||
30-31 实际扭矩高位
|
||
实际扭矩低位 2字节 目标扭矩实际值 最终扭矩实际值
|
||
32-33 目标角度高位
|
||
目标角度低位 2字节
|
||
0x00
|
||
0x00 目标角度设置值
|
||
34-35 实际角度高位
|
||
实际角度低位 2字节 角度实际值 目标角度实际值
|
||
36-37 扭矩上限高位
|
||
扭矩上限低位 2字节
|
||
目标扭矩上限值
|
||
最终扭矩上限值
|
||
38-39 扭矩下限高位
|
||
扭矩下限低位 2字节
|
||
目标扭矩下限值
|
||
最终扭矩下限值
|
||
40-41 角度上限高位
|
||
角度上限低位 2字节 角度上限值 目标角度上限值
|
||
42-43 角度下限高位
|
||
角度下限低位 2字节 角度下限值 目标角度下限值
|
||
44 校验码(累加和) 1字节
|
||
报文示例:
|
||
时间:2024/9/30 10:01:08 M2模式 预设扭矩实际值181,最终扭矩实际值485,目标角度设置值45,目标角度实际值44,最终扭矩上限值500,最终扭矩下限值400, 目标角度上限 100,目标角度下限1.
|
||
C5 C5 01 15 FF FF 24 30 30 30 30 30 30 30 30 30 30 00 01 07 E8 09 1E 0A 01 08 02 00 B5 01 E5 00 2D 00 2C 01 F4 01 90 00 64 00 01 AD
|
||
|
||
|
||
7、功能码0x21: 扳手请求对时(扳手->App)
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x21
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 0x01 0x01:请求对时
|
||
9 校验码(累加和) 1字节
|
||
报文示例:
|
||
C5 C5 01 21 FF FF 01 01 AC
|
||
|
||
|
||
8、 功能码0x22: App发送对时报文(App -> 扳手)
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x22
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x07
|
||
8-9 时间-年 2字节
|
||
10 时间-月 1字节
|
||
11 时间-日 1字节
|
||
12 时间-小时 1字节
|
||
13 时间-分钟 1字节
|
||
14 时间-秒 1字节
|
||
15 校验码(累加和) 1字节
|
||
报文示例:
|
||
C5 C5 01 22 FF FF 07 07 E8 09 1E 0A 01 08 DB
|
||
|
||
|
||
9、功能码0x33: 设备延时自动关机心跳报文
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x33
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 0x00
|
||
9 校验码(累加和) 1字节
|
||
报文示例:
|
||
C5 C5 01 33 FF FF 01 00 BD
|
||
|
||
10、功能码0x44: GPS信息报文
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x44
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度
|
||
(包含”是否有效”字节+”数据内容”)
|
||
8 是否有效 0x01:有效
|
||
0x00:无效
|
||
数据内容(纬度,N/S,精度,E/W,高度,)
|
||
3225.62461,N,11923.81795,E,14, ASCII格式,以‘,‘分隔
|
||
N 校验码(累加和) 1字节
|
||
|
||
|
||
|
||
11、功能码 0x04:电池电量百分比数据
|
||
报文头 地址码 功能码 保留 数据长度 数据内容 校验码(累加和)
|
||
0xC5 0xC5 0x01 0x04 0xFF 0xFF 0x01 1字节 XX
|
||
电池电量范围 0-100, 表示电量0 -100%
|
||
|
||
12、 功能码0x50: 脉冲、离合、冲击扳手参数设置(App -> 扳手)
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01 该字节用于区分同一组中不同的扳手
|
||
4 功能码 0x50
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x50
|
||
8-17 产品ID 10字节 ASCII码, 不足补0
|
||
18-37 工位名称 20字节 中英字符,不足补0
|
||
38-47 员工号 10字节 ASCII码, 不足补0
|
||
48-57 工具系列号 10字节 ASCII码, 不足补0
|
||
58-67 螺栓型号 10字节 ASCII码, 不足补0
|
||
68-69 时间-年 2字节
|
||
70 时间-月 1字节
|
||
71 时间-日 1字节
|
||
72 时间-小时 1字节
|
||
73 时间-分钟 1字节
|
||
74 时间-秒 1字节
|
||
75 参数模式 1字节 扭矩模式:0x00
|
||
定点硬连接(H):0x01
|
||
定点软连接(S):0x02
|
||
76-77 目标扭矩高位
|
||
目标扭矩低位 2字节 0-65535表示0-6553.5NM
|
||
78-79 K1值高位
|
||
K1值低位 2字节 数值范围
|
||
50-350 K1,K2,K3值只在定点硬连接和软连接模式下有效,扭矩模式下填0x00
|
||
|
||
80-81 K2值高位
|
||
K2值低位 2字节 数值范围
|
||
1-80
|
||
82-83 K3值高位
|
||
K3值低位 2字节 数值范围
|
||
1-3000
|
||
84 螺栓状态 1字节 0%-100%
|
||
85 误差精度 1字节
|
||
86-87 螺栓个数高位
|
||
螺栓个数低位 2字节
|
||
|
||
88 校验码(累加和) 1字节
|
||
|
||
|
||
13、功能码0x55 : 脉冲、离合、冲击扳手执行结果反馈
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x55
|
||
5 结果状态 0xXX 0x00 : 成功OK
|
||
0x10: 失败NG
|
||
6 保留 0xFF
|
||
7 数据长度 0x1C
|
||
8-17 员工号 10字节 ASCII码
|
||
18-19 螺栓号 2字节
|
||
20-21 时间-年 2字节
|
||
22 时间-月 1字节
|
||
23 时间-日 1字节
|
||
24 时间-小时 1字节
|
||
25 时间-分钟 1字节
|
||
26 时间-秒 1字节
|
||
27 参数模式 1字节 扭矩模式:0x00
|
||
定点硬连接(H):0x01
|
||
定点软连接(S):0x02
|
||
28-29 目标扭矩高位
|
||
目标扭矩低位 2字节 0-65535表示0-6553.5NM
|
||
30-31 实际扭矩高位
|
||
实际扭矩低位 2字节 0-65535表示0-6553.5NM
|
||
32-33 实际角度高位
|
||
实际角度低位 2字节
|
||
|
||
34-35 保留 2字节
|
||
36 校验码(累加和) 1字节
|
||
|
||
|
||
|
||
14、功能码0x23: 扳手发送复位螺母个数选择项报文
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x23
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 1字节 0x00: 退出螺母计数模式
|
||
0x01: 按原螺母数重新开始计数运行
|
||
9 校验码(累加和) 1字节
|
||
|
||
|
||
15、功能码0x25: 查询设备SN码
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x25
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x05
|
||
8-12 数据内容 00 00 00 00 00
|
||
13 校验码(累加和) 0xXX
|
||
报文举例:查询SN码:C5 C5 01 25 FF FF 05 00 00 00 00 00 B3
|
||
|
||
16、功能码0x26: 应答设备SN码
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x26
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x05
|
||
8-12 数据内容 设备SN码10位0-9数值 以压缩BCD码表示
|
||
13 校验码(累加和) 0xXX
|
||
报文举例:应答SN码:C5 C5 01 26 FF FF 05 12 34 56 78 90 58
|
||
设备SN码: 1234567890
|
||
|
||
17、功能码0x17: 发送结果反馈帧0x15报文的确认帧,扳手在发送0x15结果帧后,未在0.5S内收到该0x17帧,结果帧将保存到扳手;反之扳手收到0x17帧则扳手不保存结果帧。
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x17
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x01
|
||
8 数据内容 0x00
|
||
9 校验码(累加和) 1字节
|
||
|
||
|
||
8、功能码0x05 : (发状态:控制器→显示屏)
|
||
字节序号
|
||
1-2 报文头 0xC5 0xC5
|
||
3 地址码 0x01
|
||
4 功能码 0x05 发状态参数:控制器→显示屏
|
||
5-6 保留 0xFF 0xFF
|
||
7 数据长度 0x04
|
||
8-9 错误码 2字节 0 表示无错误,可以不显示;其余数值为错误码,
|
||
10-11 控制位 2字节 Bit1: 正向0
|
||
反向1 Bit2: 预留
|
||
Bit3: 预留 Bit4: 预留
|
||
Bit5: 预留 Bit6: 预留
|
||
Bit7: 预留 Bit8: 预留
|
||
Bit9---Bit16:预留
|
||
12 校验码(累加和) 1字节
|
||
|
||
|