談太良
(湖北大峪口化工有限責任公司,湖北 鐘祥 431910)
JJF1101-2003《環境試驗設備溫度、濕度校準規范》中詳細闡述了環境試驗設備的測量過程及要求。應用工業觸摸屏HMI 與前端溫度RTD 傳感器和濕度HC2 傳感器采集模塊,通過RS485(自定義協議)進行連接,可以穩定高效地實現多通道溫場的溫度和濕度數據采集,用戶可以根據現場測試要求,靈活地配置傳感器通道,并實時進行記錄、曲線監控及數據存儲,滿足了JJF1101 校準規范的測試技術要求[1]。
主界面包括顯示窗口和設置按鈕,以6 通道溫濕度計量系統為例,通道可以根據系統的設置針對性地顯示通道溫度(℃)值或相對濕度(%RH)值。系統的RTC 時鐘由HMI 的鋰電池供電以保證斷電后仍能正確計時,如顯示2021-02-02(TUE)08:34:39。計量系統可以針對實時通道數據進行USB 截圖(擴展可實現截圖熱敏打印),U 盤scr*.bmp 是截圖文件的完整路徑。整體HMI 的圖像分辨率為長800×寬400,外觀尺寸4.3 寸的顯示屏可以用較高的清晰度顯示內容[2]。
HMI 調用趨勢圖元件對6 通道的溫濕度數據進行實時曲線顯示,各個通道的寄存器上限分別對應RW1、RW5、RW9、RW13、RW17 和RW21。調用LB501 位寄存器可以實現曲線的數據清屏,以滿足調試的數據查看。如果想針對性地顯示曲線數據,可以點擊“CH1”~“CH6”按鈕(分別對應LB101.0~LB101.5),針對性地隱藏和顯示通道曲線。6 個通道的實時數值保存在寄存器LW301、LW303、LW305、LW307、LW309 和LW311 中。
調用歷史數據顯示元件可以實現6 通道溫濕度數據的報表記錄功能,曲線和報表周期(秒)可以通過RW200 寄存器設置。用戶應用歷史數據顯示元件配置LW301 開始的6 個單精度浮點數數據寄存器,通過LB500 位進行暫停清除,歷史數據以CSV 表格的形式保存至USB DISK1 外部存儲設備的table 子目錄中,為了便于用于查看,將標題欄名稱分別設置為:日期、時間、CH1、CH2、CH3、CH4、CH5 和CH6。
用戶可以對HMI 觸摸屏的硬件參數進行設置,RTC 年(LW10005 寄存器)、RTC 月(LW10004 寄存器)、RTC 日(LW10003 寄存器)、RTC 時(LW10002 寄存器)、RTC 分(LW10001 寄存器)、RTC 秒(LW10000 寄存器)。HMI 背光休眠時間(LW10011 寄存器),背光亮度調節(LW9140寄存器),HMI 蜂鳴器啟停(LW10012 寄存器)。由于溫場的曲線縱軸數值范圍不同,溫度RTD 范圍-200℃~850℃,濕度HC2 范圍0%RH~100%RH,縱軸標尺過大或過小都不能合適地呈現出通道數據的變化情況。因此,將CH1~CH6 通道的縱軸標尺分別設置,如:CH1 通道使用RW1 寄存器(下限值)、RW3 寄存器(上限值)。針對外置U 盤數據存儲和導出,詳細路徑如下[3]:
U 盤export able*.csv 是存CSV 的導出文件。
U 盤 rendHistory Trend*.csv 是曲線數據。
U 盤 rendHistory Data*.csv 是報表數據。
U 盤scr*.bmp 是截圖文件。

圖1 首頁界面Fig.1 Home page interface

圖2 曲線界面Fig.2 Curve interface

