writeInputRegister()

説明

入力レジスタへの書き込み。

構文

node1.writeInputRegister(address, value) node2.writeInputRegister(address, size, buffer)

パラメータ

node1/node2: ModbusSlaveNode オブジェクト。

address: 書き込み先の入力レジスタのアドレス。

value: 書き込み先の単一入力レジスタの値。

size: 書き込む複数の入力レジスタの数。

buffer: buffer が指す配列空間内の配列データを入力レジスタレジスタにコピーします。

戻り値

int: 成功した場合は MODBUS_SUCCESS を返し、そうでない場合は EXCEPTION_CODE を返します。

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

#include <Modbus86.h>

 

ModbusSlave バス;

ModbusSlaveNode ノード;

 

uint8_t read_input_registers(   uint8_t 関数,

                             uint16_t アドレス、

                              uint16_t length)

{

    int sensorPin = A2;

 

    if (address <= 2 && address + length > 2)

       node.writeInputRegister(2, analogRead(sensorPin));

    

    return MODBUS_SUCCESS;

>

 

void setup()

{   

    Serial485.begin(115200);

     

    /* RS485経由のModbus RTUモード。 */

    bus.begin(MODBUS_RTU, Serial485);

     

    /* ID 11 のスレーブノード。 */

    node.attach(11, bus);

 

    /*読み取り入力レジスタ (0x04) のコールバック関数を設定します。 */

    node.cbFunc[MODBUS_CB_READ_INPUT_REGISTERS]

                        = read_input_registers;

 

 

void loop()

{

   node.poll();

 


ライブラリリファレンスホームページ

86Duinoリファレンス資料のテキストは、Arduinoリファレンス資料から変更されており、Creative Commons Attribution-Share Alike 3.0 License  参照内のコード例はパブリック ドメインとしてリリースされています。