日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> PLC基礎入門教程 >> 正文

Modbus RTU 從站常見問題

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022-09-09

2.6 Modbus RTU 從站常見問題

Modbus 從站的網絡地址與 S7-200 的 CPU 網絡地址有什么關系?

沒有關系。支持網絡通信的通信協議必須有其自己的網絡尋址規定。 Modbus 從站的地址只是它在 Modbus 網絡上的地址,而通常所說的 S7-200 CPU 地址是 CPU 在西門子的 PPI 網絡上的站地址。S7-200 CPU 的大部分通信功能都通過 PPI 網絡完成,例如編程、網絡讀寫通信等。

如何理解 Modbus 地址與功能碼的區別?

Modbus 地址與 Modbus 的功能碼是兩個層次的概念。

根據 Modbus 通信協議,Modbus 數據的地址使用 00xxx、10xxx、30xxx 和 40xxx 的形式,分別表示數字量輸出、數字量輸入、模擬量輸入等數據地址。在使用 S7-200 的指令庫時,Modbus 數據地址與 S7-200 的 I/O 和數據存儲區地址間有特定的對應關系。

有些設備表明它支持 Modbus RTU 通信協議,但也詳細提供了讀寫數據的詳細通信幀格式,其中包括如何指定 Modbus 站的地址,需要讀寫數據類型、長度等等。數據幀有特定字節指出此指令讀寫的數據類型和地址,此字節的數據內容即所謂"功能碼",如功能 1 指定讀取單個/多個數字量輸出點的值。

支持 Modbus 協議的設備或軟件,使用時用戶直接設置或看到的應當是 Modbus 數據地址。Modbus 地址所訪問的數據,是通過各種"功能"讀寫而來。功能碼是 Modbus 地址的底層。如果 Modbus 通信的一方提供的所謂 Modbus 協議只有功能碼,則需要注意了解此功能號與 Modbus 地址間的對應關系。

Modbus 指令庫啟動后,如何通過同一個通信端口進行 CPU 監控?

Modbus 指令庫使用的是 CPU 的自由口通信功能,工作在自由口模式下的通訊口不能使用 Micro/WIN 的 PPI 編程通信監控。如果通信口都已經被占用,可以考慮:

  • 加一個通信模塊(如 EM 277、CP 243-1、EM 241 等)擴展出一個編程通信口
  • 中止自由口模式,可以將 CPU 上的模式開關從 RUN 撥到 STOP;或者保持處于 RUN 狀態,用程序停止指令庫的 Modbus 模式(參見指令庫應用)

為何有些 HMI 軟件使用 Modbus RTU 讀取S7-200中的實數會出現錯誤?

有些HMI軟件使用Modbus RTU通信協議時,處理存儲在數據保持寄存器中的實數(浮點數)的方式與西門子的實數保存格式不同。西門子的PLC遵循"高字節低地址、低字節高地址"的規律。

Modbus RTU的保持寄存器總是以"字(雙字節)"為單位,而一個實數需要4個字節(雙字)表示。HMI軟件在處理時可能會把保持寄存器的兩個"字"互換位置,造成不能識別以西門子格式表示的實數。如果HMI軟件一方無法處理這種實數,則可在S7-200 CPU中編程將存入數據緩沖區(保持寄存器區)的實數的高字和低字互換。

為何有的HMI軟件用Modbus RTU可以讀取作為從站的S7-200的內容,但不能寫入?

可能此軟件使用了Modbus功能15(寫多個離散量)或類似功能(功能 16)。S7-200從站協議遵守"以整字節地址邊界(如Q0.0、Q2.0)開始、以8的整數倍為位個數"的規約。如果HMI軟件未嚴格執行此規律就可能發生寫入錯誤的情況。

S7-200是否支持 Modbus ASCII 模式?

S7-200可以支持上述模式,但是沒有現成的指令庫,需要用戶自己編程。

項目編譯后為何出現很多錯誤?

使用指令庫時,若編譯后出現很多錯誤,一般是因為未指定庫指令數據存儲區。

