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 類別

發送對應節點封包指令。

begin()
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 類別

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

begin()
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()


展示影片


函式庫參考主頁面

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.