李曉超
(江南機電設計研究所,貴州 貴陽 550009)
ZigBee技術是基于IEEE 802.15.4標準的一種短距離無線通信技術,具有功耗低、成本小、組網能力強以及數據傳輸安全可靠等諸多優勢[1]。其管理機構ZigBee聯盟先后制定了ZigBee 2012、ZigBee RF4CE和ZigBee IP等技術規范,并推出了針對樓宇、射頻遙控裝置、能源和醫療保健等10項領域的應用標準[2]。同時,各大集成電路(Integrated Circuit,IC)廠商,如飛思卡爾、Ember以及Chipcon均相繼推出了自主開發的ZigBee芯片和模塊[3]。目前在工業監控、無線傳感器網絡、智能家居等物聯網領域,ZigBee技術均得到了廣泛應用。
根據液晶面板檢測的分布式氣路控制需求,需要實現主控制器與氣路控制器之間的無線信息交互及狀態監控。其中,主控制器為英國的Trio控制器,氣路控制器為ARM控制器,無線通信為ZigBee模塊。主控制器下傳給從控制器的信息包括動作流程狀態、動作流程命令、機床狀態以及玻璃型號等信息,從控制器上傳給主控制器的信息主要包括I/O狀態、動作流程狀態、動作流程執行回復等。控制器和Zigbee模塊間的通信接口為RS232-C,通過Modbus協議的RTU模式進行數據交換[4-9]。
設計了上位發送到下位的命令流格式和下位發送到上位的命令流格式。所有的命令流采用32位的數據,對應Trio控制器的一個32位的虛擬現實(Virtual Reality,VR)變量寄存器。
上位發送到下位的命令流格式如下:(1)D3—D0位定義為動作流程狀態碼,用于監視下位每個動作執行的狀態,其中1表示動作執行中,2表示動作完成,3表示動作報警1號,4表示動作報警2號,依次類推;(2)D7—D4位定義為動作流程碼,用于標識動作執行的流程,其中1表示氣路系統初始化(下位),2表示機械臂到達待檢玻璃(上位),3表示吸盤吸附待檢玻璃(下位),4表示機械臂抓取待檢玻璃到位(上位),5表示吸盤釋放待檢玻璃(下位),6表示機械臂從到位的待檢玻璃處移走(上位),7表示大理石吸附玻璃(下位),8表示檢測完成(上位),9表示大理石吹氣(下位),10表示機械臂到達檢完玻璃處(上位),11表示吸盤吸附檢完玻璃(下位),12表示機械臂將檢完玻璃移動到位(上位),13表示釋放檢完玻璃(下位),14表示機械臂移回原位(上位);(3)D14—D8位定義為機床狀態碼,用于監視機床狀態,其中0表示機床運行正常,2表示機床出現1號報警,依次類推;(4)D15位定義為玻璃型號碼,用于標識玻璃型號,其中0表示大玻璃,1表示小玻璃;(5)D19—D16位定義為系統識別碼,用于識別子系統,其中1表示氣路系統,其他預留;(6)其他位為備份。
下位發送到上位的命令流格式如下:(1)D6—D0位定義為輸出狀態碼,用于監視各輸出口狀態,其中0表示相應輸出口斷開,1表示相應輸出口閉合;(2)D19—D7位定義為輸入狀態碼,用于監視各輸入口狀態,其中0表示相應輸出口斷開,1表示相應輸出口閉合;(3)D23—D20位定義為動作流程狀態碼,用于監視下位每個動作執行的狀態,其中1表示動作執行中,2表示動作完成,3表示動作報警1號,4表示動作報警2號,依次類推;(4)D27—D24位定義為動作流程執行回復碼,用于標識動作執行的流程,其中1表示氣路系統初始化(下位),2表示機械臂到達待檢玻璃(上位),3表示吸盤吸附待檢玻璃(下位),4表示機械臂抓取待檢玻璃到位(上位),5表示吸盤釋放待檢玻璃(下位),6表示機械臂從到位的待檢玻璃處移走(上位),7表示大理石吸附玻璃(下位),8表示檢測完成(上位),9表示大理石吹氣(下位),10表示機械臂到達檢完玻璃處(上位),11表示吸盤吸附檢完玻璃(下位),12表示機械臂將檢完玻璃移動到位(上位),13表示釋放檢完玻璃(下位),14表示機械臂移回原位(上位);(5)D27~D24位定義為系統識別碼,用于識別子系統(其中1表示氣路系統,其他預留;(6)其他位保留。
Modbus協議下RTU模式的通信數據結構如下所述:(1)保持無輸入數據≥10 ms為通信開始;(2)從站地址,具體為8位二進制數地址;(3)命令碼,具體為8位二進制數地址;(4)數據(n-1)—數據0,表示數據內容,具體為8n位二進制數,n≤202;(5)循環冗余校驗(Cyclic Redundancy Check,CRC)校驗和,由CRC校驗和低字節以及CRC校驗和高字節組成;(6)保持無輸入數據≥10 ms為通信結束[10]。
整個通信過程如下所述:一是初始化通信相關參數,其中包括了TRIO控制器串口通信參數、ZigBee組網通信參數以及ARM控制器的串口參數;二是按照Modbus協議下遠程測控終端(Remote Terminal Unit,RTU)模式的通信數據結構進行通信數據的傳輸。
(1)初始化Zigbee組網通信參數。將與TRIO控制器連接的Zigbee模塊設置成主節點,與ARM控制器連接的Zigbee模塊設置成從節點,同時根據組網原則設置兩個模塊的波特率、網絡編號、頻道,并保持一致。設置完成后,主節點先上電,然后從節點上電,即可完成無線模塊的組網。
(2)設置TRIO控制器串口通信參數。設定通信地址Address=1,采用SETCOM(baudrate,databits,sto pbits,parity,port[,mode][,variable][,timeout] [,linetype])設置通信參數,其中波特率、數據位、停止位、校驗位以及ZigBee模塊的設置一致,同時選用RS232端口、Modbus RTU通信協議傳輸32位整型變量。
(3)設置ARM控制器的串口參數。設定從站地址Slave Address=2,設定行控制寄存器和波特率分頻寄存器的通信參數與Zigbee模塊一致,初始化串口控制器寄存器、先進先出隊列(First Input First Output,FIFO)控制寄存器以及中斷控制寄存器等。
從站地址碼為通信傳送的第一個字節,這個字節表明預先設定地址碼的ARM控制器將接收由TRIO控制器發送來的信息,并且響應回送以ARM控制器的地址碼開始。TRIO控制器發送的地址碼表明將發送到的從機地址,而ARM控制器發送的地址碼表明回送來的從站地址。
命令碼為通信傳送的第二個字節,Modbus通信規約定義功能號為1—127,本子系統利用其中的一部分命令碼。作為主機請求發送,通過功能碼告訴從機執行什么動作;作為從機響應,從機發送的功能碼與從主機發送來的功能碼一樣,并表明從機已響應主機進行操作。如果從機發送的功能碼的最高位為1,則表明從機沒有響應操作或發送出錯。同時,命令碼也決定了通信數據結構中的數據格式。本系統中需要用到的命令碼03(03H)表示讀寄存器的內容值,16(10H)表示預設多個寄存器的值。
當TRIO控制器需要更新ARM控制器的執行狀態時,使用命令碼16(10H),具體的發送數據的格式為從站地址(02H)+命令碼(10H)+起始數據地址高字節+起始數據地址低字節+寄存器個數高字節+寄存器個數低字節+需要設置的字節數+需要發送的數據+CRC校驗數據的高字節+CRC校驗數據的低字節。當ARM控制器需要獲取TRIO控制器的執行命令時,使用命令碼03(03H),具體的發送數據的格式為從站地址(02H)+命令碼(10H)+需讀取數據的起始地址高字節+需讀取數據的起始地址低字節+需讀取的數據的個數+CRC校驗數據的高字節+CRC校驗數據的低字節。發送完成后TRIO控制器回應ARM控制器的數據信息。
CRC校驗和主要按照校驗規則完成數據的CRC校驗。最后根據發送數據的格式要求完成數據的發送,同時解析接收到的數據,提取上位的信息。
氣路控制原理如圖1所示,根據氣路系統的控制情況,建立了如表1所示的故障診斷機制,其中的LED1—LED4依次為ARM開發板上的4個指示燈。當出現報警信息時,系統通過指示燈和蜂鳴器提示操作者,操作者根據報警處理機制,重新執行相應功能或是停止設備,排查故障,待故障解除后重新啟動系統。

表1 報警故障診斷表
進行分布式控制的試驗驗證,其試驗過程如下所述。(1)搭建如圖2所示的硬件測試環境,將所有與氣路系統控制相關的壓力開關、電磁閥等信號(具體見圖1)接入轉換板的一端,另一端連接到ARM開發板GPIO端的對應端口,具體對應關系見表2。(2)進行接口轉換測試,主要完成兩個方面,一是通過信號轉換板將24 V的輸入信號轉換為3.3 V信號傳入ARM開發板,二是將ARM開發板輸出的3.3 V信號轉換為24 V信號驅動電磁閥執行。經驗證,轉換信號均正常。(3)根據氣路控制流程、數據交互格式,完成氣路系統的分布式控制。在控制過程中,ARM開發板主要執行控制命令,同時將氣路狀態信息反饋給Trio控制器,Trio控制器根據氣路運行情況順次完成設備的其他控制。

表2 端口對應關系
基于Zigbee模塊在Trio控制器、ARM控制器的硬件架構基礎上,開展了數據傳輸信息流設計并進行了接口轉換、氣路控制信息傳輸試驗驗證,驗證結果表明,該傳輸方案能滿足液晶面板檢測氣路控制要求。