Modbus 函式庫

86Diuno IDE 從 Coding 318 版開始加入此函式庫,利用此函式庫能讓 86Duino 使用 Modbus 協定進行溝通。


Modbus 串行通訊協定是一種主從式架構,常被運用於控制多個可程式邏輯控制器 (簡稱PLC) 裝置之間的通訊上。 Modbus 存在一個 Master 與多個 Slave 節點進行通訊,當 Master 發送封包時,封包會指定一個位址,故只有對應位址的 Slave 節點會接收並解析封包,並根據指令存取資料暫存器,使 Slave 裝置進行數位或類比單元控制。


由 86Duino 内建的 ModBus 函式庫主要特色如下:

  • 支援序列埠 (Serail) 、以太網路 (Ethernet) 介面
  • 支援 Modbus RUT 、 Modbus ASCII 與 Modbus TCP 通訊協定
  • 能模擬成 Modbus Master 、 Modbus Slave 節點


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.