分配庫指令數據區

調用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令庫)需要分配庫指令數據區(Library Memory)。庫指令數據區是相應庫的子程序和中斷程序所要用到的變量存儲空間。

如果在編程時不分配庫指令數據區,編譯時會產生許多相同的錯誤(錯誤18)。

操作步驟(以Modbus RTU庫指令為例):

在指令樹的Project(項目)中,以鼠標右鍵單擊Program Block(程序塊),在彈出的快捷菜單中選擇Library Memory。如圖2所示:

圖2

在彈出的選項卡中設置庫指令數據區,如圖2所示:

圖3.缺省情況下是從VB0開始,但因為與Modbus的保持寄存區沖突,所以手動改為VB2000。按"Suggest Address"按鈕也可以自動分配。

可以使用Suggest Address(推薦地址)設置數據區,但要注意編程軟件設置的數據區地址,只考慮到了其他一般尋址,而未考慮到諸如Modbus數據保持寄存器區等的設置。應當確保不與其他任何已使用的數據區重疊、沖突。不應重復按Suggest Address按鈕,否則也會造成混亂。

在STEP 7-Micro/WIN32 V3.1中,有分配庫指令數據區時有不同的操作方法,需要在Symbol Table(符號表)中設置一個首地址。我們強烈建議使用當時最新的編程版本。

 

 

S7-200 CPU的Port1是否可以支持Modbus RTU協議?

可以。用戶可以自己編程實現。

在S7-200的"Tips and Tricks"幫助文檔中,Tip041是Modbus RTU從站程序,用戶可以參考。

S7-200是否可以組成Modbus RTU通信網絡?如何組網?

S7-200可以組成RS-485基礎上的Modbus RTU網絡。如果通信對象是不同標準的通信口,可能還需要轉換。
參見:RS-485網絡組成

Tags:Modbus,RTU,常見問題  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 相關文章列表
    Modbus RTU與Modbus TCP的區別
    如何看懂Modbus數據幀?Modbus RTU數據幀格式
    Modbus協議中寄存器40001,30001是什么意思?
    MODBUS協議用03功能碼為什么既能讀又能寫寄存器地址?
    梯形圖實例 儀表與西門子PLC Modbus通訊實例稱重儀表 指令MBUS_M
    西門子plc與modbus設備進485通信詳解(modbus多機輪詢)讀取儀表
    手把手帶你搞懂Modbus通信協議 報文格式詳解
    寄存器PLC地址與寄存器modbus協議地址 三菱FX系列西門子s7系列pl
    Modbus協議基本知識 Modbus地址范圍對應表
    Modbus-RTU協議解析
    MODBUS常用功能碼學習及實例 modbus報文格式
    Modbus如何遠距離傳輸? Modbus物聯網
    Modbus和RS485的關系是什么?
    Modbus RS485接線方法  modbus接線方法 終端電阻
    MODBUS調試工具(modscan32)使用說明-MODBUS調試工具(modscan32)如
    RS-485終端電阻怎么接?485終端電阻接法解析
    modbus通訊 RS-485終端電阻的重要性
    Modbus功能碼詳解 讀取線圈、保持寄存器
    modbus協議地址和常用功能碼,modbus詳解
    Modbus功能碼介紹
    Modbus網關的概念/功能/作用/特點
    Modbus-RTU通訊協議03功能碼詳解——小白一看就會的協議解析
    西門子plc SMART200 通過Modbus讀取溫濕度傳感器數據梯形圖實例
    實現PLC與多臺變頻器的MODBUS/RTU通信   MODBUS協議報文格式
    西門子plc modbus地址詳解
    s7-200與計算機modbus通訊案例,西門子S7-200 Smart Modbus通信介
    Modbus通訊協議簡介
    電力儀表怎么設置modbus ,電力-MODBUS_RTU通訊規約
    MODBUS規約報文解析
    modbus rtu六種功能碼詳細解析
    請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    推薦文章
    最新推薦
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