工控隨筆_09_西門子_S7-200 Smart與V20 USS通信USS_RPM_R利用輪詢的方式通訊異常


  前兩天處理過一個故障,是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、或者在頁面右下角點推薦喲!!!

--------------------------------------------------------------分割線--------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM