• 検索結果がありません。

内部変数の説明

ドキュメント内 untitled (ページ 141-145)

4 フィールドバス通信

4.2 MODBUS の機能

4.2.5 内部変数

4.2.5.1 内部変数の説明

4.2.5.1.1 ウォッチドグ(フィールドバス障害の監視)

ウォッチドグは、フィールドバスマスタとカプラ間のデータ転送を監視します。

カプラのウォッチドグタイマは、カプラがある特定の要求(ウォッチドグ設定 レジスタで指定されるもの)をマスタから受信するたびにリセットされます。

障害のない通信の場合、ウォッチドグタイマは規定値に到達しません。そして データ転送の終了時にタイマはリセットされます。

ウォッチドグタイマがタイムアウトしたときは、フィールドバス障害が発生して います。その場合、フィールドバスカプラはそれ以後のすべてのMODBUS/TCP 要求に対して0x0004(スレーブ機器障害)の例外コードを返します。

カプラでは、マスタによるウォッチドグ設定のために特別なレジスタが使用さ れます(レジスタアドレス:0x1000〜0x1008)。

デフォルト状態においては、ウォッチドグはカプラの電源投入時点に有効とな りません。これを有効にするには、ウォッチドグタイマレジスタ(0x1000)の 所望タイムアウト値を最初に設定・確認します。次にマスクレジスタ

(0x1001)において機能コードマスクを指定します。これによってタイマをリ セットする機能コードが定義されます。最後にウォッチドグトリガレジスタ

(0x1003)をゼロ以外の値に変えてタイマを始動します。

最小トリガ時間のレジスタ(0x1004)を読み出せば、ウォッチドグによる障害 監視が有効かどうかがわかります。時間値が「0」の場合、フィールドバス障害 が考えられます。ウォッチドグタイマは、タイムアウトしていなければ、

ウォッチドグ再始動レジスタ(0x1007)に「0x1」の値を設定することによって 手動でリセットできます。

ウォッチドグの始動後にユーザがこれを停止するには、ウォッチドグ停止レジスタ

(0x1005)またはウォッチドグ簡易停止レジスタ(0x1008)を使用します。

4.2.5.1.2 ウォッチドグレジスタ

ウォッチドグレジスタのアドレスは、MODBUSの読み書き機能コードについて 説明したのと同様の方法で指定できます。参照番号のかわりに該当するレジス タアドレスを指定します。

レジスタアドレス 0x1000(MODBUSアドレス:404097)

名称 ウォッチドグタイマ値、WS_TIME アクセス種別 読み書き

デフォルト値 0x0000

説  明 ウォッチドグのタイムアウト値を符号なしの16ビット値で格納しま す。デフォルト値は「0」です。値を設定してもウォッチドグは始 動されません。ただし、ウォッチドグを始動可能にするにはゼロ以 外の値を設定する必要があります。タイムアウト値は100msの倍数 で指定します(例:0x0009→0.9秒)。なお、ウォッチドグの動作中 はこの値を変更することができません。

136 •

MODBUSの機能

レジスタアドレス 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

説  明 ウォッチドグの最短残り時間を格納しています。デフォルト値は 0xFFFFです。ウォッチドグタイマにトリガが掛かると、このレジス タ値が残りのウォッチドグ時間と連続的に比較され、2値のうちの小 さい方がこのレジスタに格納されます。このレジスタの値が「0」に なると、ウォッチドグによる障害検出となります。

• 137

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ソケットはクローズされている

138 •

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)に0x0010(2(3-1))を書き込みます。

3. ウォッチドグトリガのレジスタ(0x1003)の値を変更し、ウォッチドグを始 動します。

4. このときフィールドバスマスタは、ウォッチドグタイマをリセットするため に機能コード「3」(複数レジスタの読み出し)を指定時間内に連続使用す る必要があります。要求メッセージの時間間隔が10分を超えるとウォッチ ドグのタイムアウト障害が発生します。

ウォッチドグの始動後にこれを停止するには、ウォッチドグ簡易停止レジスタ

(0x1008)に「0xAA55」または「0x55AA」を書き込みます。

• 139

MODBUSの機能

レジスタアドレス 0x100B(MODBUSアドレス:404108)

値 ウォッチドグパラメータの保存 アクセス種別 書き込み

デフォルト値 0x0000

説  明 このレジスタに「1」を書き込むことにより、レジスタ0x1000、

0x1001、0x1002の内容は保持されます。

ドキュメント内 untitled (ページ 141-145)