スレーブへのデータ書き込みまたはスレーブからのデータの読み出し
この命令は、使用するポートのシステムレジスタで定義されたModbus RTUプロトコルを使用して、通信ポートを介したマスターからスレーブへのデータの書き込みまたはスレーブからのデータの読み出しに使用します。 マスターとスレーブに同じプロトコルが設定されていることを確認してください。
入力
通信ポートの指定(PLC機種による):
COMポート 例:SYS_COM0_PORT
Ethernetポート 例: SYS_ETHERNET_USER_CONNECTION_1
MCU/SCU、例:16#xx01 (xx =スロット番号) COM01
スレーブの局番
FP7のみ:
ファンクションコード05、06、15、16:0~247
SCUを使用し、スレーブユニットNo.に0を指定すると、グローバル転送が実行されます。このとき、スレーブユニットからの応答メッセージはありません。
ファンクションコード01、02、03、04:1~247
他のPLC機種:
ファンクションコード05、06、15、16:0~99
スレーブユニットNo.に0を指定すると、グローバル転送が実行されます。このとき、スレーブユニットからの応答メッセージはありません。
ファンクションコード01、02、03、04:1~99
SYS_ETHERNET_USER_CONNECTION_xxを入力Portに割り付けるには、1をセットします。
SYS_MODBUS_03_READ_HOLDING_REGISTER
先頭アドレス(0~65535)。FunctionCode*で指定されたコマンドによるアドレスタイプ。
送信ビット数または送信ワード数
1(ファンクションコード05、06の場合)
1–2040(ファンクションコード01、02の場合)
2–2040(ファンクションコード15の場合)
1–127(ファンクションコード03、04の場合)
2–127(ファンクションコード16の場合)
スレーブに書き込まれるデータのマスター側のソースアドレス
出力
FP7のみ:全エラーコードについては、Modbus/MEWTOCOL通信エラーコード表を参照してください。
他のPLC機種: 0に設定
送信時:マスター通信の送信フラグはTRUEです
送信完了時:マスター通信の送信フラグはFALSEです
正常完了:FALSE
異常完了:TRUE
インデックス修飾時にエリアを超えたとき
インデックス修飾時にエリアを超えたとき
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
接続するスレーブがシステムレジスタでModbus RTUスレーブに設定している当社PLCの場合は、1ビットまたは複数ビットを読み出します。
Y (出力)
R (内部リレー)
Modbusコマンド01の実行:Modbusスレーブの先頭レジスタ56 (変数StartRegisterで指定)から1ビットを読み出します。次にそのコマンドは、その1ビットをマスターに格納します(変数bBool2で設定されたアドレスから開始)。 スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、先頭レジスタ56は、出力Y38 (3*16+8=56)に対応します。
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
接続するスレーブがシステムレジスタでModbus RTUスレーブに設定している当社PLCの場合は、1ビットまたは複数ビットを読み出します。
Modbusコマンド02の実行:Modbusスレーブの先頭レジスタ66 (変数StartRegisterで指定)から1ビットを読み出します。次にそのコマンドは、その1ビットをマスターに格納します(変数bBool2で設定されたアドレスから開始)。 スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、先頭レジスタ66は、入力X42(4*16+2=66)に対応します。
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
接続するスレーブがシステムレジスタでModbus RTUスレーブに設定している当社PLCの場合は、1ビットまたは複数ビットを読み出します。
Modbusコマンド03の実行:Modbusスレーブの先頭レジスタ100 (変数StartRegisterで指定)から2ワードを読み出します。Modbusマスター2のアドレス(変数rCount2)から2ワードを格納します。スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、先頭レジスタ100は、データレジスタDT100に対応します。
最大レジスタ数: 127
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
接続するスレーブがシステムレジスタでModbus RTUスレーブに設定している当社PLCの場合は、1ビットまたは複数ビットを読み出します。
WL0–WL127 (リンクリレー)
LD0–LD256 (リンクレジスタ)
Modbusコマンド04の実行:Modbusスレーブの先頭レジスタ2018 (変数StartRegisterで指定)から7ワードを読み出します。マスターのアドレスLD25(変数MasterDataで指定)から7ワードを格納します。スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、先頭レジスタ2018は、データレジスタLD18に対応します。
最大レジスタ数: 127
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
Modbus RTUモードで接続されているスレーブが当社PLCの場合、1ビットまたは複数ビットを書き込みます。
Y (出力)
R (内部リレー)
Modbusコマンド05の実行:1ビットをModbusスレーブに書き込みます。先頭アドレスWY1は変数MasterDataで設定されます。次にそのコマンドは、その1ビットをModbusスレーブに格納します(変数StartRegisterで設定された先頭レジスタ35)。 スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、アドレス35は、出力Y23(2*16+3=35)に対応します。
複数ビットデータを書き込むときは、SYS_MODBUS_15_FORCE_COILS定数を使用してください。
最大レジスタ数:1
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
Modbus RTUモードで接続されているスレーブが当社PLCの場合、1ビットまたは複数ビットを書き込みます。
Modbusコマンド 06の実行:Modbusスレーブへ1ワードを書き込みます。先頭アドレスDT14は変数MasterDataで設定されます。次にそのコマンドは、その1ワードをModbusスレーブに格納します(変数StartRegisterで設定された先頭レジスタ21)。 スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、先頭レジスタ21は、データレジスタDT21に対応します。
複数ビットデータを書き込むときは、SYS_MODBUS_15_FORCE_COILS定数を使用してください。
最大レジスタ数:1
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
Modbus RTUモードで接続されているスレーブが当社PLCの場合、1ビットまたは複数ビットを書き込みます。
Y (出力)
R (内部リレー)
Modbusコマンド15の実行:64ビットをModbusスレーブに書き込みます。先頭アドレスWY1は変数MasterDataで設定されます。Modbusスレーブに64ビットを格納します。先頭レジスタは48、変数StartRegisterにセットします。スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、アドレス48は、出力Y30(3*16=48)に対応します。
この定数を入力パラメータFunctionCode*に適用すると、対応するModbusコマンドが実行されます。
Modbus RTUモードで接続されているスレーブが当社PLCの場合、1ビットまたは複数ビットを書き込みます。
Modbusコマンド16の実行:Modbusスレーブへ書き込みます。先頭アドレスは変数rCount1で設定されます。Modbusスレーブ2にデータを格納します。先頭レジスタは100、変数StartRegisterにセットします。スレーブの先頭アドレスは、各デバイス毎のModbus仕様に従って、デバイス固有のアドレスに変換されます。
接続されているスレーブが当社PLCの場合は、先頭レジスタ100は、データレジスタDT100に対応します。
最大レジスタ数: 127