插針機中有兩個重要的部件HMI和PLC,HMI提供用戶操作和界面顯示,而PLC則控制電機的運動邏輯。致遠電子的ZTP800和AWTK-HMI解決方案可以快速開發(fā)插針機或其他設(shè)備的HMI界面。
AWTK介紹
致遠電子的AWTK是開源GUI引擎,提供了AWTK-C、AWTK-MVVM和AWTK-HMI等多種解決方案來實現(xiàn)界面編程。其中AWTK-C解決方案使用C語言來開發(fā)GUI,靈活度最高,但是學(xué)習(xí)使用門檻也較高。AWTK-MVVM解決方案則進一步簡化C的編程,支持控件與變量綁定聯(lián)動,讓界面和業(yè)務(wù)開發(fā)分離。而AWTK-HMI解決方案使用最簡單,內(nèi)置Modbus通信模塊,不用寫C代碼,只需使用AWStudio軟件拖拽控件和配置屬性即可實現(xiàn)HMI界面,因此本次也是使用AWTK-HMI方案來實現(xiàn)插針機的上位機。
插針機系統(tǒng)介紹
本次使用?ZTP800?作為插針機的HMI設(shè)備,中間使用Modbus協(xié)議與PLC通信。ZTP800中內(nèi)置的AWTK-HMI運行時引擎,讓用戶無需額外編寫C代碼即可實現(xiàn)插針機的人機交互界面。
圖2??插針機系統(tǒng)介紹
注:AWTK-HMI是開源的HMI運行時引擎,如想了解編譯方法請參考AWTK-HMI倉庫的說明文檔,在ZTP800的部署AWTK可以參考ZTP800在線文檔的AWTK移植章節(jié)。
插針機HMI開發(fā)流程
只需要3步:
在PC配置好Modbus的通信點表文件;
使用AWStudio軟件通過簡單拖拽做界面設(shè)計;
最后把工程下載到ZTP800運行。
1. 定義Modbus寄存器點表先定義一個Modbus寄存器點表來約定HMI和PLC的通信規(guī)范,HMI作為Modbus主機,PLC作為從機。該表格需要根據(jù)插針機的需求來定,例如:手動移動托板,手動移動主軸,調(diào)整主軸/托板速度等。
圖3??Modbus 寄存器只讀表格圖
圖4??Modbus?寄存器寫入表格圖2
2. 創(chuàng)建AWTK-HMI的Modbus配置文件
AWTK-HMI要使用Modbus通信功能,需要用戶創(chuàng)建一個配置文件modbus_model.json。
圖5??modbus_model.json配置文件
modbus_model.json主要用于配置Modbus通信的寄存器和AWTK變量對象的映射關(guān)系,每個channel(通道)用于表示一片讀寫Modbus寄存器區(qū)域,而variables定義了AWTK變量對象和channel的關(guān)系。
3. AWTK-HMI界面開發(fā)
在AWStudio創(chuàng)建一個新AWTK工程,如下圖:
圖6??插針機首頁開發(fā)界面
把需要顯示的控件從工具欄拖放到頁面上:
圖7??插針機操作界面
首先,需要給窗口配置v-model屬性,啟用Modbus功能。在窗口增加一個自定義屬性v-model,屬性值設(shè)置為【modbus_client(name=modbus_model,share=true)】,代表該頁面使用modbus_model.json的通信配置。如下圖:
圖8??變量綁定規(guī)則界面
下一步,把上面modbus_model.json映射好的變量綁定到控件上面,讓Label控件根據(jù)變量當(dāng)前值自動改變顯示內(nèi)容,或自動把Edit控件設(shè)置的參數(shù)下發(fā)給下位機。
例如要讓Label控件顯示補針狀態(tài),可以給這個Label控件添加自定義屬性【v-data:text】,屬性值設(shè)置為【g_is_needle_model?”補針狀態(tài)”:”非補針狀態(tài)”】,代表控件的text屬性會跟隨g_is_needle_model變量變化。如下圖:
圖9??添加自定義屬性界面
例如要把設(shè)置托板速度的Edit控件的輸入數(shù)值下發(fā)到下位機,可以給這個Edit控件添加自定義屬性【v-data:text】,屬性值設(shè)置為【g_plane_speed】,代表控件的text屬性改變后會立即更新g_plane_speed變量。如下圖:
圖10??添加自定義屬性界面2
Modbus模塊會自動同步g_is_needle_model、g_plane_speed等變量,并周期讀寫從機,因此上面控件顯示就會周期性的更新,或周期性的把輸入值寫入從機。
用戶甚至可以把變量值立即寫入從機,在控件的事件響應(yīng)腳本中增加代碼【exec('update', 'write_registers')】即可,其中write_registers就是modbus_model.json定義的通道名。
4. AWTK-HMI工程下載運行
上面的工程開發(fā)完成后,點擊AWStudio上的打包按鈕,在工程目錄下會生成出一個res文件夾,如下圖所示。把res文件夾的內(nèi)容下載到ZTP800的AWTK-HMI運行時程序的對應(yīng)位置,重啟設(shè)備就可以順利啟動我們新開發(fā)的HMI界面。
圖11??res文件夾
圖12??運行效果