最佳回答:

MBUS_CTRL 指令
必須在每次掃描時(包括首次掃描)調用 MBUS_CTRL 指令,以便其監視 MBUS_MSG 指令啟動的任何待處理消息的進程。 除非每次掃描時都調用
MBUS_CTRL,否則 Modbus 主站協議將不能正確工作。
“模式”(Mode) 輸入的值用于選擇通信協議。 輸入值為 1 時,將 CPU 端口分配給 Modbus 協議并啟用該協議。 輸入值為 0
時,將 CPU 端口分配給 PPI 系統協議并禁用 Modbus 協議。
參數“奇偶校驗”(Parity) 應設置為與 Modbus 從站設備的奇偶校驗相匹配。 所有設置使用一個起始位和一個停止位。 允許的值如下:
0(無奇偶校驗)、 1(奇校驗)和 2(偶校驗)。
參數“端口”(Port)設置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可選 CM01 信號板上的 RS-485 或
RS-232)。
參數“超時”(Timeout) 設為等待從站做出響應的毫秒數。 “超時”(Timeout) 值可以設置為 1 ms 到 32767 ms
之間的任何值。 典型值是 1000 ms (1 s)。 “超時”(Timeout) 參數應設置得足夠大,以便從站設備有時間在所選的波特率下做出響應。
“超時”(Timeout) 參數用于確定 Modbus 從站設備是否對請求做出響應。 “超時”(Timeout) 值決定著 Modbus
主站設備在發送請求的最后一個字符后等待出現響應的第一個字符的時長。 如果在超時時間內至少收到一個響應字符,則 Modbus 主站將接收 Modbus
從站設備的整個響應。
MBUS_CTRL 指令完成時,“完成”(Done) 輸出接通。
“錯誤”(Error) 輸出包含指令執行的結果。
MBUS_MSG 指令
EN 輸入和“第一個”(First) 輸入同時接通時,MBUS_MSG 指令會向 Modbus 從站發起主站請求。
發送請求、等待響應和處理響應通常需要多個 PLC 掃描時間。 EN 輸入必須接通才能啟用請求的發送,并且應該保持接通狀態,直到“完成”(Done) 位接通。
某一時間只能有一條 MBUS_MSG 指令處于激活狀態。 如果啟用多條 MBUS_MSG 指令,將處理執行的第一條 MBUS_MSG 指令,所有后續
MBUS_MSG 指令將中止并生成錯誤代碼 6。
有新請求要發送時,參數“第一個”(First) 會接通,并僅保持一個掃描周期。
第一個輸入應通過沿檢測元素(例如,上升沿)以脈沖方式接通,這將導致請求被發送一次。 有關詳細信息,請參見示例程序。
參數“從站”(Slave) 是 Modbus 從站設備的地址。 允許的范圍是 0 至 247。地址 0 是廣播地址,只能用于寫請求。
系統不響應對地址 0 的廣播請求。不是所有從站設備都支持廣播地址。 S7-200 SMART Modbus 從站庫不支持廣播地址。
參數 RW 分配是讀取還是寫入該消息。 “讀寫”(RW) 允許使用以下兩個值: 0(讀取)和 1(寫入)。
離散量輸出(線圈)和保持寄存器支持讀請求和寫請求。 離散量輸入(觸點)和輸入寄存器僅支持讀請求。
參數地址 (Addr) 是起始 Modbus 地址。 允許的取值范圍如下:
對于離散量輸出(線圈),為 00001 至 09999
對于離散量輸入(觸點),為 10001 至 19999
對于輸入寄存器,為 30001 至 39999
對于保持寄存器,為 40001 至 49999 和 400001 至 465535
“地址”(Addr) 的實際取值范圍取決于 Modbus 從站設備所支持的地址。
參數“計數”(Count) 用于分配要在該請求中讀取或寫入的數據元素數。 “計數”(Count)
值是位數(對于位數據類型)和字數(對于字數據類型)。
對于地址 0xxxx,“計數”(Count) 是要讀取或寫入的位數
對于地址 1xxxx,“計數”(Count) 是要讀取的位數
對于地址 3xxxx,“計數”(Count) 是要讀取的輸入寄存器字數
對于地址 4xxxx 或 4yyyyy,“計數”(Count) 是要讀取或寫入的保持寄存器字數
MBUS_MSG 指令最多讀取或寫入 120 個字或 1920 個位(240 個字節的數據)。 “計數”(Count) 的實際限值取決于 Modbus
從站設備的限制。
參數 DataPtr 是間接地址指針,指向 CPU 中與讀/寫請求相關的數據的 V 存儲器。 對于讀請求,DataPtr 應指向用于存儲從
Modbus 從站讀取的數據的第一個 CPU 存儲單元。 對于寫請求,DataPtr 應指向要發送到 Modbus 從站的數據的第一個 CPU
存儲單元。
DataPtr 值以間接地址指針形式傳遞到 MBUS_MSG。 例如,如果要寫入到 Modbus 從站設備的數據始于 CPU 的地址 VW200,則
DataPtr 的值將為 &VB200(地址 VB200)。 指針必須始終是 VB 類型,即使它們指向字數據。
保持寄存器(地址 4xxxx 或 4yyyyy)和輸入寄存器(地址 3xxxx)是字值(2 個字節或 16 個位)。 CPU 字的格式與 Modbus
寄存器相同。 編號較小的 V 存儲器地址是寄存器的最高有效字節。 編號較大的 V 存儲器地址是寄存器的最低有效字節。 下表顯示了 CPU 字節和字尋址如何與
Modbus 寄存器格式相對應。
其他答案1:
多看例程 論壇上有