前兩天處理過一個故障,是S7-200 Smart與V20的USS通信,設備廠家在程序裏面利html
用USS_RPM _R程序循環輪詢5個V20設備讀取頻率和電流值等信息。測試
圖 USS_RPM_R讀取信息spa
上圖是第一個站點的讀取,其採用的控制方式是利用狀態位SM0.0 置位M13.0 = 1, 而後htm
經過上面的程序段進行讀取參數,而後再利用M13.1這個標誌位,再作爲下一個站點的XMT和blog
EN信號,同時復位M13.0 = 0; 依次類推一直輪詢完5個站點後,再從新設置M13.0 = 1 開始新get
一輪的查詢。軟件
1、問題循環
那天個人同事要修改程序裏面一個模擬量的量程,而後修改完後直接下載程序,在下載完畢後下載
從新運行程序,PLC有Stop狀態切換至RUN狀態,這個時候出現了一個問題,那就是USS_RPM_R程序
這個程序塊卡主了,整個輪詢再也不執行。
2、分析
同事搞了好久,沒有找出緣由,還和其餘人一塊兒把V20的參數恢復出廠設置了,可是仍是不
行, 後來就給我打電話,讓我過去看看。
我一過去看就問是否是能夠經過PLC控制V20的起停,說是沒問題,我也測試過沒有問題。
所以判斷通信沒有中斷,應該是PLC程序的問題,由於開始是能夠的,且V20參數沒有修改過。
後來我仔細分析了一下程序,發現了一個問題,就是廠家的程序利用SM0.0 一直在輪詢,且輪
詢啓動後不會再利用SM0.0這個信號來從新置位M13.0這個信號。其程序以下所示:
上面三張圖是啓動的程序,這樣的作法存在一個問題,就是中途若是出現異常,比方說下載程序
致使USS通信讀取中斷就不能自動恢復。
3、解決方法
一、將PLC下電,而後從新上電,這樣SM0.0 就會產生一個上升沿激活上面的輪詢過程。這個解決方案
不是最優方案。
二、不要利用SM0.0作爲啓動脈衝,而改成SM0.1首次掃描狀態位。
三、方案三,就是檢測全部的通信返回狀態, 當全部的狀態在1s(或者其餘任意設定時間)內通信狀態失敗
後,就自動激活通信過程。
4、小結
S7-200 系列的PLC要注意斷電重啓和利用Smart軟件將PLC從Stop切換到RUN狀態是有區別的。比方
說SM0.0這個狀態位,還有一些數據保持功能。
--------------------------------------------------------------分割線---------------------------------------------------------------
一、文章均爲我的原創,歡迎轉載,轉載請保留出處:https://www.cnblogs.com/volcanol/
二、獲取工控PLC、變頻器、HMI、計算機、Windows、Linux、嵌入式資料點擊:獲取資料
三、若是您以爲文章對您有幫助可轉至頁面上半部分打賞,或移步:打賞
四、或者在頁面右下角點推薦喲!!!
--------------------------------------------------------------分割線--------------------------------------------------------------