透過示例深入理解邊沿指令(附驗證例程下載)
前言
上升沿,下降沿是我們每個電氣自動化工程師最熟悉不過的指令了,西門子PLC歷經了S5,S7-200/200SMART, S7-300/400,S7-1200/1500等系列型號,邊沿指令也是從無到有,也一直悄悄地發生著變化,
不同系統的邊沿指令,或同一系統的不同邊沿指令到底有什麼不同呢?
本文把所有西門子有關邊沿指令的內容彙總整理了一下,溫故而知新與大家分享!
鑑於篇幅限制,文中就只以上升沿指令為例來做說明了
不同程式設計環境下的邊沿指令
1、MicroWin/SMART中的邊沿指令(S7-200/200SMART適用)
S7-200/200SMART邊沿指令是有全域性暫存器的,且數量有限,總共1024個(含上升沿及下降沿)
S7-200/200SMART邊沿指令暫存器沒有地址,不支援任何形式的定址,由系統自動分配
2、STEP 7中的邊沿指令(S7-300/400/WINAC適用)
3、TIA Portal中的邊沿指令(S7-1200/1500適用)
總結:
邊沿指令都需要暫存被檢測訊號的狀態;
邊沿指令暫存被檢測訊號狀態的變數必須是全域性變數或靜態變數;
邊沿指令需要比較被檢測訊號狀態的不同,因此必須被所在週期性組織塊(Cyclic OB,如OB1或OB35等)兩次掃描才能得到運算結果;
邊沿指令產生的運算結果只存在一個掃描週期;
邊沿指令在首次掃描產生的運算結果與不同系列的PLC及其狀態暫存變數暫存器的斷電保持設定有關;
不同程式設計環境下的邊沿指令的等效示例
示例一:單變數的上升沿檢測
1、MicroWin/SMART程式設計環境
2、Step 7程式設計環境
3、TIA Portal程式設計環境
註釋:
Tag_In:被檢測訊號
Tag_FP:被檢測訊號的狀態儲存變數
R_TRIG_DB:指令背景資料塊
Tag_M:邊沿檢測結果
示例二:多變數運算結果的上升沿檢測
1、MicroWin/SMART程式設計環境
2、Step 7程式設計環境
3、TIA Portal程式設計環境
註釋:
Tag_In_1:訊號1
Tag_In_2:訊號2
Tag_In_3:訊號3
Tag_FP:邏輯結果狀態暫存變數
Tag_FLG:訊號邏輯運算結果
R_TRIG_DB:指令背景資料塊
Tag_M:邊沿檢測結果
示例三:多變數複雜邏輯的上升沿檢測
1、MicroWin/SMART程式設計環境
2、Step 7程式設計環境
3、TIA Portal程式設計環境
註釋:
Tag_In_1:訊號1
Tag_In_2:訊號2
Tag_In_3:訊號3
Tag_FLG:訊號2的上升沿訊號
Tag_FP:訊號2的狀態暫存器
Tag_M:邏輯運算結果
博途程式設計環境下實現上升沿的幾種方法
目前,在博途程式設計環境下較為通用的程式語言是梯形圖(LAD)及結構化控制指令(SCL),實現上升沿檢測的方法歸納下來常用的有四種,但無論哪一種方法都會需要使用全域性變數或靜態變數作為被檢測訊號的狀態暫存暫存器,S7-300/400的資料塊是預設斷電保持的,通常情況下該狀態暫存暫存器並不建議設定為斷電保持。
1、使用上升沿指令:
2、使用梯形圖邏輯:
3、使用SCL語言之一:
4、使用SCL語言之二:
註釋:
Signal:被檢測訊號
Signal_FP:被檢測訊號的狀態暫存器變數
Signal_FP_Flg:被檢測訊號的上升沿訊號
上升沿指令特性的實驗驗證
根據我們現在最常用的PLC型別,選擇
200SMART及S7-1200作為典型試驗機型
,實驗方法如下:
200SMART採用上升沿指令一組及等效非上升沿指令兩組,等效非上升沿指令的中間變數一組採用斷電保持設定,另一組指令的中間變數採用斷電非保持設定;
S7-1200採用上升沿指令指令兩組,一組上升沿指令的中間變數採用斷電保持設定,另一組指令的中間變數採用斷電非保持設定;
分四種不同啟動條件下的情形考核上升沿是否會被觸發
1)下載程式後的首次執行
2)MRES復位後的首次執行
3)未斷電情況下,CPU從STOP 切換到 RUN狀態
4)斷電後,CPU重新上電進入RUN狀態
S7-200SMART的驗證程式:
1、SAMPLE_0
2、SAMPLE_1
3、SAMPLE_2
4、OB1及DB塊設定
4、斷電保持設定
S7-1200的驗證程式:
驗證結果:(√表示上升沿指令被觸發)
這個驗證結果說明了幾個問題:
S7-200SMART的上升沿指令其實也是全域性變數,並且具有斷電保持特性,只是沒有實際變數地址由系統自動分配而已;
S7-200SMART的等效非上升沿指令的執行效果與S7-1200的上升沿指令的執行效果是一致的;
上升沿指令的斷電非保持設定,會導致下載程式後的首次執行,或CPU復位後的首次執行,或非斷電STOP -> RUN,或斷電後重新上電進入RUN,上述這些情況下上升沿指令或等效指令的觸發。其在不同CPU的表現,也反映了不同型別CPU的資料保持特性,以及不同啟動條件下的資料初始化特性。
免責申明:本機構號所載文章為本號原創或根據網路搜尋編輯整理,文章版權歸原作者所有。因轉載眾多,無法找到真正來源,如標錯來源,或對於文中所使用的圖片,資料,下載連結中所包含的軟體,資料等,如有侵權,請跟我們聯絡協商或刪除,謝謝!
本文為劍指工控原創技術類文章,2021年3月1日首次發表於《劍指工控》公眾號。
特別鳴謝本文作者
黃 岑(Zane)
西門子技術支援論壇S7-1200/S7-1500/S7-300/400版區版主
工作職務:
上海大華匯流排電氣技術有限公司,技術總監
個人簡介:
北京理工大學自動控制系工業自動化專業本科畢業,高階工程師,註冊自動化系統工程師,中國自動化協會會員。從事自動化一線技術工作20多年;主要從事自動化產品應用的技術支援工作及自動化控制系統的設計與開發工作;擅長用於中大型裝備的分散式系統、多軸傳動系統及伺服系統的控制與系統整合;擅長現場匯流排,網路通訊;擅長電氣系統的成套設計,製造,安裝,除錯的全過程;擅長EMC電磁相容性問題的診斷與解決;擅長軟硬體的標準化與模組化設計;對系統開發的管理及系統的持續改進有比較豐富的經驗。
從業經驗:
所參與或主持設計開發的控制系統涉及國民經濟許多行業的應用領域,如核電,紡織,線纜,造紙,食品醫藥,石化,印刷,包裝;船舶,冶金,工程機械,測試儀器等等;有不少重大專案及裝備均為當時國內首次研發;多個專案和裝置成功替代進口裝備,在成功佔據國內應用市場的同時又實現出口歐美等發達國家;擁有多次與外方進行專案談判及專案合作的經歷與經驗;多次參加西門子專家會議獲優秀論文及最佳論文獎,曾獲省部級技術進步三等獎,曾獲省級高新技術成果轉化專案認定,並獲得過多項技術發明或實用新型專利。
本賬號為《劍指工控》官方知乎賬號。劍指工控由一群帶有工控情結的技術青年組織在一起,他們都是在工控一線的技術達人,如果你是工控一線的工程師,如果你在日常工控工作當中會遇到種種的技術問題,如果你熱愛工控技術和工控生活,歡迎加入我們,隨手提出你的技術問題會有技術達人第一時間為你解答。可以分享你的工控喜怒哀樂,會有兄弟們跟你產生共鳴。可以獲得最新的工控資訊,指明技術和行業路線,做到未雨綢繆。
歡迎大家關注我們的公眾號
劍指工控(JZGKCHINA)
,更多的瞭解我們。
上一篇:女朋友要長跑怎麼回?