西門子代理商-河南一級代理-PLC伺服電機驅動變頻器一級代理
| 更新時間 2024-12-02 08:00:00 價格 請來電詢價 西門子變頻器 西門子觸摸屏 西門子伺服電機 西門子PLC 西門子直流調速器 西門子電纜 聯系電話 13922889745 聯系手機 18475208684 聯系人 向小姐 立即詢價 |
故障現象
某現場使用S7-200 SMART 自由口通訊協議接收儀表數據。以常用的字符間定時器作為接收消息的結束條件。程序中規定定時器時間寄存器SMW92=5ms,傳輸7個數據位,偶校驗。實際測試時發現當通訊波特率為4800bps、9600bps、2400bps時均可以正常接收到儀表數據。但是當波特率設置為1200bps時,卻只能接收到首字節的數據。
案例分析
1200bps波特率代表每秒可以傳輸1200bit,1秒等于1000000us,可以計算出每一個bit需要的時間約為833.33us。
傳送的數據由多個字符組成。每個字符由1位起始位+7位數據位+1位校驗位+1位停止位=10位構成。
可以計算出傳送1個字符需要的時間為8333.3us,即8.333ms,也就是說傳輸1個字符至少需要8.3ms。
如圖1所示。如果字符間定時器SWM92小于8.333ms,則接收到一個字符后終止,后面的字符無法接收到。
圖1.計算發送一個字符需要的時間
圖2為字符間定時器作為接收結束條件的示意圖。接收到每個字符的停止位時重新啟動字符間定時器,字符間的時間超出 SMW92中指定的毫秒數,接收消息功能將終止。之后接收到的字符被忽略。因此會出現以上的故障現象。
解決的方法是:調整波特率或者調整定時器SMW92的時間。想必您對自由口參數以及接收條件了解之后,對以上問題便有了深刻的理解,當然也就更好排查。
圖2. 使用字符間定時器作為接收結束條件
案例二:接收無法終止
故障現象
某現場,當從站故障或者通訊電纜損壞時, 接收端CPU 的通訊端口始終處于接收狀態。并且無法發送數據。由于一直接收不到數據,后續的讀寫操作也無法進行。
當遇到這種情況,我們該如何結束當前端口的接收狀態,以便繼續執行后續自由口的發送和接收操作呢?
案例分析
有兩種處理該問題的方法:
1. 使用任意字符檢測作為接收消息的起始條件,選擇消息定時器和其它結束條件組合作為接收消息的結束條件。
原理如圖3所示,這種接收條件下,RCV接收指令觸發的同時開始計時,計時時間到則結束信息接收。也就是說這種方式下,接收操作只和接收時刻和消息定時器兩個因素相關。
當觸發RCV指令并且到達消息定時器設定的時間后,即使沒有接收到任何數據,也會結束當前的接收狀態。反之,如果消息定時器的時間到達,但是實際接收數據還沒有結束,晚于定時時間到達的信息將被忽略。
圖3 使用任意字符開始消息接收和消息定時器終止消息接收
2. S7-200 SMART CPU 在發送完成中斷中執行 RCV 指令并捕捉信息接收的開始時間。如果捕捉間隔時間超出一定時間依然未接收到信息,則認為信息接收超時,通過程序人為終止信息的接收。
使用圖4中的BGN_ITIME指令記錄執行RCV時的起始時間,圖5中的CAL_ITIME指令記錄執行RCV的經過時間,當執行RCV的時間超過100ms,則禁止RCV接收消息。
圖4 使用捕捉時間間隔指令處理程序
圖5 使用捕捉時間間隔指令處理程序
通過以上兩種方法,就可以幫助我們解決當從站故障或通訊電纜損壞時,通訊接口一直處于接收狀態的問題。
特別是由于某些情況下PLC發送的數據,儀表并沒有接收到時。此時儀表也不會反饋數據給PLC,則PLC會一直處于等待狀態。即使此時儀表或者線路恢復正常,儀表由于沒有再次接收到PLC的數據請求,也不再會反饋數據的問題。
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684