劉甘霖
(湖北工業職業技術學院 智能工程學院,湖北 十堰 442000 )
目前PLC課程教學中涉及多項實訓考核,傳統實訓設備配備有不同的模塊以滿足不同的實訓內容,學生通過硬件接線及編程實現考核項目要求的各項功能,教師通過觀察實訓結果結合考核方案中的各項指標進行賦分以得到實訓項目成績,整個過程需要教師逐個實訓臺觀察實訓結果中的功能實現情況再對照考核表進行賦分,一旦班級人數較多時就需要大量的時間檢查學生實訓結果,造成不必要的課堂時間浪費。而市場上對應的PLC實訓設備在不同的功能模塊設計上大同小異[1-2],區別在于核心控制器的類型不同,其中采用西門子PLC作為核心控制器的實訓設備應用廣泛。本文以西門子1200PLC作為控制器的實訓臺中開展的十字路口交通燈控制系統實訓為例,通過分析實訓考核內容,設計考核邏輯關系,采用C#語言編寫上位機程序,在不改變原有實訓程序的基礎上添加小型交換機進行硬件網絡連接,實現對整個實訓過程的自動賦分考核,改造成本較低且能有效提升實訓教學中的考核效率。
PLC實訓臺中主控制器為西門子S7-1200,CPU類型為1215C DC/DC/DC,各實訓臺之間通過小型交換機進行數據交換,通過教師機PC端作為上位機與各實訓平臺中的PLC進行網絡通信,使用C#語言編寫桌面應用程序實時采集各實訓平臺中PLC內部與實訓項目相關的寄存器值,通過對采集的數據進行分析,與預先設定值進行比較,逐一進行功能賦分,能夠快速判斷實訓臺中功能是否實現。其系統總體框圖如圖1所示。

圖1 系統總體框圖
十字路口交通燈實訓中,PLC控制系統時序圖如圖2所示,由圖2可知在前30 s時南北紅燈點亮30 s,東西綠燈點亮25 s后以1 Hz頻率閃爍3 s后熄滅,然后東西黃燈點亮2 s。后30 s時東西紅燈點亮30 s,南北綠燈點亮25 s后以1 Hz頻率閃爍3 s后熄滅,然后南北黃燈點亮2 s。依次循環進行上述過程。

圖2 PLC控制系統時序圖
根據十字路口交通燈控制系統時序圖功能描述設計I/O數字量輸入為啟動、停止,數字量輸出為東西紅燈等6路燈控制信號,其I/O分配表如表1所示。

表1 十字路口交通燈控制系統I/O分配表
根據控制系統時序圖及I/O分配表可知在功能判斷方面只需讀取PLC內部IB0、QB0兩個寄存器實時值即可。將一個循環周期定為60s,通過分析啟動到停止時各狀態對應的寄存器數值判斷功能完成情況,其實訓功能狀態與IB0、QB0兩個寄存器在時間上的關系如表2所示。

表2 實訓功能狀態與IB0、QB0兩個寄存器在時間上的關系
上位機程序由C#語言實現,程序設計主要由通信建立、分值計算兩部分組成。C#是一種安全、穩定、簡單的計算機編程語言,在C及C++編程語言基礎上衍生發展而來的面向對象的編程語言。通信建立采用 S7.NET實現,S7.NET是一個C#編寫的以太網連接西門子帶有Profinet接口CPU的dll驅動庫,采用S7.NET驅動程序可以便捷的通過以太網口建立上位機與西門子1200PLC的通信[3-4]。分值計算部分主要根據表2實訓功能狀態與IB0、QB0兩個寄存器在時間上的關系進行編寫,在上位機與目標PLC建立通信連接后首先判斷IB0的值是否為0,當檢測到IB0值不為0表示啟動按鈕按下,此時啟動定時器開始60 s計時,在0~25 s時判斷QB0的值是否為10,在26~28 s時,判斷QB0的值是否在8~10~8循環,在29~30 s時判斷QB0的值是否為12,在31~55 s時判斷QB0的值是否為17,在56~58 s時判斷是否在1~17~1循環,在59~60 s時判斷QB0的值是否為33。在計時的任何環節檢測到IB0值為2時,立刻判斷QB0的值是否為0。每檢測到一個環節將內部寄存器增加一定的分值并顯示在窗口中,根據分值計算過程設計的程序流程圖如圖3所示。

圖3 程序流程圖
整個考核系統的人機界面設置可通過“連接/斷開”按鈕及IP地址的輸入建立通信連接,通信成功后桌面程序顯示“連接成功”。系統還設計有不同的實訓項目及實訓臺號的選擇。教師可以通過選擇實訓項目查看不同實訓臺的成績,每個實訓界面會顯示程序主要變化寄存器值及得分情況。最終設計的系統運行界面如圖4所示。

圖4 系統運行界面
本文以PLC課程教學中常見的十字路口交通燈控制系統實訓考核為例,詳細的分析了十字路口交通燈實訓項目中各功能狀態與相關寄存器在時間上的關系,基于此設計上位機考核程序,并給出了程序流程圖。采用C#語言編寫桌面應用程序實現對西門子S7-1200PLC實訓教學上的自動考核方法,該方法硬件搭建成本較低,通用性較好,適用于以西門子S7-1200PLC為主控制器的實訓設備進行升級改造,對其它型號PLC實訓設備只需調用不同的驅動庫即可實現通信連接。采用本方法可以對大多數傳統PLC實訓臺進行升級改造,該方法的應用能有效提升實訓教學過程中的考核效率。