You are on page 1of 8

308-F驱动板通讯协议v1.

0
串行传输的格式定义:
波特率38400bps,数据位8 位,停止位1 位,无校验,
通讯格式:
机器类型(1 byte)+ 机器地址(1 byte)+命令字(1 byte)+数据包长(1 byte)+数据包(X
bytes)+Checknum(1 bytes)
机器类型:0x70;
机器地址:0x00
校验码 =机器类型^机器地址^ 命令字 ^ 数据包长 ^ 数据包
注:返回码=命令+A0

一、综合命令
命令 0x01(读取机器状态) 返回码为:0XA1
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)

返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、错
误码(1Byte)、当前运行动作(1Byte)、饮料制做结果(1Byte)
、配置参数(1Byte)、
有无杯状态(1Byte)、当前水温(1Byte)、最高水温(1Byte)、最低水温(1Byte)、
剩余水量(2Byte)、校验码(1Byte)。
1、 错误码:见下表。
错误类
部件名 错误码
型(高 4 故障
称 (低 4 位)
位)
0 暂无
1 废水桶满
2 开机加热中
其它 0x10 3 水箱抽水超时
4 移嘴移动超时
5 落棒超时
6 落盖超时
0 温度传感器故障
锅炉组
0x20 1 流量计故障

2 加热器开温度无变化故障
0 没杯
1 杯子未取走
落杯器 0x30
2 落杯超时
3 换杯超时
0 落粉故障
磨豆咖 1 磨豆电机运行超时
0x40
啡 2 冲泡开关坏
3 冲泡器超时
0 电动门移动超时
电动门 0x51
1 锁门时门没关好
2、 当前运行动作: 值为 0-20。
数值 动作名称 数值 动作名称
0 机器空闲 1 移嘴内置
2 移嘴外置 3 落杯
4 开落杯门 5 关落杯门
6 冲泡电机上移 7 冲泡电机下移
8 磨豆 9 出粉
10 出磨豆咖啡 11 速溶 1 出饮料
12 速溶 2 出饮料 13 速溶 3 出饮料
14 速溶 4 出饮料 15 速溶 5 出饮料
16 清洗速溶 1 17 清洗速溶 2
18 清洗速溶 3 19 清洗速溶 4
20 清泡冲泡器 21 出糖
22 落棒 23 落盖

3、 饮料制做结果:值为 0、1、2、3、11、12.
0: 空闲等待
1: 正在制做饮料
2: 制做成功
3: 制做失败
11: 正在落杯
12: 落杯成功等待出饮
21:正在清洗
22:清洗完成
23:正在开机自检
24:开机自检完成
4、 配置参数:值为 0、1。
Bit1=0:有电动门模式
Bit1=1:无电动门模式
Bit0=0:有红外线模式
Bit0=1:无红外线模式
5、 有无杯状态:值为 0、1。
0:无杯
1:有杯
6、 当前水温:值为 0-150℃。
7、 最高水温:值为 0-150℃。
8、 最低水温:值为 0-150℃。
9、剩余水量:值为 0-65535ml。
例:读取机器当前状态
发送:70 00 01 00 71
接收:70 00 A1 0A 00 00 00 00 00 60 64 5F 00 00 80
命令 0x02(饮料制做) 返回码为:0XA2
注:380-C、380-D 必须先发落杯指令,落杯成功后,这条指令才会执行。
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte) 、数据包长度(1Byte)、糖量
(1Byte)、{X 料号(1Byte)、X 出料时间(1Byte)
、出水量(2Byte) 、搅拌继续时间
(1Byte)}*5、配置参数(1Byte)+流水号(2Byte) 、校验码(1Byte)。
1、糖量:范围 0-255,单位为 0.1 秒。
2、料号:表示出料顺序,根据数组依次增加;范围(0-4 或 9) ,0 表示此位不需要出
料,1-5 速溶料,9 磨豆料。(注:料号为非 1-5 或 9 时,将被置为 0)
3、出料时间:范围 0-255,单位为 0.1 秒;料号为 9 时,表示磨豆量,配置此参数无
效,需要手动调节限料阀,控制磨豆量。
4、出水量:范围 0-65535,单位为 ml。
5、搅拌继续时间:水出完后,继续搅拌时间(0-255,单位为 0.1 秒)。
6、配置参数:暂未用。
7、流水号: 范围 0-65535,单位为次,由上位机发送,每条命令不能重复。
第 X 个数组块 说明
1 最先做饮料
2 第 2 个制做饮料
3 第 3 个制做饮料
4 第 4 个制做饮料
5 第 5 个制做饮料
注:1 个数据块=料号+出料时间+出水量+搅拌继续时间。
同一种饮料最多可重复出 5 次。
返回:机器类型、机器编号、返回码、数据包长度、校验码。
例 1:饮料 1、出粉 5S、出水 50ml+饮料 2、出粉 5S、出水 50ml
发送:70 00 02 1D 00 01 32 00 32 00 02 32 00 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 6C
接收:70 00 A2 00 D2
例 2:磨豆、出水 100+磨豆、出水 100+料 1、出粉 5S、出水 50ml+料 4、出粉 10S、出水 100ml
发送:70 00 02 1D 00 09 00 00 64 00 09 00 00 64 00 01 32 00 32 00 04 64 00 64 00 00 00 00
00 00 00 00 00 6A
接收:70 00 A2 00 D2
命令 0x03(配置最高、最低水温) 返回码为:0XA3
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte) 、数据包长度(1Byte)、最高
水温(1Byte) 、最低水温(1Byte) 、校验码(1Byte) 。
1、最高水温:范围(0-150,单位为℃) 。
2、最低水温:范围(0-150,单位为℃) 。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte) 、数据包长度(1Byte)、校
验码(1Byte) 。
例:设置最高水温 100℃,最低水温 95℃。
发送:70 00 03 02 64 5F 4A
接收:70 00 A3 00 D3
命令 0x04(配置有无红外线模式) 返回码为:0xA4
注:机器默认为有红外线模式
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、有无
红外线模式(1Byte) 、校验码(1Byte)

