應用領域 | 化工,電子 | 重量 | 11kg |
---|
SIEMENS 可編程控制器
1、 SIMATIC S7 系列PLC、S7200、s71200、S7300、S7400、ET200
2、 邏輯控制模塊 LOGO!230RC、230RCO、230RCL、24RC、24RCL等
DC 1.3A、2.5A、3A、5A、10A、20A、40A西門子6ES7313-6BG
參考價 | 面議 |
更新時間:2020-04-23 11:15:18瀏覽次數:103
聯系我們時請說明是化工儀器網上看到的信息,謝謝!
如何理解 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軟件未嚴格執行此規律就可能發生寫入錯誤的情況。