状態
ノード状態
ノード状態を取得するには、下表のいずれかのメソッドを使用します。
FLnetクラスメソッド | 説明 |
---|---|
GetNodeInfo | GetNodeInfoメソッドは、自ノードまたはノード番号で指定したノードの情報を格納したFLNodeInfoクラスのインスタンスを作成します。ノード状態は、FLNodeInfo.NodeStatusです。 |
GetNodeList | GetNodeListメソッドは、全ノードの状態を格納したFLNodeListクラスのインスタンスを作成します。ノード状態は、FLNodeList.NodeStatus(配列)で、ノード番号をインデックスにして参照します。FLNodeList.OwnNodeは自ノード番号で、自ノードの状態はNodeStatus[OwnNode]で参照します。 |
ノード状態(NodeStatus)はFLNodeStatus列挙型で、ビット毎に意味があり、下表の組み合わせになります。
FLNodeStatus列挙型メンバ | 値 | 説明 |
---|---|---|
Left | 0x0000 | 離脱状態 |
Participation | 0x0001 | 参加状態(0:離脱 1:参加) |
TokenModeConflict | 0x0002 | 通信無効検知(0:検知なし 1:検知あり) ネットワーク上にFL-net Ver.1.00の機器を検出した時にセットされます。 |
AddressConflict | 0x0080 | アドレス重複検知(0:エラーなし 1:エラーあり) 自ノードに割り当てたコモンメモリの範囲が他ノードと重複している時にセットされます。 |
NodeNumberConflict | 0x0100 | ノード番号重複フラグ ノード番号が他ノードと重複している時にセットされます。 |
TokenHoldingTimeout | 0x0200 | トークン保持時間タイムアウト ネットワークパラメータで設定したトークン監視時間内に送信処理が完了しなかった時にセットされます。 |
FrameWaiting | 0x0400 | 受信待ち状態フラグ ネットワーク上に参加しているノードがない時にセットされます。 |
InitializeError | 0x0800 | 初期化エラーフラグ FLnet.Openメソッドを呼び出した時に重大なエラーが発生するとセットされます。 |
- 自ノードの状態は、FLnet.Openメソッドを呼び出すと、すべてのビットがリセットされます。
- Participation, TokenModeConflict, AddressConflictは、FAリンクの状態(FLNodeInfo.FALinkStatus)と同じ値です。
- 他ノードの状態は、ParticipationとTokenModeConflict以外のビットは常に0です。
FAリンクの状態(LKS)
FAリンクの状態(LKS)は、サイクリック伝送で送信されるノード情報の1つです。LKSを取得するには、FLnet.GetNodeInfoメソッドを使用し、FLNodeInfo.FALinkStatusを参照します。
LKSはFLFALinkStatus列挙型で、ビット毎に意味があり、下表の組み合わせになります。
FLFALinkStatus列挙型メンバ | 値 | 説明 |
---|---|---|
Left | 0x00 | 離脱状態 |
Participation | 0x01 | 参加状態(0:離脱 1:参加) |
TokenModeConflict | 0x02 | 通信無効検知(0:検知なし 1:検知あり) |
ULWatchdogError | 0x10 | 上位層動作信号エラー(0:エラーなし 1:エラーあり) |
DataEnable | 0x20 | コモンメモリデータ有効通知(0:無効 1:有効) |
AddressEnable | 0x40 | コモンメモリアドレス・サイズ設定完了(0:未完了 1:完了) |
AddressConflict | 0x80 | アドレス重複検知(0:エラーなし 1:エラーあり) |
上位層の状態(ULS)
上位層の状態(ULS)は、サイクリック伝送で送信されるノード情報の1つです。本製品の場合、「上位層」は、ユーザーアプリケーションのことです。ULSを取得するには、FLnet.GetNodeInfoメソッドを使用し、FLNodeInfo.UpperLayerStatusを参照します。ULSの設定は、FLnet.SetUpperLayerStatusメソッドを使用します。
ULSの下位12ビットは、上位層で定義するエラーコードを設定できます。それ以外のビットは、FLUpperLayerStatus列挙型のビット値の組み合わせになります。ULSは上位層が設定するもので、FL-net通信エンジンはその値をサイクリック伝送で他ノードに送信するだけです。ULSの初期値は、Run(0x8000)です。
FLUpperLayerStatus列挙型メンバ | 値 | 説明 |
---|---|---|
Stop | 0x0000 | STOP |
Warning | 0x2000 | WARNING(0:エラーなし 1:エラーあり) |
Alarm | 0x4000 | ALARM(0:エラーなし 1:エラーあり) |
Run | 0x8000 | RUN(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ネットワークから離脱しようとしている、または離脱している状態。アプリケーション起動時はこの状態です。 |
参加状態 | サイクリック伝送を行っている状態。 コモンメモリを読み書きすることにより、他ノードと交信できます。 メッセージ伝送(送受信)ができます。 |
離脱状態 | サイクリック伝送を行っていない状態。 コモンメモリの読み書きはできますが、他ノードに割り付けた範囲は更新されません。 メッセージ伝送はできません。メッセージ送信メソッドを呼び出すとエラーになります。 |