西門子SCL編程實例-計算設備運行時間

前面我們介紹了西門子SCL編程入門的系列基礎教程,今天這篇文章我們做實例講解——計算設備的運行時間;

西門子SCL編程實例-計算設備運行時間

說明:本例程使用博途V14開發環境,PLC為CPU 1214C

思路如下:

  1. 創建用戶自定義數據類型:MyEquipment;
  2. 創建全局數據塊:myEquipmentData;
  3. 在啟動組織塊(OB100)中獲取系統時間;
  4. 創建功能:FC_Running_Time_Caculate(FC1),用於計算設備運行時間;
  5. 在主程序塊(OB1)中調用FC_Running_Time_Caculate,計算設備的實際運行時間;

下面來具體實現:

1、創建用戶自定義數據類型

用戶自定義數據類型可以把不同的數據類型組織到一起,當需要修改的時候只需要在定義中進行修改,其它已經引用的數據會自動修改,非常適合於程序的模塊化設計。

本例程我們定義數據類型:MyEquipment,包括如下成員:

  1. number:整數類型,設備的編號;
  2. status:字節類型,設備的狀態,0=關機;1=開機;
  3. starting_time:DTL類型,設備的開機時間;
  4. running_time:Time類型,設備的運行時間;

如下圖所示:

西門子SCL編程實例-計算設備運行時間

2、創建全局數據塊

創建全局數據塊myEquipmentData,新建名稱為"equipment_data"的數組,數據類型為"myEquipment",如下圖所示:

西門子SCL編程實例-計算設備運行時間

3、在系統啟動塊中獲取系統時間

添加啟動組織塊(Startup),在變量聲明區聲明變量:tmp_system_time和tmp_return_int,如下圖所示:

西門子SCL編程實例-計算設備運行時間

在代碼區對全局數據塊的設備數組進行初始化,代碼如下圖:

西門子SCL編程實例-計算設備運行時間

4、創建功能FC_Running_Time_Caculate

創建功能FC_Running_Time_Caculate來計算系統的運行時間

FC的形式參數:

輸入:equip,類型為:MyEquipment;

輸出:running_time,類型為:Time;

臨時變量:tmp_return_value;tmp_system_time;tmp_caculate_time;

如下圖所示:

西門子SCL編程實例-計算設備運行時間

代碼區通過獲取當前系統時間,減去設備啟動時的時間,就得到設備的運行時間,如下圖所示:

西門子SCL編程實例-計算設備運行時間

5、主程序調用

在主程序中調用FC_Running_Time_Caculate來計算實際的運行時間,並將數值存放到全局數據塊的設備運行時間中。代碼如下:

西門子SCL編程實例-計算設備運行時間

好了,這就是SCL語言編寫的一個實際例程。在該例程中我們使用了用戶自定義數據類型、數組、模塊化設計等內容,你可以好好體會下。

對了,我的新書《西門子S7-200 SMART PLC應用技術》已經出版了。如果你感興趣可以點擊左下角的【瞭解更多】看詳細介紹。


分享到:


相關文章: