河南張先生
努力做事,誠信做人
級別: 家園常客
![]() |
這是一個廠家給的通訊協議: 樓層提升機受控于 PLC,Lothar 系統與 PLC 以 Modbus TCP/IP 協議通信。 Lothar 系統為 MasterClient,PLC 為 SlaveServer,寄存器開始地址:0x0000 MODBUS TCP/IP 協議 ⚫ ADU=MBAP+PDU=MBAP+功 能碼+數 據 ⚫ MBAP 描述 長度(字節) 描述 客戶端表示 服務端表示 事務識別號 2 Modbus 請求/響應任務的識別號 由客戶端初始化時形成 由接收到的請求信息復制 協議識別號 2 0=Modbus 協議 由客戶端初始化時形成 由接收到的請求信息復制 長度 2 后面的字節數量 由客戶端發送請求時形成 由服務端響應請求時形成 設備識別號 1 連接的從站地址 由客戶端初始化時形成 由接收到的請求信息復制 ⚫ 功能 碼 0x03 讀取數據 readHoldingRegistersAsync 0x10 寫入數據 writeMultipleRegistersAsync 數據報 文示 例 信號 數據流向 值 寄存器地址 數提升機狀態 PLC>>>Lothar 0x0000(異常) / 0x0001(正常) 0x0000 提升機門狀態 PLC>>>Lothar 0x0000(已關) / 0x0001(已開) 0x0001 提升機樓層狀態 PLC>>>Lothar 0x0000(未知) / 0x0001(已抵達1樓)/0x0002(已抵達2樓) 0x0002 呼叫提升機 Lothar>>>PLC 0x0000(否)/0x0001(呼叫提升機抵達 1 樓并自動開門 ) 0x0002( 呼 叫 提 升 機 抵 達 2 樓 并 自 動 開門) 0x0003 0x0003(呼叫提升機抵達 3 樓并自動開門) 釋放提升機 Lothar>>>PLC 0x0000(否)/0x0001(是) 0x0004 其中Lothar 系統為主客戶端。比如西門子SMART是不是作為從服務器使用 ,是用client模塊建立鏈接還是用Server模塊建立鏈接,寄存器地址0x000是PLC上的地址還是Lothar 系統為主客戶端地址, |
---|---|
|
夢雨天涯
微信hui530527 &
級別: 網絡英雄
![]() |
圖片:
![]() ![]() |
|
---|---|---|
|
河南張先生
努力做事,誠信做人
級別: 家園常客
![]() |
用Server模塊建立鏈接,寄存器地址0x000是PLC上的,不就是0區寄存器,占用輸出口地址了嗎,又比如地址0x0002 里面有判斷樓層值 1 2 3 4 5 如果0X0002是位寄存器,怎么去設置,這點不明白,請指教 [ 此帖被河南張先生在2025-03-28 09:29重新編輯 ] |
---|---|
|
gaoyingchun
GaoYingChun
級別: 略有小成
![]() |
1、上面提到的地址應該是Lothar系統端 2、共用到0~4,5個寄存器 3、Modbus協議,03/10功能碼,都是針對保持寄存器使用的,上面寫成0X開頭,應該是搞錯了,你還是按照4X吧 |
---|---|
|