今天這篇文章,我們來介紹一個帶運行計時的電機控制函數(shù)塊,為后續(xù)的電機調(diào)度函數(shù)塊做準備。我之前曾寫過一個電機控制函數(shù)塊FB5001_MotorControl(西門子SCL編程實例——帶反饋監(jiān)視的電機控制),我們在它的基礎(chǔ)上,增加運行時間累計功能。
打開博途新建項目,將FB5001_MotorControl添加到項目中,修改其名稱為FB5007_MotorControlWithRuntime。在原函數(shù)塊基礎(chǔ)上:
①增加輸入?yún)?shù):GlobalTime和ResetRuntime。
GlobalTime:來自循環(huán)中斷組織塊的全局時間(單位:秒);
ResetRuntime:復(fù)位函數(shù)塊內(nèi)部的用于計時的變量;
②增加輸入/輸出參數(shù):
Runtime:電機運行的實際時間(單位:秒)。多次啟動的運行時間可累積;
③增加用于計時的靜態(tài)變量:
statStartTime:按下啟動按鈕的時間(單位:秒);
statLastRunningTime:上次運行的時間(單位:秒),用于累計;
statRunTime:當前運行時間(單位:秒);
整個函數(shù)塊(FB5007_MotorControlWithRuntime)的變量聲明如下圖所示:

代碼如下:

為了能產(chǎn)生時間信號,我們添加循環(huán)中斷組織塊OB30,將其中斷時間設(shè)置為1秒。設(shè)置一個全局變量,比如"DB200_Global".globalSecon,在OB30中將其周期性加1,代碼如下:

添加一個啟動組織塊,每次CPU重啟時讓全局時間變量清零(該全局時間變量的數(shù)據(jù)類型為UDInt,其取值范圍為0~4_294_967_295。以每秒加1的頻率計時,可支持大約136年,因此即使不清零也沒有關(guān)系),如下圖所示:

這樣,就可以在OB1中調(diào)用FB5007_MotorControlWithRuntime,統(tǒng)計其運行時間了。

我已經(jīng)測試過,如果你有任何問題,歡迎留言。我們后續(xù)會在這個函數(shù)塊的基礎(chǔ)上,寫電機調(diào)度的函數(shù)塊(比如有多個電機,如何按照預(yù)定規(guī)則進行啟停控制)。
我的書《西門子S7-1200/1500 PLC SCL語言編程 ——從入門到精通》從硬件到軟件,比較詳細的介紹了SCL語言的編程,感興趣的話可以點擊下面的鏈接或者左下角的【閱讀原文】:
審核編輯 :李倩
-
電機控制
+關(guān)注
關(guān)注
3600文章
2131瀏覽量
277796 -
變量
+關(guān)注
關(guān)注
0文章
616瀏覽量
29506 -
SCL
+關(guān)注
關(guān)注
1文章
244瀏覽量
18025
原文標題:西門子SCL編程實例——帶運行計時的電機控制
文章出處:【微信號:方正智芯,微信公眾號:方正智芯】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
西門子變頻器的選擇技巧
Modbus轉(zhuǎn)Profinet網(wǎng)關(guān)與西門子PLC的互聯(lián)配置案例:用于永宏品牌變頻器的控制實現(xiàn)
使用C#實現(xiàn)西門子PLC數(shù)據(jù)定時讀取保存
西門子S200伺服:革新冶金行業(yè)氣力運輸?shù)哪缓笥⑿?/a>
使用西門子報文控制V90伺服驅(qū)動器
西門子Smart200網(wǎng)口穿透教程
工業(yè)智能網(wǎng)關(guān)可以采集西門子PLC嗎
在西門子TIA Portal中使用CFC語言實現(xiàn)電機控制的全流程
西門子再收購EDA公司 西門子宣布收購Excellicon公司 時序約束工具開發(fā)商
西門子中國工廠首個光儲一體化項目成功投運
EtherCAT轉(zhuǎn)ProfiNet西門子1200PLC與伺服電機通訊案例全解
MCGS觸摸屏與西門子S7系列PLC以太網(wǎng)通信
西門子SCL編程實例——帶運行計時的電機控制
評論