readCoil()

説明

Coilsレジスタを読み出します。

構文

node1.readCoil(address) node2.readCoil(address, size, buffer)

パラメータ

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

address: 読み出すCoilsレジスタのアドレス。

size: 読み出すCoilsレジスタの数。

buffer: 読み取ったコイルレジスタ配列データを、buffer が指す配列空間にコピーします。

戻り値

int: アドレスパラメータ(MODBUS_COIL_ON または MODBUS_COIL_OFF)のみを使用した場合、コイル位置データを返します。指定されたバッファを使用して読み取る場合は 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

37

38

39

40

41

42

43

44

#include <Modbus86.h>

 

ModbusSlave バス;

ModbusSlaveNode ノード;

 

uint8_t write_single_coil(  uint8_t 関数,

                         uint16_t アドレス、

                      uint16_t長さ)

{

    uint16_t value;

     

     if (address == 0) {

       node.readCoil(address, 1, &value);

        if (値)

           digitalWrite(LED_BUILTIN, HIGH);

       else

          digitalWrite(LED_BUILTIN, LOW);

   >

 

    return MODBUS_SUCCESS;

>

 

void setup()

{

    pinMode(LED_BUILTIN, OUTPUT);

     

    Serial485.begin(115200);

     

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

    bus.begin(MODBUS_RTU, Serial485);

     

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

    node.attach(11, bus);

 

    /*シングルコイル書き込み(0x05)のコールバック関数を設定します。 */

    node.cbFunc[MODBUS_CB_WRITE_SINGLE_COIL]

                        = write_single_coil;

     

 

 

void loop()

{   

    node.poll();

code>

参照

writeCoil()


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

86Duinoリファレンスのテキストは、Arduinoリファレンスから改変されており、クリエイティブ・コモンズ 表示-継承 3.0 ライセンスに基づいてライセンスされています。リファレンス内のコード例はパブリックドメインとして公開されています。