Binarix FL-net Library for Windows

マニュアル>アプリケーション開発ガイド C/C++編>状態

状態

ノード状態

ノード状態を取得するには、下表のいずれかの関数を使用します。

関数説明
BflGetOwnNodeInfo
BflGetNodeInfo
BflGetOwnNodeInfo関数は自ノード、BflGetNodeInfo関数はノード番号で指定したノードの情報をBFL_NODE_INFO構造体にセットします。ノード状態は、構造体メンバのNodeStatusです。
BflGetNodeListBflGetNodeList関数は全ノードの状態をBFL_NODE_LIST構造体にセットします。ノード状態は、構造体メンバのNodeStatus配列で、ノード番号をインデックスにして参照します。構造体メンバのOwnNodeは自ノード番号なので、自ノードの状態はNodeStatus[OwnNode]で参照します。

ノード状態(NodeStatus)は、ビット毎に意味があり、下表の組み合わせになります。

シンボル説明
BFL_STF_PARTICIPATION0x0001参加状態(0:離脱 1:参加)
BFL_STF_TOKEN_MODE_CONFLICT0x0002通信無効検知(0:検知なし 1:検知あり)
ネットワーク上にFL-net Ver.1.00の機器を検出した時にセットされます。
BFL_STF_ADDRESS_CONFLICT0x0080アドレス重複検知(0:エラーなし 1:エラーあり)
自ノードに割り当てたコモンメモリの範囲が他ノードと重複している時にセットされます。
BFL_STF_NODE_NUMBER_CONFLICT0x0100ノード番号重複フラグ
ノード番号が他ノードと重複している時にセットされます。
BFL_STF_TOKEN_HOLDING_TIMEOUT0x0200トークン保持時間タイムアウト
ネットワークパラメータで設定したトークン監視時間内に送信処理が完了しなかった時にセットされます。
BFL_STF_FRAME_WAITING0x0400受信待ち状態フラグ
ネットワーク上に参加しているノードがない時にセットされます。
BFL_STF_INITIALIZE_ERROR0x0800初期化エラーフラグ
BflOpen関数を呼び出した時に重大なエラーが発生するとセットされます。

FAリンクの状態(LKS)

FAリンクの状態(LKS)は、サイクリック伝送で送信されるノード情報の1つです。LKSを取得するには、BflGetOwnNodeInfo関数、またはBflGetNodeInfo関数を使用し、BFL_NODE_INFO構造体のFALinkStatusを参照します。
LKSは、ビット毎に意味があり、下表の組み合わせになります。

シンボル説明
BFL_LKS_PARTICIPATION0x01参加状態(0:離脱 1:参加)
BFL_LKS_TOKEN_MODE_CONFLICT0x02通信無効検知(0:検知なし 1:検知あり)
BFL_LKS_UL_WATCHDOG_ERROR0x10上位層動作信号エラー(0:エラーなし 1:エラーあり)
BFL_LKS_DATA_ENABLE0x20コモンメモリデータ有効通知(0:無効 1:有効)
BFL_LKS_ADDRESS_ENABLE0x40コモンメモリアドレス・サイズ設定完了(0:未完了 1:完了)
BFL_LKS_ADDRESS_CONFLICT0x80アドレス重複検知(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_WARNING0x2000WARNING(0:エラーなし 1:エラーあり)
BFL_ULS_ALARM0x4000ALARM(0:エラーなし 1:エラーあり)
BFL_ULS_RUN0x8000RUN(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ネットワークから離脱しようとしている、または離脱している状態。
アプリケーション起動時はこの状態です。
参加状態サイクリック伝送を行っている状態。
コモンメモリを読み書きすることにより、他ノードと交信できます。
メッセージ伝送(送受信)ができます。
離脱状態サイクリック伝送を行っていない状態。
コモンメモリの読み書きはできますが、他ノードに割り付けた範囲は更新されません。
メッセージ伝送はできません。メッセージ送信関数を呼び出すとエラーになります。