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字节