前面我們介紹了西門子SCL編程入門的系列基礎教程,今天這篇文章我們做實例講解——計算設備的運行時間;
說明:本例程使用博途V14開發環境,PLC為CPU 1214C;
思路如下:
- 創建用戶自定義數據類型:MyEquipment;
- 創建全局數據塊:myEquipmentData;
- 在啟動組織塊(OB100)中獲取系統時間;
- 創建功能:FC_Running_Time_Caculate(FC1),用於計算設備運行時間;
- 在主程序塊(OB1)中調用FC_Running_Time_Caculate,計算設備的實際運行時間;
下面來具體實現:
1、創建用戶自定義數據類型
用戶自定義數據類型可以把不同的數據類型組織到一起,當需要修改的時候只需要在定義中進行修改,其它已經引用的數據會自動修改,非常適合於程序的模塊化設計。
本例程我們定義數據類型:MyEquipment,包括如下成員:
- number:整數類型,設備的編號;
- status:字節類型,設備的狀態,0=關機;1=開機;
- starting_time:DTL類型,設備的開機時間;
- running_time:Time類型,設備的運行時間;
如下圖所示:
2、創建全局數據塊
創建全局數據塊myEquipmentData,新建名稱為"equipment_data"的數組,數據類型為"myEquipment",如下圖所示:
3、在系統啟動塊中獲取系統時間
添加啟動組織塊(Startup),在變量聲明區聲明變量:tmp_system_time和tmp_return_int,如下圖所示:
在代碼區對全局數據塊的設備數組進行初始化,代碼如下圖:
4、創建功能FC_Running_Time_Caculate
創建功能FC_Running_Time_Caculate來計算系統的運行時間
FC的形式參數:
輸入:equip,類型為:MyEquipment;
輸出:running_time,類型為:Time;
臨時變量:tmp_return_value;tmp_system_time;tmp_caculate_time;
如下圖所示:
代碼區通過獲取當前系統時間,減去設備啟動時的時間,就得到設備的運行時間,如下圖所示:
5、主程序調用
在主程序中調用FC_Running_Time_Caculate來計算實際的運行時間,並將數值存放到全局數據塊的設備運行時間中。代碼如下:
好了,這就是SCL語言編寫的一個實際例程。在該例程中我們使用了用戶自定義數據類型、數組、模塊化設計等內容,你可以好好體會下。
對了,我的新書《西門子S7-200 SMART PLC應用技術》已經出版了。如果你感興趣可以點擊左下角的【瞭解更多】看詳細介紹。