Binarix FL-net Library for Windows

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

状態

ノード状態

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

FLnetクラスメソッド説明
GetNodeInfoGetNodeInfoメソッドは、自ノードまたはノード番号で指定したノードの情報を格納したFLNodeInfoクラスのインスタンスを作成します。ノード状態は、FLNodeInfo.NodeStatusです。
GetNodeListGetNodeListメソッドは、全ノードの状態を格納したFLNodeListクラスのインスタンスを作成します。ノード状態は、FLNodeList.NodeStatus(配列)で、ノード番号をインデックスにして参照します。FLNodeList.OwnNodeは自ノード番号で、自ノードの状態はNodeStatus[OwnNode]で参照します。

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

FLNodeStatus列挙型メンバ説明
Left0x0000離脱状態
Participation0x0001参加状態(0:離脱 1:参加)
TokenModeConflict0x0002通信無効検知(0:検知なし 1:検知あり)
ネットワーク上にFL-net Ver.1.00の機器を検出した時にセットされます。
AddressConflict0x0080アドレス重複検知(0:エラーなし 1:エラーあり)
自ノードに割り当てたコモンメモリの範囲が他ノードと重複している時にセットされます。
NodeNumberConflict0x0100ノード番号重複フラグ
ノード番号が他ノードと重複している時にセットされます。
TokenHoldingTimeout0x0200トークン保持時間タイムアウト
ネットワークパラメータで設定したトークン監視時間内に送信処理が完了しなかった時にセットされます。
FrameWaiting0x0400受信待ち状態フラグ
ネットワーク上に参加しているノードがない時にセットされます。
InitializeError0x0800初期化エラーフラグ
FLnet.Openメソッドを呼び出した時に重大なエラーが発生するとセットされます。

FAリンクの状態(LKS)

FAリンクの状態(LKS)は、サイクリック伝送で送信されるノード情報の1つです。LKSを取得するには、FLnet.GetNodeInfoメソッドを使用し、FLNodeInfo.FALinkStatusを参照します。
LKSはFLFALinkStatus列挙型で、ビット毎に意味があり、下表の組み合わせになります。

FLFALinkStatus列挙型メンバ説明
Left0x00離脱状態
Participation0x01参加状態(0:離脱 1:参加)
TokenModeConflict0x02通信無効検知(0:検知なし 1:検知あり)
ULWatchdogError0x10上位層動作信号エラー(0:エラーなし 1:エラーあり)
DataEnable0x20コモンメモリデータ有効通知(0:無効 1:有効)
AddressEnable0x40コモンメモリアドレス・サイズ設定完了(0:未完了 1:完了)
AddressConflict0x80アドレス重複検知(0:エラーなし 1:エラーあり)

上位層の状態(ULS)

上位層の状態(ULS)は、サイクリック伝送で送信されるノード情報の1つです。本製品の場合、「上位層」は、ユーザーアプリケーションのことです。ULSを取得するには、FLnet.GetNodeInfoメソッドを使用し、FLNodeInfo.UpperLayerStatusを参照します。ULSの設定は、FLnet.SetUpperLayerStatusメソッドを使用します。
ULSの下位12ビットは、上位層で定義するエラーコードを設定できます。それ以外のビットは、FLUpperLayerStatus列挙型のビット値の組み合わせになります。ULSは上位層が設定するもので、FL-net通信エンジンはその値をサイクリック伝送で他ノードに送信するだけです。ULSの初期値は、Run(0x8000)です。

FLUpperLayerStatus列挙型メンバ説明
Stop0x0000STOP
Warning0x2000WARNING(0:エラーなし 1:エラーあり)
Alarm0x4000ALARM(0:エラーなし 1:エラーあり)
Run0x8000RUN(0:STOP 1:RUN)

オープン/クローズと参加/離脱

自ノードの状態には、ノード状態(またはFAリンクの状態)の参加/離脱とは別に、オープン/クローズ状態があります。オープン状態は、FLnet.Openメソッドを呼び出してFL-netネットワークに参加しようとしている、または参加している状態です。クローズ状態は、FLnet.Closeメソッドを呼び出してFL-netネットワークから離脱しようとしている、または離脱している状態です。
Openメソッドに成功してオープン状態になったとしても、必ず参加状態になるとは限りません。例えば、FL-netネットワーク上に自ノードしか存在しない場合は、他ノードが参加してくるまで離脱状態です。また、Closeメソッドに成功してクローズ状態になったとしても、必ず離脱状態になるとは限りません。例えば、FL-net Utilityでコモンメモリをモニタしている場合は、モニタを終了するまで参加状態を維持します。すべてのアプリケーションがCloseメソッドを呼び出す、または終了すると離脱状態になります。

オープン状態FLnet.Openメソッドを呼び出してFL-netネットワークに参加しようとしている、または参加している状態。何らかの理由で参加状態から離脱状態になった場合は、自動的に再参加を試みます。
クローズ状態FLnet.Closeメソッドを呼び出してFL-netネットワークから離脱しようとしている、または離脱している状態。アプリケーション起動時はこの状態です。
参加状態サイクリック伝送を行っている状態。
コモンメモリを読み書きすることにより、他ノードと交信できます。
メッセージ伝送(送受信)ができます。
離脱状態サイクリック伝送を行っていない状態。
コモンメモリの読み書きはできますが、他ノードに割り付けた範囲は更新されません。
メッセージ伝送はできません。メッセージ送信メソッドを呼び出すとエラーになります。