説明 ディスクリート入力レジスタへの書き込み。 構文 node1.writeDiscreteInput(address, value) node2.writeDiscreteInput(address, size, buffer) パラメーター node1/node2: ModbusSlaveNode オブジェクト。 address: 書き込み先のディスクリート入力レジスタのアドレス。 value: 書き込み先のディスクリート入力レジスタの値。 size: 書き込むディスクリート入力レジスタの数。 buffer: buffer が指す配列空間内の配列データをディスクリート入力レジスタにコピーします。 戻り値 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: 読み取ったコイルレジスタ配列データを、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 […]
説明 Coilsレジスタに書き込みます。 構文 node1.writeCoil(address, value) node2.writeCoil(address, size, buffer) パラメータ node1/node2: ModbusSlaveNode オブジェクト。 address: 書き込むCoilsレジスタのアドレス。 value: 書き込む単一のCoilsレジスタの値。 size: 書き込むCoilsレジスタの数。 buffer: buffer が指す配列空間内の配列データをコイルレジスタにコピーします。 戻り値 int: 成功した場合は MODBUS_SUCCESS を返し、それ以外の場合は EXCEPTION_CODE を返します。 参照 - 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: ユーザー定義関数。バイト型の 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スレーブの例を参照してください。 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スレーブの例 を参照してください。 参照 - *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 18 […]
説明 ModbusMasterNode オブジェクトを初期化し、マウントチャネルと対応するノード番号を指定します。 構文 node1.attach(slave_id, bus1) node2.attach(bus2) パラメータ node1/node2: ModbusMasterNode オブジェクト。 slave_id: 対応するスレーブノード番号を指定します。 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 […]
説明 ModbusSlaveNode オブジェクトを初期化し、マウントチャネルとノード番号を指定します。 構文 node1.attach(slave_id, bus1) node2.attach(bus2) パラメータ node1/node2: ModbusSlaveNode オブジェクト。 slave_id: スレーブノード番号を指定します。 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 […]
説明 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 <Ethernet.h> […]
Modbus86 Slave を使用すると、86Duino で Modbus Slave ノードをシミュレートし、チャネルでコマンドを受信してコールバック関数を実行できます。 例 RS485を有効にし、通信方法としてModbus RTUを使用するスレーブデバイスの例 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 45 […]