状態
ノード状態
ノード状態を取得するには、下表のいずれかの関数を使用します。
関数 | 説明 |
---|---|
BflGetOwnNodeInfo BflGetNodeInfo | BflGetOwnNodeInfo関数は自ノード、BflGetNodeInfo関数はノード番号で指定したノードの情報をBFL_NODE_INFO構造体にセットします。ノード状態は、構造体メンバのNodeStatusです。 |
BflGetNodeList | BflGetNodeList関数は全ノードの状態をBFL_NODE_LIST構造体にセットします。ノード状態は、構造体メンバのNodeStatus配列で、ノード番号をインデックスにして参照します。構造体メンバのOwnNodeは自ノード番号なので、自ノードの状態はNodeStatus[OwnNode]で参照します。 |
ノード状態(NodeStatus)は、ビット毎に意味があり、下表の組み合わせになります。
シンボル | 値 | 説明 |
---|---|---|
BFL_STF_PARTICIPATION | 0x0001 | 参加状態(0:離脱 1:参加) |
BFL_STF_TOKEN_MODE_CONFLICT | 0x0002 | 通信無効検知(0:検知なし 1:検知あり) ネットワーク上にFL-net Ver.1.00の機器を検出した時にセットされます。 |
BFL_STF_ADDRESS_CONFLICT | 0x0080 | アドレス重複検知(0:エラーなし 1:エラーあり) 自ノードに割り当てたコモンメモリの範囲が他ノードと重複している時にセットされます。 |
BFL_STF_NODE_NUMBER_CONFLICT | 0x0100 | ノード番号重複フラグ ノード番号が他ノードと重複している時にセットされます。 |
BFL_STF_TOKEN_HOLDING_TIMEOUT | 0x0200 | トークン保持時間タイムアウト ネットワークパラメータで設定したトークン監視時間内に送信処理が完了しなかった時にセットされます。 |
BFL_STF_FRAME_WAITING | 0x0400 | 受信待ち状態フラグ ネットワーク上に参加しているノードがない時にセットされます。 |
BFL_STF_INITIALIZE_ERROR | 0x0800 | 初期化エラーフラグ BflOpen関数を呼び出した時に重大なエラーが発生するとセットされます。 |
- 自ノードの状態は、BflOpen関数を呼び出すと、すべてのビットがリセットされます。
- BFL_STF_PARTICIPATION, BFL_STF_TOKEN_MODE_CONFLICT, BFL_STF_ADDRESS_CONFLICTは、FAリンクの状態(BFL_NODE_INFO構造体のFALinkStatus)と同じ値です。
- 他ノードの状態は、BFL_STF_PARTICIPATIONとBFL_STF_TOKEN_MODE_CONFLICT以外のビットは常に0です。
FAリンクの状態(LKS)
FAリンクの状態(LKS)は、サイクリック伝送で送信されるノード情報の1つです。LKSを取得するには、BflGetOwnNodeInfo関数、またはBflGetNodeInfo関数を使用し、BFL_NODE_INFO構造体のFALinkStatusを参照します。
LKSは、ビット毎に意味があり、下表の組み合わせになります。
シンボル | 値 | 説明 |
---|---|---|
BFL_LKS_PARTICIPATION | 0x01 | 参加状態(0:離脱 1:参加) |
BFL_LKS_TOKEN_MODE_CONFLICT | 0x02 | 通信無効検知(0:検知なし 1:検知あり) |
BFL_LKS_UL_WATCHDOG_ERROR | 0x10 | 上位層動作信号エラー(0:エラーなし 1:エラーあり) |
BFL_LKS_DATA_ENABLE | 0x20 | コモンメモリデータ有効通知(0:無効 1:有効) |
BFL_LKS_ADDRESS_ENABLE | 0x40 | コモンメモリアドレス・サイズ設定完了(0:未完了 1:完了) |
BFL_LKS_ADDRESS_CONFLICT | 0x80 | アドレス重複検知(0:エラーなし 1:エラーあり) |
上位層の状態(ULS)
上位層の状態(ULS)は、サイクリック伝送で送信されるノード情報の1つです。本製品の場合、「上位層」は、ユーザーアプリケーションのことです。ULSを取得するには、BflGetOwnNodeInfo関数、またはBflGetNodeInfo関数を使用し、BFL_NODE_INFO構造体のUpperLayerStatusを参照します。ULSの設定は、BflSetUpperLayerStatus関数を使用します。
ULSの下位12ビットは、上位層で定義するエラーコードを設定できます。それ以外のビットは、下表の組み合わせになります。ULSは上位層が設定するもので、FL-net通信エンジンはその値をサイクリック伝送で他ノードに送信するだけです。ULSの初期値は、BFL_ULS_RUN(0x8000)です。
シンボル | 値 | 説明 |
---|---|---|
BFL_ULS_WARNING | 0x2000 | WARNING(0:エラーなし 1:エラーあり) |
BFL_ULS_ALARM | 0x4000 | ALARM(0:エラーなし 1:エラーあり) |
BFL_ULS_RUN | 0x8000 | RUN(0:STOP 1:RUN) |
オープン/クローズと参加/離脱
自ノードの状態には、ノード状態(またはFAリンクの状態)の参加/離脱とは別に、オープン/クローズ状態があります。オープン状態は、BflOpen関数を呼び出してFL-netネットワークに参加しようとしている、または参加している状態です。クローズ状態は、BflClose関数を呼び出してFL-netネットワークから離脱しようとしている、または離脱している状態です。
BflOpen関数に成功してオープン状態になったとしても、必ず参加状態になるとは限りません。例えば、FL-netネットワーク上に自ノードしか存在しない場合は、他ノードが参加してくるまで離脱状態です。また、BflClose関数に成功してクローズ状態になったとしても、必ず離脱状態になるとは限りません。例えば、FL-net Utilityでコモンメモリをモニタしている場合は、モニタを終了するまで参加状態を維持します。すべてのユーザーアプリケーションがBflClose関数を呼び出す、または終了すると離脱状態になります。
オープン状態 | BflOpen関数を呼び出してFL-netネットワークに参加しようとしている、または参加している状態。 何らかの理由で参加状態から離脱状態になった場合は、自動的に再参加を試みます。 |
---|---|
クローズ状態 | BflClose関数を呼び出してFL-netネットワークから離脱しようとしている、または離脱している状態。 アプリケーション起動時はこの状態です。 |
参加状態 | サイクリック伝送を行っている状態。 コモンメモリを読み書きすることにより、他ノードと交信できます。 メッセージ伝送(送受信)ができます。 |
離脱状態 | サイクリック伝送を行っていない状態。 コモンメモリの読み書きはできますが、他ノードに割り付けた範囲は更新されません。 メッセージ伝送はできません。メッセージ送信関数を呼び出すとエラーになります。 |