描述 写入 Discrete Inputs 暂存器。 语法 node1.writeDiscreteInput(address, value) node2.writeDiscreteInput(address, size, buffer) 参数 node1/node2: ModbusSlaveNode 物件。 address:欲写入的 Discrete Inputs 暂存器位址。 value:欲写入的单一 Discrete Inputs 暂存器数值。 size:欲写入的复数 Discrete Inputs 暂存器数量。 buffer:将 buffer 指向的阵列空间内的阵列资料复写至 Discrete Inputs 暂存器内。 回传 int:如果成功回传 MODBUS_SUCCESS,反之回传 EXCEPTION_CODE 。 函式库参考主页面 86Duino 参考资料中的文字修改自 Arduino 参考资料,并根据 知识共享署名-许可证方式共享 3.0 授权。参考资料中的程式码范例已发布到公共领域。
描述 读取 Coils 暂存器。 语法 node1.readCoil(address) node2.readCoil(address, size, buffer) 参数 node1/node2: ModbusSlaveNode 物件。 address:欲读取的 Coils 暂存器位址。 size:欲读取的 Coils 暂存器数量。 buffer:将读取出的 Coils 暂存器阵列资料复写至 buffer 指向的阵列空间内。 回传 int:仅使用 address 引数时回传该 Coil 位置资料,为 MODBUS_COIL_ON 或 MODBUS_COIL_OFF 。 使用指定 buffer 读取时,则回传 MODBUS_SUCCESS ,反之回传 EXCEPTION_CODE 。 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 […]
描述 写入 Coils 暂存器。 语法 node1.writeCoil(address, value) node2.writeCoil(address, size, buffer) 参数 node1/node2: ModbusSlaveNode 物件。 address:欲写入的 Coils 暂存器位址。 value:欲写入的单一 Coils 暂存器数值。 size:欲写入的复数 Coils 暂存器数量。 buffer:将 buffer 指向的阵列空间内的阵列资料复写至 Coil 暂存器内。 回传 int:如果成功回传 MODBUS_SUCCESS,反之回传 EXCEPTION_CODE 。 See Also - readCoil() 函式库参考主页面 86Duino 参考资料中的文字修改自 Arduino 参考资料,并根据 知识共享署名-许可证方式共享 3.0 授权。参考资料中的程式码范例已发布到公共领域。
描述 cbFunc 是一个回呼函式指标阵列,当 poll() 接收到对应功能码时,将会呼叫 cbFunc 阵列中指向的对应函式。 语法 uint8_t Func1(function, address, length) { return EXCEPTION_CODE; } node1.cbFunc[MODBUS_CB_CODES] = Func1; 参数 node1: ModbusSlaveNode 物件。 Func1:使用者自定义的函式,回传一个 Byte 的 EXCEPTION_CODE。 function:Modbus封包之功能码。 address:Modbus封包欲存取的位址。 length:Modbus封包欲存取的空间长度。 cbFunc[]:回呼函式阵列。 MODBUS_CB_CODES:回呼函式阵列索引值,支援以下功能码。 MODBUS_CB_READ_COILS MODBUS_CB_READ_DISCRETE_INPUTS MODBUS_CB_READ_HOLDING_REGISTERS MODBUS_CB_READ_INPUT_REGISTERS MODBUS_CB_WRITE_SINGLE_COIL MODBUS_CB_WRITE_SINGLE_REGISTER MODBUS_CB_WRITE_MULTIPLE_COILS MODBUS_CB_WRITE_MULTIPLE_REGISTERS MODBUS_CB_MASK_WRITE_REGISTER 范例 请参照 Modbus Slave 范例 See Also - ModbusMasterNode::poll() 函式库参考主页面 86Duino 参考资料中的文字修改自 Arduino 参考资料,并根据 […]
描述 接收并解析 Modbus 封包,并根据指令存取暂存器与呼叫回呼函式。 当功能码为 Read 指令时,会先呼叫回呼函式再读取暂存器回传;当功能码为 Write 指令时,会先写入暂存器再呼叫回呼函式;当功能码为 ReadWrite 指令时,会先写入暂存器再呼叫 Write 回呼函式,之后呼叫 Read 回呼函式,最后读取暂存器回传。 语法 node1.poll() node2.poll(buf, size) 参数 node1/node2:ModbusSlaveNode物件。 buf:使用者自定义暂存器空间。 size:该自定义空间之大小。 回传 int:已接收到的 Modbus 封包长度。 范例 请参照 Modbus Slave 范例 See Also - *cbFunc[]() 函式库参考主页面 86Duino 参考资料中的文字修改自 Arduino 参考资料,并根据 知识共享署名-许可证方式共享 3.0 授权。参考资料中的程式码范例已发布到公共领域。
描述 初始化 ModbusMaster 物件,并指定其为 Serial 类别或 IPAddress 类别。 语法 bus1.begin(mode, serial) bus2.begin(mode, modbus_server_ip) 参数 bus1/bus2: ModbusMaster 物件。 mode:指定 ModbusMaster 物件的通讯模式,其引数分别为 MODBUS_RTU 、 MODBUS_ASCII 或 MODBUS_TCP 。 serial:指定 Serial 类别做为传输通道。 modbus_server_ip:指定 IPAddress 类别做为传输通道。 回传 bool:如果成功回传 true ,反之回传 false 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 […]
描述 初始化 ModbusMasterNode 物件,并指定挂载通道与对应节点编号。 语法 node1.attach(slave_id, bus1) node2.attach(bus2) 参数 node1/node2: ModbusMasterNode 物件。 slave_id:指定对应 Slave 节点编号,于 TCP 模式下不指定编号将会使编号预设为 MODBUS_TCP_SLAVE (0xFF) 。 bus1/bus2:指定欲挂载之 ModbusMaster 物件。 回传 bool:如果成功回传 true,反之回传 false 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 […]
描述 初始化 ModbusSlaveNode 物件,并指定挂载通道与节点编号。 语法 node1.attach(slave_id, bus1) node2.attach(bus2) 参数 node1/node2: ModbusSlaveNode 物件。 slave_id:指定 Slave 节点编号,于 TCP 模式下不指定编号将会使编号预设为 MODBUS_TCP_SLAVE (0xFF) 。 bus1/bus2:指定欲挂载之 ModbusSlave 物件。 回传 bool:如果成功回传 true,反之回传 false 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include […]
描述 初始化 ModbusSlave 物件,并指定模式与通道。 语法 bus1.begin(mode, serial) bus2.begin(mode) 参数 bus1/bus2: ModbusSlave 物件。 mode:指定 ModbusSlave 物件的通讯模式,其引数分别为 MODBUS_RTU 、 MODBUS_ASCII 或 MODBUS_TCP 。 serial:当 mode 指定为 MODBUS_RTU 或 MODBUS_ASCII 时必须指定 Serial 类别做为传输通道。 回传 bool:如果成功回传 true,反之回传 false 范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include […]
Modbus86 Slave 能使 86Duino 模拟成 Modbus Slave 节点,在通道上接收指令并执行回呼函式。 范例 启用 RS485 并使用 Modbus RTU 作为通讯方式的 Slave 装置范例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 […]