Modbus 函式庫

86Diuno IDE 從 Coding 318 版開始加入此函式庫,用於支援 Modbus 通信協定,此協定是為了 可程式化邏輯控制器(PLC) 等自動化電子設備之間的通信,於 1979 年發表的一個工業通訊標準。

Modbus 是一種基於 master/slave 架構的協定,整個網路上存在一個 master 節點與多個 slave 節點進行通訊。每個節點都有一個唯一的地址,當 master 節點發送指定地址的封包時,只有對應地址的 slave 節點會接收及解析封包,並根據封包內容執行及回應指令。

86Duino 的 Modbus 函式庫具有下列特色:

  • 同時支援 Modbus RTU、TCP、ASCII 三種子通訊協定。
  • 既可作為 Modbus master 節點運行,也可作為 Modbus slave 節點運行。
  • 支援 Modbus gateway 功能。

Modbus Master

Modbus Master 能使 86Duino 模擬成 Modbus Master ,對通道上的 Slave 節點傳送封包。

ModbusMaster 類別

將 Serail / Ethernet 用於 Modbus 傳輸。

- begin()

ModbusMasterNode 類別

發送對應節點封包指令。

- attach()
- getResponseBuffer()
- clearResponseBuffer()
- setTransmitBuffer()
- clearTransmitBuffer()
- beginTransmission()
- sendBit()
- send()
- available()
- receive()
- readCoils()
- readDiscreteInputs()
- readHoldingRegisters()
- readInputRegisters()
- writeSingleCoil()
- writeSingleRegister()
- writeMultipleCoils()
- writeMultipleRegisters()
- maskWriteRegister()
- readWriteMultipleRegisters()

 

Modbus Slave

Modbus Slave 能使 86Duino 模擬成 Modbus Slave 節點,在通道上接收指令並執行回呼函式。

ModbusSlave 類別

將 Serail / Ethernet 用於 Modbus 傳輸。

- begin()

ModbusSlaveNode 類別

接收並解析對應封包,並根據指令存取資料暫存器與呼叫回呼函式。

- attach()
- poll()

回呼函式指標陣列。

- *cbFunc[]()

直接存取 Slave 暫存器之函式,通常用於回呼函式內。

- readCoil()
- writeCoil()
- writeDiscreteInput()
- readHoldingRegister()
- writeHoldingRegister()
- writeInputRegister()

 

Modbus Gateway

Modbus Gateway 能使 86Duino 模擬成 Modbus Gateway ,是轉發 Modbus Master 通訊資料的閘道器。

ModbusGateway 類別

轉發 Modbus Master 通訊資料的閘道器。

- begin()
- connect()
- setTimeout()
- poll()


展示影片


函式庫參考主頁面

86Duino 參考資料中的文字修改自 Arduino 參考資料,並根據 知識共享署名-許可證方式共享 3.0  授權。參考資料中的程式碼範例已發佈到公共領域。