圖3 報表界面Fig.3 Report interface
觸摸屏HMI 自定義協議的串口驅動,目前可以支持3 個串口同時定制非標自由口協議,分別為:Customized UART protocol-1,Customized UART protocol-2,Customized UART protocol-3,可對應3 個串口。組態編輯的使用方式同其他的PLC 組態方式一樣,直接連接屏即可,通過LW 和LB 寄存器進行數據的交換[4,5]。Cusomized UART Protocolx 目錄中的COMx.c 由用戶編寫,應用C 語言編寫代碼至void ProcessComx(int fd)函數中,編寫好程序后,只需運行“build.bat”批處理文件即可生成驅動文件,生成的驅動文件位于目錄下安裝目錄libplc 中,名稱為“Customized UART protocolx.so”和“Customized UART protocolx.ge”。目前,串口支持的波特率為4800,9600,19200,38400,57600 和115200,HMI 的3 個串口模式為COM0:232/485/422,COM1:232/485/422,COM2:232。
HMI 通過自定義協議的寄存器LW10、LW20、LW30、LW40、LW50、LW60 讀取RTD 的原始電阻(Ω)值。由于前段硬件采集模塊的低溫漂采樣電阻自身存在偏差,需要逐個將通道接入標準電阻箱的固定阻值,RTD 為Pt100時,選用100Ω。此時調整各個通道的修正值,依次存入寄存器R19、R29、R39、R49、R59 和R69,以實現各個RTD 采集通道的準確度要求。此外,由于前端多功能采集模塊的傳感器類型需要人工設置,如RTD 時采集電阻值,HC2 時采集電壓值,在HMI 界面上逐個通道都添加了設置按鈕,如1 通道使用LB1(設置RTD 類型)、LB2(設置HC2 類型),其它通道類似。JJF1101-2003《環境試驗設備溫度、濕度校準規范》中既有溫度通道,又有濕度通道。設置RB 寄存器中的位標識,來決定通道內的數值類型,如:RB.1 是1 通道,RB.2 是2 通道,以此類推。為了實現HMI 的數據聯調和擴展,在網絡設備配置處,設置IP 地址192.168.0.7,端口號502,通訊協議Modbus TCP Slave,站號1。這樣遠端PC 或者PLC 可以通過modbus tcp 協議對HMI 溫場數據采集設備進行實時數據交互,以實現設備的靈活應用。
用全功能版的cygwin 覆蓋EV5000 中文件,在cygwin 所在目錄新建一個名為customized_driver 文件夾,在custmoized_driver 目錄下是3 個文件夾,分別代表可自定義的3 種自由協議,Cusomized UART Protocolx 目錄中COMx.c 由用戶編寫。COMx.c 編寫好后,運行build.bat 批處理文件,即可在libplc目錄生成Customized UART protocolx.so 驅動,Customized UART protocolx.ge 是與該驅動配套的文件,固定不變。串口自定義協議的驅動,目前可以支持3 個串口同時定制自由協議,分別為Customized UART protocol1,Customized UART protocol2,Customized UART protocol3,可對應3 個串口。組態的使用方式同其他的PLC 組態方式一樣,直接連接屏即可,通過LW 和LB 寄存器進行數據的交換。需要用戶實現的函數void ProcessComx(int fd)調用方式:周期執行,間隔可調用Delay 函數來加大循環周期,fd 為串口句柄功能:用戶程序的“main 函數”。13 個自定義調用的API 函數包括:

圖4 設置界面Fig.4 Setting interface

圖5 調試界面Fig.5 Debug interface
1)void Delay(int ms)功 能:用于延 遲ProcessComx 的運行周期,防止頻繁讀寫,減輕控制器的壓力。
2)int ReadData(int fd,unsigned char*read_buff,int count,int m)功能:從串口讀取count 個數據,存放在red_buff 中,ms 是讀數據超時時間。
3)int WriteData(int fd,unsigned char*read_buff,int count)功能:從串口發送count個數據,發送數據存放在read_buff 中。
4)unsigned short Read_LW(unsigned int n)功能:讀取LWn 的寄存器的值。
5)void Write_LW(unsigned int n,unsigned short val)功能:將val 寫入LWn 的寄存器。
6)void CopyToLW(unsigned int offset,const void *src,int n)功能:由src 所指的內存區域復制n 個字節到Lw_offset 所在的內存區域。
7)void CopyFromLW(unsigned int offset,const void *src,int n)功能:由Lw_offset 所在的內存區域到src 所指的內存區域復制n 個字節。
8)void SetLBON(unsigned int n)功能:設置LBn 寄存器為1。
9)void SetLBOFF(unsigned int n)功能:設置LBn 寄存器為0。
10)int GetLB(unsigned int n)功能:讀取LBn 寄存器的狀態。
11)int SetLWBON(unsigned int n,unsigned int offset)功能:設置LW.b 寄存器為1,如設置LW5.4,則n=5,offset=4。
12)int SetLWBOFF(unsigned int n,unsigned int offset)功能:設置LW.b 寄存器為0,如設置LW5.4,則n=5,offset=4。
13)int GetLWB(unsigned int n,unsigned int offset)功能:讀取LW.b 寄存器的狀態,如設置LW5.4,則n=5,offset=4。
在拓撲結構窗口雙擊HMI 圖標或在HMI 圖標上右擊,選擇右鍵中的“屬性”,均可打開【HMI 屬性】,以配置HMI 相關的系統參數以及部分元件的輔助參數設置。當未觸控HMI 屏幕的持續時間等于此設置值時,HMI 自動關閉屏幕背光燈進入節能狀態;當HMI 屏幕再次有觸控操作時,可結束節能狀態點亮屏幕背光燈。設定時間的單位為分鐘,初始默認值為10min。報警/事件發生時自動打開背光燈,HMI 進入節能狀態后,如有用戶報警或事件觸發,則自動將HMI 屏幕背光點亮。當未觸控HMI 屏幕的持續時間等于此設置值時,屏幕畫面可切換至設定的【屏保使用窗口】;HMI 進入屏保狀態后,當HMI 屏幕再次有觸控操作時,可結束屏保狀態。設定時間的單位為分鐘,初始默認值為10min。屏保使用窗口指定HMI 進入屏保狀態后要切換的目的窗口,屏保結束時返回原窗口是設置HMI 結束屏保狀態后是否將畫面切換至進入屏保狀態前的窗口畫面;如未勾選,則當HMI 結束屏保狀態時會繼續停留在屏保窗口。設置是否允許將HMI 中的組態工程上傳至PC 機或外部存儲器指定位置,初始默認密碼為:888888。注意:上傳密碼不能為空或0。設置是否允許將從HMI 中上傳上來的組態工程文件即pkg 文件反編譯成Kinco HMIware 可編輯的wpj 文件,初始默認密碼為:888888。HMI 的系統參數多采用默認設置。

圖6 HMI Manager設置界面Fig.6 HMI Manager setting interface
KHManager 包含7 個處理模塊:【下載處理】【上傳處理】【系統處理】【獲取版本】【反編譯處理】【串口穿透通訊】【虛擬串口穿透通訊】。【通訊參數設置】:顯示當前KHManager 使用的下載方式。點擊【設置】可修改當前下載方式。【上頁】/【下頁】:點擊【上/下頁】在7 個處理模塊之間跳轉。【退出】:退出KHManager 界面。打開KHManager 的方法有很多種,包括:從PC 的【開始】菜單打開,雙擊桌面KHManager 快捷方式打開,從Kinco HMIware 軟件【工具】菜單打開,單擊【工具】菜單—單擊【系統處理】/【HMI 版本信息】/【上傳配方】/【下載配方】/【上傳啟動畫面】/【下載啟動畫面】/【上傳工程】/【反編譯】均可打開【KHManager】界面。在Kinco HMIware 安裝目錄下雙擊【KHManager.exe】打開。
本文闡述了工業觸摸屏HMI 通過自定義協議與硬件采集模塊連接,實現多通道溫場計量數據采集的實現過程。以6 通道采集為例,依據JJF1101-2003《環境試驗設備溫度、濕度校準規范》,通過HMI 組態軟件配置溫場計量的首頁、曲線頁、報表頁、設置頁、采集頁和調試頁界面。應用C 語言在COMx.c 文件的循環進程中編寫協議棧完成串口驅動,實現工業HMI 與前端硬件采集模塊的連接。經應用測試,所研發的觸摸屏HMI 溫場計量設備可以穩定可靠地實現溫濕度數據采集,實現多通道溫場計量的自動化,減少了現場計量的勞動強度,同時保證了測試的準確性。