網站首頁
產品目錄
企業消息
聯繫我們

企業消息 

企業消息

S7-200自由口通訊的監視分析方法

發布日期 2020-12-02
ENI是開中斷指令。
一般常規編寫程序的做法是先定義,定義通訊控制字節,定義通訊頻率、定義通訊數據等, 開中斷。
如果把ENI寫在前面,從理論上是不符號西門子編程環境的,西門子的思想是先定義后使用的原則,符合歐洲人的思維邏輯。
程序大致含義是:
首先定義通訊(自由口通訊參數)
定義通訊數據,由M0.0上升沿觸發發送指令,即把上面定義好的數據發送出去
當發送完成進入發送完成中斷,執行接收並再次定義接收完成中斷(實際上這個完全可以在初始化程序段中編輯),你的問題是重新定義接收完成中斷後,仍然需要定義ENI指令一次。
當接收完成后進入接收完成中斷,你重新又再次定義定時中斷_0 = 20,(mS)這裡同樣沒有再次定義ENI。
當定時中斷激活后,會在20mS的間隔發送你 次定義好的數據。
我感覺你整體的程序架構不嚴謹,應該是初始化時,先定義好發送完成中斷、接收完成中斷,開中斷,不需要定義定時中斷的原因是自由口通訊是半雙工通訊,一條通訊鏈路上只能有 的一條指令有效,而定義定時中斷(它又不管你到底那條指令正常運行,或者指令沒有運行,到點一定會發送一條指令的),這樣會造成錯誤的几率會大。
正常應該是先定義通訊數據,完成后執行發送,在發送中斷中編輯接收指令,在接收中斷中再次編輯需要的發送指令,如此循環進行。
上述僅僅只是我是一點看法。






網站首頁  |  產品目錄  |  企業消息  |  聯繫我們  |  網站地圖  |  手機版
  简体版     繁體版     English

Powered by DIYTrade.com  自助建站, 免費!