◎ 范灼航
(廣東省儲備糧管理總公司東莞直屬庫,廣東 東莞 523000)
保障國家糧食安全是一個永恒的課題,任何時候這根弦都不能松。抓好糧食物流的信息化建設是保障國家糧食安全的重要一環(huán)。其中,糧食物流作業(yè)流程信息記錄的電子化有利于提高生產作業(yè)管理的精細化水平。
為此,在基于InTouch 的糧食物流輸送控制系統(tǒng)中,與MySQL 數據庫進行連接及數據交互,實現了自動記錄生產作業(yè)流程的路線、啟動時間、停止時間、日期、流程號等作業(yè)信息的功能,并可在InTouch 中進行查詢顯示。
InTouch 是一種工業(yè)自動化組態(tài)軟件,用于可視化和控制工業(yè)生產過程,是一個開放、可擴展的人機界面,為定制應用程序設計提供了靈活性,同時為工業(yè)中的各種自動化設備提供了連接能力[1-2]。
MySQL 是一個關系型數據庫管理系統(tǒng),使用標準的SQL 數據語言形式,可允許運行于多個系統(tǒng)上,并支持多種編程語言,包括C、C++、Python、Java、Perl、PHP、Ruby 等[3-4]。
開放數據庫連接(Open Database Connectivity,ODBC)為異構數據庫訪問提供統(tǒng)一接口,允許應用程序以SQL 為數據存取標準,存取不同DBMS 管理的數據[5-6]。
InTouch 通過向ODBC 發(fā)送數據庫操作指令,實現對MySQL 數據庫中的數據列表進行插入新數據行、更新數據信息、查詢數據信息等操作,其數據交互如圖1 所示。
圖1 數據交互示意圖
InTouch 與SQL 交互需在InTouch 中建立綁定列表,變量標記名需與SQL 數據表中的列名一一對應,實現流程信息自動記錄的綁定列表配置,如表1 所示[7-8]。
表1 InTouch 與SQL 綁定列表配置表
在InTouch 中,通過觸發(fā)腳本程序的形式實現流程信息的自動記錄,其設計思路如圖2 所示。
圖2 流程信息自動記錄設計思路圖
系統(tǒng)上電運行后,判斷流程是否啟動,當作業(yè)流程啟動時,觸發(fā)SQL 插入表腳本程序,依次完成連接ODBC、發(fā)送SQL 插入語句、記錄唯一序號、斷開ODBC 的操作,實現記錄流程啟動日期、時間、流程號等信息;當作業(yè)流程停止時,觸發(fā)SQL 更新表腳本程序,依次完成連接ODBC、發(fā)送SQL 更新語句、斷開ODBC 的操作,實現記錄該次流程的停止日期及時間。流程信息自動記錄腳本代碼如下:
當流程運行變量標志R1_STR_OK_REAL 為1 時,即流程啟動時,對相關信息變量進行賦值,通過函數SQLConnect()連接指定的數據庫成功后,通過函數SQLInsert()按InTouch 的綁定表“PLC_RECORD_STR”執(zhí)行插入新數據行的命令,插入新數據行完成后,將該新數據行的唯一序號賦值到變量PLC_RECORD_ID_R1 中,最后斷開數據庫連接,完成記錄流程啟動的相關信息。
當流程運行變量標志R1_STR_OK_REAL 為0時,即流程停止時,對相關變量進行賦值后,通過函數SQLConnect()連接指定的數據庫成功后,通過函數SQLUpdate()按流程記錄唯一序號的變量PLC_RECORD_ID_R1 進行檢索,并按InTouch 的綁定表“PLC_RECORD_STP”執(zhí)行更新數據行的命令,完成后斷開數據庫連接,完成記錄該條流程停止的相關信息。
實現流程信息查詢的綁定列表配置如表2 所示。
表2 InTouch 與SQL 綁定列表配置表
在InTouch 中通過窗口按鈕觸發(fā)程序的形式實現流程信息查詢,其設計思路如圖3 所示。
圖3 流程信息查詢設計思路圖
系統(tǒng)上電運行后,判斷查詢信息按鈕是否按下,當按下查詢流程信息按鈕時,觸發(fā)流程信息查詢程序,依次完成連接ODBC、發(fā)送SQL 查詢語句、根據查詢結果編譯表格控件、斷開ODBC 的操作,其中表格控件按(1,0)、(1,1)、(1,2)…(n,6)的陣列順序依次編譯。流程信息查詢代碼如下:
按下流程信息查詢按鈕,連接數據庫成功后,通過函數SQLSelect()按InTouch 的綁定表“LC”按檢索條件查詢數據行,設置表格控件列表的表頭為“序號|日期|流程號|流程信息|開機時間|停機時間”。
先按(1,0)、(1,1)、(1,2)、(1,3)、(1,4)、(1,5)的順序依次編寫單元格內容為查詢結果第一條數據中的“數據序號”“開機日期”“流程號”“流程信息”“開機時間”及“停機時間”。完成第一條數據的單元格內容編寫后,轉至第二條數據并開始編寫第二行,按順序循環(huán)執(zhí)行至查詢結果列表的最后一行,完成查詢流程信息及編寫表格控件的操作。實現流程信息的便捷查詢。
完成程序設計調試后,系統(tǒng)能實現自動記錄流程作業(yè)信息的功能,InTouch 實現便捷查詢流程信息功能,數據庫數據如表3,InTouch 查詢流程信息功能如圖4。
圖4 InTouch 查詢流程信息功能圖