説明
ModbusRTU MasterコンポーネントはUSB-シリアルアダプタを通じてModbus RTU対応のSlaveデバイスと通信できます。

Modbusのコンポーネントの出力について
物理デバイスIDを指定した場合のJSON配列:
[
{
"DeviceId": "cu.usbserial-OL111162",
"ResponseData": [16,1,45626,1],
"ResponseRaw": [1,3,8,0,16,0,1,178,58,0,1,127,99]
}
]
物理デバイスIDを指定した場合のJSONオブジェクト
{
"DeviceId": "cu.usbserial-OL111162",
"ResponseData": [16,1,45626,1],
"ResponseRaw": [1,3,8,0,16,0,1,178,58,0,1,127,99]
}
Modbusのレスポンスの説明
"DeviceId" はシリアルデバイスの物理デバイスIDです。
"ResponseRaw" はModbusデバイスからのそのままのレスポンスを示します、
"ResponseData" は読み取ったデータや書き込んだデータの情報のみを含みます。
"(0x01) Read Coils" と "(0x02) Read Discrete Inputs" の場合、レスポンスはビット形式になります。
例: "ResponseData": [0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0](長さはコマンドの設定によって異なります)
"(0x03) Read Holding Registers" と "(0x04) Read Input Registers" の場合、レスポンスは2バイト形式になります。
例: "ResponseData": [6, 20000](長さはコマンドの設定によって異なります)
"(0x05) Write Single Coil" と "(0x06) Write Single Register" の場合、2バイトのレスポンスが返され、データアドレスと書き込んだデータが含まれます。
例: "ResponseData": [12, 65280](12=データアドレス、65280=書き込んだデータ)
"(0x0F) Write Multiple Coils" と "(0x10) Write Multiple Registers" の場合も、2バイトのレスポンスが返され、最初のデータアドレスと書き込んだコイルの数またはレジスターの数が含まれます。
例: "ResponseData": [5, 2](5=最初のデータアドレス、2=書き込んだコイルまたはレジスターの数)
コンポーネントプロパティ
プロパティー名 | 説明 |
---|---|
スレーブアドレス (SlaveAddress) | デバイスのスレーブアドレスを指定できます 10進数と16進数で入力可能です。16進数の場合は数字の前に「0x」を追加してください |
ファンクションコード (FunctionCode) | 以下のリストからサポートされているファンクションコードを選択できます (0x01) Read Coils (0x02) Read Discrete Inputs (0x03) Read Holding Registers (0x04) Read Input Registers (0x05) Write Single Coil (0x06) Write Single Register (0x0F) Write Multiple Coils (0x10) Write Multiple Registers |
アドレス (Address) | 最初に読み込むまたは書き込むレジスター (Register) またはコイル (Coil) を指定できます |
数 (Quantity) | このプロパティは、ファンクションコードが 「(0x01) Read Coils」 「(0x02) Read Discrete Inputs」 「(0x03) Read Holding Registers」 「(0x04) Read Input Registers」 「(0x0F) Write Multiple Coils」 「(0x10) Write Multiple Registers」 の場合にのみ使用します 指定されたファンクションコードによって、読み込むまたは書き込むレジスター (Register) やコイル (Coil) の数を指定できます |
データ (Data) | このプロパティは、ファンクションコードが 「(0x05) Write Single Coil」 「(0x06) Write Single Register」 「(0x0F) Write Multiple Coils」 「(0x10) Write Multiple Registers」 の場合にのみ使用します。ここで書き込むデータを指定できます 10進数と16進数で入力可能です。16進数の場合は数字の前に「0x」を追加してください データはカンマ区切りで1バイトずつ入力する必要があります。(例:0xFA, 224, 5, 0x4) |
物理デバイスID | 何も設定されていないときは全てのModbus USBデバイスまたはUSB-シリアルアダプタからのデータ出力を実行します Modbus USBデバイスまたはUSB-シリアルアダプタを複数使用する場合は、デバイスIDをカンマ区切りで記述することができます*1 |
※1 注意: 複数の異なるModbus USBデバイスまたはUSB-シリアルアダプタが接続されている場合、デバイスIDを指定しないと、異なるデバイスに同じコマンドが送信されるため、エラーが発生する可能性があります。
物理デバイスID を省略できるのは、次のいずれかの場合です:
- Modbus の物理デバイスが 1 台のみ接続されている場合
- Modbus の物理デバイスが 2 台以上接続されていて、すべてが同じスレーブアドレス・同じ動作をする場合
例:USB センサーを複数接続し、同じコマンドでまとめてデータを取得する
デバイスに接続するために設定ファイルの変更が必要になりますので弊社まで連絡願います。