前兩天處理過一個故障,是S7-200 Smart與V20的USS通訊,設備廠家在程序里面利
用USS_RPM _R程序循環輪詢5個V20設備讀取頻率和電流值等信息。

圖 USS_RPM_R讀取信息
上圖是第一個站點的讀取,其采用的控制方式是利用狀態位SM0.0 置位M13.0 = 1, 然后
通過上面的程序段進行讀取參數,然后再利用M13.1這個標志位,再做為下一個站點的XMT和
EN信號,同時復位M13.0 = 0; 依次類推一直輪詢完5個站點后,再重新設置M13.0 = 1 開始新
一輪的查詢。
一、問題
那天我的同事要修改程序里面一個模擬量的量程,然后修改完后直接下載程序,在下載完畢后
重新運行程序,PLC有Stop狀態切換至RUN狀態,這個時候出現了一個問題,那就是USS_RPM_R
這個程序塊卡主了,整個輪詢不再執行。
二、分析
同事搞了很久,沒有找出原因,還和其他人一起把V20的參數恢復出廠設置了,但是還是不
行, 后來就給我打電話,讓我過去看看。
我一過去看就問是不是可以通過PLC控制V20的起停,說是沒問題,我也測試過沒有問題。
因此判斷通訊沒有中斷,應該是PLC程序的問題,因為開始是可以的,且V20參數沒有修改過。
后來我仔細分析了一下程序,發現了一個問題,就是廠家的程序利用SM0.0 一直在輪詢,且輪
詢啟動后不會再利用SM0.0這個信號來重新置位M13.0這個信號。其程序如下所示:



上面三張圖是啟動的程序,這樣的做法存在一個問題,就是中途如果出現異常,比方說下載程序
導致USS通訊讀取中斷就不能自動恢復。
三、解決方法
1、將PLC下電,然后重新上電,這樣SM0.0 就會產生一個上升沿激活上面的輪詢過程。這個解決方案
不是最優方案。
2、不要利用SM0.0做為啟動脈沖,而改為SM0.1首次掃描狀態位。
3、方案三,就是檢測所有的通訊返回狀態, 當所有的狀態在1s(或者其他任意設定時間)內通訊狀態失敗
后,就自動激活通訊過程。
四、小結
S7-200 系列的PLC要注意斷電重啟和利用Smart軟件將PLC從Stop切換到RUN狀態是有區別的。比方
說SM0.0這個狀態位,還有一些數據保持功能。
--------------------------------------------------------------分割線---------------------------------------------------------------
1、文章均為個人原創,歡迎轉載,轉載請保留出處:https://www.cnblogs.com/volcanol/
2、獲取工控PLC、變頻器、HMI、計算機、Windows、Linux、嵌入式資料點擊:獲取資料
3、如果您覺得文章對您有幫助可轉至頁面上半部分打賞,或移步:打賞
4、或者在頁面右下角點推薦喲!!!
--------------------------------------------------------------分割線--------------------------------------------------------------
