-
1 # 飛飛lin
-
2 # 劍指工控
不同PLC的Modbus通訊都會有一些不同,下面以西門子S7-200 Smart舉例。
Modbus 具有兩種序列傳輸模式,ASCII 和 RTU。以及Modbus 的乙太網通訊Modbus- TCP通訊。
目前免費支援RTU通訊。ASCII需要自己程式設計實現。TCP通訊有相關的庫程式可以購買後實現。
第一:PLC作為Modbus主站。開啟程式設計軟體後在庫程式中找到如圖的主站指令。
然後呼叫 Modbus RTU 主站初始化和控制子程式
使用 SM0.0 呼叫 MBUS_CTRL 完成主站的初始化,並啟動其功能控制:
然後呼叫 Modbus RTU 主站讀寫子程式MBUS_MSG,傳送一個Modbus 請求;
然後 在 CPU 的 V 資料區中為庫指令分配儲存區(Library Memory)Modbus Master 指令庫需要一個286個位元組的全域性 V 儲存區。
使用 “建議地址” 設定資料區,但要注意程式設計軟體設定的資料區地址,只考慮到了其他一般定址,而未考慮到諸如Modbus資料保持暫存器區等的設定。應當確保不與其他任何已使用的資料區重疊、衝突。不應重複按 “建議地址” 按鈕,否則也會造成混亂。
Modbus Master 協議庫支援的功能如下圖:
Modbus 地址和 S7-200 SMART 儲存區地址的對映
Modbus 保持暫存器地址對映舉例:
-
3 # Talk工控白
PLC系統如何使用Modbus功能?
題目說如何使用Modbus功能?因此需要對其有初步認識。Modbus是如今應用最廣泛的現場開放式通訊協議,其具有安全、穩定、實時性高等特點,在二次儀表和繼電綜合保護器等裝置中有著廣泛應用。
上面說了Modbus是應用最廣泛的現場開放式通訊協議,那麼什麼是Modbus通訊協議呢?
這種協議是應用在電子控制器上的一種通用語言,於是只要透過此協議,那麼控制器與控制器之間或控制器透過網路和其它裝置就可以說話了。因此,Modbus通訊協議也成為工業自動化中的一種通用標準了。因此,不同製造商生產的工業裝置可以連成工業網路,來進行集中控制。在用Modbus通訊協議時,它有兩種通訊模式,分別是Modbus_ASCll和Modbus_RTU這兩種模式,在工業上Modbus_RTU通訊模式用的最為頻繁。什麼是Modbus_RTU通訊模式?Modbus_RTU它定義了資料傳送格式和從響應的資料格式,主站傳送資料包括地址、命令碼、CRC校驗碼,而從站響應的資料包括地址、命令碼、資料和CRC校驗碼。
根據題目說PLC控制系統如何使用Modbus功能?例如比較知名的PLC控制系統有西門子PLC、三菱PLC、歐姆龍PLC等,因此實現方法也有差異。這裡以歐姆龍PLC控制系統CJ2系列為例,採用Modbus-RTU通訊模式。
Modbus-RTU從站通訊PLC程式設計
PLC通訊程式設計包括使用STU指令進行通訊口引數初始化、呼叫PWCR指令執行協議宏、指令引數地址初始化、主站命令解析、從站傳送資料封裝、通訊故障處理等。下圖就是歐姆龍CJ2系列PLC協議宏通訊程式。PLC程式執行流程,由上圖可知;當通訊執行標誌H0.00置ON後,Modbus通訊程式開啟執行,程式首先執行接受協議宏,此刻通訊處於接受等待狀態,當接受到主站命令就先檢測功能碼是否是本從站支援的功能碼。若不是,傳送錯誤程式碼給主站,反之,進行讀寫資料地址檢驗。此時,讀寫資料地址在定義介面地址範圍內進行功能碼命令判斷,若是讀資料則程式就進行資料封裝並傳輸到傳送緩衝區,若是寫資料則使用響應格式填充發送緩衝區並解析資料修改歐姆龍PLC實際操作地址。
回覆列表
1、一般plc軟體裡面就有modbus的模組引用進去,然後配置相關的引數(位元率,埠號等)
2、程式設計主要是注意異常情況的處理,比如通訊異常、掉線、資料讀取超時、控制響應超時等。一個做好異常處理的程式才是一個好的程式。