6.5 内部変数
6.5.1 内部変数の説明
6.5.1.2 ウォッチドッグレジスタ
ウォッチドッグレジスタのアドレスは、MODBUSの読み書き機能コードについ て説明したのと同様の方法で指定できます。参照番号のかわりに該当するレジス タアドレスを指定します。
レジスタアドレス 0x1000(MODBUSアドレス:404097) 名称 ウォッチドッグタイマ値、WS_TIME アクセス種別 読み書き
デフォルト値 0x0000
説 明
ウォッチドッグのタイムアウト値を符号なしの16ビット値で格納し ます。デフォルト値は「0」です。値を設定してもウォッチドッグは 始動されません。ただし、ウォッチドッグを始動可能にするにはゼ ロ以外の値を設定する必要があります。タイムアウト値は 100ms の 倍数で指定します(例:0x0009→0.9秒)。なお、ウォッチドッグの
レジスタアドレス 0x1001(MODBUSアドレス:404098)
名称 ウォッチドッグの機能コードマスク、機能コード1〜16、
WDFCM_1_16 アクセス種別 読み書き デフォルト値 0x0000
説 明
このマスクにより、ウォッチドッグ機能をリセットするよう特定の機能 コードを設定することができます。機能コードを指定するには、該当
ビット(2(機能コード−1)+....)に「1」を書き込みます。
ビット1001.0は機能コード1に、ビット1001.1は機能コード2に、
……対応します。
0xFFの値では、MODBUSの機能コード1〜16のすべてがウォッチ ドッグをリセットできます。なお、ウォッチドッグの動作中はこの 値を変更することができません。
レジスタアドレス 0x1002(MODBUSアドレス:404099)
名称 ウ ォ ッ チ ド ッ グ の 機 能 コ ー ド マ ス ク 、 機 能 コ ー ド 17〜32、 WD_FCM_17_32
アクセス種別 読み書き デフォルト値 0x0000 説 明
機能は上と同じですが、対象となる機能コードは 17〜32 となりま す。これらのコードは現在、サポートされていませんので、デフォ ルト値は変更しないでください。なお、ウォッチドッグの動作中は この値を変更することができません。
レジスタアドレス 0x1003(MODBUSアドレス:404100) 名称 ウォッチドッグトリガ、WD_TRIGGER アクセス種別 読み書き
デフォルト値 0x0000
説 明
ウォッチドッグのトリガに使用されます。電源投入時のデフォルト 値は「0」です。ゼロ以外の値を書き込むとウォッチドッグにトリガ が掛かります。このレジスタの内容を書き換えるたびにウォッチ ドッグにトリガが掛かります。なお、ウォッチドッグタイマのレジ スタ値が「0」のときはトリガを掛けることができません。
レジスタアドレス 0x1004(MODBUSアドレス:404101)
名称 トリガ最短残り時間、WD_AC_TRG_TIME アクセス種別 読み書き
デフォルト値 0xFFFF
138 • MODBUS 内部変数
レジスタアドレス 0x1005(MODBUSアドレス:404102) 名称 ウォッチドッグの停止、WD_AC_STOP_MASK アクセス種別 読み書き
デフォルト値 0x0000
説 明 こ の レ ジ ス タ に 「0xAAAA」 に 続 い て 「0x5555」 を 設 定 す る と ウォッチドッグタイマが停止します。
レジスタアドレス 0x1006(MODBUSアドレス:404103) 名称 ウォッチドッグの作動状況、WD_RUNNING アクセス種別 読み出し
デフォルト値 0x0000 説 明
ウォッチドッグの現状
0x0000:ウォッチドッグは未動作
0x0001:ウォッチドッグは動作中
0x0002:ウォッチドッグのタイムアウト
レジスタアドレス 0x1007(MODBUSアドレス:404104)
名称 ウォッチドッグの再始動、WD_RESTART アクセス種別 読み書き
デフォルト値 0x0001 説 明
「0x1」の値を書き込むことでウォッチドッグタイマが再始動しま す。タイムアウトする前にウォッチドッグが停止したときは、再始 動されません。
レジスタアドレス 0x1008(MODBUSアドレス:404105)
名称 ウォッチドッグの簡易停止、WD_AC_STOP_SIMPLE アクセス種別 読み書き
デフォルト値 0x0000 説 明
「0xAA55」または「0x55AA」の値を書き込むことでウォッチドッ グが停止します。ウォッチドッグの障害監視が停止され、ウォッチ ドッグレジスタへの書き込みが可能になります。ウォッチドッグに よる障害検出が生じている場合は、その状態がリセットされます。
レジスタアドレス 0x1009(MODBUSアドレス:404106)
名称 ウォッチドッグタイムアウト後のMODBUSソケットのクローズ アクセス種別 読み書き
デフォルト値 0:MODBUSソケットはクローズされていない
1:MODBUSソケットはクローズされている
レジスタアドレス 0x100A(MODBUSアドレス:404107) 名称 代替的ウォッチドッグ
アクセス種別 読み書き デフォルト値 0x0000
説 明
ウォッチドッグタイマを有効にするもう1つの方法を提供します。
手順:時間値をレジスタ0x1000に書き込み、続いて0x0001をレジス
タ0x100Aに書き込みます。ウォッチドッグは最初のMODBUS要求に
よって始動し、ウォッチドッグタイマはMODBUS/TCP命令ごとにリ セットされます。ウォッチドッグがタイムアウトすると、全出力はゼ
例:
•
ウォッチドッグのタイマ値を1秒に設定します。ウォッチドッグタイマのリ セットには機能コード「5」(コイルの書き込み)を使用します。1. ウォッチドッグタイマのレジスタ(0x1000)に0x000A(1000ms÷100ms)
を書き込みます。
2. コードマスクのレジスタ(0x1001)に0x0100(=2(5-1))を書き込みます。
3. ウォッチドッグトリガのレジスタ(0x1003)の値を変更し、ウォッチドッ グを始動します。
4. このときフィールドバスマスタは、ウォッチドッグタイマをリセットする ために機能コード「5」(コイルの書き込み)を指定時間内に連続使用する 必要があります。要求メッセージの時間間隔が1秒を超えるとウォッチ ドッグのタイムアウト障害が発生します。
ウォッチドッグの始動後にこれを停止するには、ウォッチドッグ簡易停止レジ スタ(0x1008)に「0xAA55」または「0x55AA」を書き込みます。
•
ウォッチドッグのタイマ値を10分に設定します。ウォッチドッグタイマのリ セットには機能コード「3」(複数レジスタの読み出し)を使用します。1. タイマ値用のレジスタ(0x1000)に0x1770(10*60*1000ms÷100ms)を書 き込みます。
2. コードマスクのレジスタ(0x1001)に0x0004(2(3-1))を書き込みます。
3. ウォッチドッグトリガのレジスタ(0x1003)の値を変更し、ウォッチドッ グを始動します。
4. このときフィールドバスマスタは、ウォッチドッグタイマをリセットする ために機能コード「3」(複数レジスタの読み出し)を指定時間内に連続使 用する必要があります。要求メッセージの時間間隔が10分を超えると ウォッチドッグのタイムアウト障害が発生します。
ウォッチドッグの始動後にこれを停止するには、ウォッチドッグ簡易停止レジ スタ(0x1008)に「0xAA55」または「0x55AA」を書き込みます。
レジスタアドレス 0x100B(MODBUSアドレス:404108) 名 称 ウォッチドッグパラメータの保存
アクセス種別 書き込み デフォルト値 0x0000
説 明 このレジスタに「1」を書き込むことにより、レジスタ 0x1000、
0x1001、0x1002の内容は保持されます。
6.5.2 診断機能
140 • MODBUS 内部変数
レジスタアドレス 0x1021(MODBUSアドレス:404130)
名 称 LedErrArg
アクセス種別 読み出し
説 明 エラー引数の宣言(エラーコードの定義については 3.1.8.4 を参照 してください)。
6.5.3 コンフィグレーション機能
以下のレジスタは、接続したモジュールのコンフィグレーション情報を保有して います。
レジスタアドレス 0x1022(MODBUSアドレス:404131)
名 称 CnfLen.AnalogOut
アクセス種別 読み出し
説 明 プロセスイメージに含まれるワード型出力レジスタのビット数(16 で割るとアナログワードの全数が得られます)。
レジスタアドレス 0x1023(MODBUSアドレス:404132)
名 称 CnfLen.AnalogInp
アクセス種別 読み出し
説 明 プロセスイメージに含まれるワード型入力レジスタのビット数(16 で割るとアナログワードの全数が得られます)。
レジスタアドレス 0x1024(MODBUSアドレス:404133)
名 称 CnfLen.DigitalOut
アクセス種別 読み出し
説 明 プロセスイメージに含まれるデジタル出力のビット数。
レジスタアドレス 0x1025(MODBUSアドレス:404134)
名 称 CnfLen.DigitalInp
アクセス種別 読み出し
説 明 プロセスイメージに含まれるデジタル入力のビット数。
レジスタアドレス 0x1027(MODBUSアドレス:404136) 名 称 内部バスサイクルの実行
アクセス種別 読み出し
説 明 内部バスサイクルを実行する。
レジスタアドレス 0x1028(MODBUSアドレス:404137) 名 称 ブートのオプション選択
アクセス種別 読み書き 説 明
ブートの設定
0:BootPが無効
1:BootPが有効
レジスタアドレス 0x1029(MODBUSアドレス:404138、ワード数は最大9まで)
名 称 MODBUS/TCPの統計量
アクセス種別 読み書き
BadFunction;M (2ワード) → Bad Address (2ワード) →
BadData (2ワード) →
TooManyRegisters (2ワード) → TooManyBits (2ワード) → ModTcpMessageCounter → (2ワード)
無効な機能コード 無効なレジスタアドレス 無効な値
処理できるレジスタ数が多すぎる、
読み出し/書き込み=125/100 処理できるコイル数が多すぎる、読 み出し/書き込み=2000/800
MODBUS/TCP要求の受信数
レジスタに0xAA55または0x55AAを書き込むと、このデータ領域 はリセットされます。
レジスタアドレス 0x102A(MODBUSアドレス:404139、ワード数は1)
名 称 MODBUS/TCP接続
アクセス種別 読み出し 説 明 TCP接続の数。
レジスタアドレス 0x1030(MODBUSアドレス:404145、ワード数は1)
名 称 MODBUS/TCPタイムアウト値の設定
アクセス種別 読み書き デフォルト値 0x0000 説 明
MODBUS 要求を受信しなくても MODBUS/TCP接続をオープン状態
に維持できる最大時間(単位はミリ秒)。タイムアウトすると、空 いている接続がクローズされます。出力は最後の状態に維持されま す。デフォルト値は「0」(タイムアウトなし)。
レジスタアドレス 0x1031(MODBUSアドレス:404146、ワード数は3) 名 称 コントローラのMACアドレス読み出し
アクセス種別 読み出し
説 明 3ワード長のMACアドレスを与えます。
レジスタアドレス 0x1040(MODBUSアドレス:404161、ワード数は1)
名 称 プロセスデータインタフェース アクセス種別 読み書き
説 明
レジスタアドレス 0x1050(MODBUSアドレス:404177、ワード数は3)
名 称 モジュール診断 アクセス種別 読み出し 説 明