Step1:物理连接
从空调的485口引出两根线到斯图斯厂家工程师带来的接口通讯板上(该板是工程师自己带来的,可以通过这块主板对空调进行通信),然后从接口通讯板的串口(+4)上引出串口线,通过串口线可以实现pc机与空调的连接。
Step2: 软件连接
使用斯图斯厂家C6000 mib软件的terminal功能项对空调的数据进行读取。
测试中我们使用Data 1命令读取控制器Unit 1 中存储的数值,返回的结果大致分四类:当前温度湿度数值、当前温度湿度设置值、报警 、温度湿度的Supply值。如图所示:
测试中我们使用 info 命令读取控制器软件的版本,结果显示为C6000 MIB Software version 1.33,而并不是空调面板显示的 C1002型的控制软件(空调面板标明该款设备型号为C1002)。如图所示:
Step3:软件截取
测试中我们使用串口调试工具AccessPort 对C6000 mib 和斯图斯工程师带来的接口通讯板间的数据进行截取,抓取的数据如下:
SUDT ACCESSPORT LOG FILE - Monitor mode
监控: COM1
创建时间: 2006-12-22, 03:23:22
计算机名: ZHU
系统版本: Microsoft Windows XP Professional Service Pack 2 (Build 2600)
#Time Function Data ( Hex )
1 [00000000] IRP_MJ_CREATE Port Opened - mib.exe
2 [00000000] IOCTL_SERIAL_SET_BAUD_RATE Baud Rate: 9600
3 [00000000] IOCTL_SERIAL_SET_LINE_CONTROL StopBits: 1, Parity: No, DataBits: 8
4 [00000150] IRP_MJ_WRITE Data: 0D
5 [00000154] IRP_MJ_READ Data: 0A 0D 4D 49 42 20 36 30 30 30 20 53 74 61
6 [00000155] IRP_MJ_READ Data: 74 75 73 20 30 33 3A 32 32 3A 35 37 20 30
7 [00000157] IRP_MJ_READ Data: 31 2E 30 30 2E 30 30 0A 0D 4C 6F 67 67 69
8 [00000158] IRP_MJ_READ Data: 6E 67 3A 20 6F 66 66 0A 0D 53 65 71 75 65
9 [00000160] IRP_MJ_READ Data: 6E 63 69 6E 67 3A 20 6F 66 66 0A 0D 54 65
10 [00000161] IRP_MJ_READ Data: 6D 70 65 72 61 74 75 72 65 20 69 6E 20 B0
11 [00000186] IRP_MJ_READ Data: 43
12 [00000186] IRP_MJ_READ Data: 0A 0D 54 79 70 65 20 27 68 65 6C 70 27 20 66 6F 72 20 63 6F 6D 6D 61 6E 64 6C 69 73 74 0A 0D 0A 0D
13 [00000274] IRP_MJ_WRITE Data: 64
14[00000296] IRP_MJ_WRITE Data: 61
15[00000343] IRP_MJ_WRITE Data: 74
16[00000372] IRP_MJ_WRITE Data: 61
17[00001117] IRP_MJ_WRITE Data: 20
18[00001162] IRP_MJ_WRITE Data: 31
19[00001237] IRP_MJ_WRITE Data: 0D
20[00001240] IRP_MJ_READ Data: 0A 0D 52 65 74 75 72 6E 20 61 69 72 20 74
21[00001241] IRP_MJ_READ Data: 65 6D 70 65 72 61 74 75 72 65 3A 20 32 30
22[00001243] IRP_MJ_READ Data: 2C 33 B0 43 20 20 20 20 20 20 53 75 70 70
23[00001244] IRP_MJ_READ Data: 6C 79 20 61 69 72
24[00001248] IRP_MJ_READ Data: 20 74 65 6D 70 65 72 61 74 75 72 65 3A 20
25[00001250] IRP_MJ_READ Data: 30 2C 30 B0 43 0A 0D 52 65 74 75 72 6E 20
26[00001251] IRP_MJ_READ Data: 61 69 72 20 68 75 6D 69 64 69 74 79 3A 20
27[00001253] IRP_MJ_READ Data: 34 32 2C 38 25 20 20 20 20 20 20 20 20 20
28[00001254] IRP_MJ_READ Data: 20 53 75 70 70 6C 79 20 61 69 72 20 68 75
29[00001255] IRP_MJ_READ Data: 6D 69 64 69 74 79 3A 20 30 2C 30 25 0A 0D
30[00001257] IRP_MJ_READ Data: 53 65 74 70 6F 69 6E 74 20 74 65 6D 70 65
31[00001258] IRP_MJ_READ Data: 72 61 74 75 72 65 3A 20 32 30 2C 30 B0 43
32[00001260] IRP_MJ_READ Data: 20 20 20 20 20 20 20 20 53 65 74 70 6F 69
33[00001261] IRP_MJ_READ Data: 6E 74 20 68 75 6D 69 64 69 74 79 3A 20 34
34[00001263] IRP_MJ_READ Data: 30 25 0A 0D 41 6C 61 72 6D 73 3A 0A 0D 4E
35[00001264] IRP_MJ_READ Data: 6F 0A 0D 55 6E 69 74 73 74 61 74 75 73 3A
36[00001266] IRP_MJ_READ Data: 20 6F 6E 0A 0D 0A 0D
其中 IRP_MJ_WRITE 是软件送命令到斯图斯工程师带来的接口通讯板
IRP_MJ_READ 是斯图斯工程师带来的接口通讯板返回的信息。
下图是我们直接用acceport访问控制的过程:
如图所示,发送的指令上面都应有对相应的值返回,但是我们发现发送窗口的值为 data 1 这个命令其实是mib 的指令(该指令是用来读取unit1 中存储的数值,是另外一种通信方式),并不是我们所需的MODBUS指令,这样就无法对空调进行实质性的数据对接。