前言: 
以下主要是通过“analog to serial”来完成空调的协议控制;以海林面板进行举例。 
1、协议格式如下 
|    功能码    |  |  |  |   |  |  |  |   |  |  |  |   |  |  |  |   |  |  |  |   |  |  | 01:DA;02:DB;03:Y;04:FCV2;05 B2;06 A2  |   |  |  |  |   |  |  |  |   |  |  |  |   |  |  |  |   |  |  | 00:无; 01:有 02:锁定开关机键 03:锁定“模式”、“定时”、“风速”、“上”、“下”键;   |  
  
2、逻辑块“analog to serial”介绍 
Analog to Serial主要用于将输入的模拟量转换成串量。 只有当数字量< trig >状态值由0变1时,功能块将所有输入模拟量的现状态值分别转换成16进制,然后按顺序组合成字符串由<str$>输出; 当数字量< trig >状态值保持为0或1时,<str$>不输出; 当输入模拟量<ainN>的值大于255时,按255处理。 例如:由4个模拟量输入,其状态值在< trig >出现上升沿时分别为“10”、“100”、“200”“300”;<str$>输出:“\x0A\x64\xC8\xFF”。  
 
二、逻辑编写-数字量控制部分 
1、定义6个字节组合成串量;在将输出的串量进行CRC16计算得到完整的协议。 
 
 
说明: 
a、由于每条控制命令都是由8个字节组成,后两个字节是前6个字节的CRC;那么我们通过“analog to serial”定义前6个字节。 
b、当““KT1_trig”触发时,就会将组成的字节转成串量。 
 
 
2、对前6个字节赋值。 
2.1、地址赋值 
 
 
说明:在这里我们将空调地址所在的1字节拿出来,单独通过“analog intial”进行赋值。 
原因:便于复制其它空调地址的修改 
2.2、控制命令赋值 
 
 
 
 
说明: 
a、我们通过“analog initialize sigin”实现“开机”、“关机”、“制冷”、“制热”、“风速高”、“风速中” 
、“风速低”、“风速自动”控制命令分别对2-6各字节的赋值操作。 
 
 
2.3组合输出 
 
 
说明: 
a、通过“or”实现当上述的任意控制命令触发时,就输出触发“stepper”触发“analog to serial”转成串量和“serial CRC16 modbus”块进行CRC16运算输出。 
三、逻辑编写-温度控制部分 
3.1温度组合 
 
 
说明: 
a、由于温度是APP上温度值模拟量的变化,然后触发输出对应的控制协议;为了便于区分,我们队温度部分同样使用了一组“analog to serial”和“serial CRC16 modbus”。 
3.2温度的2-6字节赋值 
 
 
说明: 
a、由于第一个字节地址已经单独赋值过了,所以我们只需要对2-6字节赋值。 
b、在此我们单独初始化了一个状态值为1的变量,后面会使用到。 
 
 
3.3当温度变化时,触发输出温度控制协议 
 
 
说明: 
a、为了知道温度值发生过变化,我们将APP输出的设置温度值进行加1后再减1的操作;得出的值在和空调输出的设置温度值进行比较。 
b、通过“analog comparision”比较两个值是否相等。 
c、???在次你可能会疑惑这两个值肯定相等???原因:是的,这两个值最终肯定相等;但是在加1减1的运算过程中,这两个值是不相等的。 
d、当两个值不相等时,那么便表示空调的设置温度发生了变化,这个时候我们通过“stepper”触发“analog to serial”转成串量和“serial CRC16 modbus”块进行CRC16运算输出。 
 
 
四、状态查询 
4.1、同样类似上面,我们对状态查询的2-6字节赋值 
 
 
 
4.2、对返回的数据过滤出该地址的数据。然后根据返回字节的含义分理出相应字节。 
 
 
4.3、对分离出的字节匹配出状态反馈 
 
 
说明:将反馈变量关联到APP块上,即完后单个空调的编写。 
 
五、复制另一台空调的控制 
 
 
5.1、将第一台空调控制的整个文件夹复制出来。 
 
 
5.2、将地址ID修改掉 
 
 
 
5.3、打开所有逻辑块,将所有“KT1_”替换成“KT2_” 
 
 
说明: 
a、打开所有块,选择“替换打开页”,那么所有打开页的变量都会被统一替换掉。 
 
 
六、以上完成海林空调面板的控制逻辑编写。 
说明: 
a、一台的控制比较繁琐;但完成一个后就可以复制粘贴其它的面板控制。 
b、对前6个字节的赋值,是根据协议的格式来的。以下一个空调内机ID1的控制解析协议可以作为参考。 
| 空调控制协议 | 开 | \x01\x06\x00\x02\x00\x01\xE9\xCA |  | 关 | \x01\x06\x00\x02\x00\x00\x28\x0A |  | 风速自动 | \x01\x06\x00\x05\x00\x00\x99\xCB |  | 高 | \x01\x06\x00\x05\x00\x01\x58\x0B |  | 中 | \x01\x06\x00\x05\x00\x02\x18\x0A |  | 低 | \x01\x06\x00\x05\x00\x03\xD9\xCA |  | 制热 | \x01\x06\x00\x03\x00\x02\xF8\x0B |  | 制冷 | \x01\x06\x00\x03\x00\x01\xB8\x0A |  | 18 | \x01\x06\x00\x04\x12\x00\xC4\xab |  | 19 | \x01\x06\x00\x04\x13\x00\xC5\x3B |  | 20 | \x01\x06\x00\x04\x14\x00\xC7\x0B |  | 21 | \x01\x06\x00\x04\x15\x00\xC6\x9B |  
  
C、状态查询参考下方 
查询:01 41 00 02 00 08 9D C3 
反馈组成格式:01 41 10(数据长度)00 01(开关机)00 02(模式)10 05(温度整数和小数位)00 03(风速) 00 00 00 00 00 00 1C 05(室内温度)9A 77 
 
 
 |