呼倫貝爾市SIEMENS華北地區代理商-西門子(授權)自動化與驅動代理商-西門子變頻器-西門子PLC工業模塊
| 更新時間 2024-12-28 09:10:00 價格 請來電詢價 變頻器 西門子代理商 觸摸屏 西門子一級代理 伺服電機 西門子一級總代理 聯系電話 18126392341 聯系手機 15267534595 聯系人 梁濤 立即詢價 |
1 | 題目
有10000臺電機M0-M9999,按下啟動按鈕后,電機M0-M9999按順序每隔5秒啟動。按下停止按鈕后,電機M9999-M0按順序每隔5秒停止。當電機發生故障時,當前電機及其后面的電機立即停止,而前面的電機則按順序每隔5秒停止。例如:當M99出現故障,M99-M9999立即停止,M98-M0按順序每隔5秒停止。
在啟動過程中允許按下停止按鈕,已經啟動運行的電機將按照順序每隔5秒停止。
在停止過程中允許按下啟動按鈕,還未啟動運行的電機將按照順序每隔5秒啟動。
編寫程序實現以上功能,支持任意電機的數量,注意只允許使用一個定時器。
2 | 設計分析
采用循環語句。
啟動時判斷當前電機的前一個電機是否已經啟動運行,如果已經啟動運行則啟動定時器,定時時間到后啟動當前電機。
停止時判斷當前電機的后一個電機是否已經停止運行,如果已經停止運行則啟動定時器,定時時間到后停止當前電機。
故障時的處理方法和停止過程類似。3 | 創建功能或功能塊
創建功能塊FB,命名為“MtrStSpInSeq”。
4 | 定義接口變量
具體接口變量定義見下圖:
定義布爾型變量start:啟動;
定義布爾型變量stop:停止;
定義布爾型一維可變限值數組變量mtrStSps:電機啟停輸出;
定義布爾型一維可變限值數組變量faults:電機故障;
定義多重實例instTimer:多臺電機啟停的間隔時間。5 | 程序代碼
編寫程序代碼。如下圖:
第68行-87行代碼控制電機按順序每隔5秒啟動,第88行-108行代碼控制電機按順序每隔5秒停止。可以通過對以上代碼進行修改從而實現每臺電機啟動和停止采用不同的間隔時間。注意以上程序代碼中只使用了一個定時器,如果電機數量眾多,可以節約CPU資源。
6 | 代碼測試
在循環OB中調用FB-“MtrStSpInSeq”。 如下圖:
定義全局數據塊,用來存儲10000臺電機的啟停輸出和故障信號并作為實參傳遞給以上子程序的形參。如下圖:
在線監控。如下圖:
以上截圖僅為啟動過程的一部分,停止過程和故障測試并未展示。
7 | 總結
學習FOR循環語句;
學習FOR循環語句嵌套;
學習IF..ELSE語句;
學習上升沿的使用方法;
學習可變限值一維數組的使用方法;
學習RETURN語句在程序代碼中的作用;
學習在OB中調用FB和實參的傳遞方式。- END -
在培訓結束后,有多位youxiu工程師提供的開源庫文件正式收錄到了TIA標準化社區中,作為開發者共創的資源和大家共享!
以下可對部分收錄庫的功能進行快速瀏覽:
LECO_FlowCompensation
功能:針對差壓流量計開方后對應的工況流量,進行溫度壓力補償。
LECO_IncrementalPid
功能:可以實時仿真增量式 PID 控制,解決 S7-1200 無硬件,無法仿真系統 PID 的問題。(修改功能塊同時適用于S7-1500)
LECO_MultiStaSeq
功能:在一套設備中,如果對應多工位作業場合(本塊Zui多支持255個工位),可實現按工位預約的先后進行作業;避免設備長期在某一個工位作業,而其他工位一直等待的情況。
LECO_MachineRunningTimer
功能:通過設備的運行信號,記錄設備的總運行時間、總啟動次數、距離上次保養后的運行時間和啟動次數。
LECO_ParameterAdjuster
功能:對于需要在HMI頻繁修改數值的參數,可在HMI 上做加按鈕或減按鈕,當單擊按鈕時,可以實現參數按照點動值點動增加或減少。
LECO_RampAndS_Curve
功能:用于實現設定值從0開始到Zui大值的斜坡函數發生器和S曲線功能。適用于需要實現加速度斜坡輸出的場景,如起重設備、比例閥等,可實現在輸出時加速度的平滑過渡,防止沖擊。
聯系方式
- 電 話:18126392341
- 聯系人:梁濤
- 手 機:15267534595
- 微 信:15267534595