注:本文默認電機連接是使用斷路器、接觸器實現的直接啟動電路,對于變頻器類的控制需要做一些配置才能使用。
控制要求如下:
可設置每個電機的額定運行時間,當電機的實際運行時間大于額定運行時間時,則自動關閉并調度下一臺可用電機;
當電機出現故障(比如斷路器跳閘或超時無反饋),則電機狀態變為不可用。不可用電機不參加調度;
當故障消除并復位后,電機狀態重新變為可用,可重新參加調度;
具體如下:
打開博途開發環境,新建項目,添加用戶自定義數據類型:typeMotorSchedule,如下圖所示:
其中:
Command:包括啟動(start)和停止(stop),用來啟動或停止電機;
Para:電機控制參數,包括反饋時間和額定運行時間,單位,秒;
ExtraSignal:外部信號,包括斷路器和接觸器反饋;
State:狀態,包括:輸出位(Q)、錯誤位(error)、釋放(release,表示電機是否可用)、選中(selected,表示電機是否被選中)、狀態(status,電機狀態,非0等于出錯)、實際運行時間(actualRunningTime,單位,秒);
添加函數塊,命名為:FB5017_MotorScheduler,聲明變量如下圖所示:
函數塊代碼比較長,我將其分成多個區域:
功能說明;
初始化(initialize);
復位(reset);
調度(sheduler);
具體如下:
功能說明:
初始化:
復位:
調度:
使用該函數塊時需要先初始化,然后使能。當出現錯誤時,要進行復位。
可以在全局數據塊中創建電機數組(typeMotorSchedule),然后將斷路器、接觸器的信號寫入電機數組的ExtraSignal中,并將電機狀態State.Q輸出到硬件的輸出通道中。
我創建了測試函數塊及全局數據塊對電機調度程序進行了測試,包括斷路器的錯誤測試,結果是OK的。
審核編輯:劉清
-
電機控制
+關注
關注
3540文章
1897瀏覽量
269267 -
變頻器
+關注
關注
251文章
6585瀏覽量
145835 -
接觸器
+關注
關注
63文章
1201瀏覽量
64694 -
斷路器
+關注
關注
23文章
1957瀏覽量
52067 -
SCL
+關注
關注
1文章
239瀏覽量
17178
原文標題:西門子SCL編程實例——電機運行調度
文章出處:【微信號:方正智芯,微信公眾號:方正智芯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
如何使用Arduino控制多個伺服電機
![如何使用Arduino控制<b class='flag-5'>多個</b>伺服<b class='flag-5'>電機</b>](https://file.elecfans.com//web2/M00/7B/0B/poYBAGN0qxOAb-mcAACIgpCYHgw554.png)
LoRa供水調度遠程無線聯網監測
Linux系統調度是實現特性的關鍵部分
請問FreeRTOS是如何實現調度的?
調度器的原理及其任務調度代碼實現
詳談智能電網的智能調度自動化系統
如何實現JMobile軟件的調度器功能
關于智能電網調度自動化的細述
![關于智能電網<b class='flag-5'>調度</b><b class='flag-5'>自動</b>化的細述](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論