張鸚琦,徐世許,張萬達
(青島大學 自動化學院,青島266071)
在化工、食品、冶金等行業的生產過程中,配料環節對生產產品的質量起關鍵性作用。 依靠傳統人工配料的方式,不僅存在精度低、效率低下、人力成本高、產品質量參差不齊等問題,而且稱重過程中與化工原料的長期接觸,會嚴重損害員工的身體健康[1]。 針對這些情況,本文設計一套基于以太網通信的液體配料監控系統,實現化工廠自動配料操作以及配料過程的遠程監控、 參數寫入和數據記錄功能,簡化了操作流程,提高企業管理的便利性。
國內現有的配料系統大多以RS-232 或RS-485實現PLC 和上位機之間的通信,但由于串口通信方式存在傳輸距離短、速率低、易受干擾等缺點[2],嚴重限制了配料系統與配料現場的距離,在一些危險化工品的配料生產過程中,增加了操作人員受傷害的風險。 因此本設計采用以太網通信方式實現上位機、觸摸屏和PLC 之間的數據交互,上位機監管軟件使用VB 編寫,減少了使用組態軟件的成本,利用Access 數據庫存儲配料數據,便于企業回溯操作日志。
該液體配料系統由PLC、上位機、觸摸屏、稱重儀表、電磁閥和操作面板組成,系統結構如圖1 所示。 選用歐姆龍CP1H 系列PLC 作為系統的控制核心, 通過插入2 個CP1W-CIF01 串口通訊選件板實現與2 個托利多IND236 稱重模塊的RS232-C 串口通信, 實時讀取稱重罐的稱重數據并控制進放料,PLC 通過擴展CJ1W-ETN21 以太網通信單元和加裝工業交換機的方式搭建與觸摸屏和上位機之間的以太網通信,實現配方設置、遠程狀態監視和數據查詢功能。

圖1 系統結構Fig.1 Structure of supervisory control system
該液體配料系統包括7 個原料罐、2 個稱重罐和1 個攪拌釜,遠程監控自動工作時首先在上位機監管軟件將配方下載至PLC 內, 啟動自動配料,系統按配方原料順序依次稱重,電動機帶動進料泵工作,相應罐體的進料閥門打開,將液體原料從原料罐注入稱重罐內,PLC 通過串口通信得到稱重值,上位機和觸摸屏通過以太網讀取PLC 數據區的稱重數據在監視畫面實時顯示,當稱重數值達到配方內該原料設定值后PLC 停止注料操作,上位機將配料日志保存至Access 數據庫,之后稱重罐底部電磁閥門打開使原料流入攪拌釜內進行攪拌反應。 此外,系統還可通過手動/自動旋鈕切換至手動操作,利用操作面板上的相應按鈕完成的配方手動調試操作。
歐姆龍CP1H 系列PLC 通過加載CJ1W-ETN21 Ethernet 通訊口適配器獲得與上位機和觸摸屏搭建以太網網絡的能力,以太網間采用歐姆龍公司在工業自動化控制網絡中開發的FINS 通信協議,FINS協議的使用可以迅速建立各種網絡間的無縫通信[3]。 通過編程發送FINS 指令,上位機和觸摸屏可以輕松讀寫PLC 數據區的內容,刪減了繁瑣的PLC通信程序。 在以太網FINS 通信中, 各種數據是以TCP/IP 數據包或UDP/IP 數據包的形式發送和接收的[4],以太網FINS 通信協議模型如圖2 所示。

圖2 以太網FINS 通信協議模型Fig.2 Ethernet FINS communication protocol model
FINS 指令通過在應用層對不同設備的節點號、網絡號和單元號的地址定義,替代了傳統的IP 地址使用,為不同網絡間設備的通信提供了一種統一的尋址方式[5]。 在傳輸層中通過定義相應的UDP 端口或TCP 端口號,為FINS 通信提供通信端口,相應的通信協議又被稱為FINS/UDP 協議和FINS/TCP 協議。 該配料系統中選用了FINS/UDP 的方式,通訊時各節點間無明確對等聯系,省去了TCP 每次通訊前的握手過程,傳輸速率高。
使用FINS 協議前,首先需要對上位機、PLC 和觸摸屏的以太網單元進行配置。 利用歐姆龍CXProgrammer 軟件新建CP1H 工程,在ETN21 以太網模塊中設置其IP 地址的前3 個網段與上位機IP 前3 個網段一致,IP 地址的最后1 個網段即PLC 的節點號, 應與以太網模塊的節點號撥碼一致,FINS/UDP 端口號設置為9600, 將配置下載至PLC 重啟即可。 相應的利用MCGS 組態環境配置觸摸屏以太網參數,在設備管理界面依次添加“通用TCP/IP 父設備”和“歐姆龍FINS 以太網”,并在其屬性界面修改IP 地址和節點號。 以太網間配置如圖3 所示。

圖3 以太網間配置Fig.3 Ethernet configuration
自動配料操作的第一步是進行配方管理,利用上位機監管軟件選擇配方并通過發送FINS/UDP 指令的方式將配方信息寫入PLC 數據區內。 配方信息儲存在上位機Excel 表格內,包括配料名稱、配料重量、提前量,操作員可根據需求設定相應值。 上位機配方管理界面如圖4 所示。

圖4 配方管理界面Fig.4 Formula management interface
FINS/UDP 指令是一種嵌套格式數據包,分為指令幀和響應幀2 種形式[6]。FINS 幀結構如圖5 所示,由一個10 字的FINS 報頭,2 字的FINS 指令碼和最大2000 字的FINS 參數/數據區構成。 FINS 報頭存儲著傳輸控制信息,向PLC 寫入配方時源網絡為上位機,目標網絡為PLC 以太網單元,利用VB 完成FINS 報頭的封裝,相應代碼如下。


圖5 FINS 幀結構Fig.5 FINS frame format
FINS 參數區封裝詳細的配方信息,使用VB 中的Excel 對象操作上位機配方文件,提取配方信息并將其轉換為十六進制表示,之后分配PLC 數據區通道D100、D200……D700 分別存儲七種配料信息。以第一種配料A 設定重量300 kg, 提前量1 kg,存儲在D100 起始的數據區內為例,FINS 參數區命令碼的格式為“010282006400000400010041012C0001”,其中指令碼“0102”代表寫入指令,“82006400”代表起始地址為D100, 配料重量0x012C 和提前量0x0001 分別寫入PLC 數據區D102 和D103 中。
以太網通信時, 首先初始化VB 中的Winsock控件,設置端口號9600、遠程PLC 地址和使用UDP協議,之后利用Winsock 控件的SendData 函數發送封裝好的WriteCommand 指令幀。 通過Winsock 控件的GetData 函數接收響應幀, 若響應幀的最后兩字校驗位為0x0000 則代表配方寫入成功。
PLC 通過RS-232C 與2 個稱重模塊IND236 通信,設置稱重模塊COM1 為連續發送模式,通過串口通信將稱重值上傳至PLC 內,利用PLC 內的稱重數據處理子程序處理得到稱重值并存儲在DM1000數據區內。 當稱重值等于配方設定值與提前量之和時,稱重到位標志位置1,停止注料。
上位機和觸摸屏通過以太網通信向PLC 內發送FINS/UDP 讀指令,讀取DM1000 內的稱重數值,將接收的響應碼解碼即可得出稱重數值,并在相應的監視窗口中實時顯示,便于操作人員觀察配料過程。 同時上位機讀取PLC 稱重到位標志,當標志位為1 時, 利用VB 中的Adodc 控件和DataGrid 控件將操作員信息、時間、配料信息和實際稱重值寫入Access 數據庫內。 企業可通過上位機監管軟件的數據查詢窗口按條件檢索,也可將數據導出到Excel 表格內,提高數據可視性和操作便利性[7]。 數據查詢窗口如圖6 所示。

圖6 數據查詢界面Fig.6 Data query interface
本文基于以太網通信設計了由上位機、觸摸屏和PLC 組成的液體配料監管系統,實現了上位機和觸摸屏向PLC 寫入配方信息,以及讀取稱重數據進行遠程監控和數據存儲的功能。 該系統結構精簡,系統穩定性高,為企業提供了遠程生產監控和生產日志回溯的能力。 該系統經調試成功已投入企業的實際使用,極大的提高了企業的自動化生產水平。