1、 有无红外线模式:值为 0、1。
0:有红外线模式。
1:无红外线模式。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例 1:配置机器为无红外线模式。
发送:70 00 04 01 01 74
接收:70 00 A4 00 D4
例 2:配置机器为有红外线模式。
发送:70 00 04 01 00 75
接收:70 00 A4 00 D4
命令 0x05(清洗) 返回码为:0xA5
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、清洗
管道号(1Byte) 、校验码(1Byte) 。
1、 清洗管道号:值为 1、2、3、4、9、10。
1:清洗速溶通道 1。
2:清洗速溶通道 2。
3:清洗速溶通道 3。
4:清洗速溶通道 4。
9:清洗磨豆咖啡通道。
10:清洗所有通道。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例 1:清洗速溶通道 1。
发送:70 00 05 01 01 75
接收:70 00 A5 00 D5
例 2:清洗所有通道。
发送:70 00 05 01 0A 7E
接收:70 00 A5 00 D5
命令 0x06(清除运行结果) 返回码为:0XA6
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:清除运行结果
发送:70 00 06 00 76
接收:70 00 A6 00 D6
命令 0x07(读取机器版本号) 返回码为:0XA7
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)

返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte) 、版
本号(nByte)、校验码(1Byte) 。
注:版本号为 Ascii 码。
例:清除运行结果
发送:70 00 07 00 77
接收:70 00 A7 18 79 69 6C 65 5F 33 30 38 44 5F 76 73 31 2E 30 5F 32 30 31 37 30 34 32 39
D7
命令 0x08(重启下位机) 返回码为:0XA8
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:清除运行结果
发送:70 00 08 00 78
接收:70 00 A8 00 D8
命令 0x09(配置有无电动门模式) 返回码为:0xA9
注:机器默认为有红外线模式
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、有无
电动门模式(1Byte) 、校验码(1Byte)

1、 有无电动门模式:值为 0、1。
0:有电动门模式。
1:无电动门模式。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例 1:配置机器为无电动门模式。
发送:70 00 09 01 01 79
接收:70 00 A9 00 D9
例 2:配置机器为有电动门模式。
发送:70 00 09 01 00 78
接收:70 00 A9 00 D9
命令 0x0A(自检测) 返回码为:0XAA
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:自检测
发送:70 00 0A 00 7A
接收:70 00 AA 00 DA
二、部件命令
命令 0x11(出水) 返回码为:0xB1
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、通道
(1Byte)+出水量(2Byte)+校验码(1Byte) 。
1、 通道:值为 1、2、3、4,对应具体管道出水,其它值无效。
2、 出水量: 范围 0-65535,单位为 ml。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:通道 3 出水 100ml。
发送:70 00 11 03 03 00 64 05
接收:70 00 B1 00 C1
命令 0x12(落杯) 返回码为:0xB2
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:落杯。
发送:70 00 12 00 62
接收:70 00 B2 00 C2
命令 0x13(落棒) 返回码为:0xB3
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:落杯。
发送:70 00 13 00 63
接收:70 00 B3 00 C3
命令 0x14(移嘴) 返回码为:0xB4
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、移嘴
位置(1Byte) 、校验码(1Byte) 。
2、 移嘴位置:值为 1、2。
1:移嘴内置。
2:移嘴外置。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例 1:移嘴外置。
发送:70 00 14 01 01 64
接收:70 00 B4 00 C4
例 2:移嘴内置。
发送:70 00 14 01 02 67
接收:70 00 B4 00 C4
命令 0x15(冲泡器) 返回码为:0xB5
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、冲泡
器位置(1Byte) 、校验码(1Byte) 。
1、 泡器器位置:值为 1、2。
1:冲泡器下置。
2:冲泡器上置。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例 1:冲泡器下置。
发送:70 00 15 01 01 65
接收:70 00 B5 00 C5
例 2:冲泡器上置。
发送:70 00 15 01 02 66
接收:70 00 B5 00 C5
命令 0x16(磨豆) 返回码为:0xB6
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:磨豆。
发送:70 00 16 00 66
接收:70 00 B3 00 C3
命令 0x17(出粉) 返回码为:0xB7
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:出粉。
发送:70 00 17 00 67
接收:70 00 B7 00 C7
命令 0x18(电磁锁) 返回码为:0xB8
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、打开
电磁锁时间(1Byte) 、校验码(1Byte)

1、打开电磁锁时间:值为 0-255(0.1 秒)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例 1:打开电磁锁 1 秒。
发送:70 00 18 01 0A 63
接收:70 00 B8 00 C8
命令 0x19(落盖) 返回码为:0xB9
发送:机器类型(1Byte) 、机器编号(1Byte)、命令(1Byte)、数据包长度(1Byte)、校验
码(1Byte)。
返回:机器类型(1Byte) 、机器编号(1Byte)、返回码(1Byte)、数据包长度(1Byte)、校
验码(1Byte) 。
例:落盖。
发送:70 00 19 00 69
接收:70 00 B9 00 C9

三、建设设计流程
308-B 设计流程
注:先读状态,再发动作指令;建议尽量不断地读取机器状态。读取机器状态命
令返回值为机器正常、机器空闲、不处于“正在制做饮料”状态时,才可执行其它命令。
上电开机:
1.发送命令 0x01(读取机器状态)。
2.发送命令 0x03(配置最高、最低水温)。
3. 发送命令 0x01(读取机器状态)
,查看最高、最低水温是否为配置值。
制做饮料:
1. 发送命令 0x01(读取机器状态)。
2. 发送命令 0x07,(清除饮料制做结果)。
3. 发送命令 0x01(读取机器状态)。
4. 发送命令 0x02(饮料制做)。
5. 发送命令 0x01(读取机器状态)。
6. 如果饮料制做结果为“制做成功”,则饮料制做成功,做相应成功处理。
如果饮料制做结果为“制做失败” ,则饮料制做失败,做相应失败处理。
308-C、308-D 设计流程
注:先读状态,再发动作指令;建议尽量不断地读取机器状态。读取机器状态命
令返回值为机器正常、机器空闲、不处于“正在制做饮料”或“正在落杯”状态时,才可
执行其它命令。
上电开机:
1.发送命令 0x01(读取机器状态)。
2.发送命令 0x03(配置最高、最低水温)。
3. 发送命令 0x01(读取机器状态)
,查看最高、最低水温是否为配置值。
制做饮料:
3. 发送命令 0x01(读取机器状态)。
4. 发送命令 0x07,(清除饮料制做结果)

5. 发送命令 0x01(读取机器状态)。
2. 发送命令 0x12(落杯)。
3. 发送命令 0x01(读取机器状态)。
4. 发送命令 0x02(制做饮料)。
5. 发送命令 0x01(读取机器状态)。
6. 如果饮料制做结果为“制做成功”,则饮料制做成功,做相应成功处理。
如果饮料制做结果为“制做失败”,则饮料制做失败,做相应失败处理。

You might also like