はじめに(製品版)

FL-net Control (.NET版)

はじめに(FL-net Control for .NET)
前へ　次へ

このたびは、FL-net Control for Windows(R)をお買い上げいただきまして、誠にありがとうございます。
FL-net Control (.NET版)は、FAコントロールネットワーク(FL-net(OPCN-2))のプロトコル(FAリンクプロトコル 仕様Ver.3)に準拠した、.NET Frameworkコンポーネントです。本ヘルプファイルには、本製品に関する重要な情報が記述されていますので、開発前に必ずお読みいただくようお願いいたします。

■ FL-netとは

■ 動作環境

■ ライセンスについて

■ 制限事項

■ 注意事項

■ 開発方法

■ サンプル
    ├ Visual Basic版
    ├ C#版
    └ C++/CLI版

■ 機能
    ├ 参加/離脱管理
    ├ ネットワーク管理
    ├ コモンメモリ管理
    ├ ブロックデータ管理
    ├ メッセージクライアント機能
    ├ メッセージサーバ機能

    ├ コマンドサーバ機能

    ├ 負荷測定機能

    └ デバイスレベルネットワーク機能

■ リファレンス(HKE.FLnetCtrl名前空間)

■ 更新履歴

■ 試用版の制限事項

株式会社日立ケーイーシステムズ
http://www.hke.jp


動作環境

FL-net Control (.NET版)

FL-netとは
前へ　次へ　　FL-netとは　特 長　コンセプト　FL-netのプロトコル　データ通信の種類
FL-netとは

  FL-net（OPCN-2）とは、経済産業省の外郭団体である（財）製造科学技術センターが開発したコントローラレベルのFAネットワークの標準仕様です。
   下図に示すように、多数の異なるメーカのプログラマブルコントローラ（PLC）や数値制御装置（CNC）などの各種FA コントローラやパソコンを相互接続し、制御・監視を実現することができます。

FAコントロールネットワーク構成例

  FL-net Ver.3では、下図に示すとおり、上位情報系と下位デバイス系との混在が可能になります。

FLnet2.jpg (24276 バイト)

FL-net Ver.3の構成例

特 長

  FL-netには次のような特長があります。

  1. オープン化/マルチベンダの実現
    多くの異なる製造業者のプログラマブルコントローラ(PLC)や数値制御装置(CNC)などのコントローラやパソコンなどを相互接続し制御・監視を実現することが可能です。

  2. 広く普及した標準規格に準拠
    OAの機器で標準となっているイーサネットをベースに、標準のUDP/IPを使って効率のよい通信を実現しています。イーサネットを採用しているため、
    ① 低価格
    普及している通信デバイスによって構成できるため、低価格を実現しています。
    ② ネットワーク機器が広く普及
    トランシーバやハブ、ケーブル、パソコン用LAN カードなど、イーサネット用として広く普及したネットワーク用機器を用いることができます。
    ③ 将来の高速化
    将来1Gbps→10Gbpsと伝送速度の向上が期待できます。
    ④ 光通信化
    イーサネット用に普及している光リピータなどを用いることによって、必要な部分を光ファイバ化することで、500 m 以上の長距離伝送を可能にし、耐ノイズ性の向上及び屋外配線時の雷サージ対策を可能にすることができます。

  3. FAコントローラ間に必要な通能をサポート
    使用者の要求仕様がスタートとなっているため、FAに必要な各種の特長を有しています。
    ① 大規模ネットワーク
    最大254 台の機器(ノード)が接続できます。
    ② 用途に応じた2種類の通信機能
    サイクリック通信によって各ノードが同一のデータを常に共有できるコモンメモリ機能、及び必要なときに必要な情報だけをやり取りするメッセージ通信機能の両方をサポートしています。
    ③ 大容量コモンメモリ
    コモンメモリは8 K ビット＋8 K ワードと大容量です。
    ④ 高速応答
    50 ms/32 ノード(2 K ビット＋2 K ワード時)の高速応答が実現できます。
    ⑤ マスタレス方式による高い信頼性
    マスタが存在しないことから、各ノードの参加・離脱がほかのノードの通信に影響を与えることなしに自由にできるため、どのノードも自由に電源のON/OFF 又はメンテナンスなどが可能です。
コンセプト
  1. FL-netは、イーサネットをベースとしたFAコントロール・ネットワークです。

  2. FL-netは、サイクリック伝送機能及びメッセージ伝送機能をもっています。

  3. FL-netの基本的な考え方は次のとおりです。
    ①イーサネットをFAコントローラ間の通信媒体(物理レベル及びデータリンク)にしています。
    ②イーサネット上で普及しているUDP/IPを用い、基本的なデータ送達手段を実現しています。
    ③上記の基本的なデータ送達手段を用いつつ、ネットワーク内各ノードの通信媒体アクセスを管理/制御(衝突回避)して、一定時間内の伝送を保証します。

  4. FL-netの対象は、生産システムにおけるプログラマブル・コントローラ(PLC)、ロボット・コントローラ(RC)、数値制御装置(CNC)などの制御装置及び制御用パソコン間におけるデータ交換を行うためのFAコントロール・ネットワークです。
FL-netのプロトコル

FL-netは、次のように6つのプロトコル層から構成されています。

トランスポート層及びネットワーク層ではUDP/IPまたはTCP/IPを用い、データリンク層及び物理層ではイーサネットを用います。

FAリンクプロトコル層の特長は、次に示すとおりです。
①マスターレス･トークン方式による送出管理を行い衝突を回避しています。
②トークンを一定時間で周廻させることによって、リフレッシュサイクル時間が規定可能です。
③サイクリックデータ送信後に、定められたトークンを送信します。
④立ち上がり時一番若いノードからトークンを送信しています。
⑤一定時間トークンが送信されない場合、次ノードがトークンを送信します。
⑥マスターレス・トークン方式によって、一部のノードが故障してもネットワークが停止することはありません。
⑦運転モード(RUN/STOP)/ハード異常(ALARM)などの情報の管理テーブルを用意し他ノードの動作状態を参照できます。

データ通信の種類

FL-netのデータ通信は、サイクリック伝送及びメッセージ伝送をサポートしています。

■ サイクリック伝送
    サイクリック伝送は、周期的なデータの伝送を行います。各ノードは、コモンメモリ(共通メモリ)を介して、データを共有できます。

■ メッセージ伝送
    メッセージ伝送は、非周期的なデータの伝送を行います。通常は、送信要求があったときに、特定のノードに向けて通信を行います。


動作環境
前へ 次へ
動作環境

動作環境は弊社ホームページのFL-net Control For Windows(R)の動作環境をご確認ください。


ライセンス
前へ　次へ　　ランタイムライセンス　再配布
ランタイムライセンス

作成されたプログラムの種類、数によらず、1台のコンピュータにつき1ランタイムライセンスが必要です。本製品を利用して作成したプログラムを他のコンピュータで利用する場合は、配布先のコンピュータ用のランタイムライセンスをご購入ください。ランタイムライセンスは別製品です。

再配布

FL-net Controlを使用して作成したアプリケーションを配布する場合は、以下に示すファイルの配布が必要となります。

ファイル名 説明

HKE.FLnetCtrl.dll

FL-net Control用クラスライブラリ(※1)

FL_KE.dll

FL-net通信ライブラリ(※2)

FLnetMsg.dll

FL-net通信ライブラリが出力するイベントログを参照するためのファイル(※1)

FLpacket.dll

FL-netフレーム通信ドライバ(※2)

※手動でドライバのインストールが必要です。

FLnetLog.dll

FL-netフレーム通信ライブラリが出力するイベントログを参照するためのファイル(※1)

注意：上記ファイルは、「ソフトウェア使用許諾契約書」に記載している制限の範囲において、自由に配布することができます。本製品に含まれるファイルのうち、上記以外のファイルは配布できません。

※1 本製品インストール時は以下に配布されます。
     32bit版/64bit版共通：インストール先\Bin
※2 本製品インストール時は以下に配布されます。
     32bit版：インストール先\Bin\x86
     64bit版：インストール先\Bin\x64


制限事項
前へ　次へ
制限事項
  1. FL-net Controlから通知されるイベント内で、Windowsフォームのコントロールにアクセスすると、InvalidOperationExceptionの例外が発生します。この例外は、ユーザアプリケーションをデバッガで実行しているときは確実に発生し、状況によっては実行時にも発生します。この問題を確認したときは、以下に示すいずれかの方法で、問題を解決してください。
    ① Windowsフォームのロードイベントなどで、Control.CheckForIllegalCrossThreadCallsプロパティにfalseを設定してください。
    [Visual Basic]
    '初期化処理
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     'FL-net Controlのイベント内でWindowsフォームのコントロールにアクセスした場合に、
     'InvalidOperationException例外が発生することを防止します。
     Control.CheckForIllegalCrossThreadCalls = False
    End Sub
    [C#]
    // 初期化処理
    private void Form1_Load(object sender, EventArgs e)
    {
     // FL-net Controlのイベント内でWindowsフォームのコントロールにアクセスした場合に、
     // InvalidOperationException例外が発生することを防止します。
     Control.CheckForIllegalCrossThreadCalls = false;
    }

    ② FL-net Controlから通知されるイベント内で、Windowsフォームのコントロールにアクセスするデリゲート型のメソッドを生成して、Invokeメソッドを発行して、Windowsフォームのコントロールの基になるウィンドウハンドルを所有スレッド上で、指定したデリゲートを実行してください。以下に、FLnetCtrl.Linkイベント発生時に、label1のtextプロパティに"LinkIn"の文字列を表示するサンプルを示します。

    [Visual Basic]
    'ラベルに文字列を表示するデリゲート型を定義します。
    Delegate Sub ShowLabelDelegate(ByVal strText As String)

    'ラベルに文字列を表示するメソッドです。
    Private Sub ShowLabel(ByVal strText As String)
    Label1.Text = strText
    End Sub

    'FLnetCtrlから通知されるLinkInイベントです。
    Private Sub FLnetCtrl1_LinkIn(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LinkInEventArgs) Handles FLnetCtrl1.LinkIn
    '直接Label1にアクセスするとInvalidOperationException例外が発生します。
     'Label1.Text = "LinkIn"

     'Label1にアクセスするデリゲートを生成します。
     Dim oDelegate As ShowLabelDelegate = New ShowLabelDelegate(AddressOf ShowLabel)
    'デリゲートを実行します。
     Me.Invoke(oDelegate, New Object() {"LinkIn"})
    End Sub
    [C#]
    // ラベルに文字列を表示するデリゲート型を定義します。
    delegate void ShowLabelDelegate(string strText);

    // ラベルに文字列を表示するメソッドです。
    private void ShowLabel(string strText)
    {
    label1.Text = strText;
    }

    // FLnetCtrlから通知されるLinkInイベントです。
    private void fLnetCtrl1_LinkIn(object sender, HKE.FLnetCtrl.LinkInEventArgs e)
    {
    // 直接label1にアクセスするとInvalidOperationException例外が発生します。
     //label1.Text = "LinkIn";

     // label1にアクセスするデリゲートを生成します。
     ShowLabelDelegate oDelegate = new ShowLabelDelegate(ShowLabel);
    // デリゲートを実行します。
     this.Invoke(oDelegate, new object[] { "LinkIn" });
    }

  2. TCP/IPプロトコルがインストールされていない、または、固定のIPアドレスが設定されていないパソコンでは使用できません。あらかじめTCP/IPプロトコルをインストールし、固定のIPアドレスを設定してください。

  3. FL-net Controlは通信ポート55000から55004を使用します。他のアプリケーション等がこれらのポートを使用している場合、FL-net Controlはエラーとなり動作しません。他のアプリケーションを終了してから使用してください。

  4. FL-net Controlは通信ポート55000から55004を使用しますので、ファイアウォールのブロックを解除する必要があります。

  5. 1プロジェクト中に1個のコントロールのみを配置することができます。

  6. イベントが多発したとき、イベントの発生が遅れる、またはイベントを取りこぼす場合があります。

  7. メッセージボックスを表示している間は、FL-net Controlからイベントが通知されないケースがあります。このため、FL-net Controlからのイベントが発生しないことが確実な場合や、イベント抜けが発生しても問題がない場合に、メッセージボックスを表示するようにしてください。

  8. デバッグ用のブレイクポイントで停止させた場合、イベント抜けや動作が不安定になることがあります。これらのことを十分考慮した上でデバッグを行ってください。動作が不安定になった場合は、コンピュータのリセットを行ってください。

  9. 作成したアプリケーションが異常終了した場合、FL-net Controlの動作が不安定になり、以後、通信異常となる場合があります。この場合、コンピュータをリセットしてから再実行を行ってください。

  10. メッセージ送信保留中に自動応答メッセージが送信されない場合があります。詳細はメッセージ受信時の処理を参照してください。

  11. 表示処理や印字処理、その他の処理によってCPU負荷が高くなると通信エンジンのレスポンスは低下します。通信処理のレスポンスが低下すると、リンクから離脱したり、その他ノードに影響を与える可能性があります。ネットワーク障害が多発するときは、ネットワークの設定(タイムアウト時間など)を変更して、ネットワークが正しく動作するよう調整してください。ネットワークの設定を変更しても、正常に動作しない場合は、パソコンのCPU負荷が高くなるような表示処理や印字処理、その他の処理の負荷を減らしてください。

  12. FL-net Control内でネットワークエラー等を検知した場合、OSが管理するイベントログにエラーの内容が出力されます。イベントログの設定によっては、イベントログがオーバーフローして、「アプリケーションログが満杯です。」のエラーダイアログが表示される場合があります。イベントビューア画面にて、イベントログの容量を大きく設定してください。補足をご参照ください。


注意事項
前へ　次へ　　注意事項　登録商標について
注意事項
  1. 本製品の著作権は、株式会社日立ケーイーシステムズが保有します。
  2. 本製品のドキュメントの一部または全てを、無断で使用、複製することはできません。
  3. 本製品は、本製品の使用許諾契約書のもとでのみ使用することができます。
  4. 本製品のドキュメントに記載されている内容は、将来予告なしに変更することがあります。
登録商標について
  1. Microsoft Windowsは米国Microsoft Corporationの米国およびその他の国における登録商標です。
  2. Intel、Celeron、PentiumはIntel Corporationまたはその子会社の商標または登録商標です。
  3. その他、記載されている会社名と商品名は、各社の商標または登録商標です。


開発方法
前へ　次へ
開発方法
  1. Visual Studioの[ツール(T)]メニューから、[ツールボックスアイテムの選択(X)]を選択します。

  2. 「ツールボックス アイテムの選択」画面の、[.NET Frameworkコンポーネント]タブを選択します。

  3. コンポーネント一覧にFLnetCtrlコンポーネントがない場合は、[参照(B)]ボタンをクリックして、「開く」画面からFL-net Controlのインストール先\Bin\HKE.FLnetCtrl.dllファイルを選択してください。

  4. FLnetCtrlコンポーネントのチェックボックスをONにして、[OK]ボタンをクリックしてください。

  5. ツールボックスに、FL-netCtrlのアイコンが表示されます。

  6. ツールボックスから、FLnet Ctrlのアイコンを選択して、フォームに配置します。ソリューションエクスプローラーの参照設定に、HKE.FLnetCtrlの名前空間が追加されます。


サンプルプログラム(VB版)

FL-net Control (.NET版)

サンプルプログラム(Visual Basic版)
前へ　次へ　画面　部品
画面

部品
＃ 部品 説明
1 | ノード番号(リンク参加/離脱) | 自ノード番号(FLnetCtrl.NodeNoプロパティ)を入力します。
2 | IP | FLnetCtrl.LocalIPプロパティの値を表示します。
3 | リンク状態 | FLnetCtrl.LinkStateプロパティの値を表示します。
4 | MFT | FLnetCtrl.GetNetworkStateメソッドを発行して取得した、最小許容フレーム間隔の値を表示します。
5 | RMT | FLnetCtrl.GetNetworkStateメソッドを発行して取得した、リフレッシュサイクル測定時間(現在値)の値を表示します。
6 | [リンク参加]ボタン | 参加パラメータ/コモンメモリ送信領域/タイムアウト時間を設定して、リンクに参加します。
7 | [モニタモード]ボタン | LANカードを指定して、モニタを開始します。
8 | [リンク離脱]ボタン | リンクから離脱します。
9 | [コモンリード]ボタン | FLnetCtrl.ReadCommon*メソッドを発行して、コモンメモリの値をリードします。
10 | [コモンライト]ボタン | FLnetCtrl.WriteCommon*メソッドを発行して、コモンメモリの値をライトします。
11 | [コモンリセット]ボタン | FLnetCtrl.ResetCommonSendValueメソッドを発行して、コモンメモリの値をゼロリセットします。
12 | [ブロックリード]ボタン | FLnetCtrl.Read*Block*メソッドを発行して、ブロックデータの値をリードします。
13 | [ブロックライト]ボタン | FLnetCtrl.Write*Blockメソッドを発行して、ブロックデータの値をライトします。
14 | [ログ取得]ボタン | FLnetCtrl.GetMyNodeLogV3メソッドを発行して、自ノードのログデータを取得します。
15 | [ログクリア]ボタン | FLnetCtrl.ClearMyNodeLogメソッドを発行して、自ノードログデータをクリアします。
16 | [コモン変化タグ]ボタン | コモンメモリ変化検出タグを設定します。
17 | [FLnetObject]ボタン | FLnetObjectクラスを使用します。
18 | ノード番号(メッセージ通信) | メッセージ送信先ノード番号を入力します。
19 | [ブロックリード要求]ボタン | FLnetCtrl.RequestBlockReadメソッドを発行して、他ノードにバイトブロックリードを要求します。
20 | [ブロックライト要求]ボタン | FLnetCtrl.RequestBlockWriteメソッドを発行して、他ノードにバイトブロックライトを要求します。
21 | [ネットリード要求]ボタン | FLnetCtrl.RequestNetParamReadメソッドを発行して、他ノードにネットワークパラメータリードを要求します。
22 | [ネットライト要求]ボタン | FLnetCtrl.RequestNetParamWriteメソッドを発行して、他ノードにネットワークパラメータライトを要求します。
23 | [運転指令要求]ボタン | FLnetCtrl.RequestRunStopメソッドを発行して、他ノードに運転指令を要求します。
24 | [プロファイルリード要求]ボタン | FLnetCtrl.RequestProfileReadメソッドを発行して、他ノードにプロファイルリードを要求します。
25 | [ログリード要求]ボタン | FLnetCtrl.RequestLogReadメソッドを発行して、他ノードにログデータリードを要求します。
26 | [ログクリア要求]ボタン | FLnetCtrl.RequestLogClearメソッドを発行して、他ノードにログデータクリアを要求します。
27 | [折返し要求]ボタン | FLnetCtrl.RequestMessageEchoメソッドを発行して、他ノードにメッセージ折返しを要求します。
28 | [透過形]ボタン | FLnetCtrl.SendUserMessageメソッドを発行して、他ノードに透過形メッセージを送信します。
29 | [ベンダ固有要求]ボタン | FLnetCtrl.RequestVendorMessageメソッドを発行して、他ノードにベンダ固有メッセージを要求します。
30 | [トークン保持時間]ボタン | トークン保持時間測定状態の測定開始・停止をします。
31 | [汎用通信]ボタン | 汎用通信データ送信元ログの測定開始・停止をします。
32 | [UDP/IP]ボタン | コマンドサーバ(UDP)の起動・停止をします。
33 | [TCP/IP]ボタン | コマンドサーバ(ＴＣP)の起動・停止をします。
34 | [IO割付]ボタン | FLnetCtrl.SetIOメソッドを発行して、ＩＯ割付設定をします。
35 | [ステータス]ボタン | FLnetCtrl.GetOutputStatusメソッドを発行して、出力ステータスを取得します。
36 | [データ]ボタン | FLnetCtrl.ReadOutputBitDataメソッドを発行して、出力データをリードします。


サンプルプログラム(C#用)

FL-net Control (.NET版)

サンプルプログラム(C#版)
前へ　次へ　画面　部品
画面

部品
＃ 部品 説明
1 | ノード番号(リンク参加/離脱) | 自ノード番号(FLnetCtrl.NodeNoプロパティ)を入力します。
2 | IP | FLnetCtrl.LocalIPプロパティの値を表示します。
3 | リンク状態 | FLnetCtrl.LinkStateプロパティの値を表示します。
4 | MFT | FLnetCtrl.GetNetworkStateメソッドを発行して取得した、最小許容フレーム間隔の値を表示します。
5 | RMT | FLnetCtrl.GetNetworkStateメソッドを発行して取得した、リフレッシュサイクル測定時間(現在値)の値を表示します。
6 | [リンク参加]ボタン | 参加パラメータ/コモンメモリ送信領域/タイムアウト時間を設定して、リンクに参加します。
7 | [モニタモード]ボタン | LANカードを指定して、モニタを開始します。
8 | [リンク離脱]ボタン | リンクから離脱します。
9 | [コモンリード]ボタン | FLnetCtrl.ReadCommon*メソッドを発行して、コモンメモリの値をリードします。
10 | [コモンライト]ボタン | FLnetCtrl.WriteCommon*メソッドを発行して、コモンメモリの値をライトします。
11 | [コモンリセット]ボタン | FLnetCtrl.ResetCommonSendValueメソッドを発行して、コモンメモリの値をゼロリセットします。
12 | [ブロックリード]ボタン | FLnetCtrl.Read*Block*メソッドを発行して、ブロックデータの値をリードします。
13 | [ブロックライト]ボタン | FLnetCtrl.Write*Blockメソッドを発行して、ブロックデータの値をライトします。
14 | [ログ取得]ボタン | FLnetCtrl.GetMyNodeLogV3メソッドを発行して、自ノードのログデータを取得します。
15 | [ログクリア]ボタン | FLnetCtrl.ClearMyNodeLogメソッドを発行して、自ノードログデータをクリアします。
16 | [コモン変化タグ]ボタン | コモンメモリ変化検出タグを設定します。
17 | [FLnetObject]ボタン | FLnetObjectクラスを使用します。
18 | ノード番号(メッセージ通信) | メッセージ送信先ノード番号を入力します。
19 | [ブロックリード要求]ボタン | FLnetCtrl.RequestBlockReadメソッドを発行して、他ノードにバイトブロックリードを要求します。
20 | [ブロックライト要求]ボタン | FLnetCtrl.RequestBlockWriteメソッドを発行して、他ノードにバイトブロックライトを要求します。
21 | [ネットリード要求]ボタン | FLnetCtrl.RequestNetParamReadメソッドを発行して、他ノードにネットワークパラメータリードを要求します。
22 | [ネットライト要求]ボタン | FLnetCtrl.RequestNetParamWriteメソッドを発行して、他ノードにネットワークパラメータライトを要求します。
23 | [運転指令要求]ボタン | FLnetCtrl.RequestRunStopメソッドを発行して、他ノードに運転指令を要求します。
24 | [プロファイルリード要求]ボタン | FLnetCtrl.RequestProfileReadメソッドを発行して、他ノードにプロファイルリードを要求します。
25 | [ログリード要求]ボタン | FLnetCtrl.RequestLogReadメソッドを発行して、他ノードにログデータリードを要求します。
26 | [ログクリア要求]ボタン | FLnetCtrl.RequestLogClearメソッドを発行して、他ノードにログデータクリアを要求します。
27 | [折返し要求]ボタン | FLnetCtrl.RequestMessageEchoメソッドを発行して、他ノードにメッセージ折返しを要求します。
28 | [透過形]ボタン | FLnetCtrl.SendUserMessageメソッドを発行して、他ノードに透過形メッセージを送信します。
29 | [ベンダ固有要求]ボタン | FLnetCtrl.RequestVendorMessageメソッドを発行して、他ノードにベンダ固有メッセージを要求します。
30 | [トークン保持時間]ボタン | トークン保持時間測定状態の測定開始・停止をします。
31 | [汎用通信]ボタン | 汎用通信データ送信元ログの測定開始・停止をします。
32 | [UDP/IP]ボタン | コマンドサーバ(UDP)の起動・停止をします。
33 | [TCP/IP]ボタン | コマンドサーバ(ＴＣP)の起動・停止をします。
34 | [IO割付]ボタン | FLnetCtrl.SetIOメソッドを発行して、ＩＯ割付設定をします。
35 | [ステータス]ボタン | FLnetCtrl.GetOutputStatusメソッドを発行して、出力ステータスを取得します。
36 | [データ]ボタン | FLnetCtrl.ReadOutputBitDataメソッドを発行して、出力データをリードします。


サンプルプログラム(C++/CLI用)

FL-net Control (.NET版)

サンプルプログラム(C++/CLI版)
前へ　次へ　画面　部品
画面

部品
＃ 部品 説明
1 | ノード番号(リンク参加/離脱) | 自ノード番号(FLnetCtrl.NodeNoプロパティ)を入力します。
2 | IP | FLnetCtrl.LocalIPプロパティの値を表示します。
3 | リンク状態 | FLnetCtrl.LinkStateプロパティの値を表示します。
4 | MFT | FLnetCtrl.GetNetworkStateメソッドを発行して取得した、最小許容フレーム間隔の値を表示します。
5 | RMT | FLnetCtrl.GetNetworkStateメソッドを発行して取得した、リフレッシュサイクル測定時間(現在値)の値を表示します。
6 | [リンク参加]ボタン | 参加パラメータ/コモンメモリ送信領域/タイムアウト時間を設定して、リンクに参加します。
7 | [モニタモード]ボタン | LANカードを指定して、モニタを開始します。
8 | [リンク離脱]ボタン | リンクから離脱します。
9 | [コモンリード]ボタン | FLnetCtrl.ReadCommon*メソッドを発行して、コモンメモリの値をリードします。
10 | [コモンライト]ボタン | FLnetCtrl.WriteCommon*メソッドを発行して、コモンメモリの値をライトします。
11 | [コモンリセット]ボタン | FLnetCtrl.ResetCommonSendValueメソッドを発行して、コモンメモリの値をゼロリセットします。
12 | [ブロックリード]ボタン | FLnetCtrl.Read*Block*メソッドを発行して、ブロックデータの値をリードします。
13 | [ブロックライト]ボタン | FLnetCtrl.Write*Blockメソッドを発行して、ブロックデータの値をライトします。
14 | [ログ取得]ボタン | FLnetCtrl.GetMyNodeLogV3メソッドを発行して、自ノードのログデータを取得します。
15 | [ログクリア]ボタン | FLnetCtrl.ClearMyNodeLogメソッドを発行して、自ノードログデータをクリアします。
16 | [コモン変化タグ]ボタン | コモンメモリ変化検出タグを設定します。
17 | [FLnetObject]ボタン | FLnetObjectクラスを使用します。
18 | ノード番号(メッセージ通信) | メッセージ送信先ノード番号を入力します。
19 | [ブロックリード要求]ボタン | FLnetCtrl.RequestBlockReadメソッドを発行して、他ノードにバイトブロックリードを要求します。
20 | [ブロックライト要求]ボタン | FLnetCtrl.RequestBlockWriteメソッドを発行して、他ノードにバイトブロックライトを要求します。
21 | [ネットリード要求]ボタン | FLnetCtrl.RequestNetParamReadメソッドを発行して、他ノードにネットワークパラメータリードを要求します。
22 | [ネットライト要求]ボタン | FLnetCtrl.RequestNetParamWriteメソッドを発行して、他ノードにネットワークパラメータライトを要求します。
23 | [運転指令要求]ボタン | FLnetCtrl.RequestRunStopメソッドを発行して、他ノードに運転指令を要求します。
24 | [プロファイルリード要求]ボタン | FLnetCtrl.RequestProfileReadメソッドを発行して、他ノードにプロファイルリードを要求します。
25 | [ログリード要求]ボタン | FLnetCtrl.RequestLogReadメソッドを発行して、他ノードにログデータリードを要求します。
26 | [ログクリア要求]ボタン | FLnetCtrl.RequestLogClearメソッドを発行して、他ノードにログデータクリアを要求します。
27 | [折返し要求]ボタン | FLnetCtrl.RequestMessageEchoメソッドを発行して、他ノードにメッセージ折返しを要求します。
28 | [透過形]ボタン | FLnetCtrl.SendUserMessageメソッドを発行して、他ノードに透過形メッセージを送信します。
29 | [ベンダ固有要求]ボタン | FLnetCtrl.RequestVendorMessageメソッドを発行して、他ノードにベンダ固有メッセージを要求します。
30 | [トークン保持時間]ボタン | トークン保持時間測定状態の測定開始・停止をします。
31 | [汎用通信]ボタン | 汎用通信データ送信元ログの測定開始・停止をします。
32 | [UDP/IP]ボタン | コマンドサーバ(UDP)の起動・停止をします。
33 | [TCP/IP]ボタン | コマンドサーバ(ＴＣP)の起動・停止をします。
34 | [IO割付]ボタン | FLnetCtrl.SetIOメソッドを発行して、ＩＯ割付設定をします。
35 | [ステータス]ボタン | FLnetCtrl.GetOutputStatusメソッドを発行して、出力ステータスを取得します。
36 | [データ]ボタン | FLnetCtrl.ReadOutputBitDataメソッドを発行して、出力データをリードします。


更新履歴
前へ　次へ
Ver.3.02

  1. 64bit版に対応しました。

Ver.3.01

  1. 動作環境を変更しました。

Ver.3.00

  1. FAリンクプロトコル仕様Ver.3に対応しました。

  2. 実装クラスをクラス1からクラス3に変更しました。

  3. 製造業者形式を"KE-SFL120"から"KE-SFL3WIN"に変更しました。

  4. 動作条件を見直しました。

  5. トークン保持時間の測定開始・停止をする処理（MeasureTokenTimeプロパティ）を追加しました。

  6. 汎用通信データ送信元ログの測定開始・停止をする処理（MeasureDataLogプロパティ）を追加しました。

  7. コマンドサーバ（UDP）の起動・停止をする処理（CommandServerUdpプロパティ）を追加しました。

  8. コマンドサーバ（TCP）の起動・停止をする処理（CommandServerTcpプロパティ）を追加しました。

  9. コマンドサーバ（UDP）用のIPアドレスを設定する処理（CommandServerUdpIPプロパティ）を追加しました。

  10. コマンドサーバ（TCP）用のIPアドレスを設定する処理（CommandServerTcpIPプロパティ）を追加しました。

  11. スレーブノード参加状態一覧の取得をする処理（GetLinkInSlavesメソッド）を追加しました。

  12. 自ノードログデータの取得（V3対応版）をする処理（GetMyNodeLogV3メソッド）を追加しました。

  13. トークン保持時間測定の結果を取得する処理（GetMeasureTokenTimeメソッド）を追加しました。

  14. 汎用通信データ送信元ログの測定結果を取得する処理（GetMeasureDataLogメソッド）を追加しました。

  15. 他ノードへネットワークパラメータライト応答メッセージの送信をする処理（ReplyWriteNetParamメソッド）を追加しました。

  16. 他ノードへ運転・停止指令応答メッセージの送信をする処理（ReplyRunStopメソッド）を追加しました。

  17. IO割付情報の設定をする処理（SetIOメソッド）を追加しました。

  18. IO割付情報の取得をする処理（GetIOメソッド）を追加しました。

  19. 入力データのビット読出し（連続）をする処理（ReadInputBitDataメソッド）を追加しました。

  20. 入力データのワード読出し（連続）をする処理（ReadInputWordDataメソッド）を追加しました。

  21. 入力データのビット読出し（ランダム）をする処理（ReadInputRandomBitDataメソッド）を追加しました。

  22. 入力データのワード読出し（ランダム）をする処理（ReadInputRandomWordDataメソッド）を追加しました。

  23. 出力データのビット読出し（連続）をする処理（ReadOutputBitDataメソッド）を追加しました。

  24. 出力データのワード読出し（連続）をする処理（ReadOutputWordDataメソッド）を追加しました。

  25. 出力データのビット読出し（ランダム）をする処理（ReadOutputRandomBitDataメソッド）を追加しました。

  26. 出力データのワード読出し（ランダム）をする処理（ReadOutputRandomWordDataメソッド）を追加しまし た。

  27. 出力データのビット書込み（連続）をする処理（WriteOutputBitDataメソッド）を追加しました。

  28. 出力データのワード書込み（連続）をする処理（WriteOutputWordDataメソッド）を追加しました。

  29. 出力データのビット書込み（ランダム）をする処理（WriteOutputRandomBitDataメソッド）を追加しました。

  30. 出力データのワード書込み（ランダム）をする処理（WriteOutputRandomWordDataメソッド）を追加しました。

  31. 入力ステータスの取得をする処理（GetInputStatusメソッド）を追加しました。

  32. 出力ステータスの取得をする処理（GetOutputStatusメソッド）を追加しました。

  33. 出力ステータスの設定をする処理（SetOutputStatusメソッド）を追加しました。

  34. ネットワークパラメータライト要求メッセージ受信イベント（ NetParamWriteRequested ）を追加しました。

  35. 運転・停止指令要求メッセージ受信イベント（RunStopRequested）を追加しました。

  36. スレーブノードのリンク参加検知イベント（LinkInSlave）を追加しました。

  37. スレーブノードのリンク離脱検知イベント（LinkOutSlave）を追加しました。

  38. IO入力データ変化検知イベント（InputDataChanged）を追加しました。

  39. IO入力ステータス変化検知イベント（InputStatusChanged）を追加しました。

  40. トークン保持時間測定状態変化検知イベント（MeasureTokenTimeChanged）を追加しました。

  41. 汎用通信データ送信元ログ測定状態変化検知イベント（MeasureDataLogChanged）を追加しました。

  42. 設定ツールからのネットワークパラメータライト要求受信イベント（NetParamWriteRequestedFromSettingTool）を追加しました。

  43. 設定ツールからの運転・停止指令要求受信イベント（RunStopRequestedFromSettingTool）を追加しました。

  44. 設定ツールからのIO割付要求受信イベント（SetIORequestedFromSettingTool）を追加しました。

  45. 設定ツールからのコンフィギュレーション用パラメータ設定要求受信イベント（SetConfigParamRequestedFromSettingTool）を追加しました。

  46. 設定ツールからのノードリセット要求受信イベント（ResetNodeRequestedFromSettingTool）を追加しました。


参加/離脱管理
前へ　次へ　自ノードの参加　自ノードの離脱　他ノードの参加/離脱　リンクエラー　モニタモード
自ノードの参加

自ノードがリンクに参加する手順を、以下に示します。

  1. リンクに参加する際に必要な、以下のパラメータを設定しておきます。
    項目 | 設定方法
    ノード番号 | FLnetCtrl.NodeNoプロパティを設定します。
    トークン監視時間 | FLnetCtrl.TokenTimeプロパティを設定します。
    最小許容フレーム間隔 | FLnetCtrl.MinFrameInterva lプロパティを設定します。
    コモンメモリ送信領域 | FLnetCtrl.CommonSendプロパティを設定します。
    使用するLANカード | FLnetCtrl.LocalIPプロパティを設定します。

  2. FLnetCtrl.LinkStateプロパティにLinkInを設定して、リンクの参加を開始します。リンク参加開始時に異常を検知した場合は、FLnetException例外が発生します。

  3. FL-net Controlは、リンク参加を実行します。自ノードがリンク参加に成功した場合は、FLnetCtrl.LinkInイベントが発生します。ただし、ネットワーク状態(ネットワーク上に他ノードが立ち上がっていない場合)によっては、ネットワーク参加までに時間が掛かる場合があります。リンク参加実行中に、異常(ノード番号の重複/トークンモード不一致/リンク参加タイムアウト)を検知した場合は、FLnetCtrl.LinkErrorイベントが発生し、リンク参加が失敗します。

同一パソコン内にLANカードが複数枚存在する場合は、同時にそれぞれのLANカードからFL-netネットワークに参加することが可能です(最大2枚まで動作保証)。複数FL-netネットワークに同時参加する場合は、上位アプリケーションをそれぞれ個別に実行し、FLnetCtrl.LocalIPプロパティに、使用するLANカードのIPアドレスをそれぞれ個別に指定してください。

自ノードの離脱

FLnetCtrl.LinkStateプロパティにLinkOutを設定することで、FL-netネットワークからの離脱を開始します。離脱が完了した時点で、FLnetCtrl.LinkOutイベントが発生します。

ネットワークの状態によって、自ノードがFL-netネットワークから離脱してしまう場合があります。この場合、FLnetCtrl.LinkErrorイベントが発生します。自動再参加モードが有効(FLnetCtrl.AlwaysLinkプロパティ=True)の場合は、前回参加時のパラメータに基づき、リンクに再参加します。

他ノードの参加/離脱

自ノードがリンク参加中に、他ノードの参加を検知した場合は、FLnetCtrl.LinkInイベントが発生します。他ノードの離脱を検知した場合は、FLnetCtrl.LinkOutイベントが発生します。

リンクエラー

自ノードがリンク参加中に、リンク関連の通信エラーを検知した場合は、FLnetCtrl.LinkErrorイベントが発生します。通知されるエラー番号から、エラー内容を確認することができます。

モニタモード

FL-net Controlには、FL-netネットワークリンクには参加せずに、ネットワーク上で巡回しているサイクリックデータパケットをモニタリングする機能をもちます。この機能により、ネットワーク監視を行うことをモニタモードと称します。モニタモードでは、以下の機能を行うことができます。

機能 | 説明
ノード状態の監視 | ノードの参加/離脱および各ノードの状態を確認できます。
ネットワーク状態の監視 | ネットワーク状態およびリンク参加状況を確認できます。
コモンメモリの監視 | コモンメモリのリードが可能です。コモンメモリの変化を検知したら、変化のイベントを通知します。コモンメモリのライトはできません。
メッセージ通信 | メッセージの送受信はできません。

モニタモードは、FLnetCtrl.LinkStateプロパティにLinkMonitorを設定するか、FLnetCtrl.NodeNoプロパティに0を設定してFLnetCtrl.LinkStateプロパティにLinkInを設定することで、開始できます。


ネットワーク管理
前へ　次へ　パラメータ一覧　ノード状態　プロファイルデータ
パラメータ一覧

FL-net Controlが管理する以下の情報を、取得または設定することが可能です。

項目 | 説明
自ノード管理情報パラメータ (1) 自ノード番号を指定して、FLnetCtrl.GetNodeStateメソッドを発行して、自ノード管理情報パラメータを取得します。
(2) 上位層の運転/停止状態は、FLnetCtrl.RunModeプロパティで取得または設定します。運転/停止状態は、リンク参加中も設定可能です。なお、FL-net Controlでは運転/停止状態による動作の違いはありません。
(3) ノード名(設備名)は、FLnetCtrl.NodeNameプロパティで取得または設定します。ノード名(設備名)は、リンク参加中も設定可能です。
参加ノード管理情報パラメータ (1) ノード番号を指定して、FLnetCtrl.GetNodeStateメソッドを発行して、参加ノード管理情報パラメータを取得します。ただし、一部のパラメータ(ノード名/ベンダ名/製造業者形式)を取得する場合は、FLnetCtrl.RequestNetParamReadメソッドを発行して、他ノードからネットワークパラメータをリードする必要があります。
(2) FLnetCtrl.GetAllNodesLinkStateメソッドを発行して、全ノードのリンク参加状況を取得します。
ネットワーク管理情報パラメータ | FLnetCtrl.GetNewtorkStateメソッドを発行して、ネットワーク管理情報パラメータを取得します。
自ノードログデータ (1) FLnetCtrl.GetMyNodeLogメソッドを発行して、取得が可能 です。
(2) FLnetCtrl.GetMyNodeLogV3メソッドを発行して、取得が可能 です。
(3) FLnetCtrl.ClearMyNodeLogメソッドを発行して、クリアします。
ノード状態

FL-net Controlは、以下に示すノード状態を保有します。各項目は、フレームのヘッダ情報および他ノードからのネットワークパラメータリード要求に対する応答データとして使用します。各項目に対する自ノードの値を、該当するプロパティで更新することが可能です。また、FLnetCtrl.GetNodeStateメソッドを発行して、各項目の値を取得することが可能です。

項目 | 自ノードの値
ベンダ名 | "HITACHI-KE"(固定値)
製造業者形式 | "KE-SFL3WIN"(固定値)
ノード番号 | FLnetCtrl.NodeNoプロパティ値
ノード名(設備名) | FLnetCtrl.NodeNameプロパティ値
コモンメモリ送信領域 | FLnetCtrl.CommonSendプロパティ値
トークン監視時間 | FLnetCtrl.TokenTimeプロパティ値
最小許容フレーム間隔 | FLnetCtrl.MinFrameIntervalプロパティ値
プロトコル・タイプ | 16#80固定
上位層の状態
bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

値

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ?

各bitの値は、以下の通りです。

bit | 意味 | 値
0～11 | 上位層エラーコード | 全bit=0固定
12 | 予備 | 0固定
13,14 | 上位層エラー情報 | 00(Normal)固定
15 上位層動作情報(運転/停止状態) FLnetCtrl.RunModeプロパティの値による。
・Trueの場合=1(RUN)
・Falseの場合=0(STOP)
FAリンクの状態
bit 0 1 2 3 4 5 6 7

値

0 0 0 0 0 0 0 0

各bitの値は、以下の通りです。

bit | 意味 | 値
0 リンク参加状態 ・0(未参加)
・1(参加中)
1 通信無効検知 ・0(検知無し)
・1(検知有り)
2,3 | 予備 | 00固定
4 | 上位層信号エラー | 0(正常)固定
5 コモンメモリ・データ有効通知 ・コモンメモリ送信領域(FLnetCtrl.CommonSendプロパティ)が設定されている場合=1(有効)
・受信専用の場合=0(無効)
6 | コモンメモリ(アドレス・サイズ)設定完了 | 1(完了)固定
7 アドレス重複検知 ・0(検知無し)
・1(検知有り)
自ノードの状態
bit 0 1 2 3 4 5 6 7

値

? ? ? ? ? 0 0 0

各bitの値は、以下の通りです。

bit | 意味 | 値
0 ノード番号重複検知 ・0(重複無し)
・1(重複有り)
1 トークン監視時間エラー ・0(エラー無し)
・1(エラー有り)
2 受信待ち状態 ・0(待ち無し)
・1(受信待ち状態)
3 初期化エラー ・0(エラー無し)
・1(エラー有り)
4 参加状態 ・0(未参加)
・1(参加中)
5～7 | 予備 | 000固定
プロファイルデータ

FL-net Controlは、以下に示すプロファイルデータを保有します。各項目は、他ノードからプロファイルリード要求に対する応答データとして使用します。なお、各パラメータの値は、FL-net Control固有の値のため、アプリケーションより変更することはできません。

32bit版
パラメータ名称 | 名称文字(長さ,文字) | データタイプ | 値(長さ,値)
デバイスプロファイル共通仕様バージョン | 6,"COMVER" | INTEGER | 1,1
システムパラメータ識別文字 | 2,"ID" | PrintableString | 7,"SYSPARA"
システムパラメータ改変番号 | 3,"REV" | INTEGER | 1,1
システムパラメータ変更日付 | 7,"REVDATE" | INTEGER | 2,2011
INTEGER | 1,11
INTEGER | 1,01
デバイス種別 | 10,"DVCATEGORY" | PrintableString | 8,"COMPUTER"
ベンダ名 | 6,"VENDOR" | PrintableString | 10,"HITACHI-KE"
製造業者形名 | 7,"DVMODEL" | PrintableString | 10,"KE-SFL3WIN"
64bit版
パラメータ名称 | 名称文字(長さ,文字) | データタイプ | 値(長さ,値)
デバイスプロファイル共通仕様バージョン | 6,"COMVER" | INTEGER | 1,1
システムパラメータ識別文字 | 2,"ID" | PrintableString | 7,"SYSPARA"
システムパラメータ改変番号 | 3,"REV" | INTEGER | 1,1
システムパラメータ変更日付 | 7,"REVDATE" | INTEGER | 2,2018
INTEGER | 1,08
INTEGER | 1,01
デバイス種別 | 10,"DVCATEGORY" | PrintableString | 8,"COMPUTER"
ベンダ名 | 6,"VENDOR" | PrintableString | 10,"HITACHI-KE"
製造業者形名 | 7,"DVMODEL" | PrintableString | 10,"KE-SFL3WIN"


コモンメモリ管理
前へ　次へ　メモリマップ　データ値　値変化検出　コモンメモリ領域1のビット変化検出　コモンメモリ領域2のワード変化検出
メモリマップ

コモンメモリデータは、FL-net Control内部のメモリで管理します。コモンメモリデータのメモリマップを以下に示します。

領域種別 アドレス範囲 プロパティ(CommonAreaクラス) リードアクセス(FLnetCtrlメソッド) ライトアクセス(FLnetCtrlメソッド)
領域1 0～16#1FF[word] Address1プロパティ
Size1プロパティ 		[bit単位]
ReadCommon1Bitメソッド
ReadCommon1Bitsメソッド 		[bit単位]
WriteCommon1Bitメソッド
[word単位]
ReadCommon1Wordメソッド
ReadCommon1Wordsメソッド
ReadCommon1Allメソッド 		[word単位]
WriteCommon1Wordメソッド
領域2 0～16#1FFF[word] Address2プロパティ
Size2プロパティ 		[word単位]
ReadCommon2Wordメソッド
ReadCommon2Wordsメソッド
ReadCommon2Allメソッド 		[word単位]
WriteCommon2Wordメソッド

コモンメモリ送信領域を設定する場合は、FLnetCtrl.CommonSendプロパティを設定します。ただし、リンク参加時に、他ノード割り付けとのアドレス重複を検知した場合は、コモンメモリ送信領域はゼロになります。

データ値

コモンメモリの値をリードする場合は、FLnetCtrl.ReadCommon*メソッドを発行します。リード可能な範囲は、コモンメモリ全体で、リンク参加状態に関わらずにリード可能です。
コモンメモリの値をライトする場合は、FLnetCtrl.WriteCommon*メソッドを発行します。ライト可能な範囲は、コモンメモリ送信領域内で、リンク参加状態に関わらずにライト可能です。
コモンメモリの値は、自ノードの状態およびコモンメモリの割付状況に応じて、以下の通りになります。

自ノード状態 | コモンメモリ割付状況
自ノード送信領域 | 他ノード送信領域 | 未使用領域
アプリケーション起動時 | 全てゼロ
リンク参加前/離脱中 | アプリケーションからライトした値 | 自ノードが前回リンクに参加していた時点の値 | 前回の値
リンク参加中 | 他ノードから受信したサイクリックデータの値(※割付対象ノードがリンクから離脱し場合は、離脱した時点の値)
モニタ中 | なし(※領域がゼロになります。)
値変化検出

FL-net Controlは、コモンメモリの値変化を検出すると上位アプリケーションにイベントを通知します。コモンメモリの値変化検出条件を、以下に示します。

検出条件 | 説明
限定範囲による値変化の検出 | FLnetCtrl.CommonChangeプロパティでコモンメモリ変化検出領域を設定し、領域範囲内のコモンメモリ値が変化した場合に、FLnetCtrl.CommonChangedイベントが発生します。ただし、FLnetCtrl.WriteCommon*メソッドを発行して、自ノード送信領域の値をライトした場合は、FLnetCtrl.CommonChangedイベントは発生しません。
コモンメモリ領域1のビット変化検出 | FLnetCtrl.Common1Tagsプロパティで、コモンメモリ領域1のビット変化検出タグを設定し、条件を満たした場合に、FLnetCtrl.Common1Tagイベントが発生します。ただし、FLnetCtrl.WriteCommon*メソッドを発行して、自ノード送信領域の値をライトした場合は、FLnetCtrl.Common1Tagイベントは発生しません。
コモンメモリ領域2のワード変化検出 | FLnetCtrl.Common2Tagsプロパティで、コモンメモリ領域2のワード変化検出タグを設定し、条件を満たした場合に、FLnetCtrl.Common2Tagイベントが発生します。ただし、FLnetCtrl.WriteCommon2Wordメソッドを発行して、自ノード送信領域の値をライトした場合は、FLnetCtrl.Common2Tagイベントは発生しません。
コモンメモリ領域1のビット変化検出

FLnetCtrl.Common1Tagsプロパティには、Common1Tag(コモンメモリ領域1変化検出タグアイテム)オブジェクトのコレクションを設定します。Common1Tagに設定する項目は以下の通りです。

項目 | 説明
Enabled | 変化検出イベントの発生有無[有効/無効]
TagName | タグ名称
Trigger | トリガ種別[ビット立ち上がり/ビット立ち下がり/ビット変化]
Address | 変化検出アドレス[word単位]
Bit | 変化検出ビット[0～15]
DelayTime | イベント検知遅延時間[100ms単位, 0～1000]
  1. ビット立ち上がり
    ビット立ち上がり検出イベントは、ビット値がOFF->ONに変化を検知してから、DelayTimeの時間ONを保持している場合に発生します(下図①)。なお、OFF->ONに変化を検知してDelayTime時間内にOFFに戻った場合は、イベントは発生しません(下図②)。DelayTime時間=0の場合は、ビット値がOFF->ONに変化を検知した直後にイベントが発生します。

  2. ビット立ち下がり
    ビット立ち下がり検出イベントは、ビット値がON->OFFに変化を検知してから、DelayTimeの時間OFFを保持している場合に発生します(下図③)。なお、ON->OFFに変化を検知してDelayTime時間内にONに戻った場合は、イベントは発生しません(下図④)。DelayTime時間=0の場合は、ビットの値がON->OFFに変化を検知した直後にイベントが発生します。

  3. ビット変化
    ビット変化検出イベントは、ビット値が前回通知した値との変化を検知してから、DelayTimeの時間変化後の値を保持している場合に発生します(下図⑤)。なお、DelayTime時間内に値が変化した場合は、イベントは発生しません(下図⑥)。DelayTime時間=0の場合は、ビット値の変化を検知した直後にイベントが発生します。
コモンメモリ領域2のワード変化検出

FLnetCtrl.Common2Tagsプロパティには、Common2Tag(コモンメモリ領域2変化検出タグアイテム)オブジェクトのコレクションを設定します。Common2Tagに設定する項目は以下の通りです。

項目 | 説明
Enabled | 変化検出イベントの発生有無[有効/無効]
TagName | タグ名称
Trigger | トリガ種別[しきい値下回り/しきい値上回り/ワード変化]
Address | 変化検出アドレス[word単位]
Threshold | しきい値
DelayTime | イベント検知遅延時間[100ms単位, 0～1000]
  1. しきい値下回り
    しきい値下回り検出イベントは、しきい値以上であるワードデータの値からしきい値の下回りを検知してから、DelayTime時間下回りを保持している場合に発生します(下図①)。なお、下回りを検知してDelayTime時間内にしきい値以上の値になった場合は、イベントは発生しません(下図②)。DelayTime時間=0の場合は、しきい値の下回りを検知した直後にイベントが発生します。

  2. しきい値上回り
    しきい値上回り検出イベントは、しきい値以下であるワードデータの値からしきい値の上回りを検知してから、DelayTime時間上回りを保持している場合に発生します(下図③)。なお、上回りを検知してDelayTime時間内にしきい値以下の値になった場合は、イベントは発生しません(下図④)。DelayTime時間=0の場合は、しきい値の上回りを検知した直後にイベントが発生します。

  3. ワード変化
    ワード変化検出イベントは、ワードの値が前回通知した値との変化を検知してから、DelayTime時間後に前回通知した値が異なる場合に発生します(下図⑤)。なお、DelayTime時間経過後に値が戻っている場合は、イベントは発生しません(下図⑥)。しきい値の設定値は、無効です。


ブロックデータ管理
前へ　次へ　データ マップ　データ値　他ノードからのブロックデータアクセス
データマップ

ブロックデータは、FL-net Control内部のメモリで管理します。ブロックデータのメモリマップを以下に示します。

種別 アドレス範囲 リードアクセス(FLnetCtrlメソッド) ライトアクセス(FLnetCtrlメソッド)
バイトブロック 0～16#1FFFFF[byte] ReadByteBlockメソッド
ReadByteBlocksメソッド
ReadByteBlockAllメソッド 		WriteByteBlockメソッド
ワードブロック 0～16#1FFFFF[word] ReadWordBlockメソッド
ReadWordBlocksメソッド
ReadWordBlockAllメソッド 		WriteWordBlockメソッド
データ値

ブロックデータの値をリードする場合は、FLnetCtrlのRead*Block*メソッドを発行します。リード可能な範囲は上記の範囲内で、リンク参加状態に関わらずにリード可能です。
ブロックデータの値をライトする場合は、FLnetCtrlのWrite*Blockメソッドを発行します。ライト可能な範囲は上記の範囲内で、リンク参加状態に関わらずにライト可能です。

他ノードからのブロックデータアクセス

他ノードからブロックリード要求を受けた場合は、FL-net Controlは自動でブロックデータの値を応答します。また、他ノードからブロックライト要求を受けた場合は、ブロックライト要求ロックモード(FLnetCtrl.LockBlockプロパティ)の設定値に応じて、応答結果が異なります。ロックモードがロックされている場合は、ブロックデータは更新されません。ロックモードがロック解除されている場合は、ブロックデータを更新します。なお、ブロックライト要求により、ブロックデータの値が更新された場合は、FLnetCtrl.BlockChangedイベントが発生します。


メッセージクライアント機能
前へ　次へ　メッセージ一覧　手順
メッセージ一覧

FL-net Controlは、以下に示すメッセージのクライアント機能をサポートします。

メッセージ種類 メッセージ番号 1対1(注1) 1対N(注1) 要求メソッド(FLnetCtrlメソッド) 応答イベント(FLnetCtrlイベント)
透過形(ユーザ定義) 0～59999 ○ ○ SendUserMessage なし
バイトブロックリード 65003 ○ － RequestBlockRead BlockReadReplied
バイトブロックライト 65004 ○ － RequestBlockWrite BlockWriteReplied
ワードブロックリード 65005 ○ － RequestBlockRead BlockReadReplied
ワードブロックライト 65006 ○ － RequestBlockWrite BlockWriteReplied
ネットワークパラメータリード 65007 ○ － RequestNetParamRead NetParamReadReplied
ネットワークパラメータライト 65008 ○ － RequestNetParamWrite NetParamWriteReplied
停止指令 65009 ○ － RequestRunStop RunStopReplied
運転指令 65010 ○ － RequestRunStop RunStopReplied
プロファイルリード 65011 ○ － RequestProfileRead ProfileReadReplied
ログデータリード 65013 ○ － RequestLogRead LogReadReplied
ログデータクリア 65014 ○ ○ RequestLogClear LogClearReplied
メッセージ折返し 65015 ○ － RequestMessageEcho MessageEchoReplied
ベンダ固有メッセージ 65016 ○ ○ RequestVendorMessage VendorMessageReplied

(注1)表内の記号は、以下を意味します。
・○：機能をサポートします。
・－：FAリンクプロトコル仕様に存在しない機能のため、サポートしません。

手順

メッセージクライアント機能の手順を、以下に示します。

  1. 他ノードに要求を行う場合は、FLnetCtrlクラスの要求メソッドを発行します。メソッドの戻り値で、送信開始結果を確認します。

  2. FL-net Controlは、他ノードに対して要求メッセージを送信します。メッセージ送信タイムアウト(FLnetCtrl.Timeout.MessageSendプロパティ)時間内に、他ノードから正常応答の送達確認(ACK応答)を受信した場合は、FLnetCtrl.SendCompletedイベントが発生します。メッセージ送信タイムアウトが発生した場合や、送信先ノードから異常の送達確認を受信した場合は、FLnetCtrl.MessageErrorイベントが発生します。

  3. 引き続き、メッセージ応答タイムアウト(FLnetCtrl.Timeout.MessageReplyプロパティ)時間内に、他ノードから応答メッセージを受信した場合は、応答イベントが発生します。メッセージ応答タイムアウトが発生した場合は、FLnetCtrl.MessageErrorイベントが発生します。


メッセージサーバ機能
前へ　次へ　メッセージ一覧　ブロックのリード/ライト　ベンダ固有メッセージ
メッセージ一覧

FL-net Controlは、以下に示すメッセージのサーバ機能をサポートします。要求メッセージ種類に応じて、FL-net Control が自動応答またはイベントを通知します。

メッセージ種類 メッセージ番号 1対1(注1) 1対N(注1) 説明
透過形(ユーザ定義) 0～59999 ○ ○ メッセージを受信したときに、FLnetCtrl.UserMessageReceivedイベントが発生します。
バイトブロックリード 65003 ◎ － ブロックのリード/ライトを参照ください。
バイトブロックライト 65004 ◎ －
ワードブロックリード 65005 ◎ －
ワードブロックライト 65006 ◎ －
ネットワークパラメータリード 65007 ◎ － FL-net Controlが自動で、ネットワークパラメータを正常応答します。
ネットワークパラメータライト 65008 ○ － メッセージを受信したときに、FLnetCtrl.NetParamWriteRequestedイベントが発生します。 アプリケーションでは、要求メッセージ内容を判断してネットワークパラメータ書込み応答メッセージを送信する（ReplyWriteNetParamメソッドを発行する）必要があります。なお、イベントが未定義の場合は、非実装応答を返送します。
停止指令 65009 ○ － メッセージを受信したときに、FLnetCtrl.RunStopRequestedイベントが発生します。 アプリケーションでは、要求メッセージ内容を判断して運転・停止指令応答メッセージを送信する（ReplyRunStopメソッドを発行する）必要があります。なお、イベントが未定義の場合は、非実装応答を返送します。
運転指令 65010 ○ － メッセージを受信したときに、FLnetCtrl.RunStopRequestedイベントが発生します。 アプリケーションでは、要求メッセージ内容を判断して運転・停止指令応答メッセージを送信する（ReplyRunStopメソッドを発行する）必要があります。なお、イベントが未定義の場合は、非実装応答を返送します。
プロファイルリード 65011 ◎ － FL-net Controlが自動で、プロファイルデータを正常応答します。
ログデータリード 65013 ◎ － FL-net Controlが自動で、ログデータを正常応答します。
ログデータクリア 65014 ◎ ◎ FL-net Controlが自動で、正常応答します。FLnetCtrl.LogClearedイベントが発生します。
メッセージ折返し 65015 ◎ － FL-net Controlが自動で、折返しデータを正常応答します。
ベンダ固有メッセージ 65016 ※ ※ ベンダ固有メッセージを参照ください。

(注1)表内の記号は、以下を意味します。
・○：機能をサポートします(アプリケーションにイベントを通知します)。
・◎：機能をサポートします(FL-net Controlが自動応答します)。
・×：機能をサポートしません(非実装を応答します)。
・－：FAリンクプロトコル仕様に存在しない機能のため、サポートしません。
・※：FLnetCtrl.VendorMessageSupportプロパティの値に応じて動作が異なります。

ブロックのリード/ライト

FL-net Controlが管理するバイト/ワードブロックデータのアドレス空間は、0～16#1FFFFFです。

領域範囲内のリード要求を受信した場合は、FL-net Controlが管理するブロックデータを正常応答します。領域範囲外のリード要求を受信した場合は、異常応答します。

領域範囲内のライト要求を受信した場合は、ブロックライト要求ロックモード(FLnetCtrl.LockBlockプロパティ)の設定値に応じて、応答結果が異なります。ロックモードがロックされている場合は、ブロックデータを更新しないで、他ノードに異常応答します。ロックモードがロック解除されている場合は、ブロックデータを更新し、正常応答します。なお、ブロックライト要求により、ブロックデータの値が更新された場合は、FLnetCtrl.BlockChangedイベントが発生します。

異常応答のエラーコードは1バイト固定長とし、以下のコードを設定します。

エラーコード | 内容
1 | 領域(0～16#1FFFFF)範囲外のアドレスが指定されました。
2 | ロック中(FLnetCtrl.LockBlockプロパティ=True)にライト要求を受信したため、ライトしませんでした。
ベンダ固有メッセージ

ベンダ固有メッセージサーバ機能の実装モード(FLnetCtrl.VendorMessageSupportプロパティ)に応じて、応答結果が異なります。FLnetCtrl.VendorMessageSupportプロパティのデフォルト値はFalse(非実装)です。ベンダ固有メッセージサーバ機能を実装する場合は、Trueに設定してください。

ベンダ固有メッセージサーバ機能実装(FLnetCtrl.VendorMessageSupportプロパティ=True)の場合に、他ノードからベンダ固有メッセージ要求を受けた場合は、FLnetCtrl.VendorMessageRequestedイベントが発生します。アプリケーションではメッセージ要求内容を確認して、FLnetCtrl.ReplyVendorMessageメソッドを発行してください。

ベンダ固有メッセージサーバ機能非実装(FLnetCtrl.VendorMessageSupportプロパティ=False)の場合に、他ノードからベンダ固有メッセージ要求を受けた場合は、FL-net Controlが自動的に非実装を応答します。非実装応答のベンダ名称およびサブコードは、要求メッセージと同じ値になります。FLnetCtrl.VendorMessageRequestedイベントは発生しません。


コマンドサーバ機能
前へ　次へ　コマンドサーバ機能　メッセージ一覧　ブロックのリード/ライト
コマンドサーバ機能

FL-net Controlは、以下に示すコマンドサーバ機能をサポートします。

項目

内容
コマンドサーバ(UDP/IP)のIPアドレス | CommandServerUdpIPプロパティにて設定/参照が可能です。
コマンドサーバ(TCP/IP)のIPアドレス | CommandServerTcpIPプロパティにて設定/参照が可能です。
コマンドサーバ(UDP/IP)の起動・停止 | CommandServerUdpプロパティにて設定/参照が可能です。
コマンドサーバ(TCP/IP)の起動・停止 | CommandServerTcpプロパティにて設定/参照が可能です。
メッセージ一覧

FL-net Controlは、以下に示すメッセージのサーバ機能をサポートします。要求メッセージ種類に応じて、FL-net Controlが自動応答またはイベントを通知します。

メッセージ種類 メッセージ番号 イベント通知 説明
バイトブロックリードフレーム 65003 × ブロックのリード/ライトを参照ください。
バイトブロックライトフレーム 65004 ○
ワードブロックリードフレーム 65005 ×
ワードブロックライトフレーム 65006 ○
ネットワークパラメータリードフレーム 65007 × FL-net Controlが自動で、ネットワークパラメータを正常応答します。
ネットワークパラメータライトフレーム 65008 ○ 設定ツールからメッセージを受信したときに、FLnetCtrl.NetParamWriteRequestedFromSettingToolイベントが発生します。 アプリケーションでは、要求内容を判断して、設定可否の判定結果および再参加有無を指定してください。設定可否の判定結果に基づき応答します。なお、イベントが未定義の場合は、非実装応答します。
停止指令フレーム 65009 ○ 設定ツールからメッセージを受信したときに、FLnetCtrl.RunStopRequestedFromSettingToolイベントが発生します。 アプリケーションでは、要求内容を判断して、設定可否の判定結果を指定してください。設定可否の判定結果に基づき応答します。なお、イベントが未定義の場合は、非実装応答します。
運転指令フレーム 65010 ○ 設定ツールからメッセージを受信したときに、FLnetCtrl.RunStopRequestedFromSettingToolイベントが発生します。 アプリケーションでは、要求内容を判断して、設定可否の判定結果を指定してください。設定可否の判定結果に基づき応答します。なお、イベントが未定義の場合は、非実装応答します。
プロファイルリードフレーム 65011 × FL-net Controlが自動で、プロファイルデータを正常応答します。
ログデータリードフレーム 65013 × FL-net Controlが自動で、ログデータを正常応答します。
ログデータクリアフレーム 65014 ○ FL-net Controlが自動で、正常応答し ます。FLnetCtrl.LogClearedイベントが発生します。
メッセージ折返しフレーム 65015 × FL-net Controlが自動で、折返しデータを正常応答します。
IO割付設定フレーム 65018 ○ 設定ツールからメッセージを受信したときに、FLnetCtrl.SetIORequestedFromSettingToolイベントが発生します。 アプリケーションでは、要求内容を判断して、設定可否の判定結果を指定してください。設定可否の判定結果に基づき応答します。なお、イベントが未定義の場合は、非実装応答します。
IO割付読出しフレーム 65019 × FL-net Controlが自動で、IO割付読出し情報を正常応答します。
トークン保持時間測定開始フレーム 65020 ○ FL-net Controlが自動で、測定開始結果を応答します。FLnetCtrl.MeasureTokenTimeChangedイベントが発生します。
トークン保持時間測定終了フレーム 65021 ○ FL-net Controlが自動で、測定終了結果を応答します。FLnetCtrl.MeasureTokenTimeChangedイベントが発生します。
汎用通信データ送信元ログ測定開始フレーム 65022 ○ FL-net Controlが自動で、測定開始結果を応答します。FLnetCtrl.MeasureDataLogChangedイベントが発生します。
汎用通信データ送信元ログ測定終了フレーム 65023 ○ FL-net Controlが自動で、測定終了結果を応答します。FLnetCtrl.MeasureDataLogChangedイベントが発生します。
コンフィギュレーション用パラメータ設定フレーム 65024 ○ 設定ツールからメッセージを受信したときに、FLnetCtrl.SetConfigParamRequestedFromSettingToolイベントが発生します。 アプリケーションでは、要求内容を判断して、設定可否の判定結果および再参加有無を指定してください。設定可否の判定結果に基づき応答します。なお、イベントが未定義の場合は、非実装応答します。
参加ノード管理情報パラメータ読出しフレーム 65025
           × FL-net Controlが自動で、参加ノード管理情報を正常応答します。
自ノード管理情報パラメータ読出しフレーム 65026 × FL-net Controlが自動で、自ノード管理情報を正常応答します。
自ノード設定情報パラメータ読出しフレーム 65027 × FL-net Controlが自動で、自ノード設定情報を正常応答します。
ノードリセットフレーム 65028 ○ 設定ツールからメッセージを受信したときに、FLnetCtrl.ResetNodeRequestedFromSettingToolイベントが発生します。 アプリケーションでは、要求内容を判断して、リセット可否の判定結果および再参加有無を指定してください。リセット可否の判定結果に基づき応答します。なお、イベントが未定義の場合は、非実装応答します。

(注)表内の記号は、以下を意味します。
・○：アプリケーションにイベントを通知します。
・×：アプリケーションにイベントを通知しません。

ブロックのリード/ライト

FL-net Controlが管理するバイト/ワードブロックデータのアドレス空間は、0～16#1FFFFFです。

領域範囲内のリード要求を受信した場合は、FL-net Controlが管理するブロックデータを正常応答します。領域範囲外のリード要求を受信した場合は、異常応答します。

領域範囲内のライト要求を受信した場合は、ブロックライト要求ロックモード(FLnetCtrl.LockBlockプロパティ)の設定値に応じて、応答結果が異なります。ロックモードがロックされている場合は、ブロックデータを更新しないで、他ノードに異常応答します。ロックモードがロック解除されている場合は、ブロックデータを更新し、正常応答します。なお、ブロックライト要求により、ブロックデータの値が更新された場合は、FLnetCtrl.BlockChangedイベントが発生します。

異常応答のエラーコードは1バイト固定長とし、以下のコードを設定します。

エラーコード | 内容
1 | 領域(0～16#1FFFFF)範囲外のアドレスが指定されました。
2 | ロック中(FLnetCtrl.LockBlockプロパティ=True)にライト要求を受信したため、ライトしませんでした。


負荷測定機能
前へ　次へ　機能一覧
機能一覧

FL-net Controlは、以下に示す負荷測定機能をサポートします。

項目 内容
トークン保持時間測定 FLnetCtrl.MeasureTokenTimeプロパティで測定の開始・停止を切り替えます。
FLnetCtrl.GetMeasureTokenTimeメソッドで測定結果を取得します。
汎用通信データ送信元ログ測定 FLnetCtrl.MeasureDataLogプロパティで測定の開始・停止を切り替えます。
FLnetCtrl.GetMeasureDataLogメソッドで測定結果を取得します。


デバイスレベルネットワーク機能
前へ　次へ　機能一覧

任意マスタノードの設定を行うことで、マスタ・スレーブ方式によるデバイスレベルでのIOデータ交換を行います。

アプリケーションからの任意マスタノード設定

制御スレーブ個数に1以上の値を指定してFLnetCtrl.SetIOメソッドをコールすることで、任意マスタノードの設定を行います。

なお、制御スレーブ個数に0を指定した場合は、任意マスタ機能が無しになります。デフォルトは任意マスタ機能無しです。
FLnetCtrl.SetIOメソッドでは、制御スレーブ単位にIO割付情報を設定しますが、IO出力データ領域および出力ステータス領域を、
コモンメモリ送信領域内に指定する必要があります。コモンメモリ送信領域は、FLnetCtrl.CommonSendプロパティで設定可能です。
また、制御スレーブ単位のIO割付情報が重複しないように設定してください。
任意マスタノードの設定を行うことで、マスタ・スレーブ方式によるデバイスレベルでのIOデータ交換を行います。

設定ツールからの任意マスタノード設定

コマンドサーバを起動しておき、設定ツールからIO割付設定を行うと、FLnetCtrl.SetIORequestedFromSettingToolイベントを通知します。
上位アプリケーションが正常応答を返すことで、任意マスタノードの設定を更新できます。

パラメータ

FL-net Controlは、以下に示すデバイスレベル機能をサポートします。

項目 | 内容
IO割付 FLnetCtrl.SetIOメソッドでIO割付の設定ができます。
FLnetCtrl.GetIOメソッドでIO割付の取得ができます。
入力ステータス | FLnetCtrl.GetInputStatusメソッドで入力ステータスの取得ができます。
出力ステータス FLnetCtrl.SetOutputStatusメソッドで出力ステータスの設定ができます。
FLnetCtrl.GetOutputStatusメソッドで出力ステータスの取得ができます。
入力データ FLnetCtrl.ReadInputBitDataメソッドで入力データのビット読出し(連続)ができます。
FLnetCtrl.ReadInputWordDataメソッドで入力データのワード読出し(連続)ができます。
FLnetCtrl.ReadInputRandomBitDataメソッドで入力データのビット読出し(ランダム)ができます。
FLnetCtrl.ReadInputRandomWordDataメソッドで入力データのワード読出し(ランダム)ができます。
出力データ FLnetCtrl.ReadOutputBitDataメソッドで出力データのビット読出し(連続)ができます。
FLnetCtrl.ReadOutputWordDataメソッドで出力データのワード読出し(連続)ができます。
FLnetCtrl.ReadOutputRandomBitDataメソッドで出力データのビット読出し(ランダム)ができます。
FLnetCtrl.ReadOutputRandomWordDataメソッドで出力データのワード読出し(ランダム)ができます。

FLnetCtrl.WriteOutputBitDataメソッドで出力データのビット書込み(連続)ができます。
FLnetCtrl.WriteOutputWordDataメソッドで出力データのワード書込み(連続)ができます。
FLnetCtrl.WriteOutputRandomBitDataメソッドで出力データのビット書込み(ランダム)ができます。
FLnetCtrl.WriteOutputRandomWordDataメソッドで出力データのワード書込み(ランダム)ができます。

スレーブノード参加状態 | FLnetCtrl.GetLinkInSlavesメソッドで取得できます。


HKE.FLnetCtrl名前空間
クラス　構造体　デリゲート　列挙体
クラス

名前

説明
FLnetCtrl | FAコントロールネットワーク[FL-net(OPCN-2)]のプロトコルに準拠したコンポーネントです。
FLnetObject | FL-net Controlで使用するデータオブジェクトです。データの受け渡しに使用します。データ型のキャスト(変換)が可能です。
FLnetException | FL-net Controlでエラーが発生した場合にスローされる例外です。
CommonArea | コモンメモリ領域を表します。
Timeout | タイムアウト時間を表します。
LockBlock | ブロックライト要求ロックモードを表します。
CommonTag | コモンメモリ変化検出タグの基本クラスです。
Common1Tag | コモンメモリ領域1の変化検出タグアイテムを表します。
Common2Tag | コモンメモリ領域2の変化検出タグアイテムを表します。
Common1Tags | Common1Tag(コモンメモリ領域1変化検出タグ)オブジェクトのコレクション。
Common2Tags | Common2Tag(コモンメモリ領域2変化検出タグ)オブジェクトのコレクション。
LinkInEventArgs | FLnetCtrl.LinkIn(リンク参加)イベントのデータを提供します。
LinkOutEventArgs | FLnetCtrl.LinkOut(リンク離脱)イベントのデータを提供します。
LinkErrorEventArgs | FLnetCtrl.LinkError(リンクエラー)イベントのデータを提供します。
CommonChangedEventArgs | FLnetCtrl.CommonChanged(コモンメモリ変化検知)イベントのデータを提供します。
Common1TagEventArgs | FLnetCtrl.Common1Tag(コモンメモリ領域1変化タグ検出)イベントのデータを提供します。
Common2TagEventArgs | FLnetCtrl.Common2Tag(コモンメモリ領域2変化タグ検出)イベントのデータを提供します。
BlockChangedEventArgs | FLnetCtrl.BlockChanged(自ノードのブロックデータ値変化検知)イベントのデータを提供します。
LogClearedEventArgs | FLnetCtrl.LogCleared(自ノードログデータクリア通知)イベントのデータを提供します。
SendCompletedEventArgs | FLnetCtrl.SendCompleted(メッセージ送信完了)イベントのデータを提供します。
MessageErrorEventArgs | FLnetCtrl.MessageError(メッセージ関連エラー)イベントのデータを提供します。
BlockReadRepliedEventArgs | FLnetCtrl.BlockReadReplied(ブロックリード応答)イベントのデータを提供します。
BlockWriteRepliedEventArgs | FLnetCtrl.BlockWriteReplied(ブロックライト応答)イベントのデータを提供します。
NetParamReadRepliedEventArgs | FLnetCtrl.NetParamReadReplied(ネットワークパラメータリード応答)イベントのデータを提供します。
NetParamWriteRepliedEventArgs | FLnetCtrl.NetParamWriteReplied(ネットワークパラメータライト応答)イベントのデータを提供します。
RunStopRepliedEventArgs | FLnetCtrl.RunStopReplied(運転/停止指令応答)イベントのデータを提供します。
ProfileReadRepliedEventArgs | FLnetCtrl.ProfileReadReplied(プロファイルリード応答)イベントのデータを提供します。
LogReadRepliedEventArgs | FLnetCtrl.LogReadReplied(ログデータリード応答)イベントのデータを提供します。
LogClearRepliedEventArgs | FLnetCtrl.LogClearReplied(ログデータクリア応答)イベントのデータを提供します。
MessageEchoRepliedEventArgs | FLnetCtrl.MessageEchoReplied(メッセージ折返し応答)イベントのデータを提供します。
UserMessageReceivedEventArgs | FLnetCtrl.UserMessageReceived(透過形メッセージ受信)イベントのデータを提供します。
VendorMessageRequestedEventArgs | FLnetCtrl.VendorMessageRequested(ベンダ固有メッセージ要求)イベントのデータを提供します。
VendorMessageRepliedEventArgs | FLnetCtrl.VendorMessageReplied(ベンダ固有メッセージ応答)イベントのデータを提供します。
構造体

名前

説明
NodeState | FLnetCtrl.GetNodeStateメソッドで取得するノード状態です。
NetworkState | FLnetCtrl.GetNetworkStateメソッドで取得するネットワーク情報です。
LogData | FLnetCtrl.GetMyNodeLogメソッドで取得するログデータです。
LogSendRecv | FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、送受信に関するログデータです。
LogFrame | FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、フレーム種類に関するログデータです。
LogCyclic | FLnetCtrl.GetMyNodeLogメソッドで取得するフレーム種類に関するログデータです。
LogMessage | FLnetCtrl.GetMyNodeLogメソッドで取得するサイクリック伝送に関するログデータです。
LogAck | FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、ACK関連に関するログデータです。
LogToken | FLnetCtrl.GetMyNodeLogメソッドで取得するトークン関連に関するログデータです。
LogLink | FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、リンク情報(ノード稼働状態,加入および離脱)に関するログデータです。
LogDataV3 | FlnetCtrl.GetMyNodeLogV3メソッドで取得するログデータです。
LogCyclicV3 | FlnetCtrl.GetMyNodeLogV3メソッドで取得するサイクリック伝送に関するログデータです。
LogMessageV3 | FlnetCtrl.GetMyNodeLogV3メソッドで取得するメッセージ伝送に関するログデータです。
LogTokenV3 | FlnetCtrl.GetMyNodeLogV3メソッドで取得するトークンに関するログデータです。
LogIPV3 | FlnetCtrl.GetMyNodeLogV3メソッドで取得する汎用通信データ送信元ログに関するログデータです。
LogTokenTime | FLnetCtrl.GetMeasureTokenTimeメソッドで取得するトークン保持時間測定項目に関するログデータです。
SlaveStatus | スレーブ状態です。
SlaveInputStatus | FLnetCtrl.GetInputStatusメソッドで取得する入力ステータスです。
SlaveOutputStatus | FLnetCtrl.GetOutputStatusメソッドで取得、FLnetCtrl.SetOutputStatusメソッドで設定する出力ステータスです。
IOInfo | FLnetCtrl.GetIOメソッドで取得、FLnetCtrl.SetIOメソッドで設定するIO割付情報です。
IOInfos | 全IO割付情報です。
デリゲート

名前

説明
LinkInEventHandler | FLnetCtrl.LinkIn(リンク参加)イベントを処理するメソッドです。
LinkOutEventHandler | FLnetCtrl.LinkOut(リンク離脱)イベントを処理するメソッドです。
LinkErrorEventHandler | FLnetCtrl.LinkError(リンクエラー)イベントを処理するメソッドです。
CommonChangedEventHandler | FLnetCtrl.CommonChanged(コモンメモリ値変化)イベントを処理するメソッドです。
Common1TagEventHandler | FLnetCtrl.Common1Tag(コモンメモリ領域1変化タグ検出)イベントを処理するメソッドです。
Common2TagEventHandler | FLnetCtrl.Common2Tag(コモンメモリ領域2変化タグ検出)イベントを処理するメソッドです。
BlockChangedEventHandler

FLnetCtrl.BlockChanged(自ノードのブロックデータ値変化検知)イベントを処理するメソッドです。

LogClearedEventHandler | FLnetCtrl.LogCleared(自ノードログデータクリア通知)イベントを処理するメソッドです。
SendCompletedEventHandler | FLnetCtrl.SendCompleted(メッセージ送信完了)イベントを処理するメソッドです。
MessageErrorEventHandler | FLnetCtrl.MessageError(メッセージ関連エラー)イベントを処理するメソッドです。
BlockReadRepliedEventHandler | FLnetCtrl.BlockReadReplied(ブロックリード応答)イベントを処理するメソッドです。
BlockWriteRepliedEventHandler | FLnetCtrl.BlockWriteReplied(ブロックライト応答)イベントを処理するメソッドです。
NetParamReadRepliedEventHandler | FLnetCtrl.NetParamReadReplied(ネットワークパラメータリード応答)イベントを処理するメソッドです。
NetParamWriteRepliedEventHandler | FLnetCtrl.NetParamWriteReplied(ネットワークパラメータライト応答)イベントを処理するメソッドです。
RunStopRepliedEventHandler | FLnetCtrl.RunStopReplied(運転/停止指令応答) イベントを処理するメソッドです。
ProfileReadRepliedEventHandler | FLnetCtrl.ProfileReadReplied(プロファイルリード応答)イベントを処理するメソッドです。
LogReadRepliedEventHandler | FLnetCtrl.LogReadReplied(ログデータリード応答)イベントを処理するメソッドです。
LogClearRepliedEventHandler | FLnetCtrl.LogClearReplied(ログデータクリア応答)イベントを処理するメソッドです。
MessageEchoRepliedEventHandler | FLnetCtrl.MessageEchoReplied(メッセージ折返し応答)イベントを処理するメソッドです。
UserMessageReceivedEventHandler | FLnetCtrl.UserMessageReceived(透過形メッセージ受信)イベントを処理するメソッドです。
VendorMessageRequestedEventHandler | FLnetCtrl.VendorMessageRequested(ベンダ固有メッセージ要求)イベントを処理するメソッドです。
VendorMessageRepliedEventHandler | FLnetCtrl.VendorMessageReplied(ベンダ固有メッセージ応答)イベントを処理するメソッドです。
NetParamWriteRequestedEventHandler | FLnetCtrl.NetParamWriteRequested(ネットワークパラメータライト要求)イベントを処理するメソッドです。
RunStopRequestedEventHandler | FLnetCtrl.RunStopRequested(運転/停止指令要求)イベントを処理するメソッドです。
InputDataChangedEventHandler | FLnetCtrl.InputDataChanged(入力データ更新)イベントを処理するメソッドです。
InputStatusChangedEventHandler | FLnetCtrl.InputStatusChanged(入力ステータス更新)イベントを処理するメソッドです。
LinkInSlaveEventHandler | FLnetCtrl.LinkInSlave(スレーブノードリンク参加)イベントを処理するメソッドです。
LinkOutSlaveEventHandler | FLnetCtrl.LinkOutSlave(スレーブノードリンク離脱)イベントを処理するメソッドです。
MeasureChangedEventHandler

FLnetCtrl.MeasureTokenTimeChanged(トークン保持時間測定状態変化)/
FLnetCtrl.MeasureDataLogChanged(汎用通信データ送信元ログ測定状態変化)イベントを処理するメソッドです。

NetParamWriteRequestedFromSettingToolEventHandler | FLnetCtrl.NetParamWriteRequestedFromSettingTool(設定ツールからのネットワークパラメータライト要求)イベントを処理するメソッドです。
RunStopRequestedFromSettingToolEventHandler | FLnetCtrl.RunStopRequestedFromSettingTool(設定ツールからの運転/停止指令要求)イベントを処理するメソッドです。
SetIORequestedFromSettingToolEventHandler | FLnetCtrl.SetIORequestedFromSettingTool(設定ツールからのIO割付要求)イベントを処理するメソッドです。
SetConfigParamRequestedFromSettingToolEventHandler | FLnetCtrl.SetConfigParamRequestedFromSettingTool(設定ツールからのコンフィギュレーション用パラメータ設定要求)イベントを処理するメソッドです。
ResetNodeRequestedFromSettingToolEventHandler | FLnetCtrl.ResetNodeRequestedFromSettingTool(設定ツールからのノードリセット要求)イベントを処理するメソッドです。
列挙体

名前

説明
LinkStateEnum | FLnetCtrl.LinkStateプロパティの、自ノードリンク参加状態を示します。
Tag1TriggerEnum | Common1Tagのトリガ条件を示します。
Tag2TriggerEnum | Common2Tagのトリガ条件を示します。
MethodReturnEnum | メソッド戻り値を示します。
NodeLinkStateEnum | FLnetCtrl.GetAllNodesLinkStateメソッドのノードリンク参加状態を示します。
WriteNetParamEnum | FLnetCtrl.RequestNetParamWriteメソッドのライト項目を示します。
LinkErrorNumberEnum | FLnetCtrl.LinkErrorイベントのエラー番号を示します。
CommonTypeEnum | FLnetCtrl.CommonChangedイベントのコモンメモリ種別を示します。
MessageErrorNumberEnum | FLnetCtrl.MessageErrorイベントのエラー番号を示します。
ReplyMessageResultEnum | 応答メッセージの種別(結果)を取得します。
ErrorNumberEnum | FLnetExceptionのエラー番号を示します。
RequestedMessageResultEnum | 要求メッセージの種別(結果)を示します。
MeasureStatusEnum | 測定ステータスを示します。
SlaveLinkStateEnum | FLnetCtrl.GetAllSlaveNodesLinkStateメソッドのスレーブノードリンク参加状態を示します。
IOErrorEnum | IO割付設定時(FLnetCtrl.SetIOメソッド)のエラー情報を示します。


FLnetCtrlクラス
要約　プロパティ　メソッド　イベント
要約

FAコントロールネットワーク[FL-net(OPCN-2)]のプロトコルに準拠したコンポーネントです。

＜階層＞
System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      HKE.FLnetCtrl.FLnetCtrl

プロパティ

名前

型

 get set

説明
LinkState LinkStateEnum ○ ○ リンク参加状態
NodeNo Byte ○ ○ 自ノード番号
TokenTime Byte ○ ○ トークン監視時間
MinFrameInterval Byte ○ ○ 最小許容フレーム間隔
LocalIP String ○ ○ 自ノードIPアドレス
CommonSend CommonArea ○ ○ コモンメモリ送信領域
CommonChange CommonArea ○ ○ コモンメモリ変化検出領域
NodeName String ○ ○ 自ノード名(設備名)
RunMode Boolean ○ ○ 運転/停止状態
Timeout Timeout ○ ○ タイムアウト時間
AlwaysLink Boolean ○ ○ 自動リンク再参加モード
LockBlock LockBlock ○ ○ ブロックライト要求ロックモード
VendorMessageSupport Boolean ○ ○ ベンダ固有メッセージサーバ機能実装モード
Common1Tags Common1Tags ○ ○ コモンメモリ領域1変化検出タグ
Common2Tags Common2Tags ○ ○ コモンメモリ領域2変化検出タグ
MeasureTokenTime Boolean ○ ○ トークン保持時間の測定開始・停止をします。
MeasureDataLog Boolean ○ ○ 汎用通信データ送信元ログの測定開始・停止をします。
CommandServerUdp Boolean ○ ○ コマンドサーバ(UDP)の起動/停止をします。
CommandServerTcp Boolean ○ ○ コマンドサーバ(TCP)の起動/停止をします。
CommandServerUdpIP String ○ ○ コマンドサーバ(UDP)起動時に使用するLANカードのIPアドレスを取得または設定します。
CommandServerTcpIP String ○ ○ コマンドサーバ(TCP)起動時に使用するLANカードのIPアドレスを取得または設定します。
メソッド
名前 | 説明
ReadCommon1Bit | コモンメモリ領域1の値を、1[bit]リードします。
ReadCommon1Bits | コモンメモリ領域1の値を、N[bit]リードします。
ReadCommon1Word | コモンメモリ領域1の値を、1[word]リードします。
ReadCommon1Words | コモンメモリ領域1の値を、N[word]リードします。
ReadCommon1All | コモンメモリ領域1の値を、全領域(512[word])リードします。
WriteCommon1Bit | コモンメモリ領域1の値を、bit単位でライトします。
WriteCommon1Word | コモンメモリ領域1の値を、word単位でライトします。
ReadCommon2Word | コモンメモリ領域2の値を、1[word]リードします。
ReadCommon2Words | コモンメモリ領域2の値を、N[word]リードします。
ReadCommon2All | コモンメモリ領域2の値を、全領域(8192[word])リードします。
WriteCommon2Word | コモンメモリ領域2の値を、ライトします。
ResetCommonSendValue | コモンメモリ送信領域の値を、ゼロリセットします。
ReadByteBlock | バイトブロックデータの値を、1[byte]リードします。
ReadByteBlocks | バイトブロックデータの値を、N[byte]リードします。
ReadByteBlockAll | バイトブロックデータの値を、全領域(0x200000[byte])リードします。
WriteByteBlock | バイトブロックデータの値を、ライトします。
ReadWordBlock | ワードブロックデータの値を、1[word]リードします。
ReadWordBlocks | ワードブロックデータの値を、N[word]リードします。
ReadWordBlockAll | ワードブロックデータの値を、全領域(0x200000[word])リードします。
WriteWordBlock | ワードブロックデータの値を、ライトします。
GetNodeState | ノード状態を取得します。
GetNetworkState | ネットワーク状態を取得します。
GetAllNodesLinkState | 全ノードのリンク参加状況を取得します。
GetMyNodeLog | 自ノードログデータを取得します。(FL-net Ver.2専用)
ClearMyNodeLog | 自ノードログデータをクリアします。
RequestBlockRead | 他ノードへ、ブロックリードを要求します。
RequestBlockWrite | 他ノードへ、ブロックライトを要求します。
RequestNetParamRead | 他ノードへ、ネットワークパラメータリードを要求します。
RequestNetParamWrite | 他ノードへ、ネットワークパラメータライトを要求します。
RequestRunStop | 他ノードへ、運転/停止指令を要求します。
RequestProfileRead | 他ノードへ、プロファイルリードを要求します。
RequestLogRead | 他ノードへ、ログデータリードを要求します。
RequestLogClear | 他ノードへ、ログデータクリアを要求します。
RequestMessageEcho | 他ノードへ、メッセージ折返しを要求します。
SendUserMessage | 他ノードへ、透過形メッセージを送信します。
RequestVendorMessage | 他ノードへ、ベンダ固有メッセージを要求します。
ReplyVendorMessage | 他ノードへ、ベンダ固有メッセージを応答します。
ReplyWriteNetParam | 他ノードへ、ネットワークパラメータライトメッセージを応答します。
ReplyRunStop | 他ノードへ、運転/停止指令メッセージを応答します。
GetMyNodeLogV3 | 自ノードログデータを取得します。(FL-net Ver.3対応版)
GetAllSlaveNodesLinkState | 全スレーブノードのリンク参加状況を取得します。
GetMeasureTokenTime | トークン保持時間測定結果を取得します。
GetMeasureDataLog | 汎用通信データ送信元ログの測定結果を取得します。
SetIO | IO割付情報を設定します。
GetIO | IO割付情報を取得します。
GetInputStatus | 入力ステータスを取得します。
SetOutputStatus | 出力ステータスを設定します。
GetOutputStatus | 出力ステータスを取得します。
ReadInputBitData | 入力データを連続ビット読出しします。
ReadInputRandomBitData | 入力データをランダムビット読出しします。
ReadInputWordData | 入力データを連続ワード読出しします。
ReadInputRandomWordData | 入力データをランダムワード読出しします。
ReadOutputBitData | 出力データを連続ビット読出しします。
ReadOutputRandomBitData | 出力データをランダムビット読出しします。
ReadOutputWordData | 出力データを連続ワード読出しします。
ReadOutputRandomWordData | 出力データをランダムワード読出しします。
WriteOutputBitData | 出力データを連続ビット書込みします。
WriteOutputRandomBitData | 出力データをランダムビット書込みします。
WriteOutputWordData | 出力データを連続ワード書込みします。
WriteOutputRandomWordData | 出力データをランダムワード書込みします。
イベント
名前 | 説明
LinkIn | ノードがリンクに参加した場合に発生します。
LinkOut | ノードがリンクから離脱した場合に発生します。
LinkError | リンクエラーを検知した場合に発生します。
CommonChanged | コモンメモリ領域の値が変化した場合に発生します。
Common1Tag | コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
Common2Tag | コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
BlockChanged | 自ノードのブロックデータの値が変化した場合に発生します。
LogCleared | 自ノードのログデータがクリアされた場合に発生します。
SendCompleted | メッセージ送信が完了した場合に発生します。
MessageError | メッセージ関連のエラーを検知した場合に発生します。
BlockReadReplied | ブロックリード応答を受けた場合に発生します。
BlockWriteReplied | ブロックライト応答を受けた場合に発生します。
NetParamReadReplied | ネットワークパラメータリード応答を受けた場合に発生します。
NetParamWriteReplied | ネットワークパラメータライト応答を受けた場合に発生します。
RunStopReplied | 運転/停止指令応答を受けた場合に発生します。
ProfileReadReplied | プロファイルリード応答を受けた場合に発生します。
LogReadReplied | ログデータリード応答を受けた場合に発生します。
LogClearReplied | ログデータクリア応答を受けた場合に発生します。
MessageEchoReplied | メッセージ折返し応答を受けた場合に発生します。
UserMessageReceived | 透過形メッセージを受けた場合に発生します。
VendorMessageRequested | ベンダ固有メッセージ要求を受けた場合に発生します。
VendorMessageReplied | ベンダ固有メッセージ応答を受けた場合に発生します。
NetParamWriteRequested | ネットワークパラメータライト要求を受けた場合に発生します。
RunStopRequested | 運転/停止指令要求を受けた場合に発生します。
LinkInSlave | スレーブノードがリンクに参加した場合に発生します。
LinkOutSlave | スレーブノードがリンクから離脱した場合に発生します。
InputDataChanged | 入力データ領域の値が変化した場合に発生します。
InputStatusChanged | 入力ステータス領域の値が変化した場合に発生します。
MeasureTokenTimeChanged | トークン保持時間測定状態の値が変化した場合に発生します。
MeasureDataLogChanged | 汎用通信データ送信元ログ測定状態の値が変化した場合に発生します。
NetParamWriteRequestedFromSettingTool | 設定ツールからのネットワークパラメータライト要求を受けた場合に発生します。
RunStopRequestedFromSettingTool | 設定ツールからの運転/停止指令要求を受けた場合に発生します。
SetIORequestedFromSettingTool | 設定ツールからのIO割付設定要求を受けた場合に発生します。
SetConfigParamRequestedFromSettingTool | 設定ツールからのコンフィギュレーション用パラメータ設定要求を受けた場合に発生します。
ResetNodeRequestedFromSettingTool | 設定ツールからのノードリセット要求を受けた場合に発生します。


FLnetCtrl.AlwaysLinkプロパティ
要約　構文　値　解説
要約 自動リンク再参加モードを取得または設定します。
構文
[Visual Basic]
Public Property AlwaysLink As Boolean
[C#]
public bool AlwaysLink{get; set;}
値 自動リンク再参加モード[True=自動再参加します, False=自動再参加しません]。規定値はTrueです。
解説 ネットワーク状況(他ノードが離脱したことにより、ネットワーク上に存在するノードが自ノードのみになった場合など)によって、自ノードがリンクから離脱してしまった場合に自動的にリンクに再参加するモードを設定します。

自動的にリンクに再参加する場合は、AlwaysLinkプロパティにTrueを設定します。
ネットワークによる自ノードの離脱を検知した場合は、LinkErrorイベント(Number=LinkOutAndRetryLinkIn)発生後、自動的に再参加処理を行います。再参加が完了した時点でLinkInイベントが発生します。リンク再参加処理中にエラーを検知した場合は、LinkErrorイベント(Number=RetryLinkInFailed)が発生します。

ただし、LinkStateプロパティにLinkOutを設定して離脱した場合、リンク確立前にエラー(ノード番号重複やトークンモード不一致)を検知した場合、および、リンク参加タイムアウトが発生した場合は、リンクの自動再参加は行いません。


FLnetCtrl.Common1Tagsプロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ領域1変化検出タグを取得または設定します。
構文
[Visual Basic]
Public Property Common1Tags As Common1Tags
[C#]
public Common1Tags Common1Tags{get; set;}
値 コモンメモリ領域1変化検出タグコレクション(Common1Tagsクラス)。規定値は0件(未登録)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
Null | Null値を設定した。
解説 コモンメモリ領域1の変化検出タグ条件を設定します。リンク参加中は設定できません。リンク参加前に設定してください。

コモンメモリ領域1変化検出条件を満たす場合は、Common1Tagイベントが発生します。
ただし、WriteCommon1BitメソッドまたはWriteCommon1Wordメソッドを発行してコモンメモリ送信領域1の値をライトした場合は、イベントが発生しません。

サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
Private Sub FLnetCtrl_Common1Tag(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.Common1TagEventArgs) Handles FLnetCtrl.Common1Tag
'タグ名称を取得します。
 Dim sTagName As String = FLnetCtrl.Common1Tags(e.TagIndex).TagName
If e.TagIndex.Equals(0) Then
 'モータ運転開始時の処理
 ElseIf e.TagIndex.Equals(1) Then
 'モータ運転停止時の処理
 End If
End Sub

[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
 private void fLnetCtrl_Common1Tag(object sender, HKE.FLnetCtrl.Common1TagEventArgs e)
{
// タグ名称を取得します。
 string sTagName = fLnetCtrl.Common1Tags[e.TagIndex].TagName;

if (e.TagIndex.Equals(0))
{
// モータ運転開始時の処理
 }
else if (e.TagIndex.Equals(1))
{
// モータ運転停止時の処理
 }
}


FLnetCtrl.Common2Tagsプロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ領域2変化検出タグを取得または設定します。
構文
[Visual Basic]
Public Property Common2Tags As Common2Tags
[C#]
public Common2Tags Common2Tags{get; set;}
値 コモンメモリ領域2変化検出タグコレクション(Common2Tagsクラス)。規定値は0件(未登録)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
Null | Null値を設定した。
解説 コモンメモリ領域2の変化検出タグ条件を設定します。リンク参加中は設定できません。リンク参加前に設定してください。

コモンメモリ領域2変化検出条件を満たす場合は、Common2Tagイベントが発生します。
ただし、WriteCommon2Wordメソッドを発行してコモンメモリ送信領域2の値をライトした場合は、イベントが発生しません。

サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
Private Sub FLnetCtrl_Common2Tag(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.Common2TagEventArgs) Handles FLnetCtrl.Common2Tag
'タグ名称を取得します。
 Dim sTagName As String = FLnetCtrl.Common2Tags(e.TagIndex).TagName
If e.TagIndex.Equals(0) Then
 'タンク液量上回り時の処理
 ElseIf e.TagIndex.Equals(1) Then
 '電力量変化時の処理
 End If
End Sub

[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
 private void fLnetCtrl_Common2Tag(object sender, HKE.FLnetCtrl.Common2TagEventArgs e)
{
// タグ名称を取得します。
 string sTagName = fLnetCtrl.Common2Tags[e.TagIndex].TagName;

if (e.TagIndex.Equals(0))
{
// タンク液量上回り時の処理
 }
else if (e.TagIndex.Equals(1))
{
// 電力量変化時の処理
 }
}


FLnetCtrl.CommonChangeプロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ変化検出領域を取得または設定します。
構文
[Visual Basic]
Public Property CommonChange As CommonArea
[C#]
public CommonArea CommonChange{get; set;}
値 コモンメモリ変化検出領域(CommonAreaクラス)。
規定値は全領域(Address1=0, Size1=512, Address2=0, Size2=8192)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(領域1:0～511[word], 領域2:0～8191[word])外の値を設定した。
Null | Null値を設定した。
解説 コモンメモリの変化を検出する領域を設定します。リンク参加中も設定は可能です。

コモンメモリ全体の領域範囲(領域1:0～511[word]、領域2:0～8191[word])外の設定はできません。

設定範囲内のコモンメモリ値の変化を検出した場合、CommonChangedイベントが発生します。ただし、WriteCommon1Bitメソッド、WriteCommon1Wordメソッド、WriteCommon2Wordメソッド、ResetCommonSendValueメソッドを発行して、自ノード送信領域のコモンメモリの値をライトした場合は、CommonChangedイベントは発生しません。

コモンメモリ変化検出領域の設定に関わらず、Common1TagsプロパティまたはCommon2Tagsプロパティで設定した条件を満たす場合は、Common1TagイベントまたはCommon2Tagイベントが発生します。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■コモンメモリ変化検出領域を、領域1：全領域, 領域2：なしに設定します。
 FLnetCtrl.CommonChange = New HKE.FLnetCtrl.CommonArea(0, 511, 0, 0)
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■コモンメモリ変化検出領域を、領域1：全領域, 領域2：なしに設定します。
 fLnetCtrl.CommonChange = new HKE.FLnetCtrl.CommonArea(0, 511, 0, 0);
}


FLnetCtrl.CommonSendプロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ送信領域を取得または設定します。
構文
[Visual Basic]
Public Property CommonSend As CommonArea
[C#]
public CommonArea CommonSend{get; set;}
値 コモンメモリ送信領域(CommonAreaクラス)。
規定値は領域無し(Address1=0, Size1=0, Address2=0, Size2=0)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(領域1:0～511[word], 領域2:0～8191[word])外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
Null | Null値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ送信領域を設定します。リンク参加中は設定できません。リンク参加前に設定してください。

コモンメモリ全体の領域範囲(領域1:0～511[word]、領域2:0～8191[word])外の設定はできません。

他ノードの領域と重複しないようにコモンメモリ送信領域を設定してください。コモンメモリ送信領域が他ノードと重複している場合は、LinkErrorイベント(Number=CommonAreaOverlap)が発生し、コモンメモリ送信領域無しとしてリンクに参加します。この場合、CommonSendプロパティの値は全て0に変更されます。

モニタモードを開始する場合、CommonSendプロパティの値は全て0に変更されます。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
'コモンメモリ送信領域を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 '一括で設定する場合
 FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 'FLnetCtrl.CommonSend.Address1 = 0
 'FLnetCtrl.CommonSend.Size1 = 16
 'FLnetCtrl.CommonSend.Address2 = 256
 'FLnetCtrl.CommonSend.Size2 = 768

 'リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
// コモンメモリ送信領域を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
//fLnetCtrl.CommonSend.Address1 = 0;
 //fLnetCtrl.CommonSend.Size1 = 16;
 //fLnetCtrl.CommonSend.Address2 = 256;
 //fLnetCtrl.CommonSend.Size2 = 768;
// リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
}


FLnetCtrl.LinkStateプロパティ
要約　構文　値　例外　解説　サンプル
要約 リンク参加状態を取得または設定します。
構文
[Visual Basic]
Public Property LinkState As LinkStateEnum
[C#]
public LinkStateEnum LinkState{get; set;}
値

リンク参加状態(LinkStateEnum列挙体)。規定値はLinkStateEnum.LinkOutです。

プロパティページからは設定できません。

LinkStateEnum.LinkInWaitは取得のみ可能で、設定はできません。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(LinkIn/LinkOut/LinkMonitor)外の値を設定した。
DesignMode | デザインモードで設定した。
LocalIP | LocalIPプロパティに無効なIPアドレスが設定されている。
LinkIn | リンク参加(待機/モニタ)中に、再度参加しようとした。
Security | セキュリティエラーが発生した。プロテクトキーの接続状態を確認してください。
System | システムエラーが発生しました。以下の原因が考えられます。 (1)メモリ不足 (2)ネットワークポートが既に使用中(IP ポート:55000～55003) (3)TCP/IP のプロパティが正しく設定されていない
LinkOut | リンク離脱時に、再度離脱しようとした。
IoSetting | IO割付の設定が不正。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 リンクに参加する場合は、LinkStateプロパティにLinkInを設定します。
ネットワーク状況によりリンク参加までに時間が掛かる場合があるため、LinkStateプロパティにLinkInを設定した直後にプロパティを参照すると、LinkInWait(参加待機中)になっている場合があります。リンクへの参加が完了するとLinkInイベントが発生し、LinkStateプロパティの値がLinkInになります。
リンク参加中に設定できないプロパティは、リンク参加前にあらかじめ設定する必要があります。
複数のLANカードがパソコンに実装されていて、LANカードを特定する場合は、あらかじめLocalIPプロパティに設定してください。LANカードを特定しない場合は、LocalIPプロパティを設定する必要はありません。LocalIPプロパティに無効なIPアドレスが設定されている条件でリンクに参加する場合は、FLnetException例外(ErrorNumberEnum.LocalIP)が発生します。

リンクから離脱する場合は、LinkStateプロパティにLinkOutを設定します。リンクからの離脱が完了するとLinkOutイベントが発生します。
アプリケーションを終了すると、FL-net Controlによって自動的に離脱します。

モニタモードを開始する場合は、LinkStateプロパティにLinkMonitorを設定します。この場合、自ノード番号(NodeNoプロパティ)は0、コモンメモリ送信領域(CommonSendプロパティ)は全て0になり、LinkInイベントは発生しません。なお、自ノード番号(NodeNoプロパティ)=0の設定でLinkStateプロパティにLinkInを設定した場合も、モニタモードを開始します。この場合、LinkStateプロパティの値はLinkMonitorになり、LinkInイベントは発生しません。
モニタモードを終了する場合、LinkStateプロパティにLinkOutを設定します。この場合、LinkOutイベントは発生しません。

LinkStateプロパティにLinkInWaitを設定することはできません。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■参加パラメータ設定
 FLnetCtrl.NodeNo = Byte.Parse(txtMyNodeNo.Text)
FLnetCtrl.TokenTime = 255
FLnetCtrl.MinFrameInterval = 0

 '■コモンメモリ送信領域設定を、領域：0～15[word], 領域：256～1023[word]に設定します。
 '一括で設定する場合
 FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 'FLnetCtrl.CommonSend.Address1 = 0
 'FLnetCtrl.CommonSend.Size1 = 16
 'FLnetCtrl.CommonSend.Address2 = 256
 'FLnetCtrl.CommonSend.Size2 = 768

 '■LANカード未特定
 FLnetCtrl.LocalIP = ""

 '■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 '一括で設定する場合
 'FLnetCtrl.Timeout = New HKE.FLnetCtrl.Timeout(60000, 0, 3000)
 '個々に設定する場合
 FLnetCtrl.Timeout.LinkIn = 60000
FLnetCtrl.Timeout.MessageSend = 0
FLnetCtrl.Timeout.MessageReply = 3000

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn

 '■使用中のLANカードのIPアドレスを取得します。
 lblLocalIP.Text = FLnetCtrl.LocalIP
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'[モニタモード]ボタンClick
Private Sub btnMonitor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMonitor.Click
Try
'LANカード指定
 FLnetCtrl.LocalIP = "192.168.250.250"
 'モニタ開始
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkMonitor
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'[リンク離脱]ボタンClick
Private Sub btnLinkOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkOut.Click
Try
'リンク離脱
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkOut
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'周期監視タイマ
Private Sub timerLinkState_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerLinkState.Tick
 '■リンク参加状態を取得します。
 lblLinkState.Text = FLnetCtrl.LinkState.ToString()
End Sub

[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■参加パラメータ設定
 fLnetCtrl.NodeNo = byte.Parse(txtMyNodeNo.Text);
fLnetCtrl.TokenTime = 255;
fLnetCtrl.MinFrameInterval = 0;

// ■コモンメモリ送信領域設定を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
 // 個々に設定する場合
 //fLnetCtrl.CommonSend.Address1 = 0;
 //fLnetCtrl.CommonSend.Size1 = 16;
 //fLnetCtrl.CommonSend.Address2 = 256;
 //fLnetCtrl.CommonSend.Size2 = 768;

 // ■LANカード未特定
 fLnetCtrl.LocalIP = "";

 // ■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 // 一括で設定する場合
 //fLnetCtrl.Timeout = new HKE.FLnetCtrl.Timeout(60000, 0, 3000);
 // 個々に設定する場合
 fLnetCtrl.Timeout.LinkIn = 60000;
fLnetCtrl.Timeout.MessageSend = 0;
fLnetCtrl.Timeout.MessageReply = 3000;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;

 // ■使用中のLANカードのIPアドレスを取得します。
 lblLocalIP.Text = fLnetCtrl.LocalIP;
}
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// [モニタモード]ボタンClick
private void btnMonitor_Click(object sender, EventArgs e)
{
 try
 {
 // LANカード指定
 fLnetCtrl.LocalIP = "192.168.250.250";
 // モニタ開始
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkMonitor;
}
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// [リンク離脱]ボタンClick
private void btnLinkOut_Click(object sender, EventArgs e)
{
 try
 {
 // リンク離脱
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkOut;
}
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// 周期監視タイマ
private void timerLinkState_Tick(object sender, EventArgs e)
{
 // ■リンク参加状態を取得します。
 lblLinkState.Text = fLnetCtrl.LinkState.ToString();
}


FLnetCtrl.LocalIPプロパティ
要約　構文　値　例外　解説　サンプル
要約 参加時に使用するLANカードのIPアドレスを取得または設定します。
構文
[Visual Basic]
Public Property LocalIP As String
[C#]
public string LocalIP{get; set;}
値 IPアドレス。規定値は""(LANカード特定しない)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
LinkIn | リンク参加(待機/モニタ)中に設定した。
解説 特定のLANカードを指定する場合のIPアドレスを設定します。リンク参加中は設定できません。リンク参加前に設定してください。

LANカードを特定しない場合は、""(空文字)を設定してください。この場合、OSが管理するデフォルトのLANカードが選択されます。

リンク参加(モニタモード)を開始(LinkStateプロパティ)するときに使用します。無効なIPアドレスが設定されている場合は、FLnetException例外(ErrorNumberEnum.LocalIP)が発生します。リンク参加(モニタモード)の開始に成功した場合、LocalIPプロパティの値が使用したLANカードのIPアドレスになります。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
'LANカードを特定せずに、リンクに参加します。
 FLnetCtrl.LocalIP = ""
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn

 ' 使用中のLANカードのIPアドレスを取得します。
 lblLocalIP.Text = fLnetCtrl.LocalIP
End Sub

'[モニタモード]ボタンClick
Private Sub btnMonitor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMonitor.Click
'LANカードを特定して、モニタモードを開始します。
 FLnetCtrl.LocalIP = "192.168.250.250"
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkMonitor
End Sub

[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
// LANカードを特定せずに、リンクに参加します。
 fLnetCtrl.LocalIP = "";
fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;

// 使用中のLANカードのIPアドレスを取得します。
 lblLocalIP.Text = fLnetCtrl.LocalIP;
}

// [モニタモード]ボタンClick
private void btnMonitor_Click(object sender, EventArgs e)
{
// LANカードを特定して、モニタモードを開始します。
fLnetCtrl.LocalIP = "192.168.250.250";
fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkMonitor;
}


FLnetCtrl.LockBlockプロパティ
要約　構文　値　例外　解説　サンプル
要約 ブロックライト要求ロックモードを取得または設定します。
構文
[Visual Basic]
Public Property LockBlock As LockBlock
[C#]
public LockBlock LockBlock{get; set;}
値 ブロックライト要求ロックモード(LockBlockクラス)。
規定値はロック解除(ByteBlock=False, WordBlock=False)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Null | Null値を設定した。
解説 他ノードから、ブロックライト要求を受けた場合に、自ノードが管理するブロックデータへの書込みをロックするかのモードを設定します。リンク参加中も設定は可能です。

他ノードからのブロックライト要求をロックする場合は、LockBlockプロパティにTrueを設定します。他ノードからブロックライト要求を受けた場合、要求元ノードに異常応答を送信します。

他ノードからのブロックライト要求をロックしない場合は、LockBlockプロパティにFalseを設定します。他ノードからブロックライト要求を受けた場合、自ノードのブロックデータを書き込み、要求元ノードに正常応答を送信します。ブロックデータの値が変化した場合は、BlockChangedイベントが発生します。

LockBlockプロパティにTrueを設定した場合でも、WriteByteBlockメソッドまたはWriteWordBlockメソッドを発行して、自ノードのブロックデータをライトすることは可能です。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 '一括で設定する場合
 FLnetCtrl.LockBlock = New HKE.FLnetCtrl.LockBlock(True, False)
 '個々に設定する場合
 'FLnetCtrl.LockBlock.ByteBlock = True
 'FLnetCtrl.LockBlock.WordBlock = False
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 // 一括で設定する場合
 fLnetCtrl.LockBlock = new HKE.FLnetCtrl.LockBlock(true, false);
// 個々に設定する場合
 //fLnetCtrl.LockBlock.ByteBlock = true;
 //fLnetCtrl.LockBlock.WordBlock = false;
}


FLnetCtrl.MinFrameIntervalプロパティ
要約　構文　値　例外　解説　サンプル
要約 最小許容フレーム間隔を取得または設定します。
構文
[Visual Basic]
Public Property MinFrameInterval As Byte
[C#]
public byte MinFrameInterval{get; set;}
値 最小許容フレーム間隔[100us単位, 0～50]。規定値は0です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(0～50)外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
解説 最小許容フレーム間隔を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
'最小許容フレーム間隔=1[ms]でリンクに参加します。
 FLnetCtrl.MinFrameInterval = 10
FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
// 最小許容フレーム間隔=1[ms]でリンクに参加します。
 fLnetCtrl.MinFrameInterval = 10;
fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
}


FLnetCtrl.NodeNameプロパティ
要約　構文　値　解説　サンプル
要約 自ノード名(設備名)を取得または設定します。
構文
[Visual Basic]
Public Property NodeName As String
[C#]
public string NodeName{get; set;}
値 自ノード名(設備名)[MAX10byte]。規定値は"FLnet CTRL"です。
※11byte目以降のデータは無視します。10byteに満たない部分は、半角スペース(0x20)を埋めます。
解説 自ノード名(設備名)を設定します。リンク参加中も設定は可能です。
サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■ノード名を"ControlPC1"に変更します。
 FLnetCtrl.NodeName = "ControlPC1"
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■ノード名を"ControlPC1"に変更します。
 fLnetCtrl.NodeName = "ControlPC1";
}


FLnetCtrl.NodeNoプロパティ
要約　構文　値　例外　解説　サンプル
要約 自ノード番号を取得または設定します。
構文
[Visual Basic]
Public Property NodeNo As Byte
[C#]
public byte NodeNo{get; set;}
値 自ノード番号[1～254, 0=モニタモード]。
デフォルトLANカードのIPアドレスの4byte目が規定値となります。IPアドレスの設定が"192.168.250.10"の場合は、10となります。
IPアドレスを取得できない場合(LANカードが存在しない場合や、固定IPアドレスが設定されていない場合)の規定値は1です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(0～254)外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
解説 自ノード番号を設定します。リンク参加中は設定できません。リンク参加前に設定してください。

モニタモードの場合は、自ノード番号は0になります。

リンク参加時にノード番号の重複を検知した場合は、LinkErrorイベント(Number=NodeNoOverlap)が発生し、リンクに参加しません。他ノードと重複しないように自ノード番号を設定してください。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
'ノード番号=1でリンクに参加します。
 FLnetCtrl.NodeNo = 1
FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
End Sub

'[モニタモード]ボタンClick
Private Sub btnMonitor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMonitor.Click
'ノード番号=0を指定すると、モニタモードを開始します。
 FLnetCtrl.NodeNo = 0
FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
End Sub

[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
// ノード番号=1でリンクに参加します。
 fLnetCtrl.NodeNo = 1;
fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
}

// [モニタモード]ボタンClick
private void btnMonitor_Click(object sender, EventArgs e)
{
// ノード番号=0を指定すると、モニタモードを開始します。
fLnetCtrl.NodeNo = 0;
fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
}


FLnetCtrl.RunModeプロパティ
要約　構文　値　解説
要約 運転/停止状態を取得または設定します。
構文
[Visual Basic]
Public Property RunMode As Boolean
[C#]
public bool RunMode{get; set;}
値 運転/停止状態[True=運転(RUN), False=停止(STOP)]。規定値はTrueです。
解説 自ノードの運転/停止状態を設定します。リンク参加中も設定は可能です。

FL-net Controlでは運転/停止状態による動作の違いはありません。


FLnetCtrl.Timeoutプロパティ
要約　構文　値　例外　解説　サンプル
要約 タイムアウト時間を取得または設定します。
構文
[Visual Basic]
Public Property Timeout As Timeout
[C#]
public Timeout Timeout{get; set;}
値 タイムアウト時間(Timeoutクラス)。
規定値は無限(LinkIn=0, MessageSend=0, MessageReply=0)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(0～600,000)外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
Null | Null値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 タイムアウト時間(リンク参加/メッセージ送信/メッセージ応答)を設定します。リンク参加中は設定できません。リンク参加前に設定してください。

リンクタイムアウトが発生した場合は、LinkErrorイベント(Number=LinkInTimeout)が発生します。
メッセージ送信タイムアウトが発生した場合は、MessageErrorイベント(Number=SendTimeout)が発生します。
メッセージ応答タイムアウトが発生した場合は、MessageErrorイベント(Number=ReplyTimeout)が発生します。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
 'リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 '一括で設定する場合
 FLnetCtrl.Timeout = New HKE.FLnetCtrl.Timeout(60000, 0, 3000)
'個々に設定する場合
 'FLnetCtrl.Timeout.LinkIn = 60000
 'FLnetCtrl.Timeout.MessageSend = 0
 'FLnetCtrl.Timeout.MessageReply = 3000

 'リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
// リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 // 一括で設定する場合
 fLnetCtrl.Timeout = new HKE.FLnetCtrl.Timeout(60000, 0, 3000);
// 個々に設定する場合
 //fLnetCtrl.Timeout.LinkIn = 60000;
 //fLnetCtrl.Timeout.MessageSend = 0;
 //fLnetCtrl.Timeout.MessageReply = 3000;
// リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
}


FLnetCtrl.TokenTimeプロパティ
要約　構文　値　例外　解説　サンプル
要約 トークン監視時間を取得または設定します。
構文
[Visual Basic]
Public Property TokenTime As Byte
[C#]
public byte TokenTime{get; set;}
値 トークン監視時間[ms単位, 1～255]。規定値は255です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(1～255)外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に設定した。
解説 トークン監視時間を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
'トークン監視時間=200[ms]でリンクに参加します。
 FLnetCtrl.TokenTime = 200
FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
// トークン監視時間=200[ms]でリンクに参加します。
 fLnetCtrl.TokenTime = 200;
fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
}


FLnetCtrl.VendorMessageSupportプロパティ
要約　構文　値　解説　サンプル
要約 ベンダ固有メッセージサーバ機能実装モードを取得または設定します。
構文
[Visual Basic]
Public Property VendorMessageSupport As Boolean
[C#]
public bool VendorMessageSupport{get; set;}
値 ベンダ固有メッセージサーバ機能実装モード[True=実装, False=非実装]。規定値はFalseです。
解説 ベンダ固有メッセージサーバ機能実装モードを設定します。リンク参加中も設定は可能です。

ベンダ固有メッセージサーバ機能を実装する場合は、VendorMessageSupportプロパティにTrueを設定します。他ノードからベンダ固有メッセージ要求を受けた場合、VendorMessageRequestedイベントが発生します。アプリケーションではメッセージ要求内容を確認して、ReplyVendorMessageメソッドを発行してください。

ベンダ固有メッセージサーバ機能を実装しない場合は、VendorMessageSupportプロパティにFalseを設定します。他ノードからベンダ固有メッセージ要求を受けた場合、FL-net Controlが自動的に非実装応答を行います。VendorMessageRequestedイベントは発生しません。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■ベンダ固有メッセージサーバ機能を実装に設定します。
 FLnetCtrl.VendorMessageSupport = True
End Sub

'ベンダ固有メッセージ要求を受けた場合に発生します。
Private Sub FLnetCtrl_VendorMessageRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.VendorMessageRequestedEventArgs) Handles FLnetCtrl.VendorMessageRequested
'応答結果
 Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'応答データ
 Dim oData As New HKE.FLnetCtrl.FLnetObject
'要求内容を判定します。
 'ベンダ名判定
 If CType(e.VendorName, String).Equals("HITACHI-KE") Then
 'サブコードを判定します。
 Dim sSubCode As String = CType(e.SubCode, String)
If sSubCode.Equals("000000") Then
 'サブコード="000000"の場合の処理
 '要求データを基に、ベンダ固有メッセージ処理を行います。
 '(省略)
 '応答データを作成します。
 oData = "OK"
 ElseIf sSubCode.Equals("000001") Then
 'サブコード="000001"の場合の処理
 '要求データを基に、ベンダ固有メッセージ処理を行います。
 '(省略)
 '処理で異常が発生した場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error
oData = "ErrorCode=1"
 Else
 '不明なサブコードの場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error
oData = "Unknown SubCode"
 End If
 Else
 '不明なベンダ名の場合は、非実装応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
End If

 '■1対1の場合は、ベンダ固有メッセージを応答します。
 If e.Multi.Equals(False) Then
 FLnetCtrl.ReplyVendorMessage(e.NodeNo, eResult, e.VendorName, e.SubCode, oData)
End If
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■ベンダ固有メッセージサーバ機能を実装に設定します。
 fLnetCtrl.VendorMessageSupport = true;
}

// ベンダ固有メッセージ要求を受けた場合に発生します。
 private void fLnetCtrl_VendorMessageRequested(object sender, HKE.FLnetCtrl.VendorMessageRequestedEventArgs e)
{
// 応答結果
HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;
// 応答データ
HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 要求内容を判定します。
// ベンダ名判定
if (((string)e.VendorName).Equals("HITACHI-KE"))
{
// サブコードを判定します。
string sSubCode = (string)e.SubCode;
if (sSubCode.Equals("000000"))
{
// サブコード="000000"の場合の処理
 // 要求データを基に、ベンダ固有メッセージ処理を行います。
 // (省略)
 // 応答データを作成します。
 oData = "OK";
}
else if (sSubCode.Equals("000001"))
{
// サブコード="000001"の場合の処理
 // 要求データを基に、ベンダ固有メッセージ処理を行います。
 // (省略)
 // 処理で異常が発生した場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;
oData = "ErrorCode=1";
}
else
{
// 不明なサブコードの場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;
oData = "Unknown SubCode";
}
}
else
{
// 不明なベンダ名の場合は、非実装応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport;
}

// ■1対1の場合は、ベンダ固有メッセージを応答します。
if (e.Multi.Equals(false))
{
fLnetCtrl.ReplyVendorMessage(e.NodeNo, eResult, e.VendorName, e.SubCode, oData);
}
}


FLnetCtrl.MeasureTokenTimeプロパティ
要約　構文　値　解説
要約 トークン保持時間の測定開始・停止をします。
構文
[Visual Basic]
Public Property MeasureTokenTime As Boolean
[C#]
public bool MeasureTokenTime { get; set; }
値 測定開始/停止状態[true=開始, false=停止]。規定値はfalseです。
解説 トークン保持時間の測定開始/停止状態を設定します。
測定中に開始を設定すると、測定結果を破棄し、再び測定開始します。


FLnetCtrl.MeasureDataLogプロパティ
要約　構文　値　解説
要約 汎用通信データ送信元ログの測定開始・停止をします。
構文
[Visual Basic]
Public Property MeasureDataLog As Boolean
[C#]
public bool MeasureDataLog { get; set; }
値 測定開始/停止状態[true=開始, false=停止]。規定値はfalseです。
解説 汎用通信データ送信元ログの測定開始/停止状態を設定します。
測定中に開始を設定すると、測定結果を破棄し、再び測定開始します。


FLnetCtrl.CommandServerStatusUdpプロパティ

FL-net Control (.NET版)

FLnetCtrl.CommandServerUdpプロパティ
要約　構文　値　例外　解説
要約 コマンドサーバ(UDP)の起動/停止をします。
構文
[Visual Basic]
Public Property CommandServerUdp As Boolean
[C#]
public bool CommandServerUdp { get; set; }
値 起動/停止状態[true=起動, false=停止]。規定値はfalseです。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
CommandServerUdpIP | CommandServerUdpIPプロパティの値が正しくありません。
InnerException | FL-net Control内部で例外が発生しました。
解説 コマンドサーバ(UDP)の起動/停止状態を設定します。
起動中に起動を設定すると、起動条件が異なる場合一度コマンドサーバを停止し、起動します。


FLnetCtrl.CommandServerStatusTcpプロパティ

FL-net Control (.NET版)

FLnetCtrl.CommandServerTcpプロパティ
要約　構文　値　例外　解説
要約 コマンドサーバ(TCP)の起動/停止をします。
構文
[Visual Basic]
Public Property CommandServerTcp As Boolean
[C#]
public bool CommandServerTcp { get; set; }
値 起動/停止状態[true=起動, false=停止]。規定値はfalseです。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
CommandServerTcpIP | CommandServerTcpIPプロパティの値が正しくありません。
InnerException | FL-net Control内部で例外が発生しました。
解説 コマンドサーバ(TCP)の起動/停止状態を設定します。
起動中に起動を設定すると、起動条件が異なる場合一度コマンドサーバを停止し、起動します。


FLnetCtrl.CommandServerUdpIPプロパティ
要約　構文　値　例外　解説　サンプル
要約 コマンドサーバ(UDP)起動時に使用するLANカードのIPアドレスを取得または設定します。
構文
[Visual Basic]
Public Property CommandServerUdpIP As String
[C#]
public string CommandServerUdpIP { get; set; }
値 IPアドレス。規定値は""(LANカード特定しない)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
CommandServerStart | コマンドサーバ起動中に設定できません。
解説 特定のLANカードを指定する場合のIPアドレスを設定します。コマンドサーバ起動中は設定できません。コマンドサーバ停止中に設定してください。
LANカードを特定しない場合は、""(空文字)を設定してください。この場合、OSが管理するデフォルトのLANカードが選択されます。

コマンドサーバを起動(CommandServerUdpプロパティ)するときに使用します。無効なIPアドレスが設定されている場合は、
FLnetException例外(ErrorNumberEnum.CommandServerUdpIP)が発生します。コマンドサーバの起動に成功した場合、
CommandServerUdpプロパティの値が使用したLANカードのIPアドレスになります。
サンプル
[Visual Basic]

'[コマンドサーバ起動]ボタンClick

Private Sub btnCommandServerUdpIp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCommandServerUdpIp.Click

'LANカードを特定せずに、コマンドサーバを起動します。

FLnetCtrl.CommandServerUdpIP = ""

FLnetCtrl.CommandServerUdp = True

' 使用中のLANカードのIPアドレスを取得します。

lblCommandServerUdpIP.Text = FLnetCtrl.CommandServerUdpIP

End Sub

[C#]

// [コマンドサーバ起動]ボタンClick

private void btnCommandServerUdpIp_Click(object sender, EventArgs e)

{

// LANカードを特定せずに、 コマンドサーバを起動します。

fLnetCtrl.CommandServerUdpIP = "";

fLnetCtrl.CommandServerUdp = true;

// 使用中のLANカードのIPアドレスを取得します。

lblCommandServerUdpIP.Text = fLnetCtrl.CommandServerUdpIP;

}


FLnetCtrl.CommandServerTcpIPプロパティ
要約　構文　値　例外　解説　サンプル
要約 コマンドサーバ(TCP)起動時に使用するLANカードのIPアドレスを取得または設定します。
構文
[Visual Basic]
Public Property CommandServerTcpIP As String
[C#]
public string CommandServerTcpIP { get; set; }
値 IPアドレス。規定値は""(LANカード特定しない)です。
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
CommandServerStart | コマンドサーバ起動中に設定できません。
解説 特定のLANカードを指定する場合のIPアドレスを設定します。コマンドサーバ起動中は設定できません。コマンドサーバ停止中に設定してください。
LANカードを特定しない場合は、""(空文字)を設定してください。この場合、OSが管理するデフォルトのLANカードが選択されます。

コマンドサーバを起動(CommandServerTcpプロパティ)するときに使用します。無効なIPアドレスが設定されている場合は、
FLnetException例外(ErrorNumberEnum.CommandServerTcpIP)が発生します。コマンドサーバの起動に成功した場合、
CommandServerTcpプロパティの値が使用したLANカードのIPアドレスになります。
サンプル
[Visual Basic]

'[コマンドサーバ起動]ボタンClick

Private Sub btnCommandServerTcpIp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCommandServerTcpIp.Click

'LANカードを特定せずに、コマンドサーバを起動します。

FLnetCtrl.CommandServerTcpIP = ""

FLnetCtrl.CommandServerTcp = True

' 使用中のLANカードのIPアドレスを取得します。

lblCommandServerTcpIP.Text = FLnetCtrl.CommandServerTcpIP

End Sub

[C#]

// [コマンドサーバ起動]ボタンClick

private void btnCommandServerTcpIp_Click(object sender, EventArgs e)

{

// LANカードを特定せずに、 コマンドサーバを起動します。

fLnetCtrl.CommandServerTcpIP = "";

fLnetCtrl.CommandServerTcp = true;

// 使用中のLANカードのIPアドレスを取得します。

lblCommandServerTcpIP.Text = fLnetCtrl.CommandServerTcpIP;

}


FLnetCtrl.ClearMyNodeLogメソッド
要約　構文　戻り値　解説
要約 自ノードログデータをクリアします。
構文
[Visual Basic]
Public Function ClearMyNodeLog() As MethodReturnEnum
[C#]
public MethodReturnEnum ClearMyNodeLog()
戻り値 クリア結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 自ノードログデータをクリアします。LogClearedイベントは発生しません。

他ノードのログデータをクリアする場合は、RequestLogClearメソッドを発行します。


FLnetCtrl.GetAllNodesLinkStateメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 全ノードのリンク参加状況を取得します。
構文
[Visual Basic]
Public Function GetAllNodesLinkState( _
ByRef nNodes() As NodeLinkStateEnum _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetAllNodesLinkState(
out NodeLinkStateEnum[] nNodes
)
引数
名前 | 説明
nNodes | (o) 取得した全ノードのリンク参加状況の配列[要素数=254]
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常(モニタ中含む)
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中)状態
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 全ノードのリンク参加状況(未参加/参加中/通信無効検知)の一覧を取得します。
サンプル
[Visual Basic]
'リンクに参加した場合に発生します。
Private Sub FLnetCtrl_LinkIn(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LinkInEventArgs) Handles FLnetCtrl.LinkIn
'ノード番号判定
 If e.NodeNo.Equals(FLnetCtrl.NodeNo) Then
 '■自ノードがリンクに参加した場合、全ノードのリンク参加状況を取得します。
 Dim eState() As HKE.FLnetCtrl.NodeLinkStateEnum = {}
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetAllNodesLinkState(eState)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '参加ノード数を調べます。
 Dim nNodes As Integer
 For nLoop As Integer = 0 To 253 Step 1
'参加状況判定
 If eState(nLoop).Equals(HKE.FLnetCtrl.NodeLinkStateEnum.LinkIn) Then
 nNodes = nNodes + 1
End If
 Next nLoop
MessageBox.Show("自ノードがリンクに参加しました。リンク参加ノード数は、" + nNodes.ToString() + "ノードです。")
End If
 Else
 MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクに参加しました。")
End If
End Sub
[C#]
// リンクに参加した場合に発生します。
private void fLnetCtrl_LinkIn(object sender, HKE.FLnetCtrl.LinkInEventArgs e)
{
// ノード番号判定
 if (e.NodeNo.Equals(fLnetCtrl.NodeNo))
{
// ■自ノードがリンクに参加した場合、全ノードのリンク参加状況を取得します。
 HKE.FLnetCtrl.NodeLinkStateEnum[] eState;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetAllNodesLinkState(out eState);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 参加ノード数を調べます。
 int nNodes = 0;
for (int nLoop = 0; nLoop < 254; nLoop++)
{
// 参加状況判定
 if (eState[nLoop].Equals(HKE.FLnetCtrl.NodeLinkStateEnum.LinkIn))
{
nNodes++;
}
}
MessageBox.Show("自ノードがリンクに参加しました。リンク参加ノード数は、" + nNodes.ToString() + "ノードです。");
}
}
else
 {
MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクに参加しました。");
}
}


FLnetCtrl.GetMyNodeLogメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 自ノードログデータを取得します。(FL-net Ver.2対応版)
構文
[Visual Basic]
Public Function GetMyNodeLog( _
ByRef oLog As LogData _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetMyNodeLog(
out LogData oLog
)
引数
名前 | 説明
oLog | (o) 取得した自ノードログデータ
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 自ノードログデータ(FL-net Ver.2専用)を取得します。FL-net Ver.3対応のログデータを取得する場合は、GetMyNodeLogV3メソッドを発行します。
他ノードのログデータを取得する場合は、RequestLogReadメソッドを発行します。
自ノードログデータをクリアする場合は、ClearMyNodeLogメソッドを発行します。
サンプル
[Visual Basic]
'[ログ取得]ボタンClick
Private Sub btnGetLog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetLog.Click
'■自ノードのログデータを取得します。
 Dim oLog As HKE.FLnetCtrl.LogData
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetMyNodeLog(oLog)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 MessageBox.Show("サイクリック伝送送受信エラー回数=" + oLog.Cyclic.RecvErr.ToString() + _
", トークン監視タイムアウト回数=" + oLog.Token.WatchTimeout.ToString())
Else
 MessageBox.Show("ログデータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [ログ取得]ボタンClick
private void btnGetLog_Click(object sender, EventArgs e)
{
// ■自ノードのログデータを取得します。
 HKE.FLnetCtrl.LogData oLog;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetMyNodeLog(out oLog);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
MessageBox.Show("サイクリック伝送送受信エラー回数=" + oLog.Cyclic.RecvErr.ToString() +
", トークン監視タイムアウト回数=" + oLog.Token.WatchTimeout.ToString());
}
else
 {
MessageBox.Show("ログデータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.GetNetworkStateメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 ネットワーク状態を取得します。
構文
[Visual Basic]
Public Function GetNetworkState( _
ByRef oState As NetworkState _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetNetworkState(
out NetworkState oState
)
引数
名前 | 説明
oState | (o) 取得したネットワーク状態
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常(モニタ中含む)
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中)状態
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 ネットワーク状態の取得を行います。自ノードがリンクに未参加(モニタ中は含まない)の場合は、エラーとして状態の取得は行いません。
サンプル
[Visual Basic]
'周期監視タイマ
Private Sub timerLinkState_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerLinkState.Tick
'■リンク参加状態を取得します。
 lblLinkState.Text = FLnetCtrl.LinkState.ToString()

'■ネットワーク状態を取得します。
 Dim oState As HKE.FLnetCtrl.NetworkState
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetNetworkState(oState)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '最小許容フレーム間隔
 lblMinFrameInterval.Text = oState.MinFrameInterval.ToString()
'リフレッシュサイクル測定時間(現在値)
 lblRefreshCycle.Text = oState.RefreshCycle.ToString()
End If
End Sub
[C#]
// 周期監視タイマ
private void timerLinkState_Tick(object sender, EventArgs e)
{
// ■リンク参加状態を取得します。
 lblLinkState.Text = fLnetCtrl.LinkState.ToString();

// ■ネットワーク状態を取得します。
 HKE.FLnetCtrl.NetworkState oState;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetNetworkState(out oState);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 最小許容フレーム間隔
 lblMinFrameInterval.Text = oState.MinFrameInterval.ToString();
// リフレッシュサイクル測定時間(現在値)
 lblRefreshCycle.Text = oState.RefreshCycle.ToString();
}
}


FLnetCtrl.GetNodeStateメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 ノード状態を取得します。
構文
[Visual Basic]
Public Function GetNodeState( _
ByVal nNodeNo As Byte, _
ByRef oState As NodeState _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetNodeState(
byte nNodeNo,
out NodeState oState
)
引数
名前 | 説明
nNodeNo | (i) ノード番号[0～254, 0=自ノード]
oState | (o) 取得したノード状態
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | nNodeNoの値が範囲(0～254)外
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 取得対象ノードリンク未参加状態
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 ノード毎の状態を取得します。
ノード状態の取得では、FL-net Control内部にある管理情報パラメータを参照します。他ノードの最新状態を取得する場合は、RequestNetParamReadメソッドを発行して、ネットワークパラメータリードを要求する必要があります。応答を受信したら、NetParamReadRepliedイベントが発生します。

取得可能な項目およびメソッド戻り値は、以下の通りです。

(1) nNodeNo引数に自ノード番号を指定した場合自ノードの参加状況に応じて、取得可能な項目が異なります。

項目 | メンバ変数名 | 自ノード参加状況による取得可能項目※1
 |  | 未参加 | 待機中 | モニタ中 | 参加中
ベンダ名称 | VendorName | ○ | ○ | ○ | ○
製造業者形式 | MakerType | ○ | ○ | ○ | ○
ノード名(設備名) | NodeName | ○ | ○ | ○ | ○
コモンメモリ情報 | Common | ○ | ○ | ○ | ○
トークン監視時間 | TokenTime | ○ | ○ | ○ | ○
リフレッシュサイクル許容時間 | MaxRefreshCycle | × | × | × | ○
リフレッシュサイクル実測値 | RefreshCycle | × | × | × | ○
最小許容フレーム間隔 | MinFrameInterval | ○ | ○ | ○ | ○
上位層の状態 | UpperState | ○ | ○ | ○ | ○
FAリンクの状態 | LinkState | ○ | ○ | ○ | ○
プロトコルタイプ | ProtocolVersion | ○ | ○ | ○ | ○
自ノード状態 | MyNodeState | ○ | ○ | ○ | ○
メソッド戻り値 |  | MyNodeLinkOut |  |  | Normal

※1. 取得可能項目の記号の意味は、以下の通りです。
・○：取得可能です。
・×：取得不可能（変数の値は、0固定となります。）

(2) nNodeNo引数に他ノード番号を指定した場合自ノードおよび対象ノードの参加状況に応じて、取得可能な項目が異なります。
項目 | メンバ変数名 | 参加状況による取得可能項目※2 （上段：自ノード，下段：対象ノード）
 |  | 未参加 待機中 | モニタ中 |  | 参加中
 |  | － | 参加中 | 未参加 | 参加中 | 未参加
ベンダ名称 | VendorName | × | ▲ | × | △ | ×
製造業者形式 | MakerType | × | ▲ | × | △ | ×
ノード名(設備名) | NodeName | × | ▲ | × | △ | ×
コモンメモリ情報 | Common | × | ○ | × | ○ | ×
トークン監視時間 | TokenTime | × | ○ | × | ○ | ×
リフレッシュサイクル許容時間 | MaxRefreshCycle | × | ○ | × | ○ | ×
リフレッシュサイクル実測値 | RefreshCycle | × | × | × | △ | ×
最小許容フレーム間隔 | MinFrameInterval | × | ○ | × | ○ | ×
上位層の状態 | UpperState | × | ○ | × | ○ | ×
FAリンクの状態 | LinkState | ◇ | ○ | ◇ | ○ | ◇
プロトコルタイプ | ProtocolVersion | × | ○ | × | ○ | ×
自ノード状態 | MyNodeState | ○ | ○ | ○ | ○ | ○
メソッド戻り値 |  | MyNode LinkOut | MyNode LinkOut | TargetNode LinkOut | Normal | TargetNode LinkOut

※2. 取得可能項目の記号の意味は、以下の通りです。
・○：取得可能です。
・×：取得不可能（変数の値は、0又は""固定となります。）
・△：NetParamReadRepliedイベント(Result=Normal)発生後に、最新状態が取得可能です。
・▲：途中で参加したノードのみ取得可能です。
・◇：通信無効検知フラグのみ取得可能です。

サンプル
[Visual Basic]
'[ネットリード要求]ボタンClick
Private Sub btnReqNetRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqNetRead.Click
'■他ノードに、ネットワークパラメータリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestNetParamRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ネットワークパラメータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ネットワークパラメータリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_NetParamReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamReadRepliedEventArgs) Handles FLnetCtrl.NetParamReadReplied
'応答結果判定
 If e.Result.Equals(HKE.FLnetCtrl.ReplyMessageResultEnum.Normal) Then
 '■正常応答の場合は、ネットワークパラメータを取得します。
 Dim oState As New HKE.FLnetCtrl.NodeState
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetNodeState(e.NodeNo, oState)
'取得結果判定
 If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常の場合は、取得したネットワークパラメータを表示します。
 MessageBox.Show("ベンダ名称=" + oState.VendorName + ", 製造業者形式=" + oState.MakerType + _
", ノード名=" + oState.NodeName + System.Environment.NewLine + _
"コモンメモリ送信領域:先頭アドレス=" + oState.Common.Address1.ToString() + _
", サイズ=" + oState.Common.Size1.ToString() + System.Environment.NewLine + _
"コモンメモリ送信領域:先頭アドレス=" + oState.Common.Address2.ToString() + _
", サイズ=" + oState.Common.Size2.ToString() _
, "ネットワークパラメータの取得[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Else
 MessageBox.Show("ネットワークパラメータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
 Else
 MessageBox.Show("異常応答を受信しました。[エラーコード=" + CType(e.Data, String) + "]")
End If
End Sub

[C#]
// [ネットリード要求]ボタンClick
private void btnReqNetRead_Click(object sender, EventArgs e)
{
// ■他ノードに、ネットワークパラメータリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestNetParamRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ネットワークパラメータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ネットワークパラメータリード応答を受けた場合に発生します。
private void fLnetCtrl_NetParamReadReplied(object sender, HKE.FLnetCtrl.NetParamReadRepliedEventArgs e)
{
// 応答結果判定
 if (e.Result.Equals(HKE.FLnetCtrl.ReplyMessageResultEnum.Normal))
{
// ■正常応答の場合は、ネットワークパラメータを取得します。
HKE.FLnetCtrl.NodeState oState;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetNodeState(e.NodeNo, out oState);
// 取得結果判定
 if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常の場合は、取得したネットワークパラメータを表示します。
MessageBox.Show("ベンダ名称=" + oState.VendorName + ", 製造業者形式=" + oState.MakerType +
", ノード名=" + oState.NodeName + System.Environment.NewLine +
"コモンメモリ送信領域1:先頭アドレス=" + oState.Common.Address1.ToString() +
", サイズ=" + oState.Common.Size1.ToString() + System.Environment.NewLine +
"コモンメモリ送信領域2:先頭アドレス=" + oState.Common.Address2.ToString() +
", サイズ=" + oState.Common.Size2.ToString()
, "ネットワークパラメータの取得[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
else
 {
MessageBox.Show("ネットワークパラメータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}
else
 {
MessageBox.Show("異常応答を受信しました。[エラーコード=" + (string)e.Data + "]");
}
}


FLnetCtrl.ReadByteBlockメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 バイトブロックデータの値を、1[byte]リードします。
構文
[Visual Basic]
Public Function ReadByteBlock( _
ByVal nAddress As UInteger, _
ByRef nValue As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadByteBlock(
uint nAddress,
out byte nValue
)
引数
名前 | 説明
nAddress | (i) アドレス[byte単位, 0～0x1FFFFF]
nValue | (o) リードした値
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | nAddressの値が範囲(0～0x1FFFFF)外
解説 FL-net Controlが管理するバイトブロックデータの領域は、0～0x1FFFFF[byte]です。
サンプル
[Visual Basic]
'[ブロックリード]ボタンClick
Private Sub btnReadBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■バイトブロック:10byte目の値をリードします。
 Dim nByte As Byte
eRtc = FLnetCtrl.ReadByteBlock(10, nByte)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("バイトブロック:10byte目の値=" + nByte.ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [ブロックリード]ボタンClick
private void btnReadBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■バイトブロック:10byte目の値をリードします。
 byte nByte;
eRtc = fLnetCtrl.ReadByteBlock(10, out nByte);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("バイトブロック:10byte目の値=" + nByte.ToString());
}
else
{
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadByteBlockAllメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 バイトブロックデータの値を、全領域(0x200000[byte])リードします。
構文
[Visual Basic]
Public Function ReadByteBlockAll( _
ByRef nValue() As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadByteBlockAll(
out byte[] nValue
)
引数
名前 | 説明
nValue | (o) リードした値の配列[要素数=0x200000]
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
解説 FL-net Controlが管理するバイトブロックデータの領域は、0～0x1FFFFF[byte]です。
サンプル
[Visual Basic]
'[ブロックリード]ボタンClick
Private Sub btnReadBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadBlock.Click
 Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■バイトブロック全領域の値をリードします。
 Dim naByte() As Byte = {}
 eRtc = FLnetCtrl.ReadByteBlockAll(naByte)
 If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("バイトブロック:0byte目=" + naByte(0).ToString() + ", 0x1FFFFFbyte目=" + naByte(&H1FFFFF).ToString())
 Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
 End If
End Sub
[C#]
// [ブロックリード]ボタンClick
private void btnReadBlock_Click(object sender, EventArgs e)
{
 HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■バイトブロック全領域の値をリードします。
byte[] naByte;
 eRtc = fLnetCtrl.ReadByteBlockAll(out naByte);
 if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
 {
 // 正常処理
 MessageBox.Show("バイトブロック:0byte目=" + naByte[0].ToString() + ", 0x1FFFFFbyte目=" + naByte[0x1FFFFF].ToString());
 }
 else
 {
 // 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
 }
}


FLnetCtrl.ReadByteBlocksメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 バイトブロックデータの値を、N[byte]リードします。
構文
[Visual Basic]
Public Function ReadByteBlocks( _
ByVal nAddress As UInteger, _
ByVal nBytes As UInteger, _
ByRef nValue() As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadByteBlocks(
uint nAddress,
uint nBytes,
out byte[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[byte単位, 0～0x1FFFFF]
nBytes | (i) サイズ[byte単位, 1～0x200000]
nValue | (o) リードした値の配列[要素数=nBtyes]
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nAddressの値が範囲(0～0x1FFFFF)外
(2) nBytesの値が範囲(1～0x200000)外
(3) リード範囲がバイトブロックデータ領域(0～0x1FFFFF[byte])外
解説 FL-net Controlが管理するバイトブロックデータの領域は、0～0x1FFFFF[byte]です。
サンプル
[Visual Basic]
'[ブロックリード]ボタンClick
Private Sub btnReadBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■バイトブロック:11～13byteの値をリードします。
 Dim naByte() As Byte = {}
 eRtc = FLnetCtrl.ReadByteBlocks(11, 3, naByte)
 If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("バイトブロック:11byte目=" + naByte(0).ToString() + ", 12byte目=" + naByte(1).ToString() + ", 13byte目=" + naByte(2).ToString())
 Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
 End If
End Sub
[C#]
// [ブロックリード]ボタンClick
private void btnReadBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■バイトブロック:11～13byteの値をリードします。
 byte[] naByte;
eRtc = fLnetCtrl.ReadByteBlocks(11, 3, out naByte);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("バイトブロック:11byte目=" + naByte[0].ToString() + ", 12byte目=" + naByte[1].ToString() + ", 13byte目=" + naByte[2].ToString());
}
else
{
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon1Allメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、全領域(512[word])リードします。
構文
[Visual Basic]
Public Function ReadCommon1All( _
ByRef nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon1All(
out ushort[] nValue
)
引数
名前 | 説明
nValue | (o) リードした値の配列(要素数=512)
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■領域1全領域の値をリードします。
 Dim naValue1() As UShort = {}
 eRtc = FLnetCtrl.ReadCommon1All(naValue1)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("領域1:0word目=" + naValue1(0).ToString() + ", 511word目=" + naValue1(511).ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■領域1全領域の値をリードします。
 ushort[] naValue1;
 eRtc = fLnetCtrl.ReadCommon1All(out naValue1);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域1:0word目=" + naValue1[0].ToString() + ", 511word目=" + naValue1[511].ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon1Bitメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、1[bit]リードします。
構文
[Visual Basic]
Public Function ReadCommon1Bit( _
ByVal nAddress As UShort, _
ByVal nBit As Byte, _
ByRef bValue As Boolean _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon1Bit(
ushort nAddress,
byte nBit,
out bool bValue
)
引数
名前 | 説明
nAddress | (i) アドレス[word単位, 0～511]
nBit | (i) ビット[0～15]
bValue | (o) リードした値[true=ON, false=OFF]
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nAddressの値が範囲(0～511)外
(2) nBitの値が範囲(0～15)外
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■領域1:10word-0bit目の値をリードします。
 Dim bValue1 As Boolean
 eRtc = FLnetCtrl.ReadCommon1Bit(10, 0, bValue1)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("領域1:10word-0bit目の値=" + bValue1.ToString())
Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域1:10word-0bit目の値をリードします。
 bool bValue1;
eRtc = fLnetCtrl.ReadCommon1Bit(10, 0, out bValue1);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域1:10word-0bit目の値=" + bValue1.ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon1Bitsメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、N[bit]リードします。
構文
[Visual Basic]
Public Function ReadCommon1Bits( _
ByVal nAddress As UShort, _
ByVal nBit As Byte, _
ByVal nBits As UShort, _
ByRef bValue() As Boolean _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon1Bits(
ushort nAddress,
byte nBit,
ushort nBits,
out bool[] bValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～511]
nBit | (i) 開始ビット[0～15]
nBits | (i) サイズ[bit単位, 1～8192]
bValue | (o) リードした値[true=ON, false=OFF]の配列(要素数=nBits)
戻り値 リード結果[ MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nAddressの値が範囲(0～511)外
(2) nBitの値が範囲(0～15)外
(3) nBitsの値が範囲(1～8192)外
(4) リード範囲がコモンメモリ領域1範囲(0～511[word])外
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■領域1:11word目の値をリードします。
 Dim baValue1() As Boolean = {}
 eRtc = FLnetCtrl.ReadCommon1Bits(11, 0, 16, baValue1)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("領域1:11word-0bit目の値=" + baValue1(0).ToString() + ", 15bit目の値=" + baValue1(15).ToString())
Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■領域1:11word目の値をリードします。
 bool[] baValue1;
eRtc = fLnetCtrl.ReadCommon1Bits(11, 0, 16, out baValue1);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域1:11word-0bit目の値=" + baValue1[0].ToString() + ", 15bit目の値=" + baValue1[15].ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon1Wordメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、1[word]リードします。
構文
[Visual Basic]
Public Function ReadCommon1Word( _
ByVal nAddress As UShort, _
ByRef nValue As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon1Word(
ushort nAddress,
out ushort nValue
)
引数
名前 | 説明
nAddress | (i) アドレス[word単位, 0～511]
nValue | (o) リードした値
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | nAddressの値が範囲(0～511)外
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■領域1:12word目の値をリードします。
 Dim nValue1 As UShort
 eRtc = FLnetCtrl.ReadCommon1Word(12, nValue1)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("領域1:12word目の値=" + nValue1.ToString())
Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域1:12word目の値をリードします。
 ushort nValue1;
eRtc = fLnetCtrl.ReadCommon1Word(12, out nValue1);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域1:12word目の値=" + nValue1.ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon1Wordsメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、N[word]リードします。
構文
[Visual Basic]
Public Function ReadCommon1Words( _
ByVal nAddress As UShort, _
ByVal nWords As UShort, _
ByRef nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon1Words(
ushort nAddress,
ushort nWords,
out ushort[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～511]
nWords | (i) サイズ[word単位, 1～512]
nValue | (o) リードした値の配列(要素数=nWords)
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nAddressの値が範囲(0～511)外
(2) nWordsの値が範囲(1～512)外
(3) リード範囲がコモンメモリ領域1範囲(0～511[word])外
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■領域1:13～wordの値をリードします。
 Dim naValue1() As UShort = {}
 eRtc = FLnetCtrl.ReadCommon1Words(13, 3, naValue1)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("領域1:13word目=" + naValue1(0).ToString() + ", 14word目=" + naValue1(1).ToString() + ", 15word目=" + naValue1(2).ToString())
Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■領域1:13～15wordの値をリードします。
 ushort[] naValue1;
eRtc = fLnetCtrl.ReadCommon1Words(13, 3, out naValue1);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域1:13word目=" + naValue1[0].ToString() + ", 14word目=" + naValue1[1].ToString() + ", 15word目=" + naValue1[2].ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon2Allメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域2の値を、全領域(8192[word])リードします。
構文
[Visual Basic]
Public Function ReadCommon2All( _
ByRef nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon2All(
out ushort[] nValue
)
引数
名前 | 説明
nValue | (o) リードした値の配列(要素数=8192)
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■領域2全領域の値をリードします。
 Dim naValue2() As UShort = {}
 eRtc = FLnetCtrl.ReadCommon2All(naValue2)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("領域2:0word目=" + naValue2(0).ToString() + ", 8191word目=" + naValue2(8191).ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域2全領域の値をリードします。
 ushort[] naValue2;
 eRtc = fLnetCtrl.ReadCommon2All(out naValue2);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域2:0word目=" + naValue2[0].ToString() + ", 8191word目=" + naValue2[8191].ToString());
}
else
{
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon2Wordメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域2の値を、1[word]リードします。
構文
[Visual Basic]
Public Function ReadCommon2Word( _
ByVal nAddress As UShort, _
ByRef nValue As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon2Word(
ushort nAddress,
out ushort nValue
)
引数
名前 | 説明
nAddress | (i) アドレス[word単位, 0～8191]
nValue | (o) リードした値
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | nAddressの値が範囲(0～8191)外
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■領域2:10word目の値をリードします。
 Dim nValue2 As UShort
eRtc = FLnetCtrl.ReadCommon2Word(10, nValue2)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("領域2:10word目の値=" + nValue2.ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域2:10word目の値をリードします。
 ushort nValue2;
eRtc = fLnetCtrl.ReadCommon2Word(10, out nValue2);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域2:10word目の値=" + nValue2.ToString());
}
else
{
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadCommon2Wordsメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域2の値を、N[word]リードします。
構文
[Visual Basic]
Public Function ReadCommon2Words( _
ByVal nAddress As UShort, _
ByVal nWords As UShort, _
ByRef nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadCommon2Words(
ushort nAddress,
ushort nWords,
out ushort[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～8191]
nWords | (i) サイズ[word単位, 1～8192]
nValue | (o) リードした値の配列(要素数=nWords)
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nAddressの値が範囲(0～8191)外
(2) nWordsの値が範囲(1～8192)外
(3) リード範囲がコモンメモリ領域2範囲(0～8191[word])外
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 コモンメモリ値のリードは、リンク未参加の状態でも可能です。リンク未参加時に、自ノード送信領域外の範囲をリードする場合は、リンク参加中の最終時点において更新された値がリードされます。
サンプル
[Visual Basic]
'[コモンリード]ボタンClick
Private Sub btnReadCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■領域2:11～13wordの値をリードします。
 Dim naValue2() As UShort = {}
 eRtc = FLnetCtrl.ReadCommon2Words(11, 3, naValue2)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("領域2:11word目=" + naValue2(0).ToString() + ", 12word目=" + naValue2(1).ToString() + ", 13word目=" + naValue2(2).ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [コモンリード]ボタンClick
private void btnReadCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■領域2:11～13wordの値をリードします。
 ushort[] naValue2;
eRtc = fLnetCtrl.ReadCommon2Words(11, 3, out naValue2);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("領域2:11word目=" + naValue2[0].ToString() + ", 12word目=" + naValue2[1].ToString() + ", 13word目=" + naValue2[2].ToString());
}
else
{
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadWordBlockメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 ワードブロックデータの値を、1[word]リードします。
構文
[Visual Basic]
Public Function ReadWordBlock( _
ByVal nAddress As UInteger, _
ByRef nValue As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadWordBlock(
uint nAddress,
out ushort nValue
)
引数
名前 | 説明
nAddress | (i) アドレス[word単位, 0～0x1FFFFF]
nValue | (o) リードした値
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | nAddressの値が範囲(0～0x1FFFFF)外
解説 FL-net Controlが管理するワードブロックデータの領域は、0～0x1FFFFF[word]です。
サンプル
[Visual Basic]
'[ブロックリード]ボタンClick
Private Sub btnReadBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■ワードブロック:10word目の値をリードします。
 Dim nWord As UShort
eRtc = FLnetCtrl.ReadWordBlock(10, nWord)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("ワードブロック:10word目の値=" + nWord.ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [ブロックリード]ボタンClick
private void btnReadBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■ワードブロック:10word目の値をリードします。
 ushort nWord;
eRtc = fLnetCtrl.ReadWordBlock(10, out nWord);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("ワードブロック:10word目の値=" + nWord.ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadWordBlockAllメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 ワードブロックデータの値を、全領域(0x200000[word])リードします。
構文
[Visual Basic]
Public Function ReadWordBlockAll( _
ByRef nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadWordBlockAll(
out ushort[] nValue
)
引数
名前 | 説明
nValue | (o) リードした値の配列[要素数=0x200000]
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
解説 FL-net Controlが管理するワードブロックデータの領域は、0～0x1FFFFF[word]です。
サンプル
[Visual Basic]
'[ブロックリード]ボタンClick
Private Sub btnReadBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■ワードブロック全領域の値をリードします。
Dim naWord() As UShort = {}
 eRtc = FLnetCtrl.ReadWordBlockAll(naWord)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
 MessageBox.Show("ワードブロック:0word目=" + naWord(0).ToString() + ", 0x1FFFFFword目=" + naWord(&H1FFFFF).ToString())
Else
 '異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [ブロックリード]ボタンClick
private void btnReadBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■ワードブロック全領域の値をリードします。
ushort[] naWord;
 eRtc = fLnetCtrl.ReadWordBlockAll(out naWord);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("ワードブロック:0word目=" + naWord[0].ToString() + ", 0x1FFFFFword目=" + naWord[0x1FFFFF].ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReadWordBlocksメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 ワードブロックデータの値を、N[word]リードします。
構文
[Visual Basic]
Public Function ReadWordBlocks( _
ByVal nAddress As UInteger, _
ByVal nWords As UInteger, _
ByRef nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadWordBlocks(
uint nAddress,
uint nWords,
out ushort[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～0x1FFFFF]
nWords | (i) サイズ[word単位, 1～0x200000]
nValue | (o) リードした値の配列[要素数=nWords]
戻り値 リード結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nAddressの値が範囲(0～0x1FFFFF)外
(2) nWordsの値が範囲(1～0x200000)外
(3) リード範囲がワードブロックデータ領域(0～0x1FFFFF[word])外
解説 FL-net Controlが管理するワードブロックデータの領域は、0～0x1FFFFF[word]です。
サンプル
[Visual Basic]
'[ブロックリード]ボタンClick
Private Sub btnReadBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■ワードブロック:11～13wordの値をリードします。
 Dim naWord() As UShort = {}
eRtc = FLnetCtrl.ReadWordBlocks(11, 3, naWord)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常処理
MessageBox.Show("ワードブロック:11word目=" + naWord(0).ToString() + ", 12word目=" + naWord(1).ToString() + ", 13word目=" + naWord(2).ToString())
Else
 '異常処理
MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub
[C#]
// [ブロックリード]ボタンClick
private void btnReadBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■ワードブロック:11～13wordの値をリードします。
 ushort[] naWord;
eRtc = fLnetCtrl.ReadWordBlocks(11, 3, out naWord);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常処理
 MessageBox.Show("ワードブロック:11word目=" + naWord[0].ToString() + ", 12word目=" + naWord[1].ToString() + ", 13word目=" + naWord[2].ToString());
}
else
 {
// 異常処理
 MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}


FLnetCtrl.ReplyVendorMessageメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ベンダ固有メッセージを応答します。
構文
[Visual Basic]
Public Function ReplyVendorMessage( _
ByVal nNodeNo As Byte, _
ByVal nResult As ReplyMessageResultEnum, _
ByVal oVendorName As FLnetObject, _
ByVal oSubCode As FLnetObject, _
ByVal oData As FLnetObject _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReplyVendorMessage(
byte nNodeNo,
ReplyMessageResultEnum nResult,
FLnetObject oVendorName,
FLnetObject oSubCode,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 応答先ノード番号[1～254]
nResult (i) 応答結果
※応答結果に指定する値の判断基準は、以下の通りです。
値 | 判断基準
Normal(正常) | 要求メッセージに対する処理が正常に終了した。
Error(異常) | 要求元ノードから受信したサブコードが認識できない場合や、要求メッセージに対する処理で異常が発生した。
NotSupport(非実装) | 要求元ノードから受信したベンダ名が認識できない。
oVendorName (i) ベンダ名[MAX10byte]
※11byte目以降のデータは無視します。10byteに満たない部分は、0x00を埋めます。
oSubCode (i) サブコード[MAX6byte]
※7byte目以降のデータは無視します。6byteに満たない部分は、0x00を埋めます。
oData (i) メッセージデータ[0～1024byte]
※nResultに応じて、以下の内容を指定します。
値 | 内容
Normal(正常) | 正常データ
Error(異常) | エラーコード
NotSupport(非実装) | 指定データは無効です。
戻り値 応答結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～255)外 (2) nNodeNoの値が自ノード番号 (3) nResultの値が範囲(ReplyMessageResultEnum列挙体)外 (4) oDataのサイズが範囲(0～1024[byte])外
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 送信先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ベンダ固有メッセージを応答します。

引数に基づきベンダ固有応答メッセージを作成し、送信します。ベンダ固有メッセージの要求は、VendorMessageRequestedイベントにて通知されます。要求内容を判定して、本メソッドを発行してください。なお、要求内容が1対nメッセージ(VendorMessageRequestedEventArgsクラスのMultiフィールド=True)の場合は、ベンダ固有メッセージの応答は行わないでください。

ベンダ固有メッセージサーバ機能が非実装(VendorMessageSupportプロパティ=False)の条件で、本メソッドを発行した場合はエラーとなり、メッセージの送信は行いません。

本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。自ノードおよび応答先のノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■ベンダ固有メッセージサーバ機能を実装に設定します。
 FLnetCtrl.VendorMessageSupport = True
End Sub

'ベンダ固有メッセージ要求を受けた場合に発生します。
Private Sub FLnetCtrl_VendorMessageRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.VendorMessageRequestedEventArgs) Handles FLnetCtrl.VendorMessageRequested
'応答結果
 Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'応答データ
 Dim oData As New HKE.FLnetCtrl.FLnetObject
'要求内容を判定します。
 'ベンダ名判定
 If CType(e.VendorName, String).Equals("HITACHI-KE") Then
 'サブコードを判定します。
 Dim sSubCode As String = CType(e.SubCode, String)
If sSubCode.Equals("000000") Then
 'サブコード="000000"の場合の処理
 '要求データを基に、ベンダ固有メッセージ処理を行います。
 '(省略)
 '応答データを作成します。
 oData = "OK"
 ElseIf sSubCode.Equals("000001") Then
 'サブコード="000001"の場合の処理
 '要求データを基に、ベンダ固有メッセージ処理を行います。
 '(省略)
 '処理で異常が発生した場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error
oData = "ErrorCode=1"
 Else
 '不明なサブコードの場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error
oData = "Unknown SubCode"
 End If
 Else
 '不明なベンダ名の場合は、非実装応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
End If

 '■1対1の場合は、ベンダ固有メッセージを応答します。
 If e.Multi.Equals(False) Then
 FLnetCtrl.ReplyVendorMessage(e.NodeNo, eResult, e.VendorName, e.SubCode, oData)
End If
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■ベンダ固有メッセージサーバ機能を実装に設定します。
 fLnetCtrl.VendorMessageSupport = true;
}

// ベンダ固有メッセージ要求を受けた場合に発生します。
 private void fLnetCtrl_VendorMessageRequested(object sender, HKE.FLnetCtrl.VendorMessageRequestedEventArgs e)
{
// 応答結果
HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;
// 応答データ
HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 要求内容を判定します。
// ベンダ名判定
if (((string)e.VendorName).Equals("HITACHI-KE"))
{
// サブコードを判定します。
string sSubCode = (string)e.SubCode;
if (sSubCode.Equals("000000"))
{
// サブコード="000000"の場合の処理
 // 要求データを基に、ベンダ固有メッセージ処理を行います。
 // (省略)
 // 応答データを作成します。
 oData = "OK";
}
else if (sSubCode.Equals("000001"))
{
// サブコード="000001"の場合の処理
 // 要求データを基に、ベンダ固有メッセージ処理を行います。
 // (省略)
 // 処理で異常が発生した場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;
oData = "ErrorCode=1";
}
else
{
// 不明なサブコードの場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;
oData = "Unknown SubCode";
}
}
else
{
// 不明なベンダ名の場合は、非実装応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport;
}

// ■ 1対1の場合は、ベンダ固有メッセージを応答します。
if (e.Multi.Equals(false))
{
fLnetCtrl.ReplyVendorMessage(e.NodeNo, eResult, e.VendorName, e.SubCode, oData);
}
}


FLnetCtrl.RequestBlockReadメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ブロックリードを要求します。
構文
[Visual Basic]
Public Function RequestBlockRead( _
ByVal nNodeNo As Byte, _
ByVal bWordBlock As Boolean, _
ByVal nAddress As UInteger, _
ByVal nSize As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestBlockRead(
byte nNodeNo,
bool bWordBlock,
uint nAddress,
ushort nSize
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
bWordBlock | (i) ブロック種別[false=バイトブロック, true=ワードブロック]
nAddress | (i) オフセットアドレス[byte/word単位, 0～0xFFFFFFFF]
nSize | (i) サイズ[バイトブロック:1～1024[byte], ワードブロック:1～512[word]]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nNodeNoの値が範囲(1～254)外
(2) nNodeNoの値が自ノード番号
(3) nAddressの値が範囲(0～0xFFFFFFFF)外
(4) nSizeの値が範囲(バイトブロック:1～1024, ワードブロック:1～512)外
(5) リード範囲がブロックデータ領域範囲(0～0x100000000)外
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、バイト/ワードブロックデータリードを要求します。

引数に基づきブロックデータリード要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからブロックリード応答メッセージを受信した時点で、BlockReadRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。
サンプル
[Visual Basic]
'[ブロックリード要求]ボタンClick
Private Sub btnReqBlockRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqBlockRead.Click
'■他ノードに、バイトブロックリード(開始アドレス=32, サイズ=16)を要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestBlockRead(nNodeNo, False, 32, 16)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("バイトブロックリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ブロックリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_BlockReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.BlockReadRepliedEventArgs) Handles FLnetCtrl.BlockReadReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、ブロックデータを取得します。
 If e.WordBlock.Equals(False) Then
 'Byte型配列にキャストします。
 Dim nBlock() As Byte = CType(e.Data, Byte())
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine + _
"アドレス[" + e.Address.ToString() + "]=" + nBlock(0).ToString() + _
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock(e.Size - 1).ToString() _
, "バイトブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Else
 'UShort型配列にキャストします。
 Dim nBlock() As UShort = CType(e.Data, UShort())
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine + _
"アドレス[" + e.Address.ToString() + "]=" + nBlock(0).ToString() + _
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock(e.Size - 1).ToString() _
, "ワードブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End If
 Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() + _
", サイズ=" + e.Size.ToString() + System.Environment.NewLine + "エラーコード=" + sErrorCode _
, "ブロックリード異常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() + _
", サイズ=" + e.Size.ToString() _
, "ブロックリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End Select
End Sub

[C#]
// [ブロックリード要求]ボタンClick
private void btnReqBlockRead_Click(object sender, EventArgs e)
{
// ■他ノードに、バイトブロックリード(開始アドレス=32, サイズ=16)を要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestBlockRead(nNodeNo, false, 32, 16);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("バイトブロックリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ブロックリード応答を受けた場合に発生します。
private void fLnetCtrl_BlockReadReplied(object sender, HKE.FLnetCtrl.BlockReadRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、ブロックデータを取得します。
 if (e.WordBlock.Equals(false))
{
// byte型配列にキャストします。
 byte[] nBlock = (byte[])e.Data;
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine +
"アドレス[" + e.Address.ToString() + "]=" + nBlock[0].ToString() +
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock[e.Size - 1].ToString()
, "バイトブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
else
 {
// ushort型配列にキャストします。
 ushort[] nBlock = (ushort[])e.Data;
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine +
"アドレス[" + e.Address.ToString() + "]=" + nBlock[0].ToString() +
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock[e.Size - 1].ToString()
, "ワードブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() +
", サイズ=" + e.Size.ToString() + System.Environment.NewLine + "エラーコード=" + sErrorCode
, "ブロックリード異常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() +
", サイズ=" + e.Size.ToString()
, "ブロックリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]"
);
break;
}
}


FLnetCtrl.RequestBlockWriteメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ブロックライトを要求します。
構文
[Visual Basic]
Public Function RequestBlockWrite( _
ByVal nNodeNo As Byte, _
ByVal bWordBlock As Boolean, _
ByVal nAddress As UInteger, _
ByVal oData As FLnetObject _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestBlockWrite(
byte nNodeNo,
bool bWordBlock,
uint nAddress,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
bWordBlock | (i) ブロック種別[false=バイトブロック, true=ワードブロック]
nAddress | (i) オフセットアドレス[byte/word単位, 0～0xFFFFFFFF]
oData | (i) ライトデータ[バイトブロック:1～1024[byte], ワードブロック:1～512[word]]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nNodeNoの値が範囲(1～254)外
(2) nNodeNoの値が自ノード番号
(3) nAddressの値が範囲(0～0xFFFFFFFF)外
(4) oDataのサイズが範囲(バイトブロック:1～1024, ワードブロック:1～512)外
(5) ライト範囲がブロックデータ領域範囲(0～0x100000000)外
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、バイト/ワードブロックデータライトを要求します。

引数に基づきブロックデータライト要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからブロックライト応答メッセージを受信した時点で、BlockWriteRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[ブロックライト要求]ボタンClick
Private Sub btnReqBlockWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqBlockWrite.Click
'ライトデータを作成します。
 Dim nBlock(15) As Byte
 For nLoop As Byte = 0 To 15 Step 1
nBlock(nLoop) = nLoop * 2
Next nLoop

'■他ノードに、バイトブロックライト(開始アドレス=32, サイズ=16)を要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestBlockWrite(nNodeNo, False, 32, nBlock)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("バイトブロックライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ブロックライト応答を受けた場合に発生します。
Private Sub FLnetCtrl_BlockWriteReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.BlockWriteRepliedEventArgs) Handles FLnetCtrl.BlockWriteReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + _
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() _
, "ブロックライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() + _
", サイズ=" + e.Size.ToString() + System.Environment.NewLine + _
"エラーコード=" + sErrorCode _
, "ブロックライト異常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + _
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() _
, "ブロックライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End Select
End Sub

[C#]
// [ブロックライト要求]ボタンClick
private void btnReqBlockWrite_Click(object sender, EventArgs e)
{
// ライトデータを作成します。
 byte[] nBlock = new byte[16];
for (byte nLoop = 0; nLoop < 16; nLoop++)
{
nBlock[nLoop] = (byte)(nLoop * 2);
}

// ■他ノードに、バイトブロックライト(開始アドレス=32, サイズ=16)を要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestBlockWrite(nNodeNo, false, 32, nBlock);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("バイトブロックライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ブロックライト応答を受けた場合に発生します。
private void fLnetCtrl_BlockWriteReplied(object sender, HKE.FLnetCtrl.BlockWriteRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() +
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString()
, "ブロックライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() +
", サイズ=" + e.Size.ToString() + System.Environment.NewLine +
"エラーコード=" + sErrorCode
, "ブロックライト異常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() +
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString()
, "ブロックライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
}
}


FLnetCtrl.RequestLogClearメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ログデータクリアを要求します。
構文
[Visual Basic]
Public Function RequestLogClear( _
ByVal nNodeNo As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestLogClear(
byte nNodeNo
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～255]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～255)外 (2) nNodeNoの値が自ノード番号
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ログデータクリアを要求します。

引数に基づきログデータクリア要求メッセージを作成し、送信します。nNodeNo=255を指定した場合、リンクに参加している全てのノードのログデータをクリアします。この場合、自ノードのログデータもクリアされますが、LogClearedイベントは発生しません。

本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからログデータクリア応答メッセージを受信した時点で、LogClearRepliedイベントが発生します。ただし、nNodeNo=255を指定した場合は、LogClearRepliedイベントは発生しません。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[ログクリア要求]ボタンClick
Private Sub btnReqLogClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqLogClear.Click
'■他ノードに、ログデータクリアを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestLogClear(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ログデータクリア要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ログデータクリア応答を受けた場合に発生します。
Private Sub FLnetCtrl_LogClearReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LogClearRepliedEventArgs) Handles FLnetCtrl.LogClearReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア正常応答[ノード番号=" + e.NodeNo.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ログデータクリア異常応答[ノード番号=" + e.NodeNo.ToString() + ", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [ログクリア要求]ボタンClick
private void btnReqLogClear_Click(object sender, EventArgs e)
{
// ■他ノードに、ログデータクリアを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestLogClear(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ログデータクリア要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ログデータクリア応答を受けた場合に発生します。
private void fLnetCtrl_LogClearReplied(object sender, HKE.FLnetCtrl.LogClearRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア正常応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ログデータクリア異常応答[ノード番号=" + e.NodeNo.ToString() + ", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.RequestLogReadメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ログデータリードを要求します。
構文
[Visual Basic]
Public Function RequestLogRead( _
ByVal nNodeNo As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestLogRead(
byte nNodeNo
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～254)外 (2) nNodeNoの値が自ノード番号
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ログデータリードを要求します。

引数に基づきログデータリード要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからログデータリード応答メッセージを受信した時点で、LogReadRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[ログリード要求]ボタンClick
Private Sub btnReqLogRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqLogRead.Click
'■他ノードに、ログデータリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestLogRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ログデータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ログデータリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_LogReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LogReadRepliedEventArgs) Handles FLnetCtrl.LogReadReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、ログデータを取得します。
 Dim nLog() As UInteger = CType(e.Data, UInteger())
MessageBox.Show("ログデータリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" + _
System.Environment.NewLine + "通算ソケット部送信回数=" + nLog(0).ToString() + _
", ACK通番番号エラー回数=" + nLog(50).ToString() + ", 加入回数=" + nLog(74).ToString())
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ログデータリード異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [ログリード要求]ボタンClick
private void btnReqLogRead_Click(object sender, EventArgs e)
{
// ■他ノードに、ログデータリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestLogRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ログデータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ログデータリード応答を受けた場合に発生します。
private void fLnetCtrl_LogReadReplied(object sender, HKE.FLnetCtrl.LogReadRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、ログデータを取得します。
 uint[] nLog = (uint[])e.Data;
MessageBox.Show("ログデータリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" +
System.Environment.NewLine + "通算ソケット部送信回数=" + nLog[0].ToString() +
", ACK通番番号エラー回数=" + nLog[50].ToString() + ", 加入回数=" + nLog[74].ToString());
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ログデータリード異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.RequestMessageEchoメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、メッセージ折返しを要求します。
構文
[Visual Basic]
Public Function RequestMessageEcho( _
ByVal nNodeNo As Byte, _
ByVal oData As FLnetObject _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestMessageEcho(
byte nNodeNo,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
oData | (i) 折返しデータ[1～1024byte]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) oDataがNull (2) oDataのサイズが範囲(1～1024[byte])外 (3) nNodeNoの値が範囲(1～254)外 (4) nNodeNoの値が自ノード番号
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、メッセージ折返しを要求します。

引数に基づきメッセージ折返し要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからメッセージ折返し応答を受信した時点で、MessageEchoRepliedイベントが発生します。なお、MessageEchoRepliedイベントが発生する前にRequestMessageEchoメソッドを発行しないで下さい、送信データと受信データの比較が正しく行われず、MessageEchoRepliedイベントの結果が不正になることがあります。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[折返し要求]ボタンClick
Private Sub btnReqEcho_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqEcho.Click
'■他ノードに、メッセージ折返しを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestMessageEcho(nNodeNo, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("メッセージ折返し要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'メッセージ折返し応答を受けた場合に発生します。
Private Sub FLnetCtrl_MessageEchoReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.MessageEchoRepliedEventArgs) Handles FLnetCtrl.MessageEchoReplied
MessageBox.Show("判定結果=" + e.MatchingResult.ToString() + System.Environment.NewLine + "応答データ=" + CType(e.Data, String), _
"メッセージ折返し応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Sub

[C#]
// [折返し要求]ボタンClick
private void btnReqEcho_Click(object sender, EventArgs e)
{
// ■他ノードに、メッセージ折返しを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestMessageEcho(nNodeNo, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("メッセージ折返し要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// メッセージ折返し応答を受けた場合に発生します。
private void fLnetCtrl_MessageEchoReplied(object sender, HKE.FLnetCtrl.MessageEchoRepliedEventArgs e)
{
MessageBox.Show("判定結果=" + e.MatchingResult.ToString() + System.Environment.NewLine + "応答データ=" + (string)e.Data,
"メッセージ折返し応答[ノード番号=" + e.NodeNo.ToString() + "]");
}


FLnetCtrl.RequestNetParamReadメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ネットワークパラメータリードを要求します。
構文
[Visual Basic]
Public Function RequestNetParamRead( _
ByVal nNodeNo As Byte, _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestNetParamRead(
byte nNodeNo,
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～254)外 (2) nNodeNoの値が自ノード番号
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ネットワークパラメータリードを要求します。

引数に基づきネットワークパラメータリード要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからネットワークパラメータリード応答メッセージを受信した時点で、NetParamReadRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[ネットリード要求]ボタンClick
Private Sub btnReqNetRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqNetRead.Click
'■他ノードに、ネットワークパラメータリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestNetParamRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ネットワークパラメータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ネットワークパラメータリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_NetParamReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamReadRepliedEventArgs) Handles FLnetCtrl.NetParamReadReplied
'応答結果判定
 If e.Result.Equals(HKE.FLnetCtrl.ReplyMessageResultEnum.Normal) Then
 '■正常応答の場合は、ネットワークパラメータを取得します。
 Dim oState As New HKE.FLnetCtrl.NodeState
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetNodeState(e.NodeNo, oState)
'取得結果判定
 If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常の場合は、取得したネットワークパラメータを表示します。
 MessageBox.Show("ベンダ名称=" + oState.VendorName + ", 製造業者形式=" + oState.MakerType + _
", ノード名=" + oState.NodeName + System.Environment.NewLine + _
"コモンメモリ送信領域:先頭アドレス=" + oState.Common.Address1.ToString() + _
", サイズ=" + oState.Common.Size1.ToString() + System.Environment.NewLine + _
"コモンメモリ送信領域:先頭アドレス=" + oState.Common.Address2.ToString() + _
", サイズ=" + oState.Common.Size2.ToString() _
, "ネットワークパラメータの取得[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Else
 MessageBox.Show("ネットワークパラメータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
 Else
 MessageBox.Show("異常応答を受信しました。[エラーコード=" + CType(e.Data, String) + "]")
End If
End Sub

[C#]
// [ネットリード要求]ボタンClick
private void btnReqNetRead_Click(object sender, EventArgs e)
{
// ■ 他ノードに、ネットワークパラメータリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestNetParamRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ネットワークパラメータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ネットワークパラメータリード応答を受けた場合に発生します。
private void fLnetCtrl_NetParamReadReplied(object sender, HKE.FLnetCtrl.NetParamReadRepliedEventArgs e)
{
// 応答結果判定
 if (e.Result.Equals(HKE.FLnetCtrl.ReplyMessageResultEnum.Normal))
{
// ■ 正常応答の場合は、ネットワークパラメータを取得します。
HKE.FLnetCtrl.NodeState oState;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetNodeState(e.NodeNo, out oState);
// 取得結果判定
 if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常の場合は、取得したネットワークパラメータを表示します。
MessageBox.Show("ベンダ名称=" + oState.VendorName + ", 製造業者形式=" + oState.MakerType +
", ノード名=" + oState.NodeName + System.Environment.NewLine +
"コモンメモリ送信領域1:先頭アドレス=" + oState.Common.Address1.ToString() +
", サイズ=" + oState.Common.Size1.ToString() + System.Environment.NewLine +
"コモンメモリ送信領域2:先頭アドレス=" + oState.Common.Address2.ToString() +
", サイズ=" + oState.Common.Size2.ToString()
, "ネットワークパラメータの取得[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
else
 {
MessageBox.Show("ネットワークパラメータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}
else
 {
MessageBox.Show("異常応答を受信しました。[エラーコード=" + (string)e.Data + "]");
}
}


FLnetCtrl.RequestNetParamWriteメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ネットワークパラメータライトを要求します。
構文
[Visual Basic]
Public Function RequestNetParamWrite( _
ByVal nNodeNo As Byte, _
ByVal nWriteItem As WriteNetParamEnum, _
ByVal oCommon As CommonArea, _
ByVal sNodeName As String _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestNetParamWrite(
byte nNodeNo,
WriteNetParamEnum nWriteItem,
CommonArea oCommon,
string sNodeName
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
nWriteItem | (i) ライト項目
oCommon | (i) コモンメモリ領域(nWriteItem=CommonAreaまたはBoth指定時に有効です。)
sNodeName | (i) ノード名称[MAX10byte](nWriteItem=NodeNameまたはBoth指定時に有効です。) ※11byte目以降のデータは無視します。10byteに満たない部分は、半角スペース(0x20)を埋めます。
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～254)外 (2) nNodeNoの値が自ノード番号 (3) nWriteItemの値が範囲(WriteNetParamEnum列挙体)外 (4) nWriteItem=CommonAreaまたはBoth指定時に、oCommonにNullまたは範囲外の値を指定 (5) nWriteItem=NodeNameまたはBoth指定時に、sNodeNameにNullを指定
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ネットワークパラメータライトを要求します。

引数に基づきネットワークパラメータライト要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからネットワークパラメータライト応答メッセージを受信した時点で、NetParamWriteRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[ネットライト要求]ボタンClick
Private Sub btnReqNetWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqNetWrite.Click
'■他ノードに、ネットワークパラメータライトを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestNetParamWrite( _
nNodeNo, HKE.FLnetCtrl.WriteNetParamEnum.Both, New HKE.FLnetCtrl.CommonArea(0, 8, 0, 64), "MonitorPC")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ネットワークパラメータライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ネットワークパラメータライト応答を受けた場合に発生します。
Private Sub FLnetCtrl_NetParamWriteReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamWriteRepliedEventArgs) Handles FLnetCtrl.NetParamWriteReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ネットワークパラメータライト異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [ネットライト要求]ボタンClick
private void btnReqNetWrite_Click(object sender, EventArgs e)
{
// ■他ノードに、ネットワークパラメータライトを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestNetParamWrite(
nNodeNo, HKE.FLnetCtrl.WriteNetParamEnum.Both, new HKE.FLnetCtrl.CommonArea(0, 8, 0, 64), "MonitorPC");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ネットワークパラメータライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ネットワークパラメータライト応答を受けた場合に発生します。
private void fLnetCtrl_NetParamWriteReplied(object sender, HKE.FLnetCtrl.NetParamWriteRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ネットワークパラメータライト異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.RequestProfileReadメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、プロファイルリードを要求します。
構文
[Visual Basic]
Public Function RequestProfileRead( _
ByVal nNodeNo As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestProfileRead(
byte nNodeNo
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～254)外 (2) nNodeNoの値が自ノード番号
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、プロファイルリードを要求します。

引数に基づきプロファイルリード要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからプロファイルリード応答メッセージを受信した時点で、ProfileReadRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[プロファイルリード要求]ボタンClick
Private Sub btnReqProfileRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqProfileRead.Click
'■他ノードに、プロファイルリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestProfileRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("プロファイルリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'プロファイルリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_ProfileReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.ProfileReadRepliedEventArgs) Handles FLnetCtrl.ProfileReadReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、プロファイルデータを取得します。
 Dim nBlock() As Byte = CType(e.Data, Byte())
MessageBox.Show("プロファイルリード正常応答[ノード番号=" + e.NodeNo.ToString() + ",データサイズ=" + nBlock.Length.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("プロファイルリード異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("プロファイルリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [プロファイルリード要求]ボタンClick
private void btnReqProfileRead_Click(object sender, EventArgs e)
{
// ■他ノードに、プロファイルリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestProfileRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("プロファイルリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// プロファイルリード応答を受けた場合に発生します。
private void fLnetCtrl_ProfileReadReplied(object sender, HKE.FLnetCtrl.ProfileReadRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、プロファイルデータを取得します。
 byte[] nBlock = (byte[])e.Data;
MessageBox.Show("プロファイルリード正常応答[ノード番号=" + e.NodeNo.ToString() + ",データサイズ=" + nBlock.Length.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("プロファイルリード異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("プロファイルリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.RequestRunStopメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、運転/停止指令を要求します。
構文
[Visual Basic]
Public Function RequestRunStop( _
ByVal nNodeNo As Byte, _
ByVal bRunCommand As Boolean _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestRunStop(
byte nNodeNo,
bool bRunCommand
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～254]
bRunCommand | (i) 指令内容[true=運転, false=停止]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～254)外 (2) nNodeNoの値が自ノード番号
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、運転/停止指令を要求します。

引数に基づき運転/停止指令要求メッセージを作成し、送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードから運転/停止指令応答メッセージを受信した時点で、RunStopRepliedイベントが発生します。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[運転指令要求]ボタンClick
Private Sub btnReqRunStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqRunStop.Click
'■他ノードに、運転指令を要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestRunStop(nNodeNo, True)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("運転指令要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'運転/停止指令応答を受けた場合に発生します。
Private Sub FLnetCtrl_RunStopReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.RunStopRepliedEventArgs) Handles FLnetCtrl.RunStopReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show(IIf(e.RunCommand, "運転", "停止") + "指令正常応答[ノード番号=" + e.NodeNo.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show(IIf(e.RunCommand, "運転", "停止") + "指令異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show(IIf(e.RunCommand, "運転", "停止") + "指令非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [運転指令要求]ボタンClick
private void btnReqRunStop_Click(object sender, EventArgs e)
{
// ■他ノードに、運転指令を要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestRunStop(nNodeNo, true);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("運転指令要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// 運転/停止指令応答を受けた場合に発生します。
private void fLnetCtrl_RunStopReplied(object sender, HKE.FLnetCtrl.RunStopRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show((e.RunCommand ? "運転" : "停止") + "指令正常応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
 MessageBox.Show((e.RunCommand ? "運転" : "停止") + "指令異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show((e.RunCommand ? "運転" : "停止") + "指令非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.RequestVendorMessageメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ベンダ固有メッセージを要求します。
構文
[Visual Basic]
Public Function RequestVendorMessage( _
ByVal nNodeNo As Byte, _
ByVal oVendorName As FLnetObject, _
ByVal oSubCode As FLnetObject, _
ByVal oData As FLnetObject _
) As MethodReturnEnum
[C#]
public MethodReturnEnum RequestVendorMessage(
byte nNodeNo,
FLnetObject oVendorName,
FLnetObject oSubCode,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 要求先ノード番号[1～255]
oVendorName | (i) ベンダ名[MAX10byte] ※11byte目以降のデータは無視します。10byteに満たない部分は、0x00を埋めます。
oSubCode | (i) サブコード[MAX6byte] ※7byte目以降のデータは無視します。6byteに満たない部分は、0x00を埋めます。
oData | (i) メッセージデータ[0～1024byte]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nNodeNoの値が範囲(1～255)外
(2) nNodeNoの値が自ノード番号
(3) oDataのサイズが範囲(0～1024[byte])外
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 送信先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ベンダ固有メッセージを要求します。

引数に基づきベンダ固有要求メッセージを作成し、送信します。nNodeNo=255を指定した場合、リンクに参加している全てのノードに対し、ベンダ固有要求メッセージを送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

要求先ノードからベンダ固有応答メッセージを受信した時点で、VendorMessageRepliedイベントが発生します。ただし、nNodeNo=255を指定した場合は、VendorMessageRepliedイベントは発生しません。

自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[ベンダ固有要求]ボタンClick
Private Sub btnReqVendor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqVendor.Click
'■他ノードに、ベンダ固有メッセージを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestVendorMessage(nNodeNo, "HITACHI-KE", "000001", "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ベンダ固有メッセージ要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ベンダ固有メッセージ応答を受けた場合に発生します。
Private Sub FLnetCtrl_VendorMessageReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.VendorMessageRepliedEventArgs) Handles FLnetCtrl.VendorMessageReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データを取得します。
 MessageBox.Show("ベンダ名=" + CType(e.VendorName, String) + ", サブコード=" + CType(e.SubCode, String) + _
System.Environment.NewLine + "データ=" + CType(e.Data, String) _
, "ベンダ固有メッセージ正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 MessageBox.Show("ベンダ名=" + CType(e.VendorName, String) + ", サブコード=" + CType(e.SubCode, String) + _
System.Environment.NewLine + "エラーコード=" + CType(e.Data, String) _
, "ベンダ固有メッセージ異常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ベンダ名=" + CType(e.VendorName, String) + ", サブコード=" + CType(e.SubCode, String) _
, "ベンダ固有メッセージ非実装応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End Select
End Sub

[C#]
// [ベンダ固有要求]ボタンClick
private void btnReqVendor_Click(object sender, EventArgs e)
{
// ■他ノードに、ベンダ固有メッセージを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestVendorMessage(nNodeNo, "HITACHI-KE", "000001", "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ベンダ固有メッセージ要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ベンダ固有メッセージ応答を受けた場合に発生します。
private void fLnetCtrl_VendorMessageReplied(object sender, HKE.FLnetCtrl.VendorMessageRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データを取得します。
 MessageBox.Show("ベンダ名=" + (string)e.VendorName + ", サブコード=" + (string)e.SubCode +
System.Environment.NewLine + "データ=" + (string)e.Data
, "ベンダ固有メッセージ正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 MessageBox.Show("ベンダ名=" + (string)e.VendorName + ", サブコード=" + (string)e.SubCode +
System.Environment.NewLine + "エラーコード=" + (string)e.Data
 , "ベンダ固有メッセージ異常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ベンダ名=" + (string)e.VendorName + ", サブコード=" + (string)e.SubCode
 , "ベンダ固有メッセージ非実装応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
}
}


FLnetCtrl.ResetCommonSendValueメソッド
要約　構文　戻り値　解説　サンプル
要約 コモンメモリ送信領域の値を、ゼロリセットします。
構文
[Visual Basic]
Public Function ResetCommonSendValue() As MethodReturnEnum
[C#]
public MethodReturnEnum ResetCommonSendValue()
戻り値 リセット結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
解説 コモンメモリ送信領域は、CommonSendプロパティで設定します。コモンメモリ送信領域のリセットは、リンク未参加状態でも可能です。

コモンメモリの値を更新しても、CommonChangedイベント、Common1Tagイベント、Common2Tagイベントは発生しません。

サンプル
[Visual Basic]
'[コモンリセット]ボタンClick
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
 '■送信領域の値をゼロリセットします。
 FLnetCtrl.ResetCommonSendValue()
End Sub
[C#]
// [コモンリセット]ボタンClick
private void btnReset_Click(object sender, EventArgs e)
{
// ■送信領域の値をゼロリセットします。
 fLnetCtrl.ResetCommonSendValue();
}


FLnetCtrl.SendUserMessageメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、透過形メッセージを送信します。
構文
[Visual Basic]
Public Function SendUserMessage( _
ByVal nNodeNo As Byte, _
ByVal nMessageNo As UShort, _
ByVal oData As FLnetObject_
) As MethodReturnEnum
[C#]
public MethodReturnEnum SendUserMessage(
byte nNodeNo,
ushort nMessageNo,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 送信先ノード番号[1～255]
nMessageNo | (i) メッセージ番号[0～59999, ※0～9999はリザーブ]
oData | (i) ユーザデータ[0～1024byte]
戻り値 送信結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter (1) nNodeNoの値が範囲(1～255)外
(2) nNodeNoの値が自ノード番号
(3) nMessageNoの値が範囲(0～59999)外
(4) oDataのサイズが範囲(0～1024[byte])外
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 送信先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、透過形メッセージを送信します。

引数に基づき透過形メッセージを作成し、送信します。nNodeNo=255を指定した場合、リンクに参加している全てのノードに対し、透過形メッセージを送信します。本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。

なお、応答のイベントはありません。自ノードおよび要求先ノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。

サンプル
[Visual Basic]
'[透過形]ボタンClick
Private Sub btnSendUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendUser.Click
'■他ノードに、透過形メッセージを送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'透過形メッセージを受けた場合に発生します。
Private Sub FLnetCtrl_UserMessageReceived(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.UserMessageReceivedEventArgs) Handles FLnetCtrl.UserMessageReceived
MessageBox.Show("メッセージ番号=" + e.MessageNo.ToString() + ", データ=" + CType(e.Data, String), _
"透過形メッセージ受信[ノード番号=" + e.NodeNo.ToString() + "]")
End Sub

[C#]
// [透過形]ボタンClick
private void btnSendUser_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージを送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// 透過形メッセージを受けた場合に発生します。
private void fLnetCtrl_UserMessageReceived(object sender, HKE.FLnetCtrl.UserMessageReceivedEventArgs e)
{
MessageBox.Show("メッセージ番号=" + e.MessageNo.ToString() + ", データ=" + (string)e.Data,
"透過形メッセージ受信[ノード番号=" + e.NodeNo.ToString() + "]");
}


FLnetCtrl.WriteByteBlockメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 バイトブロックデータの値を、ライトします。
構文
[Visual Basic]
Public Function WriteByteBlock( _
ByVal nAddress As UInteger, _
ByVal ParamArray nValue() As Byte _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteByteBlock(
uint nAddress,
params byte[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[byte単位, 0～0x1FFFFF]
nValue | (i) ライトするバイト値の配列
戻り値 ライト結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nValueがNull (2) nValueの要素数=0 (3) nAddressの値が範囲(0～0x1FFFFF)外 (4) ライト範囲がバイトブロックデータ領域範囲(0～0x1FFFFF[byte])外
解説 FL-net Controlが管理するバイトブロックデータの領域は、0～0x1FFFFF[byte]です。

nValue配列要素数分のバイト値をライトします。バイトブロックのライトは、リンク未参加状態でも可能です。

バイトブロックの値を更新しても、BlockChangedイベントは発生しません。

サンプル
[Visual Basic]
'[ブロックライト]ボタンClick
Private Sub btnWriteBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■バイトブロック:10byte目の値を50にします。
eRtc = FLnetCtrl.WriteByteBlock(10, 50)

'■バイトブロック:11byte目の値を255に、12byte目の値を1にします。
eRtc = FLnetCtrl.WriteByteBlock(11, 255, 1)

'■バイトブロック:13～20byteの値をライトします。
 Dim naByte(7) As Byte
naByte(0) = 100 '13byte目
naByte(1) = 0 '14byte目
naByte(2) = 1 '15byte目
naByte(3) = 10 '16byte目
naByte(4) = 127 '17byte目
naByte(5) = 128 '18byte目
naByte(6) = 254 '19byte目
naByte(7) = 255 '20byte目
eRtc = FLnetCtrl.WriteByteBlock(13, naByte)
End Sub
[C#]
// [ブロックライト]ボタンClick
private void btnWriteBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■バイトブロック:10byte目の値を50にします。
 eRtc = fLnetCtrl.WriteByteBlock(10, 50);

// ■バイトブロック:11byte目の値を255に、12byte目の値を1にします。
 eRtc = fLnetCtrl.WriteByteBlock(11, 255, 1);

// ■バイトブロック:13～20byteの値をライトします。
 byte[] naByte = new byte[8];
naByte[0] = 100; // 13byte目
 naByte[1] = 0; // 14byte目
 naByte[2] = 1; // 15byte目
 naByte[3] = 10; // 16byte目
 naByte[4] = 127; // 17byte目
 naByte[5] = 128; // 18byte目
 naByte[6] = 254; // 19byte目
 naByte[7] = 255; // 20byte目
 eRtc = fLnetCtrl.WriteByteBlock(13, naByte);
}


FLnetCtrl.WriteCommon1Bitメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、bit単位でライトします。
構文
[Visual Basic]
Public Function WriteCommon1Bit( _
ByVal nAddress As UShort, _
ByVal nBit As Byte, _
ByVal ParamArray bValue() As Boolean _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteCommon1Bit(
ushort nAddress,
byte nBit,
params bool[] bValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～511]
nBit | (i) 開始ビット[0～15]
bValue | (i) ライトするビット値[true=ON, false=OFF]の配列
戻り値 ライト結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) bValueがNull (2) bValueの要素数=0 (3) nAddressの値がコモンメモリ送信領域1範囲外 (4) nBitの値が範囲(0～15)外 (5) ライト範囲がコモンメモリ送信領域1範囲外 (6) モニタ中
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 bValue配列要素数分のビット値をライトします。

コモンメモリ値のライトは、コモンメモリ送信領域の範囲のみ可能です。コモンメモリ送信領域は、CommonSendプロパティで設定します。

コモンメモリのライトは、リンク未参加状態でも可能です。

コモンメモリの値を更新しても、CommonChangedイベントおよびCommon1Tagイベントは発生しません。
サンプル
[Visual Basic]
'[コモンライト]ボタンClick
Private Sub btnWriteCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■領域1:10word-0bit目の値をONにします。
 eRtc = FLnetCtrl.WriteCommon1Bit(10, 0, True)

 '■領域1:10word-7bit目の値をONに、bit目の値をOFFにします。
eRtc = FLnetCtrl.WriteCommon1Bit(10, 7, True, False)

'■領域1:11word目の奇数bitの値をONに、偶数bitの値をOFFにします。
 Dim baValue1(15) As Boolean
 For nLoop As Integer = 0 To 15
If (nLoop Mod 2) = 0 Then
baValue1(nLoop) = False
 Else
 baValue1(nLoop) = True
 End If
 Next nLoop
eRtc = FLnetCtrl.WriteCommon1Bit(11, 0, baValue1)
End Sub
[C#]
// [コモンライト]ボタンClick
private void btnWriteCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域1:10word-0bit目の値をONにします。
eRtc = fLnetCtrl.WriteCommon1Bit(10, 0, true);

// ■領域1:10word-7bit目の値をONに、8bit目の値をOFFにします。
eRtc = fLnetCtrl.WriteCommon1Bit(10, 7, true, false);

// ■領域1:11word目の奇数bitの値をONに、偶数bitの値をOFFにします。
 bool[] baValue1 = new bool[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
if ((nLoop % 2) == 0)
{
baValue1[nLoop] = false;
}
else
 {
baValue1[nLoop] = true;
}
}
eRtc = fLnetCtrl.WriteCommon1Bit(11, 0, baValue1);
}


FLnetCtrl.WriteCommon1Wordメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域1の値を、word単位でライトします。
構文
[Visual Basic]
Public Function WriteCommon1Word( _
ByVal nAddress As UShort, _
ByVal ParamArray nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteCommon1Word(
ushort nAddress,
params ushort[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～511]
nValue | (i) ライトするワード値の配列
戻り値 ライト結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nValueがNull (2) nValueの要素数=0 (3) nAddressの値がコモンメモリ送信領域1範囲外 (4) ライト範囲がコモンメモリ送信領域1範囲外 (5) モニタ中
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 nValue配列要素数分のワード値をライトします。

コモンメモリ値のライトは、コモンメモリ送信領域の範囲のみ可能です。コモンメモリ送信領域は、CommonSendプロパティで設定します。

コモンメモリのライトは、リンク未参加状態でも可能です。

コモンメモリの値を更新しても、CommonChangedイベントおよびCommon1Tagイベントは発生しません。

サンプル
[Visual Basic]
'[コモンライト]ボタンClick
Private Sub btnWriteCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

 '■領域1:12word目の値を500にします。
eRtc = FLnetCtrl.WriteCommon1Word(12, 500)

'■領域2:13word目の値を65535に、14word目の値を1にします。
eRtc = FLnetCtrl.WriteCommon1Word(13, 65535, 1)

'■領域:15～22wordの値をライトします。
 Dim naValue1(7) As UShort
 naValue1(0) = 100 '15word目
 naValue1(1) = 0 '16word目
 naValue1(2) = 1 '17word目
 naValue1(3) = 1000 '18word目
 naValue1(4) = 32767 '19word目
 naValue1(5) = 32768 '20word目
 naValue1(6) = 65534 '21word目
 naValue1(7) = 65535 '22word目
 eRtc = FLnetCtrl.WriteCommon1Word(15, naValue1)
End Sub
[C#]
// [コモンライト]ボタンClick
private void btnWriteCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域1:12word目の値を500にします。
eRtc = fLnetCtrl.WriteCommon1Word(12, 500);

// ■領域1:13word目の値を65535に、14word目の値を1にします。
 eRtc = fLnetCtrl.WriteCommon1Word(13, 65535, 1);

// ■領域1:15～22wordの値をライトします。
 ushort[] naValue1 = new ushort[8];
naValue1[0] = 100; // 15word目
 naValue1[1] = 0; // 16word目
 naValue1[2] = 1; // 17word目
 naValue1[3] = 1000; // 18word目
 naValue1[4] = 32767; // 19word目
 naValue1[5] = 32768; // 20word目
 naValue1[6] = 65534; // 21word目
 naValue1[7] = 65535; // 22word目
 eRtc = fLnetCtrl.WriteCommon1Word(15, naValue1);
}


FLnetCtrl.WriteCommon2Wordメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 コモンメモリ領域2の値を、word単位でライトします。
構文
[Visual Basic]
Public Function WriteCommon2Word( _
ByVal nAddress As UShort, _
ByVal ParamArray nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteCommon2Word(
ushort nAddress,
params ushort[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～8191]
nValue | (i) ライトするワード値の配列
戻り値 ライト結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nValueがNull (2) nValueの要素数=0 (3) nAddressの値がコモンメモリ送信領域2範囲外 (4) ライト範囲がコモンメモリ送信領域2範囲外 (5) モニタ中
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない。
解説 nValue配列要素数分のワード値をライトします。

コモンメモリ値のライトは、コモンメモリ送信領域の範囲のみ可能です。コモンメモリ送信領域は、CommonSendプロパティで設定します。

コモンメモリのライトは、リンク未参加状態でも可能です。

コモンメモリの値を更新しても、CommonChangedイベントおよびCommon2Tagイベントは発生しません。

サンプル
[Visual Basic]
'[コモンライト]ボタンClick
Private Sub btnWriteCommon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteCommon.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■領域2:10word目の値を500にします。
eRtc = FLnetCtrl.WriteCommon2Word(10, 500)

 '■領域2:11word目の値を65535に、12word目の値を1にします。
eRtc = FLnetCtrl.WriteCommon2Word(11, 65535, 1)

'■領域2:13～20wordの値をライトします。
 Dim naValue2(7) As UShort
naValue2(0) = 100 '13word目
naValue2(1) = 0 '14word目
naValue2(2) = 1 '15word目
naValue2(3) = 1000 '16word目
naValue2(4) = 32767 '17word目
naValue2(5) = 32768 '18word目
naValue2(6) = 65534 '19word目
naValue2(7) = 65535 '20word目
eRtc = FLnetCtrl.WriteCommon2Word(13, naValue2)
End Sub
[C#]
// [コモンライト]ボタンClick
private void btnWriteCommon_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

// ■領域2:10word目の値を500にします。
eRtc = fLnetCtrl.WriteCommon2Word(10, 500);

// ■領域2:11word目の値を65535に、12word目の値を1にします。
eRtc = fLnetCtrl.WriteCommon2Word(11, 65535, 1);

// ■領域2:13～20wordの値をライトします。
 ushort[] naValue2 = new ushort[8];
naValue2[0] = 100; // 13word目
naValue2[1] = 0; // 14word目
naValue2[2] = 1; // 15word目
 naValue2[3] = 1000; // 16word目
 naValue2[4] = 32767; // 17word目
 naValue2[5] = 32768; // 18word目
 naValue2[6] = 65534; // 19word目
 naValue2[7] = 65535; // 20word目
 eRtc = fLnetCtrl.WriteCommon2Word(13, naValue2);
}


FLnetCtrl.WriteWordBlockメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 ワードブロックデータの値を、ライトします。
構文
[Visual Basic]
Public Function WriteWordBlock( _
ByVal nAddress As UInteger, _
ByVal ParamArray nValue() As UShort _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteWordBlock(
uint nAddress,
params ushort[] nValue
)
引数
名前 | 説明
nAddress | (i) 開始アドレス[word単位, 0～0x1FFFFF]
nValue | (i) ライトするワード値の配列
戻り値 ライト結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nValueがNull (2) nValueの要素数=0 (3) nAddressの値が範囲(0～0x1FFFFF)外 (4) ライト範囲がワードブロックデータ領域範囲(0～0x1FFFFF[word])外
解説 FL-net Controlが管理するワードブロックデータの領域は、0～0x1FFFFF[word]です。

nValue配列要素数分のワード値をライトします。ワードブロックのライトは、リンク未参加状態でも可能です。

ワードブロックの値を更新しても、BlockChangedイベントは発生しません。

サンプル
[Visual Basic]
'[ブロックライト]ボタンClick
Private Sub btnWriteBlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteBlock.Click
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'■ワードブロック:10word目の値を500にします。
 eRtc = FLnetCtrl.WriteWordBlock(10, 500)

'■ワードブロック:11word目の値を65535に、12word目の値を1にします。
 eRtc = FLnetCtrl.WriteWordBlock(11, 65535, 1)

'■ワードブロック:13～20wordの値をライトします。
 Dim naWord(7) As UShort
 naWord(0) = 10000 '13word目
 naWord(1) = 0 '14word目
 naWord(2) = 1 '15word目
 naWord(3) = 1000 '16word目
 naWord(4) = 32767 '17word目
 naWord(5) = 32768 '18word目
 naWord(6) = 65534 '19word目
 naWord(7) = 65535 '20word目
 eRtc = FLnetCtrl.WriteWordBlock(13, naWord)
End Sub
[C#]
// [ブロックライト]ボタンClick
private void btnWriteBlock_Click(object sender, EventArgs e)
{
HKE.FLnetCtrl.MethodReturnEnum eRtc;

 // ■ワードブロック:10word目の値を500にします。
 eRtc = fLnetCtrl.WriteWordBlock(10, 500);

 // ■ワードブロック:11word目の値を65535に、12word目の値を1にします。
 eRtc = fLnetCtrl.WriteWordBlock(11, 65535, 1);

 // ■ワードブロック:13～20wordの値をライトします。
 ushort[] naWord = new ushort[8];
 naWord[0] = 10000; // 13word目
 naWord[1] = 0; // 14word目
 naWord[2] = 1; // 15word目
 naWord[3] = 1000; // 16word目
 naWord[4] = 32767; // 17word目
 naWord[5] = 32768; // 18word目
 naWord[6] = 65534; // 19word目
 naWord[7] = 65535; // 20word目
 eRtc = fLnetCtrl.WriteWordBlock(13, naWord);
}


FLnetCtrl.ReplyWriteNetParamメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、ネットワークパラメータライトメッセージを応答します。
構文
[Visual Basic]
Public Function ReplyWriteNetParam ( _
nNodeNo As Byte, _
eResult As ReplyMessageResultEnum, _
oData As FLnetObject _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReplyWriteNetParam(
byte nNodeNo,
ReplyMessageResultEnum eResult,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 応答先ノード番号[1～254]
eResult | (i) 応答結果
oData | (i)メッセージデータ[0～1024byte]
戻り値 応答結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter

(1) nNodeNoの値が範囲(1～254)外
(2) nNodeNoの値が自ノード番号

(3) eResultの値が範囲(ReplyMessageResultEnum列挙体)外
(4) oDataのサイズが範囲(0～1024[byte])外

MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 送信先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、ネットワークパラメータライトメッセージを応答します。
引数に基づきネットワークパラメータライト応答メッセージを作成し、送信します。
ネットワークパラメータライトメッセージの要求は、NetParamWriteRequestedイベントにて通知されます。
要求内容を判定して、本メソッドを発行してください。

本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。
自ノードおよび応答先のノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。
サンプル
[Visual Basic]

'ネットワークパラメータライトメッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_NetParamWriteRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamWriteRequestedEventArgs) Handles FLnetCtrl.NetParamWriteRequested

'応答結果

Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal

'応答データ

Dim oData As New HKE.FLnetCtrl.FLnetObject

'判定結果

Dim bRtc As Boolean

'要求内容を判定します。

'コモンメモリ変更要求

If e.CommonFlg = True Then

'コモンメモリを判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合は、応答データはありません。

Else

'変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error

oData = "Error"

End If

End If

'ネットワークパラメータライトメッセージを応答します。

FLnetCtrl.ReplyWriteNetParam(e.NodeNo, eResult, oData)

End Sub

[C#]

// ネットワークパラメータライトメッセージ要求を受けた場合に発生します。

private void fLnetCtrl_NetParamWriteRequested(object sender, HKE.FLnetCtrl.NetParamWriteRequestedEventArgs e)

{

// 応答結果

HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;

// 応答データ

HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 判定結果

bool bRtc;

// 要求内容を判定します。

// コモンメモリ変更要求

if (e.CommonFlg == true)

{

// コモンメモリを判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合は、応答データはありません。

}

else

{

// 変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;

oData = "Error";

}

}

// ネットワークパラメータライトメッセージを応答します。

fLnetCtrl.ReplyWriteNetParam(e.NodeNo, eResult, oData);

}


FLnetCtrl.ReplyRunStopメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 他ノードへ、運転/停止指令メッセージを応答します。
構文
[Visual Basic]
Public Function ReplyRunStop ( _
nNodeNo As Byte, _
bRunCommand As Boolean, _
eResult As ReplyMessageResultEnum, _
oData As FLnetObject _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReplyRunStop(
byte nNodeNo,
bool bRunCommand,
ReplyMessageResultEnum eResult,
FLnetObject oData
)
引数
名前 | 説明
nNodeNo | (i) 応答先ノード番号[1～254]
bRunCommand | (i) 指令内容[true=運転, false=停止]
eResult | (i)応答結果
oData | (i)メッセージデータ[0～1024byte]
戻り値 応答結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter

(1) nNodeNoの値が範囲(1～254)外
(2) nNodeNoの値が自ノード番号

(3) eResultの値が範囲(ReplyMessageResultEnum列挙体)外
(4) oDataのサイズが範囲(0～1024[byte])外

MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中/モニタ中)状態
TargetNodeLinkOut | 要求先ノードリンク未参加状態
SendBusy | メッセージ送信ビジー
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 他ノードへ、運転/停止指令メッセージを応答します。
引数に基づき運転/停止指令応答メッセージを作成し、送信します。
ネットワークパラメータライトメッセージの要求は、RunStopRequestedイベントにて通知されます。
要求内容を判定して、本メソッドを発行してください。

本メソッドが正常終了すると、メッセージ送信中の状態となり、メッセージ送信完了時にSendCompletedイベントが発生します。
自ノードおよび応答先のノードがリンクに未参加の場合はエラーとなり、メッセージの送信は行いません。
サンプル
[Visual Basic]

'運転/停止指令メッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_RunStopRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.RunStopRequestedEventArgs) Handles FLnetCtrl.RunStopRequested

'応答結果

Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal

'応答データ

Dim oData As New HKE.FLnetCtrl.FLnetObject

'判定結果

Dim bRtc As Boolean

'運転/停止指令を判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合は、応答データはありません。

Else

'変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error

oData = "Error"

End If

'運転/停止指令メッセージを応答します。

FLnetCtrl.ReplyRunStop(e.NodeNo, e.RunCommand, eResult, oData)

End Sub

[C#]

// 運転/停止指令メッセージ要求を受けた場合に発生します。

private void fLnetCtrl_RunStopRequested(object sender, HKE.FLnetCtrl.RunStopRequestedEventArgs e)

{

// 応答結果

HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;

// 応答データ

HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 判定結果

bool bRtc;

// 運転/停止指令を判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合は、応答データはありません。

}

else

{

// 変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;

oData = "Error";

}

// 運転/停止指令メッセージを応答します。

fLnetCtrl.ReplyRunStop(e.NodeNo, e.RunCommand, eResult, oData);

}


FLnetCtrl.GetMyNodeLogV3メソッド
要約　構文　引数　戻り値　解説　サンプル
要約 自ノードログデータを取得します。(FL-net Ver.3対応版)
構文
[Visual Basic]
Public Function GetMyNodeLogV3( _
ByRef oLog As LogDataV3 _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetMyNodeLogV3(
out LogDataV3 oLog
)
引数
名前 | 説明
oLog | (o) 取得した自ノードログデータ(V3)
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 自ノードログデータを取得します。GetMyNodeLogメソッドの拡張版で、FL-net Ver.2およびVer.3のログデータを取得します。
他ノードのログデータを取得する場合は、RequestLogReadメソッドを発行します。
自ノードログデータをクリアする場合は、ClearMyNodeLogメソッドを発行します。
サンプル
[Visual Basic]

'[ログ取得]ボタン Click

Private Sub btnGetLogV3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetLogV3.Click

'■自ノードのログデータを取得します。

Dim oLog As HKE.FLnetCtrl.LogDataV3

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetMyNodeLogV3(oLog)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("受信エラー検出時間=" + oLog.Cyclic.RecvCyclicErrTime.ToString() + _

", 汎用通信データ送信元ログ測定時間=" + oLog.IP.Time.ToString())

Else

MessageBox.Show("ログデータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [ログ取得]ボタンClick

private void btnGetLogV3_Click(object sender, EventArgs e)

{

// ■自ノードのログデータを取得します。

HKE.FLnetCtrl.LogDataV3 oLog;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetMyNodeLogV3(out oLog);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("受信エラー検出時間=" + oLog.Cyclic.RecvCyclicErrTime.ToString() +

", 汎用通信データ送信元ログ測定時間=" + oLog.IP.Time.ToString());

}

else

{

MessageBox.Show("ログデータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.GetAllSlaveNodesLinkStateメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 全スレーブノードのリンク参加状況を取得します。
構文
[Visual Basic]
Public Function GetAllSlaveNodesLinkState( _
ByRef nNodes() As SlaveLinkStateEnum _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetAllSlaveNodesLinkState(
out SlaveLinkStateEnum[] nNodes
)
引数
名前 | 説明
nNodes | (o) 取得した全スレーブノードのリンク参加状況の配列[要素数=254]
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常(モニタ中含む)
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中)状態
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 全スレーブノードのリンク参加状況(未参加/参加中/スレーブ以外)の一覧を取得します。
サンプル
[Visual Basic]

'スレーブノードがリンクに参加した場合に発生します。

Private Sub FLnetCtrl_LinkInSlave(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SlaveEventArgs) Handles FLnetCtrl.LinkInSlave

Dim eState() As HKE.FLnetCtrl.SlaveLinkStateEnum = {}

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetAllSlaveNodesLinkState(eState)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'参加ノード数を調べます。

Dim nNodes As Integer

For nLoop As Integer = 0 To 253 Step 1

'参加状況判定

If eState(nLoop).Equals(HKE.FLnetCtrl.SlaveLinkStateEnum.LinkIn) Then

nNodes = nNodes + 1

End If

Next nLoop

MessageBox.Show("リンク参加スレーブノード数は、" + nNodes.ToString() + "ノードです。")

End If

End Sub

[C#]

// スレーブノードがリンクに参加した場合に発生します。

private void fLnetCtrl_LinkInSlave(object sender, HKE.FLnetCtrl.SlaveEventArgs e)

{

HKE.FLnetCtrl.SlaveLinkStateEnum[] eState;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetAllSlaveNodesLinkState(out eState);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 参加ノード数を調べます。

int nNodes = 0;

for (int nLoop = 0; nLoop < 254; nLoop++)

{

// 参加状況判定

if (eState[nLoop].Equals(HKE.FLnetCtrl.SlaveLinkStateEnum.LinkIn))

{

nNodes++;

}

}

MessageBox.Show("リンク参加スレーブノード数は、" + nNodes.ToString() + "ノードです。");

}

}


FLnetCtrl.GetMeasureTokenTimeメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 トークン保持時間測定結果を取得します。
構文
[Visual Basic]
Public Function GetMeasureTokenTime ( _
ByRef oLog As LogTokenTime _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetMeasureTokenTime(
out LogTokenTime oLog
)
引数
名前 | 説明
oLog | (o)取得したトークン保持時間測定結果
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 トークン保持時間測定結果を取得します。
取得される結果はMeasureTokenTimeプロパティにfalse(停止)を設定した時点のものです。
サンプル
[Visual Basic]

'[トークン保持時間測定結果取得]ボタンClick

Private Sub btnGetMeasureTokenTime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetMeasureTokenTime.Click

'■トークン保持時間測定結果を取得します。

Dim oLog As HKE.FLnetCtrl.LogTokenTime

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetMeasureTokenTime(oLog)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("トークン破棄回数=" + oLog.Destroy.ToString() + _

", トークン破棄検出直近の時間=" + oLog.DestroyTime.ToString())

Else

MessageBox.Show("トークン保持時間測定結果の取得に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [トークン保持時間測定結果取得]ボタンClick

private void btnGetMeasureTokenTime_Click(object sender, EventArgs e)

{

// ■トークン保持時間測定結果を取得します。

HKE.FLnetCtrl.LogTokenTime oLog;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetMeasureTokenTime(out oLog);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("トークン破棄回数=" + oLog.Destroy.ToString() +

", トークン破棄検出直近の時間=" + oLog.DestroyTime.ToString());

}

else

{

MessageBox.Show("トークン保持時間測定結果の取得に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.GetMeasureDataLogメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 汎用通信データ送信元ログの測定結果を取得します。
構文
[Visual Basic]
Public Function GetMeasureDataLog ( _
ByRef oLog As LogIPV3 _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetMeasureDataLog(
out LogIPV3 oLog
)
引数
名前 | 説明
oLog | (o)取得した汎用通信データ送信元ログの測定結果
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 汎用通信データ送信元ログの測定結果を取得します。
取得される結果はMeasureDataLogプロパティにfalse(停止)を設定した時点のものです。
サンプル
[Visual Basic]

'[汎用通信データ送信元ログの測定結果取得]ボタンClick

Private Sub btnGetMeasureDataLog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetMeasureDataLog.Click

'■汎用通信データ送信元ログの測定結果を取得します。

Dim oLog As HKE.FLnetCtrl.LogIPV3

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetMeasureDataLog(oLog)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("汎用通信データ送信元ログ測定時間=" + oLog.Time.ToString() + _

", IP1アドレス=" + oLog.Ip1Address.ToString())

Else

MessageBox.Show("汎用通信データ送信元ログの測定結果の取得に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [汎用通信データ送信元ログの測定結果取得]ボタンClick

private void btnGetMeasureDataLog_Click(object sender, EventArgs e)

{

// ■汎用通信データ送信元ログの測定結果を取得します。

HKE.FLnetCtrl.LogIPV3 oLog;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetMeasureDataLog(out oLog);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("汎用通信データ送信元ログ測定時間=" + oLog.Time.ToString() +

", IP1アドレス=" + oLog.Ip1Address.ToString());

}

else

{

MessageBox.Show("汎用通信データ送信元ログの測定結果の取得に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.SetIOメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 IO割付情報を設定します。
構文
[Visual Basic]
Public Function SetIO ( _
oIO As IOInfo(), _
ByRef eError As IOErrorEnum() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum SetIO(
IOInfo[] oIO,
out IOErrorEnum[] eError
)
引数
名前 | 説明
oIO | (i)設定するIO割付情報
eError | (o)エラー情報
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) oIOに不正型の指定 (2) oIOのサイズが範囲外 (3) eErrorに不正型の指定 (4) eErrorのサイズが範囲外
MyNodeLinkIn | 自ノードリンク参加(参加中/参加待機中/モニタ中)状態
SettingTool | 設定ツールから設定中
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説

IO割付情報の設定を行います。IO割付を設定する前に、あらかじめ自ノードのコモンメモリ送信領域およびノード番号を設定しておく必要があります。

リンク参加中は、設定できません。

本メソッドをコールして、正常終了すると前回の設定はクリアされ新しい設定で上書きされます。

そのため、IO割付設定を追加する使い方はできません。制御スレーブノード数分一括で設定してください。

IO割付け設定を解除するには、oIOのサイズを0にして本メソッドをコールしてください。

引数のeError配列には、引数のoIOで設定した同じ並びでエラー情報が格納されます。

サンプル
[Visual Basic]

'[IO割付情報設定]ボタンClick

Private Sub btnSetIO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetIO.Click

'■IO割付情報を設定します。

Dim oIO(1) As HKE.FLnetCtrl.IOInfo

Dim eError() As HKE.FLnetCtrl.IOErrorEnum = {}

oIO(0).NodeNo = 1

oIO(0).InDataAddress = 16

oIO(0).InDataArea = 1

oIO(0).InDataSize = 4

oIO(0).InStateAddress = 256

oIO(0).InStateArea = 2

oIO(0).OutDataAddress = 32

oIO(0).OutDataArea = 1

oIO(0).OutDataSize = 4

oIO(0).OutStateAddress = 272

oIO(0).OutStateArea = 2

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.SetIO(oIO, eError)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("IO割付情報の設定に成功しました。")

Else

MessageBox.Show("IO割付情報の設定に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

'[IO割付情報解除]ボタンClick

Private Sub btnSetIO_Click2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetIO.Click

'■IO割付情報を解除します。

Dim oIO(0) As HKE.FLnetCtrl.IOInfo

Dim eError() As HKE.FLnetCtrl.IOErrorEnum

FLnetCtrl.SetIO(oIO, eError)

End Sub
[C#]

// [IO割付情報設定]ボタンClick

private void btnSetIO_Click(object sender, EventArgs e)

{

// ■IO割付情報を設定します。

HKE.FLnetCtrl.IOInfo[] oIO = new HKE.FLnetCtrl.IOInfo[1];

HKE.FLnetCtrl.IOErrorEnum[] eError;

oIO[0].NodeNo = 1;

oIO[0].InDataAddress = 16;

oIO[0].InDataArea = 1;

oIO[0].InDataSize = 4;

oIO[0].InStateAddress = 256;

oIO[0].InStateArea = 2;

oIO[0].OutDataAddress = 32;

oIO[0].OutDataArea = 1;

oIO[0].OutDataSize = 4;

oIO[0].OutStateAddress = 272;

oIO[0].OutStateArea = 2;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.SetIO(oIO, out eError);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("IO割付情報の設定に成功しました。");

}

else

{

MessageBox.Show("IO割付情報の設定に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}

// [IO割付情報 解除]ボタンClick

private void btnSetIO_Click2(object sender, EventArgs e)

{

// ■IO割付情報を 解除します。

HKE.FLnetCtrl.IOInfo[] oIO = new HKE.FLnetCtrl.IOInfo[0];

HKE.FLnetCtrl.IOErrorEnum[] eError;

fLnetCtrl.SetIO(oIO, out eError);

}


FLnetCtrl.GetIOメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 IO割付情報を取得します。
構文
[Visual Basic]
Public Function GetIO ( _
ByRef oIO As IOInfo() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetIO(
out IOInfo[] oIO
)
引数
名前 | 説明
oIO | (o)取得するIO割付情報
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
SettingTool | 設定ツールから設定中(取得は可能)
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付情報を取得します。
サンプル
[Visual Basic]

'[IO割付情報取得]ボタンClick

Private Sub btnGetIO_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetIO.Click

'■IO割付情報を取得します。

Dim oIO() As HKE.FLnetCtrl.IOInfo = {}

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetIO(oIO)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("スレーブ数=" + oIO.Length.ToString())

Else

MessageBox.Show("IO割付情報の取得に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [IO割付情報取得]ボタンClick

private void btnGetIO_Click(object sender, EventArgs e)

{

// ■IO割付情報を取得します。

HKE.FLnetCtrl.IOInfo[] oIO;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetIO(out oIO);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("スレーブ数=" + oIO.Length.ToString());

}

else

{

MessageBox.Show("IO割付情報の取得に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.GetInputStatusメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 入力ステータスを取得します。
構文
[Visual Basic]
Public Function GetInputStatus ( _
nNodeNo As Byte, _
ByRef oStatus As SlaveInputStatus _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetInputStatus(
byte nNodeNo,
out SlaveInputStatus oStatus
)
引数
名前 | 説明
nNodeNo | (i)取得先スレーブノード番号[1～249]
oStatus | (o)取得するステータス
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 対象スレーブノードの入力ステータスを取得します。
サンプル
[Visual Basic]

'[入力ステータス取得]ボタンClick

Private Sub btnGetInputStatus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetInputStatus.Click

'■入力ステータスを取得します。

Dim oStatus As New HKE.FLnetCtrl.SlaveInputStatus

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetInputStatus(1, oStatus)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("入力点数=" + oStatus.InputStatus.InputPoint.ToString())

Else

MessageBox.Show("入力ステータスの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [入力ステータス取得]ボタンClick

private void btnGetInputStatus_Click(object sender, EventArgs e)

{

// ■入力ステータスを取得します。

HKE.FLnetCtrl.SlaveInputStatus oStatus;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetInputStatus(1, out oStatus);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("入力点数=" + oStatus.InputStatus.InputPoint.ToString());

}

else

{

MessageBox.Show("入力ステータスの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.SetOutputStatusメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力ステータスを設定します。
構文
[Visual Basic]
Public Function SetOutputStatus ( _
nNodeNo As Byte, _
oStatus As SlaveOutputStatus, _
bPointFlg As Boolean _
) As MethodReturnEnum
[C#]
public MethodReturnEnum SetOutputStatus(
byte nNodeNo,
SlaveOutputStatus oStatus,
bool bPointFlg
)
引数
名前 | 説明
nNodeNo | (i)設定先スレーブノード番号[1～249]
oStatus | (i)設定するステータス
bPointFlg | (i)入出力点数更新フラグ[true=更新,false=非更新]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 対象スレーブノードの出力ステータスを設定します。
サンプル
[Visual Basic]

'[出力ステータス設定]ボタンClick

Private Sub btnSetOutputStatus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetOutputStatus.Click

'■出力ステータスを設定します。

Dim oStatus As HKE.FLnetCtrl.SlaveOutputStatus

oStatus.RemoteControl = True

oStatus.OutputStatus.InputPoint = 10

oStatus.OutputStatus.OutputPoint = 10

oStatus.OutputStatus.MasterNodeNo = 100

oStatus.OutputStatus.MasterOffOutput = True

oStatus.OutputStatus.RemoteOffInput = False

oStatus.OutputStatus.RemoteOffOutput = False

oStatus.OutputStatus.FreeData = New UShort(6){}

oStatus.OutputStatus.GeneralPurpose = New UShort(6){}

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.SetOutputStatus(1, oStatus, True)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("出力ステータスの設定に成功しました")

Else

MessageBox.Show("出力ステータスの設定に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力ステータス設定]ボタンClick

private void btnSetOutputStatus_Click(object sender, EventArgs e)

{

// ■出力ステータスを設定します。

HKE.FLnetCtrl.SlaveOutputStatus oStatus;

oStatus.RemoteControl = true;

oStatus.OutputStatus.InputPoint = 10;

oStatus.OutputStatus.OutputPoint = 10;

oStatus.OutputStatus.MasterNodeNo = 100;

oStatus.OutputStatus.MasterOffOutput = true;

oStatus.OutputStatus.RemoteOffInput = false;

oStatus.OutputStatus.RemoteOffOutput = false;

oStatus.OutputStatus.FreeData = new ushort[6];

oStatus.OutputStatus.GeneralPurpose = new ushort[6];

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.SetOutputStatus(1, oStatus, true);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("出力ステータスの設定に成功しました");

}

else

{

MessageBox.Show("出力ステータスの設定に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.GetOutputStatusメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力ステータスを取得します。
構文
[Visual Basic]
Public Function GetOutputStatus ( _
nNodeNo As Byte, _
ByRef oStatus As SlaveOutputStatus_
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetOutputStatus(
byte nNodeNo,
out SlaveOutputStatus oStatus
)
引数
名前 | 説明
nNodeNo | (i)取得先スレーブノード番号[1～249]
oStatus | (o)取得するステータス
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 対象スレーブノードの出力ステータスを取得します。
サンプル
[Visual Basic]

'[出力ステータス取得]ボタンClick

Private Sub btnGetOutputStatus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetOutputStatus.Click

'■出力ステータスを取得します。

Dim oStatus As New HKE.FLnetCtrl.SlaveOutputStatus

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetOutputStatus(1, oStatus)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

MessageBox.Show("出力点数=" + oStatus.OutputStatus.OutputPoint.ToString())

Else

MessageBox.Show("出力ステータスの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力ステータス取得]ボタンClick

private void btnGetOutputStatus_Click(object sender, EventArgs e)

{

// ■出力ステータスを取得します。

HKE.FLnetCtrl.SlaveOutputStatus oStatus;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetOutputStatus(1, out oStatus);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

MessageBox.Show("出力点数=" + oStatus.OutputStatus.OutputPoint.ToString());

}

else

{

MessageBox.Show("出力ステータスの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadInputBitDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 入力データを連続ビット読出しします。
構文
[Visual Basic]
Public Function ReadInputBitData ( _
nNodeNo As Byte, _
nStartAddr As UInteger, _
nSize As UInteger, _
ByRef bData As Boolean() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadInputBitData(
byte nNodeNo,
uint nStartAddr,
uint nSize,
out bool[] bData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nStartAddr | (i)読出し先の相対アドレス[ビット単位]
nSize | (i)読出し先の点数[ビット単位]
bData | (o)読み出したデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nStartAddrまたはnSizeが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した入力データ領域の値をビット単位で連続に読出します。nStartAddrは入力データ領域の先頭からのオフセットになります。
入力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はbData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[入力データ読出し]ボタンClick

Private Sub btnReadInputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadInputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

'■16bit目から10bit読出します。

Dim baValue1() As Boolean = {}

eRtc = FLnetCtrl.ReadInputBitData(1, 16, 10, baValue1)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("16bit目の値=" + baValue1(0).ToString() + ", 25bit目の値=" + baValue1(9).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [入力データ読出し]ボタンClick

private void btnReadInputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

// ■16bit目から10bit読出します。

bool[] baValue1;

eRtc = fLnetCtrl.ReadInputBitData(1, 16, 10, out baValue1);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("16bit目の値=" + baValue1[0].ToString() + ", 25bit目の値=" + baValue1[9].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadInputRandomBitDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 入力データをランダムビット読出しします。
構文
[Visual Basic]
Public Function ReadInputRandomBitData ( _
nNodeNo As Byte, _
nAddr As UInteger(), _
ByRef bData As Boolean() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadInputRandomBitData(
byte nNodeNo,
uint[] nAddr,
out bool[] bData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nAddr | (i)読出し先の相対アドレスの配列[ビット単位]
bData | (o)読み出したデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nAddrが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した入力データ領域の値をビット単位でランダムに読出します。nAddr配列に入力データ領域の相対アドレスを指定します。
bData配列にはnAddr配列順に読み出した値が格納されます。
入力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はbData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[入力データ読出し]ボタンClick

Private Sub btnReadInputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadInputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

'■0bit,4bit,15bit,32bit,64bit目の値を読出します。

Dim nAddr() As UInt32 = {0, 4, 15, 32, 64}

Dim baValue1() As Boolean = {}

eRtc = FLnetCtrl.ReadInputRandomBitData(1, nAddr, baValue1)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("0bit目の値=" + baValue1(0).ToString() + ", 64bit目の値=" + baValue1(4).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [入力データ読出し]ボタンClick

private void btnReadInputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

// ■0bit,4bit,15bit,32bit,64bit目の値を読出します。

uint[] nAddr = {0, 4, 15, 32, 64};

bool[] baValue1;

eRtc = fLnetCtrl.ReadInputRandomBitData(1, nAddr, out baValue1);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("0bit目の値=" + baValue1[0].ToString() + ", 64bit目の値=" + baValue1[4].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadInputWordDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 入力データを連続ワード読出しします。
構文
[Visual Basic]
Public Function ReadInputWordData ( _
nNodeNo As Byte, _
nStartAddr As UInteger, _
nSize As UInteger, _
ByRef nData As UShort() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadInputWordData(
byte nNodeNo,
uint nStartAddr,
uint nSize,
out ushort[] nData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nStartAddr | (i)読出し先の相対アドレス[ワード単位]
nSize | (i)読出し先のサイズ[ワード単位]
nData | (o)読み出したデータ[ワード単位]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nStartAddrまたはnSizeが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した入力データ領域の値をワード単位で連続に読出します。nStartAddrは入力データ領域の先頭からのオフセットになります。
入力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はnData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[入力データ読出し]ボタンClick

Private Sub btnReadInputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadInputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

'■1ワード目から3ワード読出します。

Dim nValue() As UShort = {}

eRtc = FLnetCtrl.ReadInputWordData(1, 1, 3, nValue)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("1ワード目の値=" + nValue(0).ToString() + ", 3ワード目の値=" + nValue(2).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [入力データ読出し]ボタンClick

private void btnReadInputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

// ■1ワード目から3ワード読出します。

ushort[] nValue;

eRtc = fLnetCtrl.ReadInputWordData(1, 1, 3, out nValue);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("1ワード目の値=" + nValue[0].ToString() + ", 3ワード目の値=" + nValue[2].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadInputRandomWordDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 入力データをランダムワード読出しします。
構文
[Visual Basic]
Public Function ReadInputRandomWordData ( _
nNodeNo As Byte, _
nAddr As UInteger(), _
ByRef nData As UShort() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadInputRandomWordData(
byte nNodeNo,
uint[] nAddr,
out ushort[] nData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nAddr | (i)読出し先の相対アドレスの配列[ワード単位]
nData | (o)読み出したデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nAddrが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した入力データ領域の値をワード単位でランダムに読出します。nAddr配列に入力データ領域の相対アドレスを指定します。
nData配列にはnAddr配列順に読み出した値が格納されます。
入力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はbData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[入力データ読出し]ボタンClick

Private Sub btnReadInputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadInputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

'■0word,1word,4word目の値を読出します。

Dim nAddr() As UInt32 = {0, 1, 4}

Dim nValue() As UShort = {}

eRtc = FLnetCtrl.ReadInputRandomWordData(1, nAddr, nValue)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("0word目の値=" + nValue(0).ToString() + ", 4word目の値=" + nValue(2).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [入力データ読出し]ボタンClick

private void btnReadInputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,入力データ領域=1,入力データアドレス=0[word],入力データサイズ=10[word]

// ■0word,1word,4word目の値を読出します。

uint[] nAddr = {0, 1, 4};

ushort[] nValue;

eRtc = fLnetCtrl.ReadInputRandomWordData(1, nAddr, out nValue);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("0word目の値=" + nValue[0].ToString() + ", 4word目の値=" + nValue[2].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadOutputBitDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データを連続ビット読出しします。
構文
[Visual Basic]
Public Function ReadOutputBitData ( _
nNodeNo As Byte, _
nStartAddr As UInteger, _
nSize As UInteger, _
ByRef bData As Boolean() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadOutputBitData(
byte nNodeNo,
uint nStartAddr,
uint nSize,
out bool[] bData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nStartAddr | (i)読出し先の相対アドレス[ビット単位]
nSize | (i)読出し先の点数[ビット単位]
bData | (o)読み出したデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nStartAddrまたはnSizeが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IIO割付で設定した出力データ領域の値をビット単位で連続に読出します。nStartAddrは出力データ領域の先頭からのオフセットになります。
出力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はbData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[出力データ読出し]ボタンClick

Private Sub btnReadOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■16bit目から10bit読出します。

Dim baValue1() As Boolean = {}

eRtc = FLnetCtrl.ReadOutputBitData(1, 16, 10, baValue1)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("16bit目の値=" + baValue1(0).ToString() + ", 25bit目の値=" + baValue1(9).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ読出し]ボタンClick

private void btnReadOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■16bit目から10bit読出します。

bool[] baValue1;

eRtc = fLnetCtrl.ReadOutputBitData(1, 16, 10, out baValue1);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("16bit目の値=" + baValue1[0].ToString() + ", 25bit目の値=" + baValue1[9].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadOutputRandomBitDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データをランダムビット読出しします。
構文
[Visual Basic]
Public Function ReadOutputRandomBitData ( _
nNodeNo As Byte, _
nAddr As UInteger(), _
ByRef bData As Boolean() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadOutputRandomBitData(
byte nNodeNo,
uint[] nAddr,
out bool[] bData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nAddr | (i)読出し先の相対アドレスの配列[ビット単位]
bData | (o)読み出したデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nAddrが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域の値をビット単位でランダムに読出します。nAddr配列に出力データ領域の相対アドレスを指定します。
bData配列にはnAddr配列順に読み出した値が格納されます。
出力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はbData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[出力データ読出し]ボタンClick

Private Sub btnReadOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■0bit,4bit,15bit,32bit,64bit目の値を読出します。

Dim nAddr() As UInt32 = {0, 4, 15, 32, 64}

Dim baValue1() As Boolean = {}

eRtc = FLnetCtrl.ReadOutputRandomBitData(1, nAddr, baValue1)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("0bit目の値=" + baValue1(0).ToString() + ", 64bit目の値=" + baValue1(4).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ読出し]ボタンClick

private void btnReadOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■0bit,4bit,15bit,32bit,64bit目の値を読出します。

uint[] nAddr = {0, 4, 15, 32, 64};

bool[] baValue1;

eRtc = fLnetCtrl.ReadOutputRandomBitData(1, nAddr, out baValue1);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("0bit目の値=" + baValue1[0].ToString() + ", 64bit目の値=" + baValue1[4].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadOutputWordDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データを連続ワード読出しします。
構文
[Visual Basic]
Public Function ReadOutputWordData ( _
nNodeNo As Byte, _
nStartAddr As UInteger, _
nSize As UInteger, _
ByRef nData As UShort() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadOutputWordData(
byte nNodeNo,
uint nStartAddr,
uint nSize,
out ushort[] nData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nStartAddr | (i)読出し先の相対アドレス[ワード単位]
nSize | (i)読出し先のサイズ[ワード単位]
nData | (o)読み出したデータ[ワード単位]
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nStartAddrまたはnSizeが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域の値をワード単位で連続に読出します。nStartAddrは出力データ領域の先頭からのオフセットになります。
出力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はnData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[出力データ読出し]ボタンClick

Private Sub btnReadOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■1ワード目から3ワード読出します。

Dim nValue() As UShort = {}

eRtc = FLnetCtrl.ReadOutputWordData(1, 1, 3, nValue)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("1ワード目の値=" + nValue(0).ToString() + ", 3ワード目の値=" + nValue(2).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ読出し]ボタンClick

private void btnReadOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■1ワード目から3ワード読出します。

ushort[] nValue;

eRtc = fLnetCtrl.ReadOutputWordData(1, 1, 3, out nValue);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("1ワード目の値=" + nValue[0].ToString() + ", 3ワード目の値=" + nValue[2].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.ReadOutputRandomWordDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データをランダムワード読出しします。
構文
[Visual Basic]
Public Function ReadOutputRandomWordData ( _
nNodeNo As Byte, _
nAddr As UInteger(), _
ByRef nData As UShort() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum ReadOutputRandomWordData(
byte nNodeNo,
uint[] nAddr,
out ushort[] nData
)
引数
名前 | 説明
nNodeNo | (i)読出し先のスレーブノード番号[1～249]
nAddr | (i)読出し先の相対アドレスの配列[ワード単位]
nData | (o)読み出したデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nAddrが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域の値をワード単位でランダムに読出します。nAddr配列に出力データ領域の相対アドレスを指定します。
nData配列にはnAddr配列順に読み出した値が格納されます。
出力データの読出しはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合はbData配列のサイズは0にセットされ読み出しできません。
サンプル
[Visual Basic]

'[出力データ読出し]ボタンClick

Private Sub btnReadOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■0word,1word,4word目の値を読出します。

Dim nAddr() As UInt32 = {0, 1, 4}

Dim nValue() As UShort = {}

eRtc = FLnetCtrl.ReadOutputRandomWordData(1, nAddr, nValue)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("0word目の値=" + nValue(0).ToString() + ", 4word目の値=" + nValue(2).ToString())

Else

'異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ読出し]ボタンClick

private void btnReadOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■0word,1word,4word目の値を読出します。

uint[] nAddr = {0, 1, 4};

ushort[] nValue;

eRtc = fLnetCtrl.ReadOutputRandomWordData(1, nAddr, out nValue);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("0word目の値=" + nValue[0].ToString() + ", 4word目の値=" + nValue[2].ToString());

}

else

{

// 異常処理

MessageBox.Show("リードに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.WriteOutputBitDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データを連続ビット書込みします。
構文
[Visual Basic]
Public Function WriteOutputBitData ( _
nNodeNo As Byte, _
nStartAddr As UInteger, _
bData As Boolean() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteOutputBitData(
byte nNodeNo,
uint nStartAddr,
bool[] bData
)
引数
名前 | 説明
nNodeNo | (i)書込み先のスレーブノード番号[1～249]
nStartAddr | (i)書込み先の相対アドレス[ビット単位]
bData | (i)書込むデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nStartAddrが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域へビット単位で連続書込みします。nStartAddrは出力データ領域の先頭からのオフセットになります。
出力データの書込みはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合は書込みできません。
サンプル
[Visual Basic]

'[出力データ書込み]ボタンClick

Private Sub btnWriteOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■0bit目から5bit書込みします。

Dim baValue1() As Boolean = {True, False, False, True, True}

eRtc = FLnetCtrl.WriteOutputBitData(1, 0, baValue1)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("書き込みが成功しました。")

Else

'異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ書込み]ボタンClick

private void btnWriteOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■0bit目から5bit書込みします。

bool[] baValue1 = {true, false, false, true, true};

eRtc = fLnetCtrl.WriteOutputBitData(1, 0, baValue1);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("書き込みが成功しました。");

}

else

{

// 異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.WriteOutputRandomBitDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データをランダムビット書込みします。
構文
[Visual Basic]
Public Function WriteOutputRandomBitData ( _
nNodeNo As Byte, _
nAddr As UInteger(), _
bData As Boolean() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteOutputRandomBitData(
byte nNodeNo,
uint[] nAddr,
bool[] bData
)
引数
名前 | 説明
nNodeNo | (i)書込み先のスレーブノード番号[1～249]
nAddr | (i)書込み先の相対アドレスの配列[ビット単位]
bData | (i)書込むデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nAddrまたはｂDataが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域の値をビット単位でランダムに書込みします。nAddr配列に出力データ領域の相対アドレスを指定します。
bData配列にはnAddr配列に対応する書込みデータを設定します。nAddr配列とbData配列のサイズが異なる場合は書き込みは失敗します。
出力データの書込みはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合は書込みできません。
サンプル
[Visual Basic]

'[出力データ書込み]ボタンClick

Private Sub btnWriteOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■0bit,4bit,15bit,32bit,64bit目へ書込みします。

Dim nAddr() As UInt32 = {0, 4, 15, 32, 64}

Dim baValue1() As Boolean = {True, False, False, True, True}

eRtc = FLnetCtrl.WriteOutputRandomBitData(1, nAddr, baValue1)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("書き込みが成功しました。")

Else

'異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ書込み]ボタンClick

private void btnWriteOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■0bit,4bit,15bit,32bit,64bit目へ書込みします。

uint[] nAddr = {0, 4, 15, 32, 64};

bool[] baValue1 = {true, false, false, true, true};

eRtc = fLnetCtrl.WriteOutputRandomBitData(1, nAddr, baValue1);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("書き込みが成功しました。");

}

else

{

// 異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.WriteOutputWordDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データを連続ワード書込みします。
構文
[Visual Basic]
Public Function WriteOutputWordData ( _
nNodeNo As Byte, _
nStartAddr As UInteger, _
nData As UShort() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteOutputWordData(
byte nNodeNo,
uint nStartAddr,
ushort[] nData
)
引数
名前 | 説明
nNodeNo | (i)書込み先のスレーブノード番号[1～249]
nStartAddr | (i)書込み先の相対アドレス[ワード単位]
nData | (i)書込むデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nStartAddrが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域へワード単位で連続書込みします。nStartAddrは出力データ領域の先頭からのオフセットになります。
出力データの書込みはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合は書込みできません。
サンプル
[Visual Basic]

'[出力データ書込み]ボタンClick

Private Sub btnWriteOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■0ワード目から5ワード書込みします。

Dim nValue() As UShort = {1, 10, 200, 5000, 1000}

eRtc = FLnetCtrl.WriteOutputWordData(1, 0, nValue)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("書き込みが成功しました。")

Else

'異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ書込み]ボタンClick

private void btnWriteOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■0ワード目から5ワード書込みします。

ushort[] nValue = {1, 10, 200, 5000, 1000};

eRtc = fLnetCtrl.WriteOutputWordData(1, 0, nValue);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("書き込みが成功しました。");

}

else

{

// 異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.WriteOutputRandomWordDataメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 出力データをランダムワード書込みします。
構文
[Visual Basic]
Public Function WriteOutputRandomWordData ( _
nNodeNo As Byte, _
nAddr As UInteger(), _
nData As UShort() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum WriteOutputRandomWordData(
byte nNodeNo,
uint[] nAddr,
ushort[] nData
)
引数
名前 | 説明
nNodeNo | (i)書込み先のスレーブノード番号[1～249]
nAddr | (i)書込み先の相対アドレスの配列[ワード単位]
nData | (i)書込むデータ
戻り値 要求結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nNodeNoの値が範囲(1～249)外 (2) nNodeNoの値が自ノード番号 (3) nAddrまたはnDataが 不正 (4) IO割付が未設定
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 IO割付で設定した出力データ領域の値をワード単位でランダムに書込みします。nAddr配列に出力データ領域の相対アドレスを指定します。
nData配列にはnAddr配列に対応する書込みデータを設定します。nAddr配列とnData配列のサイズが異なる場合は書き込みは失敗します。
出力データの書込みはリンク未参加の状態でも可能です。
IO割付はSetIOメソッドで設定します。未設定の場合は書込みできません。
サンプル
[Visual Basic]

'[出力データ書込み]ボタンClick

Private Sub btnWriteOutputData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWriteOutputData.Click

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum

'以下のIO割付設定済みとします。

'スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

'■0ワード,1ワード,3ワード目へ書込みします。

Dim nAddr() As UInt32 = {0, 1, 3}

Dim nValue() As UShort = {0, 10, 2000}

eRtc = FLnetCtrl.WriteOutputRandomWordData(1, nAddr, nValue)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'正常処理

MessageBox.Show("書き込みが成功しました。")

Else

'異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]")

End If

End Sub

[C#]

// [出力データ書込み]ボタンClick

private void btnWriteOutputData_Click(object sender, EventArgs e)

{

HKE.FLnetCtrl.MethodReturnEnum eRtc;

// 以下のIO割付設定済みとします。

// スレーブノード番号=1,出力データ領域=1,出力データアドレス=0[word],出力データサイズ=10[word]

// ■0ワード,1ワード,3ワード目へ書込みします。

uint[] nAddr = {0, 1, 3};

ushort[] nValue = {0, 10, 2000};

eRtc = fLnetCtrl.WriteOutputRandomWordData(1, nAddr, nValue);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 正常処理

MessageBox.Show("書き込みが成功しました。");

}

else

{

// 異常処理

MessageBox.Show("書き込みに失敗しました。[rtc=" + eRtc.ToString() + "]");

}

}


FLnetCtrl.BlockChangedイベント
要約　構文　解説　サンプル
要約 自ノードのブロックデータの値が変化した場合に発生します。
構文
[Visual Basic]
Public Event BlockChanged As BlockChangedEventHandler
[C#]
public event BlockChangedEventHandler BlockChanged
解説 他ノードからブロックデータライト要求を受信し、ブロックデータの値が変更された場合に発生します。ライト要求を受信しても、ブロックデータの値に変化が無い場合は、イベントは発生しません。

BlockChangedEventArgsクラスの、ブロック種別(WordBlockフィールド)、開始アドレス(StartAddressフィールド)、サイズ(Sizeフィールド)の値で、変化を検出した領域を確認できます。ReadByteBlocksメソッド、ReadWordBlocksメソッドを発行して、変化後の値を確認できます。

ブロックデータ自動更新ロック(LockBlockプロパティ=True)の場合は、本イベントは発生しません。WriteByteBlockメソッド、WriteWordBlockメソッドを発行して、ブロックデータの値をライトした場合は、本イベントは発生しません。

サンプル
[Visual Basic]
'ブロックデータの値が変化した場合に発生します。
Private Sub FLnetCtrl_BlockChanged(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.BlockChangedEventArgs) Handles FLnetCtrl.BlockChanged
'ブロック種別判定
 If e.WordBlock.Equals(False) Then
 'バイトブロック変化
 '■バイトブロックリード
 Dim nBlock() As Byte = {}
 FLnetCtrl.ReadByteBlocks(e.StartAddress, e.Size, nBlock)
MessageBox.Show("バイトブロックの値が変化しました。[アドレス=" + e.StartAddress.ToString() + _
", サイズ=" + e.Size.ToString() + "]")
Else
 'ワードブロック変化
 '■ワードブロックリード
 Dim nBlock() As UShort = {}
 FLnetCtrl.ReadWordBlocks(e.StartAddress, e.Size, nBlock)
MessageBox.Show("ワードブロックの値が変化しました。[アドレス=" + e.StartAddress.ToString() + _
", サイズ=" + e.Size.ToString() + "]")
End If
End Sub
[C#]
// ブロックデータの値が変化した場合に発生します。
private void fLnetCtrl_BlockChanged(object sender, HKE.FLnetCtrl.BlockChangedEventArgs e)
{
// バイトブロック変化
 if (e.WordBlock.Equals(false))
{
// ■バイトブロックリード
 byte[] nBlock;
fLnetCtrl.ReadByteBlocks(e.StartAddress, e.Size, out nBlock);
MessageBox.Show("バイトブロックの値が変化しました。[アドレス=" + e.StartAddress.ToString() +
", サイズ=" + e.Size.ToString() + "]");
}
// ワードブロック変化
 else
 {
// ■ワードブロックリード
 ushort[] nBlock;
fLnetCtrl.ReadWordBlocks(e.StartAddress, e.Size, out nBlock);
MessageBox.Show("ワードブロックの値が変化しました。[アドレス=" + e.StartAddress.ToString() +
", サイズ=" + e.Size.ToString() + "]");
}
}


FLnetCtrl.BlockReadRepliedイベント
要約　構文　解説　サンプル
要約 ブロックリード応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event BlockReadReplied As BlockReadRepliedEventHandler
[C#]
public event BlockReadRepliedEventHandler BlockReadReplied
解説 RequestBlockReadメソッドに対する応答です。他ノードからバイト/ワードブロックリード応答を受けた場合に発生します。BlockReadRepliedEventArgsクラスで、ブロックリード応答内容を確認できます。
サンプル
[Visual Basic]
'[ブロックリード要求]ボタンClick
Private Sub btnReqBlockRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqBlockRead.Click
'■他ノードに、バイトブロックリード(開始アドレス=32, サイズ=16)を要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestBlockRead(nNodeNo, False, 32, 16)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("バイトブロックリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ブロックリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_BlockReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.BlockReadRepliedEventArgs) Handles FLnetCtrl.BlockReadReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、ブロックデータを取得します。
 If e.WordBlock.Equals(False) Then
 'Byte型配列にキャストします。
 Dim nBlock() As Byte = CType(e.Data, Byte())
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine + _
"アドレス[" + e.Address.ToString() + "]=" + nBlock(0).ToString() + _
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock(e.Size - 1).ToString() _
, "バイトブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Else
 'UShort型配列にキャストします。
 Dim nBlock() As UShort = CType(e.Data, UShort())
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine + _
"アドレス[" + e.Address.ToString() + "]=" + nBlock(0).ToString() + _
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock(e.Size - 1).ToString() _
, "ワードブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End If
 Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() + _
", サイズ=" + e.Size.ToString() + System.Environment.NewLine + "エラーコード=" + sErrorCode _
, "ブロックリード異常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() + _
", サイズ=" + e.Size.ToString() _
, "ブロックリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End Select
End Sub

[C#]
// [ブロックリード要求]ボタンClick
private void btnReqBlockRead_Click(object sender, EventArgs e)
{
// ■他ノードに、バイトブロックリード(開始アドレス=32, サイズ=16)を要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestBlockRead(nNodeNo, false, 32, 16);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("バイトブロックリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ブロックリード応答を受けた場合に発生します。
private void fLnetCtrl_BlockReadReplied(object sender, HKE.FLnetCtrl.BlockReadRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、ブロックデータを取得します。
 if (e.WordBlock.Equals(false))
{
// byte型配列にキャストします。
 byte[] nBlock = (byte[])e.Data;
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine +
"アドレス[" + e.Address.ToString() + "]=" + nBlock[0].ToString() +
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock[e.Size - 1].ToString()
, "バイトブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
else
 {
// ushort型配列にキャストします。
 ushort[] nBlock = (ushort[])e.Data;
MessageBox.Show("アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() + System.Environment.NewLine +
"アドレス[" + e.Address.ToString() + "]=" + nBlock[0].ToString() +
", アドレス[" + (e.Address + e.Size - 1).ToString() + "]=" + nBlock[e.Size - 1].ToString()
, "ワードブロックリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() +
", サイズ=" + e.Size.ToString() + System.Environment.NewLine + "エラーコード=" + sErrorCode
, "ブロックリード異常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() +
", サイズ=" + e.Size.ToString()
, "ブロックリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]"
);
break;
}
}


FLnetCtrl.BlockWriteRepliedイベント
要約　構文　解説　サンプル
要約 ブロックライト応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event BlockWriteReplied As BlockWriteRepliedEventHandler
[C#]
public event BlockWriteRepliedEventHandler BlockWriteReplied
解説 RequestBlockWriteメソッドに対する応答です。他ノードからバイト/ワードブロックライト応答を受けた場合に発生します。BlockWriteRepliedEventArgsクラスで、ブロックライト応答内容を確認できます。
サンプル
[Visual Basic]
'[ブロックライト要求]ボタンClick
Private Sub btnReqBlockWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqBlockWrite.Click
'ライトデータを作成します。
 Dim nBlock(15) As Byte
 For nLoop As Byte = 0 To 15 Step 1
nBlock(nLoop) = nLoop * 2
Next nLoop

'■他ノードに、バイトブロックライト(開始アドレス=32, サイズ=16)を要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestBlockWrite(nNodeNo, False, 32, nBlock)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("バイトブロックライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ブロックライト応答を受けた場合に発生します。
Private Sub FLnetCtrl_BlockWriteReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.BlockWriteRepliedEventArgs) Handles FLnetCtrl.BlockWriteReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + _
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() _
, "ブロックライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() + _
", サイズ=" + e.Size.ToString() + System.Environment.NewLine + _
"エラーコード=" + sErrorCode _
, "ブロックライト異常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + _
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString() _
, "ブロックライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End Select
End Sub

[C#]
// [ブロックライト要求]ボタンClick
private void btnReqBlockWrite_Click(object sender, EventArgs e)
{
// ライトデータを作成します。
 byte[] nBlock = new byte[16];
for (byte nLoop = 0; nLoop < 16; nLoop++)
{
nBlock[nLoop] = (byte)(nLoop * 2);
}

// ■他ノードに、バイトブロックライト(開始アドレス=32, サイズ=16)を要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestBlockWrite(nNodeNo, false, 32, nBlock);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("バイトブロックライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ブロックライト応答を受けた場合に発生します。
private void fLnetCtrl_BlockWriteReplied(object sender, HKE.FLnetCtrl.BlockWriteRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() +
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString()
, "ブロックライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() + ", アドレス=" + e.Address.ToString() +
", サイズ=" + e.Size.ToString() + System.Environment.NewLine +
"エラーコード=" + sErrorCode
, "ブロックライト異常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ブロック種別=" + e.WordBlock.ToString() +
", アドレス=" + e.Address.ToString() + ", サイズ=" + e.Size.ToString()
, "ブロックライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
}
}


FLnetCtrl.Common1Tagイベント
要約　構文　解説　サンプル
要約 コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
構文
[Visual Basic]
Public Event Common1Tag As Common1TagEventHandler
[C#]
public event Common1TagEventHandler Common1Tag
解説 コモンメモリ領域1変化検出タグ(Common1Tagsプロパティ)の条件を満たした場合に発生します。

WriteCommon1Bitメソッド、WriteCommon1Wordメソッド、ResetCommonSendValueメソッドを発行して、自ノード送信領域のコモンメモリの値をライトした場合は、本イベントは発生しません。また、コモンメモリ変化検出(CommonChangeプロパティ)の設定範囲には関連しません。

Common1Tagsプロパティの値を参照することで、変化検出タグの詳細情報(タグ名称、トリガ条件、アドレス、ビット、遅延時間)を確認することができます。

サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
Private Sub FLnetCtrl_Common1Tag(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.Common1TagEventArgs) Handles FLnetCtrl.Common1Tag
'タグ名称を取得します。
 Dim sTagName As String = FLnetCtrl.Common1Tags(e.TagIndex).TagName
If e.TagIndex.Equals(0) Then
 'モータ運転開始時の処理
 ElseIf e.TagIndex.Equals(1) Then
 'モータ運転停止時の処理
 End If
End Sub

[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
 private void fLnetCtrl_Common1Tag(object sender, HKE.FLnetCtrl.Common1TagEventArgs e)
{
// タグ名称を取得します。
 string sTagName = fLnetCtrl.Common1Tags[e.TagIndex].TagName;

if (e.TagIndex.Equals(0))
{
// モータ運転開始時の処理
 }
else if (e.TagIndex.Equals(1))
{
// モータ運転停止時の処理
 }
}


FLnetCtrl.Common2Tagイベント
要約　構文　解説　サンプル
要約 コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
構文
[Visual Basic]
Public Event Common2Tag As Common2TagEventHandler
[C#]
public event Common2TagEventHandler Common2Tag
解説 コモンメモリ領域2変化検出タグ(Common2Tagsプロパティ)の条件を満たした場合に発生します。

WriteCommon2Wordメソッド、ResetCommonSendValueメソッドを発行して、自ノード送信領域のコモンメモリの値をライトした場合は、本イベントは発生しません。また、コモンメモリ変化検出(CommonChangeプロパティ)の設定範囲には関連しません。

Common2Tagsプロパティの値を参照することで、変化検出タグの詳細情報(タグ名称、トリガ条件、アドレス、しきい値、遅延時間)を確認することができます。

サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
Private Sub FLnetCtrl_Common2Tag(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.Common2TagEventArgs) Handles FLnetCtrl.Common2Tag
'タグ名称を取得します。
 Dim sTagName As String = FLnetCtrl.Common2Tags(e.TagIndex).TagName
If e.TagIndex.Equals(0) Then
 'タンク液量上回り時の処理
 ElseIf e.TagIndex.Equals(1) Then
 '電力量変化時の処理
 End If
End Sub

[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
 private void fLnetCtrl_Common2Tag(object sender, HKE.FLnetCtrl.Common2TagEventArgs e)
{
// タグ名称を取得します。
 string sTagName = fLnetCtrl.Common2Tags[e.TagIndex].TagName;

if (e.TagIndex.Equals(0))
{
// タンク液量上回り時の処理
 }
else if (e.TagIndex.Equals(1))
{
// 電力量変化時の処理
 }
}


FLnetCtrl.CommonChangedイベント
要約　構文　解説　サンプル
要約 コモンメモリ領域の値が変化した場合に発生します。
構文
[Visual Basic]
Public Event CommonChanged As CommonChangedEventHandler
[C#]
public event CommonChangedEventHandler CommonChanged
解説 コモンメモリ領域の値が変化した場合に発生します。
コモンメモリの変化検出は、CommonChangeプロパティの設定範囲に限定されます。なお、変化を検知したアドレスおよび値については、上位アプリケーションで判断する必要があります。

WriteCommon1Bitメソッド、WriteCommon1Wordメソッド、WriteCommon2Wordメソッド、ResetCommonSendValueメソッドを発行して、自ノード送信領域のコモンメモリの値をライトした場合は、本イベントは発生しません。

コモンメモリ変化検出タグ(Common1TagsプロパティまたはCommon2Tagsプロパティ)の条件を満たす場合は、CommonChangedイベントとともに、コモンメモリ変化検出イベント(Common1TagイベントまたはCommon2Tagイベント)が発生します。

サンプル
[Visual Basic]
'コモンメモリ領域の値が変化した場合に発生します。
Private Sub FLnetCtrl_CommonChanged(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.CommonChangedEventArgs) Handles FLnetCtrl.CommonChanged
'領域1変化
 If e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.Area1) Or e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.AreaBoth) Then
 '■領域1リード
 Dim nArea1() As UShort = {}
 FLnetCtrl.ReadCommon1Words(e.CommonArea.Address1, e.CommonArea.Size1, nArea1)
End If

 '領域2変化
 If e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.Area2) Or e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.AreaBoth) Then
 '■領域2リード
 Dim nArea2() As UShort = {}
 FLnetCtrl.ReadCommon2Words(e.CommonArea.Address2, e.CommonArea.Size2, nArea2)
End If

 MessageBox.Show("コモンメモリの値が変化しました。[種別=" + e.CommonType.ToString() + _
", 領域1:アドレス=" + e.CommonArea.Address1.ToString() + ", サイズ=" + e.CommonArea.Size1.ToString() + _
", 領域2:アドレス=" + e.CommonArea.Address2.ToString() + ", サイズ=" + e.CommonArea.Size2.ToString() + "]")
End Sub
[C#]
// コモンメモリ領域の値が変化した場合に発生します。
private void fLnetCtrl_CommonChanged(object sender, HKE.FLnetCtrl.CommonChangedEventArgs e)
{
// 領域1変化
 if (e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.Area1) || e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.AreaBoth))
{
// ■領域1リード
 ushort[] nArea1;
fLnetCtrl.ReadCommon1Words(e.CommonArea.Address1, e.CommonArea.Size1, out nArea1);
}

// 領域2変化
 if (e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.Area2) || e.CommonType.Equals(HKE.FLnetCtrl.CommonTypeEnum.AreaBoth))
{
// ■領域2リード
 ushort[] nArea2;
fLnetCtrl.ReadCommon2Words(e.CommonArea.Address2, e.CommonArea.Size2, out nArea2);
}

MessageBox.Show("コモンメモリの値が変化しました。[種別=" + e.CommonType.ToString() +
", 領域1:アドレス=" + e.CommonArea.Address1.ToString() + ", サイズ=" + e.CommonArea.Size1.ToString() +
", 領域2:アドレス=" + e.CommonArea.Address2.ToString() + ", サイズ=" + e.CommonArea.Size2.ToString() + "]");
}


FLnetCtrl.LinkErrorイベント
要約　構文　解説　サンプル
要約 リンクエラーを検知した場合に発生します。
構文
[Visual Basic]
Public Event LinkError As LinkErrorEventHandler
[C#]
public event LinkErrorEventHandler LinkError
解説 リンクエラーを検知した場合に発生します。LinkErrorEventArgsクラスのエラー番号(Numberフィールド)および詳細エラーコード(Paramフィールド)の値を確認してください。エラー内容の一覧は、以下の通りです。
エラー番号(Number) | 詳細エラーコード(Param) | 意味および対策
NodeNoOverlap | 自ノード番号 | ノード番号が重複しているため、リンクに参加できませんでした。 ノード番号を変更してからリンクに参加してください。
CommonAreaOverlap | 自ノード番号 | コモンメモリの領域が重複しているため、コモンメモリ無しでリンクに参加しました。 コモンメモリの領域を重複しないように設定してください。
LinkInTimeout | 自ノード番号 | リンク参加タイムアウトが発生しました。 ネットワークの状況を確認してください。
LinkOut | 自ノード番号 | ネットワーク状況によりリンクから離脱しました(ネットワークへの再参加は行いません)。AlwaysLinkプロパティ=Falseの条件で発生します。 ネットワークの状況を確認してください。
LinkOutAndRetryLinkIn | 自ノード番号 | ネットワーク状況によりリンクから離脱しましたが、リンクに再参加します。AlwaysLinkプロパティ=Trueの条件で発生します。 ネットワークの状況を確認してください。
RetryLinkInFailed | 自ノード番号 | リンク再参加処理でエラーが発生しました。AlwaysLinkプロパティ=Trueの条件で発生します。 ネットワークの状況およびリンク参加パラメータを確認してください。
TrialTimeout | 自ノード番号 | 試用版の制限時間を超えたため、リンクから離脱しました。 これ以上、リンクに参加することはできません。
SecurityError | 自ノード番号 | セキュリティエラーを検知したため、リンクから離脱しました。 プロテクトキーが接続されていることを確認してください。
TokenModeUnmatch | 自ノード番号 | トークンモード不一致を検知したためリンクに参加できませんでした。 ネットワーク上にFAリンクプロトコルVer.1.00版の機器が混在しています。Ver.1.00版とVer.2.00版を同一ネットワーク上に混在することはできません。バージョンを統一してください。
SystemError | GetLastError関数戻り値 | 通信エンジン(DLL)でシステムエラーを検出しました。 詳細エラーコードのGetLastError関数の戻り値を開発コンテナのオンラインヘルプ等でご確認ください。エラーの発生箇所を、イベントログで確認してください。
NetworkError | WSAGetLastError関数戻り値 | 通信エンジン(DLL)でネットワークエラーを検出しました。 詳細エラーコードのWSAGetLastError関数の戻り値を開発コンテナのオンラインヘルプ等でご確認ください。エラーの発生箇所を、イベントログで確認してください。
FatalError | エラー番号 | 通信エンジン(DLL)で致命的エラーを検出しました。 OSの状態が不安定の場合に発生する可能性があります。OSを再起動してから、再度プログラムを実行してください。
ProtocolError | エラー番号 | 通信エンジン(DLL)でプロトコルエラーを検出しました。 詳細エラーコードのプロトコルエラー内容を確認してください。
DllSecurityError | エラー番号 | 通信エンジン(DLL)でセキュリティエラーを検出しました。 詳細エラーコードのセキュリティエラー内容を確認してください。
サンプル
[Visual Basic]
'リンクエラーを検知した場合に発生します。
Private Sub FLnetCtrl_LinkError(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LinkErrorEventArgs) Handles FLnetCtrl.LinkError
'■リンク参加状態を取得します。
 lblLinkState.Text = FLnetCtrl.LinkState.ToString()

MessageBox.Show("リンクエラーが発生しました。[エラー番号=" + e.Number.ToString() + _
", 詳細エラーコード=" + e.Param.ToString() + "]")
End Sub
[C#]
// リンクエラーを検知した場合に発生します。
private void fLnetCtrl_LinkError(object sender, HKE.FLnetCtrl.LinkErrorEventArgs e)
{
// ■リンク参加状態を取得します。
 lblLinkState.Text = fLnetCtrl.LinkState.ToString();

 MessageBox.Show("リンクエラーが発生しました。[エラー番号=" + e.Number.ToString() +
", 詳細エラーコード=" + e.Param.ToString() + "]");
}


FLnetCtrl.LinkInイベント
要約　構文　解説　サンプル
要約 ノードがリンクに参加した場合に発生します。
構文
[Visual Basic]
Public Event LinkIn As LinkInEventHandler
[C#]
public event LinkInEventHandler LinkIn
解説 自ノードまたは他ノードがリンクに参加した場合に発生します。

他ノードのリンク参加イベントは、自ノードがリンク参加中に途中加入した場合のみ発生します。すなわち、自ノードがリンクに参加する前から既にリンク参加中のノードについてはイベントが発生しません。自ノードが参加した地点でGetAllNodesLinkStateメソッドを発行することで、リンク参加ノードの一覧を確認することができます。

自ノードがリンクに参加する時点で、コモンメモリ送信領域(CommonSendプロパティ)が他ノードと重複している場合は、コモンメモリ無しでリンクに参加します。この場合、LinkInイベントが発生する前にLinkErrorイベント(Number=CommonAreaOverlap)が発生します。

モニタモードを開始する場合は、自ノードのリンク参加イベントは発生しません。他ノードがリンクに参加したイベントのみ発生します。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'リンクに参加した場合に発生します。
Private Sub FLnetCtrl_LinkIn(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LinkInEventArgs) Handles FLnetCtrl.LinkIn
'ノード番号判定
 If e.NodeNo.Equals(FLnetCtrl.NodeNo) Then
 '■自ノードがリンクに参加した場合、全ノードのリンク参加状況を取得します。
 Dim eState() As HKE.FLnetCtrl.NodeLinkStateEnum = {}
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetAllNodesLinkState(eState)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '参加ノード数を調べます。
 Dim nNodes As Integer
 For nLoop As Integer = 0 To 253 Step 1
'参加状況判定
 If eState(nLoop).Equals(HKE.FLnetCtrl.NodeLinkStateEnum.LinkIn) Then
 nNodes = nNodes + 1
End If
 Next nLoop
MessageBox.Show("自ノードがリンクに参加しました。リンク参加ノード数は、" + nNodes.ToString() + "ノードです。")
End If
 Else
 MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクに参加しました。")
End If
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// リンクに参加した場合に発生します。
private void fLnetCtrl_LinkIn(object sender, HKE.FLnetCtrl.LinkInEventArgs e)
{
// ノード番号判定
 if (e.NodeNo.Equals(fLnetCtrl.NodeNo))
{
// ■自ノードがリンクに参加した場合、全ノードのリンク参加状況を取得します。
 HKE.FLnetCtrl.NodeLinkStateEnum[] eState;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetAllNodesLinkState(out eState);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 参加ノード数を調べます。
 int nNodes = 0;
for (int nLoop = 0; nLoop < 254; nLoop++)
{
// 参加状況判定
 if (eState[nLoop].Equals(HKE.FLnetCtrl.NodeLinkStateEnum.LinkIn))
{
nNodes++;
}
}
MessageBox.Show("自ノードがリンクに参加しました。リンク参加ノード数は、" + nNodes.ToString() + "ノードです。");
}
}
else
 {
MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクに参加しました。");
}
}


FLnetCtrl.LinkOutイベント
要約　構文　解説　サンプル
要約 ノードがリンクから離脱した場合に発生します。
構文
[Visual Basic]
Public Event LinkOut As LinkOutEventHandler
[C#]
public event LinkOutEventHandler LinkOut
解説 自ノードおよび他ノードがリンクから離脱した場合に発生します。

自ノードのリンク離脱イベントは、LinkStateプロパティの値にLinkOutを設定して、離脱が完了した場合に発生します。ネットワーク状況やリンク参加異常を検知して、自ノードがリンクから離脱した場合は、LinkOutイベントではなく、LinkErrorイベントが発生します。

他ノードのリンク離脱イベントは、自ノードがリンク参加中に離脱を検知した場合に発生します。

モニタモードを終了する場合は、自ノードの離脱イベントは発生しません。他ノードがリンクから離脱したイベントのみが発生します。

サンプル
[Visual Basic]

'[リンク離脱]ボタンClick
Private Sub btnLinkOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkOut.Click
Try
'リンク離脱
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkOut
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'ノードがリンクから離脱した場合に発生します。
Private Sub FLnetCtrl_LinkOut(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LinkOutEventArgs) Handles FLnetCtrl.LinkOut
 'ノード番号判定
If e.NodeNo.Equals(FLnetCtrl.NodeNo) Then
 MessageBox.Show("自ノードがリンクから離脱しました。")
 Else
 MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクから離脱しました。")
 End If
End Sub

[C#]

// [リンク離脱]ボタンClick
private void btnLinkOut_Click(object sender, EventArgs e)
{
 try
 {
 // リンク離脱
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkOut;
}
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// ノードがリンクから離脱した場合に発生します。
private void fLnetCtrl_LinkOut(object sender, HKE.FLnetCtrl.LinkOutEventArgs e)
{
// ノード番号判定
 if (e.NodeNo.Equals(fLnetCtrl.NodeNo))
{
MessageBox.Show("自ノードがリンクから離脱しました。");
}
else
 {
MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクから離脱しました。");
}
}


FLnetCtrl.LogClearedイベント
要約　構文　解説　サンプル
要約 自ノードのログデータがクリアされた場合に発生します。
構文
[Visual Basic]
Public Event LogCleared As LogClearedEventHandler
[C#]
public event LogClearedEventHandler LogCleared
解説 他ノードからログデータクリア要求を受信して、自ノードのログデータがクリアされた場合に発生します。

ClearMyNodeLogメソッドを発行して自ノードログデータをクリアした場合、およびRequestLogClearメソッド(nNodeNo=255)を発行した場合は、イベントは発生しません。

サンプル
[Visual Basic]
'ログデータがクリアされた場合に発生します。
Private Sub FLnetCtrl_LogCleared(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LogClearedEventArgs) Handles FLnetCtrl.LogCleared
MessageBox.Show("ログデータがクリアされました。")
End Sub
[C#]
// ログデータがクリアされた場合に発生します。
private void fLnetCtrl_LogCleared(object sender, HKE.FLnetCtrl.LogClearedEventArgs e)
{
MessageBox.Show("ログデータがクリアされました。");
}


FLnetCtrl.LogClearRepliedイベント
要約　構文　解説　サンプル
要約 ログデータクリア応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event LogClearReplied As LogClearRepliedEventHandler
[C#]
public event LogClearRepliedEventHandler LogClearReplied
解説 RequestLogClearメソッドに対する応答です。他ノードからログデータクリア応答を受けた場合に発生します。LogClearRepliedEventArgsクラスで、ログデータクリア応答内容を確認できます。
サンプル
[Visual Basic]
'[ログクリア要求]ボタンClick
Private Sub btnReqLogClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqLogClear.Click
'■他ノードに、ログデータクリアを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestLogClear(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ログデータクリア要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ログデータクリア応答を受けた場合に発生します。
Private Sub FLnetCtrl_LogClearReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LogClearRepliedEventArgs) Handles FLnetCtrl.LogClearReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア正常応答[ノード番号=" + e.NodeNo.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ログデータクリア異常応答[ノード番号=" + e.NodeNo.ToString() + ", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [ログクリア要求]ボタンClick
private void btnReqLogClear_Click(object sender, EventArgs e)
{
// ■他ノードに、ログデータクリアを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestLogClear(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ログデータクリア要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ログデータクリア応答を受けた場合に発生します。
private void fLnetCtrl_LogClearReplied(object sender, HKE.FLnetCtrl.LogClearRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア正常応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ログデータクリア異常応答[ノード番号=" + e.NodeNo.ToString() + ", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータクリア非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.LogReadRepliedイベント
要約　構文　解説　サンプル
要約 ログデータリード応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event LogReadReplied As LogReadRepliedEventHandler
[C#]
public event LogReadRepliedEventHandler LogReadReplied
解説 RequestLogReadメソッドに対する応答です。他ノードからログデータリード応答を受けた場合に発生します。LogReadRepliedEventArgsクラスで、ログデータリード応答内容を確認できます。
サンプル
[Visual Basic]
'[ログリード要求]ボタンClick
Private Sub btnReqLogRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqLogRead.Click
'■他ノードに、ログデータリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestLogRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ログデータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ログデータリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_LogReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.LogReadRepliedEventArgs) Handles FLnetCtrl.LogReadReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、ログデータを取得します。
 Dim nLog() As UInteger = CType(e.Data, UInteger())
MessageBox.Show("ログデータリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" + _
System.Environment.NewLine + "通算ソケット部送信回数=" + nLog(0).ToString() + _
", ACK通番番号エラー回数=" + nLog(50).ToString() + ", 加入回数=" + nLog(74).ToString())
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ログデータリード異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [ログリード要求]ボタンClick
private void btnReqLogRead_Click(object sender, EventArgs e)
{
// ■他ノードに、ログデータリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestLogRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ログデータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ログデータリード応答を受けた場合に発生します。
private void fLnetCtrl_LogReadReplied(object sender, HKE.FLnetCtrl.LogReadRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、ログデータを取得します。
 uint[] nLog = (uint[])e.Data;
MessageBox.Show("ログデータリード正常応答[ノード番号=" + e.NodeNo.ToString() + "]" +
System.Environment.NewLine + "通算ソケット部送信回数=" + nLog[0].ToString() +
", ACK通番番号エラー回数=" + nLog[50].ToString() + ", 加入回数=" + nLog[74].ToString());
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ログデータリード異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ログデータリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.MessageEchoRepliedイベント
要約　構文　解説　サンプル
要約 メッセージ折返し応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event MessageEchoReplied As MessageEchoRepliedEventHandler
[C#]
public event MessageEchoRepliedEventHandler MessageEchoReplied
解説 RequestMessageEchoメソッドに対する応答です。他ノードからメッセージ折返し応答を受けた場合に発生します。MessageEchoRepliedEventArgsクラスで、メッセージ折返し応答内容を確認できます。
サンプル
[Visual Basic]
'[折返し要求]ボタンClick
Private Sub btnReqEcho_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqEcho.Click
'■他ノードに、メッセージ折返しを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestMessageEcho(nNodeNo, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("メッセージ折返し要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'メッセージ折返し応答を受けた場合に発生します。
Private Sub FLnetCtrl_MessageEchoReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.MessageEchoRepliedEventArgs) Handles FLnetCtrl.MessageEchoReplied
MessageBox.Show("判定結果=" + e.MatchingResult.ToString() + System.Environment.NewLine + "応答データ=" + CType(e.Data, String), _
"メッセージ折返し応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Sub

[C#]
// [折返し要求]ボタンClick
private void btnReqEcho_Click(object sender, EventArgs e)
{
// ■他ノードに、メッセージ折返しを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestMessageEcho(nNodeNo, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("メッセージ折返し要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// メッセージ折返し応答を受けた場合に発生します。
private void fLnetCtrl_MessageEchoReplied(object sender, HKE.FLnetCtrl.MessageEchoRepliedEventArgs e)
{
MessageBox.Show("判定結果=" + e.MatchingResult.ToString() + System.Environment.NewLine + "応答データ=" + (string)e.Data,
"メッセージ折返し応答[ノード番号=" + e.NodeNo.ToString() + "]");
}


FLnetCtrl.MessageErrorイベント
要約　構文　解説　サンプル
要約 メッセージ関連のエラーを検知した場合に発生します。
構文
[Visual Basic]
Public Event MessageError As MessageErrorEventHandler
[C#]
public event MessageErrorEventHandler MessageError
解説 メッセージ関連のエラーを検知した場合に発生します。MessageErrorEventArgsクラスのエラー番号(Numberフィールド)の値を確認してください。エラー内容の一覧は、以下の通りです。
エラー番号(Number) | 意味および対策
SendTimeout | メッセージ送信タイムアウトが発生しました。(Timeout.MessageSendプロパティの設定時間が経過するまでに、以下の条件を満たしました。 (1)1対1メッセージの場合は、送信先ノードから送達確認(ACK応答)を受信できなかった。 (2)1対Nメッセージの場合は、メッセージの送信ができなかった。 なお、(Timeout.MessageSendプロパティ=0の場合は、本イベントは発生しません。 ネットワークの状況によっては、メッセージ送信までに時間が掛かる場合があります。ネットワーク状況に応じて、 Timeout.MessageSend プロパティの値を調整してください。調整してもエラーが頻発する場合は、送信先ノードの状態を確認してください。
ReplyTimeout | メッセージ応答受信タイムアウトが発生しました。1対1要求メッセージの送信が完了してから、(Timeout.MessageReplyプロパティの設定時間以内に、応答メッセージを受信しませんでした。なお、(Timeout.MessageReplyプロパティ=0の場合は、本イベントは発生しません。ネットワーク状況によっては、メッセージ応答までに時間が掛かる場合があります。 ネットワーク状況に応じて、 Timeout.MessageReply プロパティの値を調整してください。調整してもエラーが頻発する場合は、要求先ノードの状態を確認してください。
AckNone | 送信先ノードからの送達確認(ACK応答)がありません。メッセージ再送を3回行いましたが、送信先ノードから送達確認(ACK応答)がありませんでした。 送信先ノードの状態を確認してください。
AckBufferFull | 送信先ノードのバッファが一杯です。メッセージ再送を3回行いましたが、送信先ノードから16#02(メッセージ用バッファフル)の送達確認(ACK応答)を受信しました。 送信先ノードの状態を確認してください。
AckNotInitial | 送信先ノードの初期化が完了していません。メッセージ再送を3回行いましたが、送信先ノードから16#03(メッセージ受信処理の初期化未完)の送達確認(ACK応答)を受信しました。 送信先ノードの状態を確認してください。
AckVseqError | VSEQ(通番バージョン番号)エラーを検知しました。メッセージ再送を3回行いましたが、送信先ノードから16#05(通番バージョン番号エラー検知)の送達確認(ACK応答)を受信しました。 送信先ノードの状態を確認してください。
AckFormatError | フォーマット異常を検知しました。メッセージ再送を3回行いましたが、送信先ノードから16#06(フォーマット異常検知)の送達確認(ACK応答)を受信しました。 送信先ノードの状態を確認してください。
サンプル
[Visual Basic]
'[透過形]ボタンClick
Private Sub btnSendUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendUser.Click
'■他ノードに、透過形メッセージを送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'メッセージ送信が完了した場合に発生します。
Private Sub FLnetCtrl_SendCompleted(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SendCompletedEventArgs) Handles FLnetCtrl.SendCompleted
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" + _
e.MessageNo.ToString() + "の送信が完了しました。")
End Sub

'メッセージ関連のエラーを検知した場合に発生します。
Private Sub FLnetCtrl_MessageError(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.MessageErrorEventArgs) Handles FLnetCtrl.MessageError
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" + _
e.MessageNo.ToString() + "の通信中にエラー[" + e.Number.ToString() + "]が発生しました。")
End Sub

[C#]
// [透過形]ボタンClick
private void btnSendUser_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージを送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// メッセージ送信が完了した場合に発生します。
private void fLnetCtrl_SendCompleted(object sender, HKE.FLnetCtrl.SendCompletedEventArgs e)
{
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" +
e.MessageNo.ToString() + "の送信が完了しました。");
}

// メッセージ関連のエラーを検知した場合に発生します。
private void fLnetCtrl_MessageError(object sender, HKE.FLnetCtrl.MessageErrorEventArgs e)
{
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" +
e.MessageNo.ToString() + "の通信中にエラー[" + e.Number.ToString() + "]が発生しました。");
}


FLnetCtrl.NetParamReadRepliedイベント
要約　構文　解説　サンプル
要約 ネットワークパラメータリード応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event NetParamReadReplied As NetParamReadRepliedEventHandler
[C#]
public event NetParamReadRepliedEventHandler NetParamReadReplied
解説 RequestNetParamReadメソッドに対する応答です。他ノードからネットワークパラメータリード応答を受けた場合に発生します。NetParamReadRepliedEventArgsクラスで、ネットワークパラメータリード応答内容を確認できます。GetNodeStateメソッドを発行して、最新のノード状態を確認できます。
サンプル
[Visual Basic]
'[ネットリード要求]ボタンClick
Private Sub btnReqNetRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqNetRead.Click
'■他ノードに、ネットワークパラメータリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestNetParamRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ネットワークパラメータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ネットワークパラメータリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_NetParamReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamReadRepliedEventArgs) Handles FLnetCtrl.NetParamReadReplied
'応答結果判定
 If e.Result.Equals(HKE.FLnetCtrl.ReplyMessageResultEnum.Normal) Then
 '■正常応答の場合は、ネットワークパラメータを取得します。
 Dim oState As New HKE.FLnetCtrl.NodeState
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetNodeState(e.NodeNo, oState)
'取得結果判定
 If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then
 '正常の場合は、取得したネットワークパラメータを表示します。
 MessageBox.Show("ベンダ名称=" + oState.VendorName + ", 製造業者形式=" + oState.MakerType + _
", ノード名=" + oState.NodeName + System.Environment.NewLine + _
"コモンメモリ送信領域:先頭アドレス=" + oState.Common.Address1.ToString() + _
", サイズ=" + oState.Common.Size1.ToString() + System.Environment.NewLine + _
"コモンメモリ送信領域:先頭アドレス=" + oState.Common.Address2.ToString() + _
", サイズ=" + oState.Common.Size2.ToString() _
, "ネットワークパラメータの取得[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Else
 MessageBox.Show("ネットワークパラメータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
 Else
 MessageBox.Show("異常応答を受信しました。[エラーコード=" + CType(e.Data, String) + "]")
End If
End Sub

[C#]
// [ネットリード要求]ボタンClick
private void btnReqNetRead_Click(object sender, EventArgs e)
{
// ■ 他ノードに、ネットワークパラメータリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestNetParamRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ネットワークパラメータリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ネットワークパラメータリード応答を受けた場合に発生します。
private void fLnetCtrl_NetParamReadReplied(object sender, HKE.FLnetCtrl.NetParamReadRepliedEventArgs e)
{
// 応答結果判定
 if (e.Result.Equals(HKE.FLnetCtrl.ReplyMessageResultEnum.Normal))
{
// ■ 正常応答の場合は、ネットワークパラメータを取得します。
HKE.FLnetCtrl.NodeState oState;
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetNodeState(e.NodeNo, out oState);
// 取得結果判定
 if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))
{
// 正常の場合は、取得したネットワークパラメータを表示します。
MessageBox.Show("ベンダ名称=" + oState.VendorName + ", 製造業者形式=" + oState.MakerType +
", ノード名=" + oState.NodeName + System.Environment.NewLine +
"コモンメモリ送信領域1:先頭アドレス=" + oState.Common.Address1.ToString() +
", サイズ=" + oState.Common.Size1.ToString() + System.Environment.NewLine +
"コモンメモリ送信領域2:先頭アドレス=" + oState.Common.Address2.ToString() +
", サイズ=" + oState.Common.Size2.ToString()
, "ネットワークパラメータの取得[ノード番号=" + e.NodeNo.ToString() + "]"
 );
}
else
 {
MessageBox.Show("ネットワークパラメータの取得に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}
else
 {
MessageBox.Show("異常応答を受信しました。[エラーコード=" + (string)e.Data + "]");
}
}


FLnetCtrl.NetParamWriteRepliedイベント
要約　構文　解説　サンプル
要約 ネットワークパラメータライト応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event NetParamWriteReplied As NetParamWriteRepliedEventHandler
[C#]
public event NetParamWriteRepliedEventHandler NetParamWriteReplied
解説 RequestNetParamWriteメソッドに対する応答です。他ノードからネットワークパラメータライト応答を受けた場合に発生します。NetParamWriteRepliedEventArgsクラスで、ネットワークパラメータライト応答内容を確認できます。
サンプル
[Visual Basic]
'[ネットライト要求]ボタンClick
Private Sub btnReqNetWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqNetWrite.Click
'■他ノードに、ネットワークパラメータライトを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestNetParamWrite( _
nNodeNo, HKE.FLnetCtrl.WriteNetParamEnum.Both, New HKE.FLnetCtrl.CommonArea(0, 8, 0, 64), "MonitorPC")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ネットワークパラメータライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ネットワークパラメータライト応答を受けた場合に発生します。
Private Sub FLnetCtrl_NetParamWriteReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamWriteRepliedEventArgs) Handles FLnetCtrl.NetParamWriteReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("ネットワークパラメータライト異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [ネットライト要求]ボタンClick
private void btnReqNetWrite_Click(object sender, EventArgs e)
{
// ■他ノードに、ネットワークパラメータライトを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestNetParamWrite(
nNodeNo, HKE.FLnetCtrl.WriteNetParamEnum.Both, new HKE.FLnetCtrl.CommonArea(0, 8, 0, 64), "MonitorPC");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ネットワークパラメータライト要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ネットワークパラメータライト応答を受けた場合に発生します。
private void fLnetCtrl_NetParamWriteReplied(object sender, HKE.FLnetCtrl.NetParamWriteRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト正常応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("ネットワークパラメータライト異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ネットワークパラメータライト非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.ProfileReadRepliedイベント
要約　構文　解説　サンプル
要約 プロファイルリード応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event ProfileReadReplied As ProfileReadRepliedEventHandler
[C#]
public event ProfileReadRepliedEventHandler ProfileReadReplied
解説 RequestProfileReadメソッドに対する応答です。他ノードからプロファイルリード応答を受けた場合に発生します。ProfileReadRepliedEventArgsクラスで、プロファイルリード応答内容を確認できます。
サンプル
[Visual Basic]
'[プロファイルリード要求]ボタンClick
Private Sub btnReqProfileRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqProfileRead.Click
'■他ノードに、プロファイルリードを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestProfileRead(nNodeNo)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("プロファイルリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'プロファイルリード応答を受けた場合に発生します。
Private Sub FLnetCtrl_ProfileReadReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.ProfileReadRepliedEventArgs) Handles FLnetCtrl.ProfileReadReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、プロファイルデータを取得します。
 Dim nBlock() As Byte = CType(e.Data, Byte())
MessageBox.Show("プロファイルリード正常応答[ノード番号=" + e.NodeNo.ToString() + ",データサイズ=" + nBlock.Length.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show("プロファイルリード異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("プロファイルリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [プロファイルリード要求]ボタンClick
private void btnReqProfileRead_Click(object sender, EventArgs e)
{
// ■他ノードに、プロファイルリードを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestProfileRead(nNodeNo);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("プロファイルリード要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// プロファイルリード応答を受けた場合に発生します。
private void fLnetCtrl_ProfileReadReplied(object sender, HKE.FLnetCtrl.ProfileReadRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、プロファイルデータを取得します。
 byte[] nBlock = (byte[])e.Data;
MessageBox.Show("プロファイルリード正常応答[ノード番号=" + e.NodeNo.ToString() + ",データサイズ=" + nBlock.Length.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show("プロファイルリード異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("プロファイルリード非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.RunStopRepliedイベント
要約　構文　解説　サンプル
要約 運転/停止指令応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event RunStopReplied As RunStopRepliedEventHandler
[C#]
public event RunStopRepliedEventHandler RunStopReplied
解説 RequestRunStopメソッドに対する応答です。他ノードから運転/停止指令応答を受けた場合に発生します。RunStopRepliedEventArgsクラスで、運転/停止指令応答内容を確認できます。
サンプル
[Visual Basic]
'[運転指令要求]ボタンClick
Private Sub btnReqRunStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqRunStop.Click
'■他ノードに、運転指令を要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestRunStop(nNodeNo, True)
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("運転指令要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'運転/停止指令応答を受けた場合に発生します。
Private Sub FLnetCtrl_RunStopReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.RunStopRepliedEventArgs) Handles FLnetCtrl.RunStopReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データはありません。
 MessageBox.Show(IIf(e.RunCommand, "運転", "停止") + "指令正常応答[ノード番号=" + e.NodeNo.ToString() + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 Dim sErrorCode As String = CType(e.Data, String)
MessageBox.Show(IIf(e.RunCommand, "運転", "停止") + "指令異常応答[ノード番号=" + e.NodeNo.ToString() + _
", エラーコード=" + sErrorCode + "]")
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show(IIf(e.RunCommand, "運転", "停止") + "指令非実装応答[ノード番号=" + e.NodeNo.ToString() + "]")
End Select
End Sub

[C#]
// [運転指令要求]ボタンClick
private void btnReqRunStop_Click(object sender, EventArgs e)
{
// ■他ノードに、運転指令を要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestRunStop(nNodeNo, true);
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("運転指令要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// 運転/停止指令応答を受けた場合に発生します。
private void fLnetCtrl_RunStopReplied(object sender, HKE.FLnetCtrl.RunStopRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データはありません。
 MessageBox.Show((e.RunCommand ? "運転" : "停止") + "指令正常応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 string sErrorCode = (string)e.Data;
MessageBox.Show((e.RunCommand ? "運転" : "停止") + "指令異常応答[ノード番号=" + e.NodeNo.ToString() +
", エラーコード=" + sErrorCode + "]");
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show((e.RunCommand ? "運転" : "停止") + "指令非実装応答[ノード番号=" + e.NodeNo.ToString() + "]");
break;
}
}


FLnetCtrl.SendCompletedイベント
要約　構文　解説　サンプル
要約 メッセージ送信が完了した場合に発生します。
構文
[Visual Basic]
Public Event SendCompleted As SendCompletedEventHandler
[C#]
public event SendCompletedEventHandler SendCompleted
解説 メッセージ送信が完了した場合に発生します。メッセージ送信完了とは、要求先ノードからメッセージに対する送達確認(ACK応答)の正常応答を受信したことを示します。なお、送達確認で異常応答を受信した場合は、MessageErrorイベントが発生します。

要求先ノードに255を指定した場合は、ネットワーク上にメッセージを送信した時点でSendCompletedイベントが発生します。

メッセージ送信タイムアウト時間(Timeout.MessageSendプロパティ)内に、メッセージ送信が完了しない場合は、MessageErrorイベント(Number=SendTimeout)が発生します。

サンプル
[Visual Basic]
'[透過形]ボタンClick
Private Sub btnSendUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendUser.Click
'■他ノードに、透過形メッセージを送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'メッセージ送信が完了した場合に発生します。
Private Sub FLnetCtrl_SendCompleted(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SendCompletedEventArgs) Handles FLnetCtrl.SendCompleted
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" + _
e.MessageNo.ToString() + "の送信が完了しました。")
End Sub

'メッセージ関連のエラーを検知した場合に発生します。
Private Sub FLnetCtrl_MessageError(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.MessageErrorEventArgs) Handles FLnetCtrl.MessageError
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" + _
e.MessageNo.ToString() + "の通信中にエラー[" + e.Number.ToString() + "]が発生しました。")
End Sub

[C#]
// [透過形]ボタンClick
private void btnSendUser_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージを送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// メッセージ送信が完了した場合に発生します。
private void fLnetCtrl_SendCompleted(object sender, HKE.FLnetCtrl.SendCompletedEventArgs e)
{
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" +
e.MessageNo.ToString() + "の送信が完了しました。");
}

// メッセージ関連のエラーを検知した場合に発生します。
private void fLnetCtrl_MessageError(object sender, HKE.FLnetCtrl.MessageErrorEventArgs e)
{
MessageBox.Show("ノード番号=" + e.NodeNo.ToString() + "へのメッセージ番号=" +
e.MessageNo.ToString() + "の通信中にエラー[" + e.Number.ToString() + "]が発生しました。");
}


FLnetCtrl.UserMessageReceivedイベント
要約　構文　解説　サンプル
要約 透過形メッセージを受けた場合に発生します。
構文
[Visual Basic]
Public Event UserMessageReceived As UserMessageReceivedEventHandler
[C#]
public event UserMessageReceivedEventHandler UserMessageReceived
解説 他ノードから透過形メッセージを受けた場合に発生します。UserMessageReceivedEventArgsクラスで、透過形メッセージ内容を確認できます。
サンプル
[Visual Basic]
'[透過形]ボタンClick
Private Sub btnSendUser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendUser.Click
'■他ノードに、透過形メッセージを送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'透過形メッセージを受けた場合に発生します。
Private Sub FLnetCtrl_UserMessageReceived(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.UserMessageReceivedEventArgs) Handles FLnetCtrl.UserMessageReceived
MessageBox.Show("メッセージ番号=" + e.MessageNo.ToString() + ", データ=" + CType(e.Data, String), _
"透過形メッセージ受信[ノード番号=" + e.NodeNo.ToString() + "]")
End Sub

[C#]
// [透過形]ボタンClick
private void btnSendUser_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージを送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("透過形メッセージ送信に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// 透過形メッセージを受けた場合に発生します。
private void fLnetCtrl_UserMessageReceived(object sender, HKE.FLnetCtrl.UserMessageReceivedEventArgs e)
{
MessageBox.Show("メッセージ番号=" + e.MessageNo.ToString() + ", データ=" + (string)e.Data,
"透過形メッセージ受信[ノード番号=" + e.NodeNo.ToString() + "]");
}


FLnetCtrl.VendorMessageRepliedイベント
要約　構文　解説　サンプル
要約 ベンダ固有メッセージ応答を受けた場合に発生します。
構文
[Visual Basic]
Public Event VendorMessageReplied As VendorMessageRepliedEventHandler
[C#]
public event VendorMessageRepliedEventHandler VendorMessageReplied
解説 RequestVendorMessageメソッドに対する応答です。他ノードからベンダ固有メッセージ応答を受けた場合に発生します。VendorMessageRepliedEventArgsクラスで、ベンダ固有メッセージ応答内容を確認できます。
サンプル
[Visual Basic]
'[ベンダ固有要求]ボタンClick
Private Sub btnReqVendor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReqVendor.Click
'■他ノードに、ベンダ固有メッセージを要求します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.RequestVendorMessage(nNodeNo, "HITACHI-KE", "000001", "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ")
If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) = False Then
 MessageBox.Show("ベンダ固有メッセージ要求に失敗しました。[rtc=" + eRtc.ToString() + "]")
End If
End Sub

'ベンダ固有メッセージ応答を受けた場合に発生します。
Private Sub FLnetCtrl_VendorMessageReplied(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.VendorMessageRepliedEventArgs) Handles FLnetCtrl.VendorMessageReplied
'応答結果を判定します。
 Select Case (e.Result)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'正常の場合は、応答データを取得します。
 MessageBox.Show("ベンダ名=" + CType(e.VendorName, String) + ", サブコード=" + CType(e.SubCode, String) + _
System.Environment.NewLine + "データ=" + CType(e.Data, String) _
, "ベンダ固有メッセージ正常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.Error
'異常応答の場合は、エラーコードを取得します。
 MessageBox.Show("ベンダ名=" + CType(e.VendorName, String) + ", サブコード=" + CType(e.SubCode, String) + _
System.Environment.NewLine + "エラーコード=" + CType(e.Data, String) _
, "ベンダ固有メッセージ異常応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
Case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
'非実装応答の場合は、応答データはありません。
 MessageBox.Show("ベンダ名=" + CType(e.VendorName, String) + ", サブコード=" + CType(e.SubCode, String) _
, "ベンダ固有メッセージ非実装応答[ノード番号=" + e.NodeNo.ToString() + "]" _
)
End Select
End Sub

[C#]
// [ベンダ固有要求]ボタンClick
private void btnReqVendor_Click(object sender, EventArgs e)
{
// ■他ノードに、ベンダ固有メッセージを要求します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.RequestVendorMessage(nNodeNo, "HITACHI-KE", "000001", "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ");
if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) == false)
{
MessageBox.Show("ベンダ固有メッセージ要求に失敗しました。[rtc=" + eRtc.ToString() + "]");
}
}

// ベンダ固有メッセージ応答を受けた場合に発生します。
private void fLnetCtrl_VendorMessageReplied(object sender, HKE.FLnetCtrl.VendorMessageRepliedEventArgs e)
{
// 応答結果を判定します。
 switch (e.Result)
{
case HKE.FLnetCtrl.ReplyMessageResultEnum.Normal:
// 正常の場合は、応答データを取得します。
 MessageBox.Show("ベンダ名=" + (string)e.VendorName + ", サブコード=" + (string)e.SubCode +
System.Environment.NewLine + "データ=" + (string)e.Data
, "ベンダ固有メッセージ正常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.Error:
// 異常応答の場合は、エラーコードを取得します。
 MessageBox.Show("ベンダ名=" + (string)e.VendorName + ", サブコード=" + (string)e.SubCode +
System.Environment.NewLine + "エラーコード=" + (string)e.Data
, "ベンダ固有メッセージ異常応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
case HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport:
// 非実装応答の場合は、応答データはありません。
 MessageBox.Show("ベンダ名=" + (string)e.VendorName + ", サブコード=" + (string)e.SubCode
, "ベンダ固有メッセージ非実装応答[ノード番号=" + e.NodeNo.ToString() + "]"
 );
break;
}
}


FLnetCtrl.VendorMessageRequestedイベント
要約　構文　解説　サンプル
要約 ベンダ固有メッセージ要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event VendorMessageRequested As VendorMessageRequestedEventHandler
[C#]
public event VendorMessageRequestedEventHandler VendorMessageRequested
解説 他ノードからベンダ固有メッセージ要求を受けた場合に発生します。ベンダ固有メッセージサーバ機能非実装(VendorMessageSupportプロパティ=False)の場合は、本イベントは発生しません。

VendorMessageRequestedEventArgsクラスで、ベンダ固有メッセージ要求内容を確認できます。1対1メッセージ(Multi=False)の場合は、ReplyVendorMessageメソッドを発行して、要求元ノードへ、ベンダ固有メッセージ応答を行ってください。

なお、応答結果の判断基準は、以下の通りです。
・サポートしていないベンダ名の要求を受けた場合は、非実装応答とします。
・サポートしていないサブコードの要求を受けた場合は、異常応答とします。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■ベンダ固有メッセージサーバ機能を実装に設定します。
 FLnetCtrl.VendorMessageSupport = True
End Sub

'ベンダ固有メッセージ要求を受けた場合に発生します。
Private Sub FLnetCtrl_VendorMessageRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.VendorMessageRequestedEventArgs) Handles FLnetCtrl.VendorMessageRequested
'応答結果
 Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal
'応答データ
 Dim oData As New HKE.FLnetCtrl.FLnetObject
'要求内容を判定します。
 'ベンダ名判定
 If CType(e.VendorName, String).Equals("HITACHI-KE") Then
 'サブコードを判定します。
 Dim sSubCode As String = CType(e.SubCode, String)
If sSubCode.Equals("000000") Then
 'サブコード="000000"の場合の処理
 '要求データを基に、ベンダ固有メッセージ処理を行います。
 '(省略)
 '応答データを作成します。
 oData = "OK"
 ElseIf sSubCode.Equals("000001") Then
 'サブコード="000001"の場合の処理
 '要求データを基に、ベンダ固有メッセージ処理を行います。
 '(省略)
 '処理で異常が発生した場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error
oData = "ErrorCode=1"
 Else
 '不明なサブコードの場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error
oData = "Unknown SubCode"
 End If
 Else
 '不明なベンダ名の場合は、非実装応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport
End If

 '■1対1の場合は、ベンダ固有メッセージを応答します。
 If e.Multi.Equals(False) Then
 FLnetCtrl.ReplyVendorMessage(e.NodeNo, eResult, e.VendorName, e.SubCode, oData)
End If
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■ベンダ固有メッセージサーバ機能を実装に設定します。
 fLnetCtrl.VendorMessageSupport = true;
}

// ベンダ固有メッセージ要求を受けた場合に発生します。
 private void fLnetCtrl_VendorMessageRequested(object sender, HKE.FLnetCtrl.VendorMessageRequestedEventArgs e)
{
// 応答結果
HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;
// 応答データ
HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 要求内容を判定します。
// ベンダ名判定
if (((string)e.VendorName).Equals("HITACHI-KE"))
{
// サブコードを判定します。
string sSubCode = (string)e.SubCode;
if (sSubCode.Equals("000000"))
{
// サブコード="000000"の場合の処理
 // 要求データを基に、ベンダ固有メッセージ処理を行います。
 // (省略)
 // 応答データを作成します。
 oData = "OK";
}
else if (sSubCode.Equals("000001"))
{
// サブコード="000001"の場合の処理
 // 要求データを基に、ベンダ固有メッセージ処理を行います。
 // (省略)
 // 処理で異常が発生した場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;
oData = "ErrorCode=1";
}
else
{
// 不明なサブコードの場合は、異常応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;
oData = "Unknown SubCode";
}
}
else
{
// 不明なベンダ名の場合は、非実装応答にします。
 eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.NotSupport;
}

// ■ 1対1の場合は、ベンダ固有メッセージを応答します。
if (e.Multi.Equals(false))
{
fLnetCtrl.ReplyVendorMessage(e.NodeNo, eResult, e.VendorName, e.SubCode, oData);
}
}


FLnetCtrl.NetParamWriteRequestedイベント
要約　構文　解説　サンプル
要約 ネットワークパラメータライト要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event NetParamWriteRequested As NetParamWriteRequestedEventHandler
[C#]
public event NetParamWriteRequestedEventHandler NetParamWriteRequested
解説 他ノードからネットワークパラメータライトメッセージ要求を受けた場合に発生します。
ReplyWriteNetParamメソッドを発行して、要求元ノードへ、ネットワークパラメータライトメッセージ応答を行ってください。
サンプル
[Visual Basic]

'ネットワークパラメータライトメッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_NetParamWriteRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamWriteRequestedEventArgs) Handles FLnetCtrl.NetParamWriteRequested

'応答結果

Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal

'応答データ

Dim oData As New HKE.FLnetCtrl.FLnetObject

'判定結果

Dim bRtc As Boolean

'要求内容を判定します。

'コモンメモリ変更要求

If e.CommonFlg = True Then

'コモンメモリを判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合は、応答データはありません。

Else

'変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error

oData = "Error"

End If

End If

'ネットワークパラメータライトメッセージを応答します。

FLnetCtrl.ReplyWriteNetParam(e.NodeNo, eResult, oData)

End Sub

[C#]

// ネットワークパラメータライトメッセージ要求を受けた場合に発生します。

private void fLnetCtrl_NetParamWriteRequested(object sender, HKE.FLnetCtrl.NetParamWriteRequestedEventArgs e)

{

// 応答結果

HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;

// 応答データ

HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 判定結果

bool bRtc;

// 要求内容を判定します。

// コモンメモリ変更要求

if (e.CommonFlg == true)

{

// コモンメモリを判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合は、応答データはありません。

}

else

{

// 変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;

oData = "Error";

}

}

// ネットワークパラメータライトメッセージを応答します。

fLnetCtrl.ReplyWriteNetParam(e.NodeNo, eResult, oData);

}


FLnetCtrl.RunStopRequestedイベント
要約　構文　解説　サンプル
要約 運転/停止指令要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event RunStopRequested As RunStopRequestedEventHandler
[C#]
public event RunStopRequestedEventHandler RunStopRequested
解説 他ノードから運転/停止指令メッセージ要求を受けた場合に発生します。
ReplyRunStopメソッドを発行して、要求元ノードへ、運転/停止指令メッセージ応答を行ってください。
サンプル
[Visual Basic]

'運転/停止指令メッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_RunStopRequested(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.RunStopRequestedEventArgs) Handles FLnetCtrl.RunStopRequested

'応答結果

Dim eResult As HKE.FLnetCtrl.ReplyMessageResultEnum = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal

'応答データ

Dim oData As New HKE.FLnetCtrl.FLnetObject

'判定結果

Dim bRtc As Boolean

'運転/停止指令を判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合は、応答データはありません。

Else

'変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error

oData = "Error"

End If

'運転/停止指令メッセージを応答します。

FLnetCtrl.ReplyRunStop(e.NodeNo, e.RunCommand, eResult, oData)

End Sub

[C#]

// 運転/停止指令メッセージ要求を受けた場合に発生します。

private void fLnetCtrl_RunStopRequested(object sender, HKE.FLnetCtrl.RunStopRequestedEventArgs e)

{

// 応答結果

HKE.FLnetCtrl.ReplyMessageResultEnum eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Normal;

// 応答データ

HKE.FLnetCtrl.FLnetObject oData = new HKE.FLnetCtrl.FLnetObject();

// 判定結果

bool bRtc;

// 運転/停止指令を判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合は、応答データはありません。

}

else

{

// 変更不可の場合は、異常応答にします。

eResult = HKE.FLnetCtrl.ReplyMessageResultEnum.Error;

oData = "Error";

}

// 運転/停止指令メッセージを応答します。

fLnetCtrl.ReplyRunStop(e.NodeNo, e.RunCommand, eResult, oData);

}


FLnetCtrl.LinkInSlaveイベント
要約　構文　解説　サンプル
要約 スレーブノードがリンクに参加した場合に発生します。
構文
[Visual Basic]
Public Event LinkInSlave As LinkInSlaveEventHandler
[C#]
public event LinkInSlaveEventHandler LinkInSlave
解説 スレーブノードがリンクに参加した場合に発生します。
スレーブノードのリンク参加イベントは、自ノードがリンク参加中に途中加入した場合のみ発生します。
すなわち、自ノードがリンク離脱中にリンク参加中のスレーブノードについてはイベントが発生しません。
GetAllSlaveNodesLinkStateメソッドを発行することで、リンク参加スレーブノードの一覧を確認することができます。

自ノードがリンクに参加する時点で、IO割付情報が未設定の場合はイベントは発生しません。
自ノードが離脱中にSetIOメソッドでIO割付情報の設定をする必要があります。

本イベントと同時に、LinkInイベントも発生します。発生順序は以下の通りです。
1. LinkInイベント
2. LinkInSlaveイベント
サンプル
[Visual Basic]

'リンクに参加した場合に発生します。

Private Sub FLnetCtrl_LinkInSlave(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SlaveEventArgs) Handles FLnetCtrl.LinkInSlave

MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクに参加しました。")

End Sub

[C#]

// リンクに参加した場合に発生します。

private void fLnetCtrl_LinkInSlave(object sender, HKE.FLnetCtrl.SlaveEventArgs e)

{

MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクに参加しました。");

}


FLnetCtrl.LinkOutSlaveイベント
要約　構文　解説　サンプル
要約 スレーブノードがリンクから離脱した場合に発生します。
構文
[Visual Basic]
Public Event LinkOutSlave As LinkOutSlaveEventHandler
[C#]
public event LinkOutSlaveEventHandler LinkOutSlave
解説 スレーブノードがリンクから離脱した場合に発生します。
スレーブノードのリンク離脱イベントは、自ノードがリンク参加中に離脱を検知した場合に発生します。

本イベントと同時に、LinkOutイベントも発生します。発生順序は以下の通りです。
1. LinkOutイベント
2. LinkOutSlaveイベント
サンプル
[Visual Basic]

'スレーブノードがリンクから離脱した場合に発生します。

Private Sub FLnetCtrl_LinkOutSlave(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SlaveEventArgs) Handles FLnetCtrl.LinkOutSlave

MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクから離脱しました。")

End Sub

[C#]

// スレーブノードがリンクから離脱した場合に発生します。

private void fLnetCtrl_LinkOutSlave(object sender, HKE.FLnetCtrl.SlaveEventArgs e)

{

MessageBox.Show("ノード番号" + e.NodeNo.ToString() + "がリンクから離脱しました。");

}


FLnetCtrl.InputDataChangedイベント
要約　構文　解説　サンプル
要約 入力データ領域の値が変化した場合に発生します。
構文
[Visual Basic]
Public Event InputDataChanged As InputDataChangedEventHandler
[C#]
public event InputDataChangedEventHandler InputDataChanged
解説 入力データ領域の値が変化した場合に発生します。
入力データ領域の変化検出は、CommonChangeプロパティの設定範囲に影響されません。

本イベントと同時に、CommonChangedイベントも条件を満たす場合発生します。その場合の発生順序は以下の通りです。
1. CommonChangedイベント
2. InputDataChangedイベント
サンプル
[Visual Basic]

'入力データ領域の値が変化した場合に発生します。

Private Sub FLnetCtrl_InputDataChanged(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SlaveEventArgs) Handles FLnetCtrl.InputDataChanged

MessageBox.Show("入力データの値が変化しました。[スレーブノード番号=" + e.NodeNo.ToString() + "]")

End Sub

[C#]

// 入力データ領域の値が変化した場合に発生します。

private void fLnetCtrl_InputDataChanged(object sender, HKE.FLnetCtrl.SlaveEventArgs e)

{

MessageBox.Show("入力データの値が変化しました。[スレーブノード番号=" + e.NodeNo.ToString() + "]");

}


FLnetCtrl.InputStatusChangedイベント
要約　構文　解説　サンプル
要約 入力ステータス領域の値が変化した場合に発生します。
構文
[Visual Basic]
Public Event InputStatusChanged As InputStatusChangedEventHandler
[C#]
public event InputStatusChangedEventHandler InputStatusChanged
解説 入力ステータス領域の値が変化した場合に発生します。
入力ステータス領域の変化検出は、CommonChangeプロパティの設定範囲に影響されません。

本イベントと同時に、CommonChangedイベントも条件を満たす場合発生します。その場合の発生順序は以下の通りです。
1. CommonChangedイベント
2. InputStatusChanged イベント
サンプル
[Visual Basic]

'入力ステータス領域の値が変化した場合に発生します。

Private Sub FLnetCtrl_InputStatusChanged(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SlaveEventArgs) Handles FLnetCtrl.InputStatusChanged

MessageBox.Show("入力ステータスの値が変化しました。[スレーブノード番号=" + e.NodeNo.ToString() + "]")

End Sub

[C#]

// 入力ステータス領域の値が変化した場合に発生します。

private void fLnetCtrl_InputStatusChanged(object sender, HKE.FLnetCtrl.SlaveEventArgs e)

{

MessageBox.Show("入力ステータスの値が変化しました。[スレーブノード番号=" + e.NodeNo.ToString() + "]");

}


FLnetCtrl.MeasureTokenTimeChangedイベント
要約　構文　解説　サンプル
要約 トークン保持時間測定状態の値が変化した場合に発生します。
構文
[Visual Basic]
Public Event MeasureTokenTimeChanged As MeasureChangedEventHandler
[C#]
public event MeasureChangedEventHandler MeasureTokenTimeChanged
解説 トークン保持時間測定状態の値が変化した場合に発生します。
トークン保持時間測定中に測定開始した場合、測定結果を一度破棄し再度測定を開始します。
トークン保持時間の測定開始/停止は上位アプリまたは設定ツールから可能です。
サンプル
[Visual Basic]

'トークン保持時間測定状態の値が変化した場合に発生します。

Private Sub FLnetCtrl_MeasureTokenTimeChanged(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.MeasureChangedEventArgs) Handles FLnetCtrl.MeasureTokenTimeChanged

MessageBox.Show("トークン保持時間測定状態の値が変化しました。[要求元=" + e.Sender.ToString() + "]")

End Sub

[C#]

// トークン保持時間測定状態の値が変化した場合に発生します。

private void fLnetCtrl_MeasureTokenTimeChanged(object sender, HKE.FLnetCtrl.MeasureChangedEventArgs e)

{

MessageBox.Show("トークン保持時間測定状態の値が変化しました。[要求元=" + e.Sender.ToString() + "]");

}


FLnetCtrl.MeasureDataLogChangedイベント
要約　構文　解説　サンプル
要約 汎用通信データ送信元ログ測定状態の値が変化した場合に発生します。
構文
[Visual Basic]
Public Event MeasureDataLogChanged As MeasureChangedEventHandler
[C#]
public event MeasureChangedEventHandler MeasureDataLogChanged
解説 汎用通信データ送信元ログ測定状態の値が変化した場合に発生します。
汎用通信データ送信元ログ測定中に測定開始した場合、測定結果を一度破棄し再度測定を開始します。
汎用通信データ送信元ログの測定開始/停止は上位アプリまたは設定ツールから可能です。
サンプル
[Visual Basic]

'汎用通信データ送信元ログ測定状態の値が変化した場合に発生します。

Private Sub FLnetCtrl_MeasureDataLogChanged(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.MeasureChangedEventArgs) Handles FLnetCtrl.MeasureDataLogChanged

MessageBox.Show("汎用通信データ送信元ログ測定状態の値が変化しました。[要求元=" + e.Sender.ToString() + "]")

End Sub

[C#]

// 汎用通信データ送信元ログ測定状態の値が変化した場合に発生します。

private void fLnetCtrl_MeasureDataLogChanged(object sender, HKE.FLnetCtrl.MeasureChangedEventArgs e)

{

MessageBox.Show("汎用通信データ送信元ログ測定状態の値が変化しました。[要求元=" + e.Sender.ToString() + "]");

}


FLnetCtrl.NetParamWriteRequestedFromSettingToolイベント
要約　構文　解説　サンプル
要約 設定ツールからのネットワークパラメータライト要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event NetParamWriteRequestedFromSettingTool As NetParamWriteRequestedFromSettingToolEventHandler
[C#]
public event NetParamWriteRequestedFromSettingToolEventHandler NetParamWriteRequestedFromSettingTool
解説 設定ツールからネットワークパラメータライトメッセージ要求を受けた場合に発生します。
イベント引数の値を判断し、結果を設定してください。

変更可の場合、ネットワークパラメータを更新します。リンク参加中の場合は、自ノードを離脱します。
ネットワークパラメータ更新後、リンクを再参加する場合は、Joinメンバに再参加ありを設定します。

サンプル
[Visual Basic]

'設定ツールからのネットワークパラメータライトメッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_NetParamWriteRequestedFromSettingTool(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.NetParamWriteRequestedFromSettingToolEventArgs) Handles FLnetCtrl.NetParamWriteRequestedFromSettingTool

'判定結果

Dim bRtc As Boolean

'要求内容を判定します。

'コモンメモリ変更要求

If e.CommonFlg = True Then

'コモンメモリを判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable

e.Join = True

Else

'変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable

End If

End If

End Sub

[C#]

// 設定ツールからのネットワークパラメータライトメッセージ要求を受けた場合に発生します。

private void fLnetCtrl_NetParamWriteRequestedFromSettingTool(object sender, HKE.FLnetCtrl.NetParamWriteRequestedFromSettingToolEventArgs e)

{

// 判定結果

bool bRtc;

// 要求内容を判定します。

// コモンメモリ変更要求

if (e.CommonFlg == true)

{

// コモンメモリを判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable;

e.Join = true;

}

else

{

// 変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable;

}

}

}


FLnetCtrl.RunStopRequestedFromSettingToolイベント
要約　構文　解説　サンプル
要約 設定ツールからの運転/停止指令要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event RunStopRequestedFromSettingTool As RunStopRequestedFromSettingToolEventHandler
[C#]
public event RunStopRequestedFromSettingToolEventHandler RunStopRequestedFromSettingTool
解説 設定ツールから運転/停止指令メッセージ要求を受けた場合に発生します。
イベント引数の値を判断し、結果を設定してください。

変更可の場合、運転状態を更新します。

サンプル
[Visual Basic]

'設定ツールから運転/停止指令メッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_RunStopRequestedFromSettingTool(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.RunStopRequestedFromSettingToolEventArgs) Handles FLnetCtrl.RunStopRequestedFromSettingTool

'判定結果

Dim bRtc As Boolean

'運転/停止指令を判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable

Else

'変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable

End If

End Sub

[C#]

// 設定ツールから運転/停止指令メッセージ要求を受けた場合に発生します。

private void fLnetCtrl_RunStopRequestedFromSettingTool(object sender, HKE.FLnetCtrl.RunStopRequestedFromSettingToolEventArgs e)

{

// 判定結果

bool bRtc;

// 運転/停止指令を判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable;

}

else

{

// 変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable;

}

}


FLnetCtrl.SetIORequestedFromSettingToolイベント
要約　構文　解説　サンプル
要約 設定ツールからのIO割付設定要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event SetIORequestedFromSettingTool As SetIORequestedFromSettingToolEventHandler
[C#]
public event SetIORequestedFromSettingToolEventHandler SetIORequestedFromSettingTool
解説 設定ツールからIO割付設定メッセージ要求を受けた場合に発生します。
イベント引数の値を判断し、結果を設定してください。

変更可の場合、IO割付設定を更新します。

サンプル
[Visual Basic]

'設定ツールからIO割付設定メッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_SetIORequestedFromSettingTool(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SetIORequestedFromSettingToolEventArgs) Handles FLnetCtrl.SetIORequestedFromSettingTool

'判定結果

Dim bRtc As Boolean

'IO割付設定を判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable

Else

'変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable

End If

End Sub

[C#]

// 設定ツールからIO割付設定メッセージ要求を受けた場合に発生します。

private void fLnetCtrl_SetIORequestedFromSettingTool(object sender, HKE.FLnetCtrl.SetIORequestedFromSettingToolEventArgs e)

{

// 判定結果

bool bRtc;

// IO割付設定を判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable;

}

else

{

// 変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable;

}

}


FLnetCtrl.SetConfigParamRequestedFromSettingToolイベント
要約　構文　解説　サンプル
要約 設定ツールからのコンフィギュレーション用パラメータ設定要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event SetConfigParamRequestedFromSettingTool As SetConfigParamRequestedFromSettingToolEventHandler
[C#]
public event SetConfigParamRequestedFromSettingToolEventHandler SetConfigParamRequestedFromSettingTool
解説 設定ツールからコンフィギュレーション用パラメータ設定メッセージ要求を受けた場合に発生します。
イベント引数の値を判断し、結果を設定してください。

変更可の場合、コンフィギュレーション用パラメータを更新します。リンク参加中の場合は、自ノードを離脱します。
コンフィギュレーション用パラメータ更新後、リンクを再参加する場合は、Joinメンバに再参加ありを設定します。

サンプル
[Visual Basic]

'設定ツールからのコンフィギュレーション用パラメータ設定メッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_SetConfigParamRequestedFromSettingTool(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SetConfigParamRequestedFromSettingToolEventArgs) Handles FLnetCtrl.SetConfigParamRequestedFromSettingTool

'判定結果

Dim bRtc As Boolean

'要求内容を判定します。

'コモンメモリ変更要求

If e.CommonFlg = True Then

'コモンメモリを判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable

e.Join = True

Else

'変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable

End If

End If

End Sub

[C#]

// 設定ツールからのコンフィギュレーション用パラメータ設定メッセージ要求を受けた場合に発生します。

private void fLnetCtrl_SetConfigParamRequestedFromSettingTool(object sender, HKE.FLnetCtrl.SetConfigParamRequestedFromSettingToolEventArgs e)

{

// 判定結果

bool bRtc;

// 要求内容を判定します。

// コモンメモリ変更要求

if (e.CommonFlg == true)

{

// コモンメモリを判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// 変更可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable;

e.Join = true;

}

else

{

// 変更不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable;

}

}

}


FLnetCtrl.ResetNodeRequestedFromSettingToolイベント
要約　構文　解説　サンプル
要約 設定ツールからのノードリセット要求を受けた場合に発生します。
構文
[Visual Basic]
Public Event ResetNodeRequestedFromSettingTool As ResetNodeRequestedFromSettingToolEventHandler
[C#]
public event ResetNodeRequestedFromSettingToolEventHandler ResetNodeRequestedFromSettingTool
解説 設定ツールからノードリセットメッセージ要求を受けた場合に発生します。
イベント引数の値を判断し、結果を設定してください。

リセット可の場合、リンク参加中の場合は、自ノードを離脱します。
リセット後、リンクを再参加する場合は、Joinメンバに再参加ありを設定します。

サンプル
[Visual Basic]

'設定ツールからのノードリセットメッセージ要求を受けた場合に発生します。

Private Sub FLnetCtrl_ResetNodeRequestedFromSettingTool(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.ResetNodeRequestedFromSettingToolEventArgs) Handles FLnetCtrl.ResetNodeRequestedFromSettingTool

'判定結果

Dim bRtc As Boolean

'リセット判定します。

'bRtcに判定結果を格納します。

'(省略）

If bRtc = True Then

'リセット可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable

e.Join = True

Else

'リセット不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable

End If

End Sub

[C#]

// 設定ツールからのノードリセットメッセージ要求を受けた場合に発生します。

private void fLnetCtrl_ResetNodeRequestedFromSettingTool(object sender, HKE.FLnetCtrl.ResetNodeRequestedFromSettingToolEventArgs e)

{

// 判定結果

bool bRtc;

// リセット判定します。

// bRtcに判定結果を格納します。

// (省略)

if (bRtc == true)

{

// リセット可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Enable;

e.Join = true;

}

else

{

// リセット不可の場合

e.Result = HKE.FLnetCtrl.RequestedMessageResultEnum.Disable;

}

}


FLnetObjectクラス
要約　コンストラクタ　プロパティ　メソッド
要約

FL-net Controlで使用するデータオブジェクトです。FL-net Controlとのデータ受け渡しに使用します。データ型のキャスト(変換)が可能です。扱うことが可能な以下に示します(○：可能、△：可能だが情報が失われる場合あり、×：不可)。

データ型

サイズ[byte] 代入 出力
Boolean型 1 ○ △
Boolean型配列 1×配列要素数 ○ ○
Byte型 1 ○ △
Byte型配列 1×配列要素数 ○ ○
SByte型 1 ○ △
SByte型配列 1×配列要素数 ○ ○
Char型 2 ○ △
Char型配列 2×配列要素数 ○ △
Int16型 2 ○ △
Int16型配列 2×配列要素数 ○ △
UInt16型 2 ○ △
UInt16型配列 2×配列要素数 ○ △
Int32型 4 ○ △
Int32型配列 4×配列要素数 ○ △
UInt32型 4 ○ △
UInt32型配列 4×配列要素数 ○ △
Int64型 8 ○ △
Int64型配列 8×配列要素数 ○ △
UInt64型 8 ○ △
UInt64型配列 8×配列要素数 ○ △
String型 Encodingプロパティの文字セットによる。 ○ ○
String型配列 ○ ×
StringBuilder型 ○ ×

＜階層＞
System.Object
  HKE.FLnetCtrl.FLnetObject

コンストラクタ
名前 | 説明
FLnetObject() | FLnetObjectクラスの新しいインスタンスを作成します。
FLnetObject(値) | 値を指定して、FLnetObjectクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
Bytes Int32 ○ × バイト数
Encoding Encoding ○ ○ 文字エンコーディング
メソッド
名前 | 説明
implicit Boolean | Boolean型の値を代入したFLnetObjectインスタンスを取得します。
implicit Boolean[] | Boolean型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit Byte | Byte型の値を代入したFLnetObjectインスタンスを取得します。
implicit Byte[] | Byte型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit SByte | SByte型の値を代入したFLnetObjectインスタンスを取得します。
implicit SByte[] | SByte型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit Char | Char型の値を代入したFLnetObjectインスタンスを取得します。
implicit Char[] | Char型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit Int16 | Int16型の値を代入したFLnetObjectインスタンスを取得します。
implicit Int16[] | Int16型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit UInt16 | UInt16型の値を代入したFLnetObjectインスタンスを取得します。
implicit UInt16[] | UInt16型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit Int32 | Int32型の値を代入したFLnetObjectインスタンスを取得します。
implicit Int32[] | Int32型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit UInt32 | UInt32型の値を代入したFLnetObjectインスタンスを取得します。
implicit UInt32[] | UInt32型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit Int64 | Int64型の値を代入したFLnetObjectインスタンスを取得します。
implicit Int64[] | Int64型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit UInt64 | UInt64型の値を代入したFLnetObjectインスタンスを取得します。
implicit UInt64[] | UInt64型配列の値を代入したFLnetObjectインスタンスを取得します。
implicit String | Stringクラス(文字列)の値を代入したFLnetObjectインスタンスを取得します。
implicit String[] | Stringクラス(文字列)配列の値を代入したFLnetObjectインスタンスを取得します。
implicit StringBuilder | StringBuilderクラス(可変型文字列)の値を代入したFLnetObjectインスタンスを取得します。
explicit Boolean | Boolean型にキャストした値を取得します。
explicit Boolean[] | Boolean型配列にキャストした値を取得します。
explicit Byte | Byte型にキャストした値を取得します。
explicit Byte[] | Byte型配列にキャストした値を取得します。
explicit SByte | SByte型にキャストした値を取得します。
explicit SByte[] | SByte型配列にキャストした値を取得します。
explicit Char | Char型にキャストした値を取得します。
explicit Char[] | Char型配列にキャストした値を取得します。
explicit Int16 | Int16型にキャストした値を取得します。
explicit Int16[] | Int16型配列にキャストした値を取得します。
explicit UInt16 | UInt16型にキャストした値を取得します。
explicit UInt16[] | UInt16型配列にキャストした値を取得します。
explicit Int32 | Int32型にキャストした値を取得します。
explicit Int32[] | Int32型配列にキャストした値を取得します。
explicit UInt32 | UInt32型にキャストした値を取得します。
explicit UInt32[] | UInt32型配列にキャストした値を取得します。
explicit Int64 | Int64型にキャストした値を取得します。
explicit Int64[] | Int64型配列にキャストした値を取得します。
explicit UInt64 | UInt64型にキャストした値を取得します。
explicit UInt64[] | UInt64型配列にキャストした値を取得します。
explicit String | String型にキャストした値を取得します。
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


FLnetObjectコンストラクタ
要約　構文　解説
要約 FLnetObjectクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public FLnetObject()
解説 何も指定がない場合、FLnetObjectの値は要素が0個のByte型配列になります。


FLnetObjectコンストラクタ(値指定)
要約　構文　引数　解説
要約 値を指定して、FLnetObjectクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal oValue As Object _
)
[C#]
public FLnetObject(
object oValue
)
引数
名前 | 説明
oValue | (i) 値
解説 値を指定して、FLnetObjectクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。


FLnetObject.Bytesプロパティ
要約　構文　値　解説　サンプル
要約 バイト数を取得します。
構文
[Visual Basic]
Public Property Bytes As Integer
[C#]
public int Bytes{get;}
値 バイト数
解説 代入値が配列型の場合は、配列要素のバイト数×配列要素数になります。
代入値が文字型(Char型/Char型配列/String型/String型配列/StringBuilder型)の場合は、Encodingプロパティの文字セットでエンコードしたバイトシーケンスのバイト数になります。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
Dim nBytes As Integer
 Dim oObject As HKE.FLnetCtrl.FLnetObject

oObject = CInt(12345)
'取得結果は4になります。
 nBytes = oObject.Bytes

Dim nWork(9) As Byte
 oObject = nWork
'取得結果は10になります。
 nBytes = oObject.Bytes

oObject = "12345"
 '取得結果は5になります。
 nBytes = oObject.Bytes

oObject = "あいうえお"
 '取得結果は10になります。
 nBytes = oObject.Bytes
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
 int nBytes;
HKE.FLnetCtrl.FLnetObject oObject;

oObject = (int)12345;
// 取得結果は4になります。
 nBytes = oObject.Bytes;

oObject = new byte[10];
// 取得結果は10になります。
 nBytes = oObject.Bytes;

oObject = "12345";
// 取得結果は5になります。
 nBytes = oObject.Bytes;

oObject = "あいうえお";
// 取得結果は10になります。
 nBytes = oObject.Bytes;
}


FLnetObject.Encodingプロパティ
要約　構文　値　例外　解説
要約 文字エンコーディングを取得または設定します。
構文
[Visual Basic]
Public Property Encoding As System.Text.Encoding
[C#]
public System.Text.Encoding Encoding{get; set;}
値 文字エンコーディングを表すSystem.Text.Encodingクラスのプロパティ。規定値は、System.Text.Encoding.Defaultです。
値 | 説明
ASCII | ASCII(7 ビット)文字セットのエンコーディング
BigEndianUnicode | ビッグエンディアンバイト順を使用するUTF-16形式のエンコーディング
Default | システムの現在のANSIコードページのエンコーディング
Unicode | リトルエンディアンバイト順を使用するUTF-16形式のエンコーディング
UTF32 | リトルエンディアンバイト順を使用するUTF-32形式のエンコーディング
UTF7 | UTF-7形式のエンコーディング
UTF8 | UTF-8形式のエンコーディング
例外 設定時に、以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Null | Null値を設定した。
解説 FLnetObjectに文字型(Char型/Char型配列/String型/String型配列/StringBuilder型)の値を代入した場合は、Encodingプロパティの文字セットに基づいて、バイトシーケンスにエンコードします。
FLnetObjectの値を文字型(Char型/Char型配列/String型)に出力する場合は、Encodingプロパティの文字セットに基づいて、文字型にデコードします。


FLnetObject.explicitメソッド(Boolean)
要約　構文　引数　戻り値　例外　解説
要約 Boolean型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Boolean
[C#]
static public explicit operator bool (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すBoolean型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が0[byte]
解説 objのバイトシーケンスの先頭1[byte]を、Boolean型にキャストします。objのバイト数が1[byte]よりも大きい場合は、縮小変換されます。
1 | 2 | N[byte]
変換対象(1[byte]) |


FLnetObject.explicitメソッド(Boolean[ ])
要約　構文　引数　戻り値　解説
要約 Boolean型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Boolean()
[C#]
static public explicit operator bool[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すBoolean型配列の値。配列の要素数は、objのバイト数となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、Boolean型配列にキャストします。

1

2

N[byte]

変換対象(N[byte])


FLnetObject.explicitメソッド(Byte)
要約　構文　引数　戻り値　例外　解説
要約 Byte型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Byte
[C#]
static public explicit operator byte (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すByte型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が0[byte]
解説 objのバイトシーケンスの先頭1[byte]を、Byte型にキャストします。objのバイト数が1[byte]よりも大きい場合は、縮小変換されます。
1 | 2 | N[byte]
変換対象(1[byte]) |


FLnetObject.explicitメソッド(Byte[ ])
要約　構文　引数　戻り値　解説
要約 Byte型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Byte()
[C#]
static public explicit operator byte[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すByte型配列の値。配列の要素数は、objのバイト数となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、Byte型配列にキャストします。

1

2

N[byte]

変換対象(N[byte])


FLnetObject.explicitメソッド(Char)
要約　構文　引数　戻り値　例外　解説
要約 Char型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Char
[C#]
static public explicit operator char (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すChar型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL
解説 objのバイトシーケンスを、Encodingプロパティの文字セットでデコードしたChar型配列の先頭1要素を取得します。


FLnetObject.explicitメソッド(Char[ ])
要約　構文　引数　戻り値　解説
要約 Char型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Char()
[C#]
static public explicit operator char[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すChar型配列の値。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、Encodingプロパティの文字セットでデコードしたChar型配列を取得します。


FLnetObject.explicitメソッド(Int16)
要約　構文　引数　戻り値　例外　解説
要約 Int16型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Short
[C#]
static public explicit operator short (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すInt16型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が2[byte]未満
解説 objのバイトシーケンスの先頭2[byte]を、Int16型にキャストします。objのバイト数が2[byte]よりも大きい場合は、縮小変換されます。
1 | 3 | N[byte]
変換対象(2[byte]) |


FLnetObject.explicitメソッド(Int16[ ])
要約　構文　引数　戻り値　解説
要約 Int16型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Short()
[C#]
static public explicit operator short[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すInt16型配列の値。配列の要素数は、objのバイト数(=N)を2で割り算した商(=M)となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、Int16型配列にキャストします。objのバイト数(=N)を2で割り算した余りの部分は、変換されません。
1 | 3 | ………… | 2×M－1 | N[byte]
変換対象(2×M[byte]) ※M＝N÷2 |  |  |  |


FLnetObject.explicitメソッド(Int32)
要約　構文　引数　戻り値　例外　解説
要約 Int32型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Integer
[C#]
static public explicit operator int (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すInt32型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が4[byte]未満
解説 objのバイトシーケンスの先頭4[byte]を、Int32型にキャストします。objのバイト数が4[byte]よりも大きい場合は、縮小変換されます。
1 | 5 | N[byte]
変換対象(4[byte]) |


FLnetObject.explicitメソッド(Int32[ ])
要約　構文　引数　戻り値　解説
要約 Int32型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Integer()
[C#]
static public explicit operator int[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すInt32型配列の値。配列の要素数は、objのバイト数(=N)を4で割り算した商(=M)となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、Int32型配列にキャストします。objのバイト数(=N)を4で割り算した余りの部分は、変換されません。
1 | 5 | ………… | 4×M－3 | N[byte]
変換対象(4×M[byte])※M＝N÷4 |  |  |  |


FLnetObject.explicitメソッド(Int64)
要約　構文　引数　戻り値　例外　解説
要約 Int64型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Long
[C#]
static public explicit operator long (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すInt64型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が8[byte]未満
解説 objのバイトシーケンスの先頭8[byte]を、Int64型にキャストします。objのバイト数が8[byte]よりも大きい場合は、縮小変換されます。
1 | 9 | N[byte]
変換対象(8[byte]) |


FLnetObject.explicitメソッド(Int64[ ])
要約　構文　引数　戻り値　解説
要約 Int64型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As Long()
[C#]
static public explicit operator long[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すInt64型配列の値。配列の要素数は、objのバイト数(=N)を8で割り算した商(=M)となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、Int64型配列にキャストします。objのバイト数(=N)を8で割り算した余りの部分は、変換されません。
1 | 9 | ………… | 8×M－7 | N[byte]
変換対象(8×M[byte])※M＝N÷8 |  |  |  |


FLnetObject.explicitメソッド(SByte)
要約　構文　引数　戻り値　例外　解説
要約 SByte型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As SByte
[C#]
static public explicit operator sbyte (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すSByte型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が0[byte]
解説 objのバイトシーケンスの先頭1[byte]を、SByte型にキャストします。objのバイト数が1[byte]よりも大きい場合は、縮小変換されます。
1 | 2 | N[byte]
変換対象(1[byte]) |


FLnetObject.explicitメソッド(SByte[ ])
要約　構文　引数　戻り値　解説
要約 SByte型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As SByte()
[C#]
static public explicit operator sbyte[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すSByte型配列の値。配列の要素数は、objのバイト数となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、SByte型配列にキャストします。

1

2

N[byte]

変換対象(N[byte])


FLnetObject.explicitメソッド(String)
要約　構文　引数　戻り値　解説
要約 String型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As String
[C#]
static public explicit operator string (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すString型の値
解説 objのバイトシーケンスを、Encodingプロパティの文字セットでデコードした文字列を取得します。


FLnetObject.explicitメソッド(UInt16)
要約　構文　引数　戻り値　例外　解説
要約 UInt16型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As UShort
[C#]
static public explicit operator ushort (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すUInt16型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が2[byte]未満
解説 objのバイトシーケンスの先頭2[byte]を、UInt16型にキャストします。objのバイト数が2[byte]よりも大きい場合は、縮小変換されます。
1 | 3 | N[byte]
変換対象(2[byte]) |


FLnetObject.explicitメソッド(UInt16[ ])
要約　構文　引数　戻り値　解説
要約 UInt16型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As UShort()
[C#]
static public explicit operator ushort[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すUInt16型配列の値。配列の要素数は、objのバイト数(=N)を2で割り算した商(=M)となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、UInt16型配列にキャストします。objのバイト数(=N)を2で割り算した余りの部分は、変換されません。
1 | 3 | ………… | 2×M－1 | N[byte]
変換対象(2×M[byte]) ※M＝N÷2 |  |  |  |


FLnetObject.explicitメソッド(UInt32)
要約　構文　引数　戻り値　例外　解説
要約 UInt32型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As UInteger
[C#]
static public explicit operator uint (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すUInt32型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が4[byte]未満
解説 objのバイトシーケンスの先頭4[byte]を、UInt32型にキャストします。objのバイト数が4[byte]よりも大きい場合は、縮小変換されます。
1 | 5 | N[byte]
変換対象(4[byte]) |


FLnetObject.explicitメソッド(UInt32[ ])
要約　構文　引数　戻り値　解説
要約 UInt32型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As UInteger()
[C#]
static public explicit operator uint[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すUInt32型配列の値。配列の要素数は、objのバイト数(=N)を4で割り算した商(=M)となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、UInt32型配列にキャストします。objのバイト数(=N)を4で割り算した余りの部分は、変換されません。
1 | 5 | ………… | 4×M－3 | N[byte]
変換対象(4×M[byte])※M＝N÷4 |  |  |  |


FLnetObject.explicitメソッド(UInt64)
要約　構文　引数　戻り値　例外　解説
要約 UInt64型にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As ULong
[C#]
static public explicit operator ulong (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すUInt64型の値
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Cast | (1) objがNULL (2) objの値がNULL (3) objのバイト数が8[byte]未満
解説 objのバイトシーケンスの先頭8[byte]を、UInt64型にキャストします。objのバイト数が8[byte]よりも大きい場合は、縮小変換されます。
1 | 9 | N[byte]
変換対象(8[byte]) |


FLnetObject.explicitメソッド(UInt64[ ])
要約　構文　引数　戻り値　解説
要約 UInt64型配列にキャストした値を取得します。
構文
[Visual Basic]
Public Shared Narrowing Operator CType ( _
ByVal obj As FLnetObject _
) As ULong()
[C#]
static public explicit operator ulong[] (
FLnetObject obj
)
引数
名前 | 説明
obj | (i) 変換対象のFLnetObjectインスタンス
戻り値 キャスト後の、objを表すUInt64型配列の値。配列の要素数は、objのバイト数(=N)を8で割り算した商(=M)となります。
キャストできない場合は、配列の要素数が0となります。
解説 objのバイトシーケンスを、UInt64型配列にキャストします。objのバイト数(=N)を8で割り算した余りの部分は、変換されません。
1 | 9 | ………… | 8×M－7 | N[byte]
変換対象(8×M[byte])※M＝N÷8 |  |  |  |


FLnetObject.implicitメソッド(Boolean)
要約　構文　引数　戻り値　解説　サンプル
要約 Boolean型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Boolean _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
bool value
)
引数
名前 | 説明
value | (i) 代入するBoolean型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにBoolean型の値を代入します。データサイズは1[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(Boolean型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, True)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(bool型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, true);
}


FLnetObject.implicitメソッド(Boolean[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Boolean型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Boolean() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
bool[] value
)
引数
名前 | 説明
value | (i) 代入するBoolean型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにBoolean型配列の値を代入します。データサイズは(1×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'Boolean型配列のデータを作成します。
 Dim bData(15) As Boolean
 For nLoop As Integer = 0 To 15 Step 1
If nLoop Mod 2 = 0 Then
 bData(nLoop) = True
 End If
 Next nLoop

'■他ノードに、透過形メッセージ(Boolean型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, bData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// bool型配列のデータを作成します。
 bool[] bData = new bool[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
if (nLoop % 2 == 0)
{
bData[nLoop] = true;
}
}

// ■他ノードに、透過形メッセージ(bool型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, bData);
}


FLnetObject.implicitメソッド(Byte)
要約　構文　引数　戻り値　解説　サンプル
要約 Byte型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Byte _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
byte value
)
引数
名前 | 説明
value | (i) 代入するByte型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにByte型の値を代入します。データサイズは1[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(Byte型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CByte(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(byte型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (byte)100);
}


FLnetObject.implicitメソッド(Byte[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Byte型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Byte() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
byte[] value
)
引数
名前 | 説明
value | (i) 代入するByte型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにByte型配列の値を代入します。データサイズは(1×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'Byte型配列のデータを作成します。
 Dim nData(15) As Byte
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CByte(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(Byte型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// byte型配列のデータを作成します。
 byte[] nData = new byte[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (byte)nLoop;
}

// ■他ノードに、透過形メッセージ(byte型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(Char)
要約　構文　引数　戻り値　解説　サンプル
要約 Char型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Char _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
char value
)
引数
名前 | 説明
value | (i) 代入するChar型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにChar型の値を代入します。データサイズは2[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(Char型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, "あ"c)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(char型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, 'あ');
}


FLnetObject.implicitメソッド(Char[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Char型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Char() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
char[] value
)
引数
名前 | 説明
value | (i) 代入するChar型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにChar型配列の値を代入します。データサイズは(2×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'Char型配列のデータを作成します。
 Dim nData(15) As Char
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = ChrW(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(Char型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// char型配列のデータを作成します。
 char[] nData = new char[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (char)nLoop;
}

// ■他ノードに、透過形メッセージ(char型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(Int16)
要約　構文　引数　戻り値　解説　サンプル
要約 Int16型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Short _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
short value
)
引数
名前 | 説明
value | (i) 代入するInt16型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにInt16型の値を代入します。データサイズは2[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(Short型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CShort(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(short型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (short)100);
}


FLnetObject.implicitメソッド(Int16[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Int16型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Short() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
short[] value
)
引数
名前 | 説明
value | (i) 代入するInt16型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにInt16型配列の値を代入します。データサイズは(2×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'Short型配列のデータを作成します。
 Dim nData(15) As Short
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CShort(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(Short型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// short型配列のデータを作成します。
 short[] nData = new short[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (short)nLoop;
}

// ■他ノードに、透過形メッセージ(short型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(Int32)
要約　構文　引数　戻り値　解説　サンプル
要約 Int32型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Integer _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
int value
)
引数
名前 | 説明
value | (i) 代入するInt32型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにInt32型の値を代入します。データサイズは4[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(Integer型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CInt(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(int型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (int)100);
}


FLnetObject.implicitメソッド(Int32[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Int32型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Integer() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
int[] value
)
引数
名前 | 説明
value | (i) 代入するInt32型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにInt32型配列の値を代入します。データサイズは(4×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'Integer型配列のデータを作成します。
 Dim nData(15) As Integer
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = nLoop
 Next nLoop

'■他ノードに、透過形メッセージ(Integer型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// int型配列のデータを作成します。
 int[] nData = new int[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = nLoop;
}

// ■他ノードに、透過形メッセージ(int型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(Int64)
要約　構文　引数　戻り値　解説　サンプル
要約 Int64型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Long _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
long value
)
引数
名前 | 説明
value | (i) 代入するInt64型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにInt64型の値を代入します。データサイズは8[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(Long型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CLong(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(long型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (long)100);
}


FLnetObject.implicitメソッド(Int64[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Int64型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As Long() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
long[] value
)
引数
名前 | 説明
value | (i) 代入するInt64型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにInt64型配列の値を代入します。データサイズは(8×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'Long型配列のデータを作成します。
 Dim nData(15) As Long
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CLng(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(Long型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// long型配列のデータを作成します。
 long[] nData = new byte[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (long)nLoop;
}

// ■他ノードに、透過形メッセージ(long型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(SByte)
要約　構文　引数　戻り値　解説　サンプル
要約 SByte型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As SByte _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
sbyte value
)
引数
名前 | 説明
value | (i) 代入するSByte型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにSByte型の値を代入します。データサイズは1[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(SByte型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CSByte(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(sbyte型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (sbyte)100);
}


FLnetObject.implicitメソッド(SByte[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 SByte型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As S Byte() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
sbyte[] value
)
引数
名前 | 説明
value | (i) 代入するSByte型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにSByte型配列の値を代入します。データサイズは(1×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'SByte型配列のデータを作成します。
 Dim nData(15) As SByte
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CSByte(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(SByte型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// sbyte型配列のデータを作成します。
 sbyte[] nData = new sbyte[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (sbyte)nLoop;
}

// ■他ノードに、透過形メッセージ(sbyte型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(String)
要約　構文　引数　戻り値　解説　サンプル
要約 Stringクラス(文字列)の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As String _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
string value
)
引数
名前 | 説明
value | (i) 代入するStringクラス(文字列)の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにStringクラス(文字列)の値を代入します。データサイズは、Encodingプロパティの文字セットでエンコードしたバイトシーケンスのバイト数です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(文字列)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890あいうえお")
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(文字列)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, "1234567890あいうえお");
}


FLnetObject.implicitメソッド(StringBuilder)
要約　構文　引数　戻り値　解説　サンプル
要約 StringBuilderクラス(可変型文字列)の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As StringBuilder _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
StringBuilder value
)
引数
名前 | 説明
value | (i) 代入するStringBuilderクラス(可変型文字列)の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにStringBuilderクラス(可変型文字列)の値を代入します。データサイズは、Encodingプロパティの文字セットでエンコードしたバイトシーケンスのバイト数です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(可変型文字列)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, New System.Text.StringBuilder("12345"))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(可変型文字列)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, new StringBuilder("12345"));
}


FLnetObject.implicitメソッド(String[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 Stringクラス(文字列)配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As String() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
string[] value
)
引数
名前 | 説明
value | (i) 代入するStringクラス(文字列)配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにStringクラス(文字列)配列の値を代入します。配列要素の文字列をEncodingプロパティの文字セットでエンコードしたバイトシーケンスを、配列要素順に連結したデータになります。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'string型配列のデータを作成します。
 Dim sData(2) As String
 sData(0) = "12345"
 sData(1) = "あいうえお"
 sData(2) = "ABCDE"

 '■他ノードに、透過形メッセージ(string型配列データ="12345あいうえおABCDE")を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, sData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// string型配列のデータを作成します。
 string[] sData = new string[3];
sData[0] = "12345";
sData[1] = "あいうえお";
sData[2] = "ABCDE";

// ■他ノードに、透過形メッセージ(string型配列データ="12345あいうえおABCDE")を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, sData);
}


FLnetObject.implicitメソッド(UInt16)
要約　構文　引数　戻り値　解説　サンプル
要約 UInt16型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As UShort _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
ushort value
)
引数
名前 | 説明
value | (i) 代入するUInt16型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにUInt16型の値を代入します。データサイズは2[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(UShort型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CUShort(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(ushort型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (ushort)100);
}


FLnetObject.implicitメソッド(UInt16[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 UInt16型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As U Short() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
u short[] value
)
引数
名前 | 説明
value | (i) 代入するUInt16型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにUInt16型配列の値を代入します。データサイズは(2×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'UShort型配列のデータを作成します。
 Dim nData(15) As UShort
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CUShort(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(UShort型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ushort型配列のデータを作成します。
 ushort[] nData = new ushort[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (ushort)nLoop;
}

// ■他ノードに、透過形メッセージ(ushort型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(UInt32)
要約　構文　引数　戻り値　解説　サンプル
要約 UInt32型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As UInteger _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
uint value
)
引数
名前 | 説明
value | (i) 代入するUInt32型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにUInt32型の値を代入します。データサイズは4[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(UInteger型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CUInt(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(uint型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (uint)100);
}


FLnetObject.implicitメソッド(UInt32[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 UInt32型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As UInteger() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
uint[] value
)
引数
名前 | 説明
value | (i) 代入するUInt32型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにUInt32型配列の値を代入します。データサイズは(4×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'UInteger型配列のデータを作成します。
 Dim nData(15) As UInteger
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CUInt(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(UInteger型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// uint型配列のデータを作成します。
 uint[] nData = new uint[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (uint)nLoop;
}

// ■他ノードに、透過形メッセージ(uint型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetObject.implicitメソッド(UInt64)
要約　構文　引数　戻り値　解説　サンプル
要約 UInt64型の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As ULong _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
ulong value
)
引数
名前 | 説明
value | (i) 代入するUInt64型の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにUInt64型の値を代入します。データサイズは8[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'■他ノードに、透過形メッセージ(ULong型データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, CULng(100))
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ■他ノードに、透過形メッセージ(ulong型データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, (ulong)100);
}


FLnetObject.implicitメソッド(UInt64[ ])
要約　構文　引数　戻り値　解説　サンプル
要約 UInt64型配列の値を代入したFLnetObjectインスタンスを取得します。
構文
[Visual Basic]
Public Shared Widening Operator CType ( _
ByVal value As ULong() _
) As FLnetObject
[C#]
static public implicit operator FLnetObject (
ulong[] value
)
引数
名前 | 説明
value | (i) 代入するUInt64型配列の値
戻り値 代入後の、FLnetObjectインスタンス
解説 FLnetObjectにUInt64型配列の値を代入します。データサイズは(8×配列要素数)[byte]です。
サンプル
[Visual Basic]
'[FLnetObject]ボタンClick
Private Sub btnFLnetObject_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFLnetObject.Click
'ULong型配列のデータを作成します。
 Dim nData(15) As ULong
 For nLoop As Integer = 0 To 15 Step 1
nData(nLoop) = CULng(nLoop)
 Next nLoop

'■他ノードに、透過形メッセージ(ULong型配列データ)を送信します。
 Dim nNodeNo As Byte = Byte.Parse(txtMessageNodeNo.Text)
FLnetCtrl.SendUserMessage(nNodeNo, 10000, nData)
End Sub
[C#]
// [FLnetObject]ボタンClick
private void btnFLnetObject_Click(object sender, EventArgs e)
{
// ulong型配列のデータを作成します。
 ulong[] nData = new ulong[16];
for (int nLoop = 0; nLoop < 16; nLoop++)
{
nData[nLoop] = (ulong)nLoop;
}

// ■他ノードに、透過形メッセージ(ulong型配列データ)を送信します。
 byte nNodeNo = byte.Parse(txtMessageNodeNo.Text);
fLnetCtrl.SendUserMessage(nNodeNo, 10000, nData);
}


FLnetExceptionクラス
要約　プロパティ　メソッド
要約

FL-net Controlでエラーが発生した場合にスローされる例外です。

＜階層＞
System.Object
  System.Exception
    System.SystemException
      System.ArgumentException
        HKE.FLnetCtrl.FLnetException

プロパティ

名前

型 get set 説明
Data IDictionary ○ × 例外に関する追加のユーザー定義情報を提供するキー/値ペアのコレクション
(System.Exceptionクラスから継承されます。)
ErrorNumber ErrorNumberEnum ○ × 例外のエラー番号
HelpLink String ○ × 例外に関連付けられているヘルプ ファイルへのリンク
(System.Exceptionクラスからオーバーライドされます。)
InnerException Exception ○ × 現在の例外を発生させたExceptionインスタンス
(System.Exceptionクラスから継承されます。)
Message String ○ × 現在の例外を説明するメッセージ
(System.ArgumentExceptionクラスからオーバーライドされます。)
ParamName String ○ × 例外の原因であるパラメータ名称
(System.ArgumentExceptionクラスからオーバーライドされます。)
Source String ○ ○ エラーの原因となったアプリケーションまたはオブジェクトの名前
(System.Exceptionクラスから継承されます。)
StackTrace String ○ × 現在の例外がスローされたときにコールスタックにあったフレームの文字列形式
(System.Exceptionクラスから継承されます。)
TargetSite Reflection.MethodBase ○ × 現在の例外をスローするメソッド
(System.Exceptionクラスから継承されます。)
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetBaseException 派生クラスでオーバーライドされた場合、それ以後に発生する1つ以上の例外の主要な原因であるExceptionを返します。
(System.Exceptionクラスから継承されます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetObjectData パラメータ名と追加の例外情報を使用して SerializationInfoオブジェクトを設定します。
(System.ArgumentExceptionクラスから継承されます。)
GetType | FLnetExceptionインスタンスのランタイム型を取得します。(System.Exceptionクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在の例外を表すStringを返します。(System.Exceptionクラスから継承されます。)


FLnetException.ErrorNumberプロパティ
要約　構文　値　解説　サンプル
要約 例外のエラー番号を取得します。
構文
[Visual Basic]
Public ReadOnly Property ErrorNumber As ErrorNumberEnum
[C#]
public ErrorNumberEnum ErrorNumber{get;}
値 例外のエラー番号(ErrorNumberEnum列挙型)
解説 例外の原因となるエラー番号を取得することができます。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonAreaクラス
要約　コンストラクタ　プロパティ　メソッド
要約

コモンメモリ領域を表します。

＜階層＞
System.Object
  HKE.FLnetCtrl.CommonArea

コンストラクタ
名前 | 説明
CommonArea() | CommonAreaクラスの新しいインスタンスを作成します。
CommonArea(領域) | 指定したコモンメモリ領域に対応するCommonAreaクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
Address1 UInt16 ○ ○ コモンメモリ領域1先頭アドレス[word単位]
Size1 UInt16 ○ ○ コモンメモリ領域1データサイズ[word単位]
Address2 UInt16 ○ ○ コモンメモリ領域2先頭アドレス[word単位]
Size2 UInt16 ○ ○ コモンメモリ領域2データサイズ[word単位]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


CommonAreaコンストラクタ
要約　構文　解説
要約 CommonAreaクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public CommonArea()
解説 プロパティの値は全て0になります。


CommonAreaコンストラクタ(領域指定)
要約　構文　引数　例外　解説　サンプル
要約 指定したコモンメモリ領域に対応するCommonAreaクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal nAddress1 As UShort, _
ByVal nSize1 As UShort, _
ByVal nAddress2 As UShort, _
ByVal nSize2 As UShort _
)
[C#]
public CommonArea(
ushort nAddress1,
ushort nSize1,
ushort nAddress2,
ushort nSize2
)
引数
名前 | 説明
nAddress1 | (i) 領域1先頭アドレス[word単位, 0～511]
nSize1 | (i) 領域1データサイズ[word単位, 0～512]
nAddress2 | (i) 領域2先頭アドレス[word単位, 0～8191]
nSize2 | (i) 領域2データサイズ[word単位, 0～8192]
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲(領域1:0～511[word], 領域2:0～8191[word])外の値を設定した。
解説 領域を指定して、CommonAreaクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■コモンメモリ送信領域設定を、領域：0～15[word], 領域：256～1023[word]に設定します。
 '一括で設定する場合
 FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 'FLnetCtrl.CommonSend.Address1 = 0
 'FLnetCtrl.CommonSend.Size1 = 16
 'FLnetCtrl.CommonSend.Address2 = 256
 'FLnetCtrl.CommonSend.Size2 = 768

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■コモンメモリ送信領域設定を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
 // 個々に設定する場合
 //fLnetCtrl.CommonSend.Address1 = 0;
 //fLnetCtrl.CommonSend.Size1 = 16;
 //fLnetCtrl.CommonSend.Address2 = 256;
 //fLnetCtrl.CommonSend.Size2 = 768;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonArea.Address1プロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ領域1先頭アドレスを取得または設定します。
構文
[Visual Basic]
Public Property Address1 As UShort
[C#]
public ushort Address1{get; set;}
値 コモンメモリ領域1先頭アドレス[word単位, 0～511]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | コモンメモリ領域1範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、コモンメモリ送信領域(FLnetCtrl.CommonSendプロパティ)の値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 Size1プロパティとの合計が0～512の範囲を超えないように設定してください。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■コモンメモリ送信領域設定を、領域：0～15[word], 領域：256～1023[word]に設定します。
 '一括で設定する場合
 'FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 FLnetCtrl.CommonSend.Address1 = 0
FLnetCtrl.CommonSend.Size1 = 16
FLnetCtrl.CommonSend.Address2 = 256
FLnetCtrl.CommonSend.Size2 = 768

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■コモンメモリ送信領域設定を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 //fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
 // 個々に設定する場合
 fLnetCtrl.CommonSend.Address1 = 0;
fLnetCtrl.CommonSend.Size1 = 16;
fLnetCtrl.CommonSend.Address2 = 256;
fLnetCtrl.CommonSend.Size2 = 768;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonArea.Address2プロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ領域2先頭アドレスを取得または設定します。
構文
[Visual Basic]
Public Property Address2 As UShort
[C#]
public ushort Address2{get; set;}
値 コモンメモリ領域2先頭アドレス[word単位, 0～8191]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | コモンメモリ領域2範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、コモンメモリ送信領域(FLnetCtrl.CommonSendプロパティ)の値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 Size2プロパティとの合計が0～8192の範囲を超えないように設定してください。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■コモンメモリ送信領域設定を、領域：0～15[word], 領域：256～1023[word]に設定します。
 '一括で設定する場合
 'FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 FLnetCtrl.CommonSend.Address1 = 0
FLnetCtrl.CommonSend.Size1 = 16
FLnetCtrl.CommonSend.Address2 = 256
FLnetCtrl.CommonSend.Size2 = 768

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■コモンメモリ送信領域設定を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 // fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
 // 個々に設定する場合
 fLnetCtrl.CommonSend.Address1 = 0;
fLnetCtrl.CommonSend.Size1 = 16;
fLnetCtrl.CommonSend.Address2 = 256;
fLnetCtrl.CommonSend.Size2 = 768;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonArea.Size1プロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ領域1データサイズを取得または設定します。
構文
[Visual Basic]
Public Property Size1 As UShort
[C#]
public ushort Size1{get; set;}
値 コモンメモリ領域1データサイズ[word単位, 0～512]。
コモンメモリ変化領域(FLnetCtrl.CommonChangeプロパティ)の規定値は512。その他の場合の規定値は0。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | コモンメモリ領域1範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、コモンメモリ送信領域(FLnetCtrl.CommonSendプロパティ)の値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 Address1プロパティとの合計が0～512の範囲を超えないように設定してください。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■コモンメモリ送信領域設定を、領域：0～15[word], 領域：256～1023[word]に設定します。
 '一括で設定する場合
 'FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 FLnetCtrl.CommonSend.Address1 = 0
FLnetCtrl.CommonSend.Size1 = 16
FLnetCtrl.CommonSend.Address2 = 256
FLnetCtrl.CommonSend.Size2 = 768

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■コモンメモリ送信領域設定を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 // fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
 // 個々に設定する場合
 fLnetCtrl.CommonSend.Address1 = 0;
fLnetCtrl.CommonSend.Size1 = 16;
fLnetCtrl.CommonSend.Address2 = 256;
fLnetCtrl.CommonSend.Size2 = 768;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonArea.Size2プロパティ
要約　構文　値　例外　解説　サンプル
要約 コモンメモリ領域2データサイズを取得または設定します。
構文
[Visual Basic]
Public Property Size2 As UShort
[C#]
public ushort Size2{get; set;}
値 コモンメモリ領域2データサイズ[word単位, 0～8192]。
コモンメモリ変化領域(FLnetCtrl.CommonChangeプロパティ)の規定値は8192。その他の場合の規定値は0。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | コモンメモリ領域2範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、コモンメモリ送信領域(FLnetCtrl.CommonSendプロパティ)の値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 Address2プロパティとの合計が0～8192の範囲を超えないように設定してください。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■コモンメモリ送信領域設定を、領域：0～15[word], 領域：256～1023[word]に設定します。
 '一括で設定する場合
 'FLnetCtrl.CommonSend = New HKE.FLnetCtrl.CommonArea(0, 16, 256, 768)
 '個々に設定する場合
 FLnetCtrl.CommonSend.Address1 = 0
FLnetCtrl.CommonSend.Size1 = 16
FLnetCtrl.CommonSend.Address2 = 256
FLnetCtrl.CommonSend.Size2 = 768

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■コモンメモリ送信領域設定を、領域1：0～15[word], 領域2：256～1023[word]に設定します。
 // 一括で設定する場合
 // fLnetCtrl.CommonSend = new HKE.FLnetCtrl.CommonArea(0, 16, 256, 768);
 // 個々に設定する場合
 fLnetCtrl.CommonSend.Address1 = 0;
fLnetCtrl.CommonSend.Size1 = 16;
fLnetCtrl.CommonSend.Address2 = 256;
fLnetCtrl.CommonSend.Size2 = 768;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Timeoutクラス
要約　コンストラクタ　プロパティ　メソッド
要約

タイムアウト時間を表します。

＜階層＞
System.Object
  HKE.FLnetCtrl.Timeout

コンストラクタ
名前 | 説明
Timeout() | Timeoutクラスの新しいインスタンスを作成します。
Timeout(時間) | 指定したタイムアウト時間に対応するTimeoutクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
LinkIn UInt32 ○ ○ リンク参加タイムアウト時間
MessageSend UInt32 ○ ○ メッセージ送信完了タイムアウト時間
MessageReply UInt32 ○ ○ メッセージ応答受信タイムアウト時間
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Timeoutコンストラクタ
要約　構文　解説
要約 Timeoutクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public Timeout()
解説 プロパティの値は規定値になります。


Timeoutコンストラクタ(時間指定)
要約　構文　引数　例外　解説　サンプル
要約 指定したタイムアウト時間に対応するTimeoutクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal nLinkIn As UInteger, _
ByVal nMessageSend As UInteger, _
ByVal nMessageReply As UInteger _
)
[C#]
public Timeout(
uint nLinkIn,
uint nMessageSend,
uint nMessageReply
)
引数
名前 | 説明
nLinkIn | (i) リンク参加タイムアウト[ms単位, 0～600,000(0=無限)]
nMessageSend | (i) メッセージ送信完了タイムアウト[ms単位, 0～600,000(0=無限)]
nMessageReply | (i) メッセージ応答受信タイムアウト[ms単位, 0～600,000(0=無限)]
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
解説 時間を指定して、Timeoutクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 '一括で設定する場合
 FLnetCtrl.Timeout = New HKE.FLnetCtrl.Timeout(60000, 0, 3000)
'個々に設定する場合
'FLnetCtrl.Timeout.LinkIn = 60000
'FLnetCtrl.Timeout.MessageSend = 0
'FLnetCtrl.Timeout.MessageReply = 3000

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 // 一括で設定する場合
 fLnetCtrl.Timeout = new HKE.FLnetCtrl.Timeout(60000, 0, 3000);
// 個々に設定する場合
//fLnetCtrl.Timeout.LinkIn = 60000;
//fLnetCtrl.Timeout.MessageSend = 0;
//fLnetCtrl.Timeout.MessageReply = 3000;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Timeout.LinkInプロパティ
要約　構文　値　例外　解説　サンプル
要約 リンク参加タイムアウト時間を取得または設定します。
構文
[Visual Basic]
Public Property LinkIn As UInteger
[C#]
public uint LinkIn{get; set;}
値 リンク参加タイムアウト時間[ms単位, 0～600,000(0=無限)]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、FLnetCtrl.Timeoutプロパティの値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 リンクの参加を開始してから参加完了するまでのタイムアウト時間を設定します。0を設定した場合は、タイムアウトは発生しません。
リンク参加中は設定できません。リンク参加前に設定してください。

設定時間を経過してもリンクに参加できない場合は、FLnetCtrl.LinkErrorイベント(Number=LinkInTimeout)が発生し、リンクへの参加を中断します。
サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 '一括で設定する場合
 'FLnetCtrl.Timeout = New HKE.FLnetCtrl.Timeout(60000, 0, 3000)
 '個々に設定する場合
 FLnetCtrl.Timeout.LinkIn = 60000
FLnetCtrl.Timeout.MessageSend = 0
FLnetCtrl.Timeout.MessageReply = 3000

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 // 一括で設定する場合
 //fLnetCtrl.Timeout = new HKE.FLnetCtrl.Timeout(60000, 0, 3000);
 // 個々に設定する場合
 fLnetCtrl.Timeout.LinkIn = 60000;
fLnetCtrl.Timeout.MessageSend = 0;
fLnetCtrl.Timeout.MessageReply = 3000;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Timeout.MessageReplyプロパティ
要約　構文　値　例外　解説　サンプル
要約 メッセージ応答受信タイムアウト時間を取得または設定します。
構文
[Visual Basic]
Public Property MessageReply As UInteger
[C#]
public uint MessageReply{get; set;}
値 メッセージ送信完了タイムアウト時間[ms単位, 0～600,000(0=無限)]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、FLnetCtrl.Timeoutプロパティの値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 要求メッセージの送信が完了してから要求先ノードより応答メッセージを受信するまでのタイムアウト時間を設定します。0を設定した場合は、タイムアウトは発生しません。
リンク参加中は設定できません。リンク参加前に設定してください。

設定した時間を経過しても要求先ノードから応答メッセージを受信できない場合はFLnetCtrl.MessageErrorイベント(Number=ReplyTimeout)が発生します。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 '一括で設定する場合
 'FLnetCtrl.Timeout = New HKE.FLnetCtrl.Timeout(60000, 0, 3000)
 '個々に設定する場合
 FLnetCtrl.Timeout.LinkIn = 60000
FLnetCtrl.Timeout.MessageSend = 0
FLnetCtrl.Timeout.MessageReply = 3000

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 // 一括で設定する場合
 //fLnetCtrl.Timeout = new HKE.FLnetCtrl.Timeout(60000, 0, 3000);
 // 個々に設定する場合
 fLnetCtrl.Timeout.LinkIn = 60000;
fLnetCtrl.Timeout.MessageSend = 0;
fLnetCtrl.Timeout.MessageReply = 3000;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Timeout.MessageSendプロパティ
要約　構文　値　例外　解説　サンプル
要約 メッセージ送信完了タイムアウト時間を取得または設定します。
構文
[Visual Basic]
Public Property MessageSend As UInteger
[C#]
public uint MessageSend{get; set;}
値 メッセージ送信完了タイムアウト時間[ms単位, 0～600,000(0=無限)]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に、FLnetCtrl.Timeoutプロパティの値を設定した。
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 メッセージ送信を開始してから送信先ノードより送達確認(ACK応答)を受信するまでのタイムアウト時間を設定します。0を設定した場合は、タイムアウトは発生しません。
リンク参加中は設定できません。リンク参加前に設定してください。

設定した時間を経過しても送信先ノードから送達確認を受信できない場合は、FLnetCtrl.MessageErrorイベント(Number=SendTimeout)が発生します。

サンプル
[Visual Basic]
'[リンク参加]ボタンClick
Private Sub btnLinkIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLinkIn.Click
Try
'■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 '一括で設定する場合
 'FLnetCtrl.Timeout = New HKE.FLnetCtrl.Timeout(60000, 0, 3000)
 '個々に設定する場合
 FLnetCtrl.Timeout.LinkIn = 60000
FLnetCtrl.Timeout.MessageSend = 0
FLnetCtrl.Timeout.MessageReply = 3000

 '■リンクに参加します。
 FLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [リンク参加]ボタンClick
private void btnLinkIn_Click(object sender, EventArgs e)
{
try
{
// ■リンク参加タイムアウト=60秒, メッセージ送信タイムアウト=0(無限), メッセージ応答タイムアウト=3秒に設定します。
 // 一括で設定する場合
 //fLnetCtrl.Timeout = new HKE.FLnetCtrl.Timeout(60000, 0, 3000);
 // 個々に設定する場合
 fLnetCtrl.Timeout.LinkIn = 60000;
fLnetCtrl.Timeout.MessageSend = 0;
fLnetCtrl.Timeout.MessageReply = 3000;

 // ■リンクに参加します。
 fLnetCtrl.LinkState = HKE.FLnetCtrl.LinkStateEnum.LinkIn;
 }
 catch (HKE.FLnetCtrl.FLnetException oException)
{
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


LockBlockクラス
要約　コンストラクタ　プロパティ　メソッド
要約

ブロックライト要求ロックモードを表します。

＜階層＞
System.Object
  HKE.FLnetCtrl.LockBlock

コンストラクタ
名前 | 説明
LockBlock() | LockBlockクラスの新しいインスタンスを作成します。
LockBlock(値) | 指定した設定に対応するLockBlockクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
ByteBlock Boolean ○ ○ バイトブロックライト要求ロックモード
WordBlock Boolean ○ ○ ワードブロックライト要求ロックモード
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LockBlockコンストラクタ
要約　構文　解説
要約 LockBlockクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public LockBlock()
解説 プロパティの値は規定値になります。


LockBlockコンストラクタ(値指定)
要約　構文　引数　解説　サンプル
要約 指定した設定に対応するLockBlockクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal bByteBlock As Boolean, _
ByVal bWordBlock As Boolean _
)
[C#]
public LockBlock(
bool bByteBlock,
bool bWordBlock
)
引数
名前 | 説明
bByteBlock | (i) バイトブロックライト要求ロックモード[true=ロック, false=ロック解除]
bWordBlock | (i) ワードブロックライト要求ロックモード[true=ロック, false=ロック解除]
解説 時間を指定して、Timeoutクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 '一括で設定する場合
 FLnetCtrl.LockBlock = New HKE.FLnetCtrl.LockBlock(True, False)
 '個々に設定する場合
 'FLnetCtrl.LockBlock.ByteBlock = True
 'FLnetCtrl.LockBlock.WordBlock = False
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 // 一括で設定する場合
 fLnetCtrl.LockBlock = new HKE.FLnetCtrl.LockBlock(true, false);
// 個々に設定する場合
 //fLnetCtrl.LockBlock.ByteBlock = true;
 //fLnetCtrl.LockBlock.WordBlock = false;
}


LockBlock.ByteBlockプロパティ
要約　構文　値　解説　サンプル
要約 バイトブロックライト要求ロックモードを取得または設定します。
構文
[Visual Basic]
Public Property ByteBlock As Boolean
[C#]
public bool ByteBlock{get; set;}
値 バイトブロックライト要求ロックモード[True=ロック, False=ロック解除]。規定値は、Falseです。
解説 他ノードから、バイトブロックライト要求を受けた場合に、自ノードが管理するバイトブロックデータへの書込みをロックするかのモードを設定します。リンク参加中も設定は可能です。

他ノードからのバイトブロックライト要求をロックする場合は、ByteBlockプロパティにTrueを設定します。他ノードからバイトブロックライト要求を受けた場合、要求元ノードに異常応答を送信します。

他ノードからのバイトブロックライト要求をロックしない場合は、ByteBlockプロパティにFalseを設定します。他ノードからバイトブロックライト要求を受けた場合、自ノードのバイトブロックデータを書き込み、要求元ノードに正常応答を送信します。

バイトブロックデータの値が変化した場合は、FLnetCtrl.BlockChangedイベントが発生します。ByteBlockプロパティにTrueを設定した場合でも、FLnetCtrl.WriteByteBlockメソッドを発行して、自ノードのバイトブロックデータをライトすることは可能です。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 '一括で設定する場合
'FLnetCtrl.LockBlock = New HKE.FLnetCtrl.LockBlock(True, False)
 '個々に設定する場合
 FLnetCtrl.LockBlock.ByteBlock = True
FLnetCtrl.LockBlock.WordBlock = False
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 // 一括で設定する場合
 //fLnetCtrl.LockBlock = new HKE.FLnetCtrl.LockBlock(true, false);
 // 個々に設定する場合
 fLnetCtrl.LockBlock.ByteBlock = true;
fLnetCtrl.LockBlock.WordBlock = false;
}


LockBlock.WordBlockプロパティ
要約　構文　値　例外　解説　サンプル
要約 ワードブロックライト要求ロックモードを取得または設定します。
構文
[Visual Basic]
Public Property WordBlock As Boolean
[C#]
public bool WordBlock{get; set;}
値 ワードブロックライト要求ロックモード[True=ロック, False=ロック解除]。規定値は、Falseです。
解説 他ノードから、ワードブロックライト要求を受けた場合に、自ノードが管理するワードブロックデータへの書込みをロックするかのモードを設定します。リンク参加中も設定は可能です。

他ノードからのワードブロックライト要求をロックする場合は、WordBlockプロパティにTrueを設定します。他ノードからワードブロックライト要求を受けた場合、要求元ノードに異常応答を送信します。

他ノードからのワードブロックライト要求をロックしない場合は、WordBlockプロパティにFalseを設定します。他ノードからワードブロックライト要求を受けた場合、自ノードのワードブロックデータを書き込み、要求元ノードに正常応答を送信します。

ワードブロックデータの値が変化した場合は、FLnetCtrl.BlockChangedイベントが発生します。WordBlockプロパティにTrueを設定した場合でも、FLnetCtrl.WriteWordBlockメソッドを発行して、自ノードのワードブロックデータをライトすることは可能です。

サンプル
[Visual Basic]
'初期化処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 '一括で設定する場合
'FLnetCtrl.LockBlock = New HKE.FLnetCtrl.LockBlock(True, False)
 '個々に設定する場合
 FLnetCtrl.LockBlock.ByteBlock = True
FLnetCtrl.LockBlock.WordBlock = False
End Sub
[C#]
// 初期化処理
private void Form1_Load(object sender, EventArgs e)
{
// ■バイトブロック：ロック、ワードブロック：ロック解除に設定します。
 // 一括で設定する場合
 //fLnetCtrl.LockBlock = new HKE.FLnetCtrl.LockBlock(true, false);
 // 個々に設定する場合
 fLnetCtrl.LockBlock.ByteBlock = true;
fLnetCtrl.LockBlock.WordBlock = false;
}


CommonTagクラス
要約　コンストラクタ　プロパティ　メソッド
要約

コモンメモリ領域変化検出タグアイテムの基本クラスです。

＜階層＞
System.Object
  HKE.FLnetCtrl.CommonTag

コンストラクタ
名前 | 説明
CommonTag() | CommonTagクラスの新しいインスタンスを作成します。パラメータはデフォルト値となります。
CommonTag(パラメータ) | 指定したパラメータに対応するCommonTagクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
Enabled Boolean ○ ○ 変化検出イベントの発生有無
TagName String ○ ○ タグ名称
Address UInt16 ○ ○ 変化検出アドレス
DelayTime UInt16 ○ ○ イベント検知遅延時間
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


CommonTagコンストラクタ
要約　構文　解説
要約 CommonTagクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public CommonTag()
解説 プロパティの値は規定値になります。


CommonTagコンストラクタ(パラメータ指定)
要約　構文　引数　解説
要約 指定したパラメータに対応するCommonTagクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal bEnabled As Boolean, _
ByVal strTagName As String, _
ByVal nAddress As UShort, _
ByVal nDelayTime As UShort _
)
[C#]
public LockBlock(
bool bEnabled,
string strTagName,
ushort nAddress,
ushort nDelayTime
)
引数
名前 | 説明
bEnabled | (i) 変化検出イベントの発生有無[true=有効, false=無効]
strTagName | (i) タグ名称
nAddress | (i) 変化検出アドレス[word単位, 0～511]
nDelayTime | (i) イベント検知遅延時間[100ms単位, 0～1000]
解説 値を指定して、CommonTagクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。


CommonTag.Addressプロパティ
要約　構文　値　例外　解説　サンプル
要約 変化検出アドレスを取得または設定します。
構文
[Visual Basic]
Public Overridable Property Address As UShort
[C#]
public virtual ushort Address{get; set;}
値 変化検出を行うアドレス[領域1:0～511[word]、領域2:0～8191[word]]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 領域範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 変化検出タグアイテムの変化検出アドレスを設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100

'■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;

 // ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonTag.DelayTimeプロパティ
要約　構文　値　例外　解説　サンプル
要約 イベント検知遅延時間を取得または設定します。
構文
[Visual Basic]
Public Property DelayTime As UShort
[C#]
public ushort DelayTime{get; set;}
値 変化検出を行う遅延時間[100ms単位, 0～1,000]。規定値は0(遅延無し)です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 変化検出タグアイテムのイベントを検知する遅延時間を設定します。リンク参加中は設定できません。リンク参加前に設定してください。

値のチャタリング(ふらつき)を防止するための設定です。変化検出条件を満たしてからイベント検知時間を経過した場合に、変化検出イベント(FLnetCtrl.Common1TagイベントまたはFLnetCtrl.Common2Tagイベント)が発生します。イベント検知遅延時間内に変化検出条件を満たさなくなった場合は、変化検出イベントは発生しません。

イベント検知遅延時間に0を設定した場合は、変化検出条件を満たした直後にイベントが発生します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100

'■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;

 // ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonTag.Enabledプロパティ
要約　構文　値　例外　解説　サンプル
要約 変化検出イベントの発生有無を取得または設定します。
構文
[Visual Basic]
Public Property Enabled As Boolean
[C#]
public bool Enabled{get; set;}
値 変化検出イベントの発生有無[True=有効, False=無効]。規定値はTrueです。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 変化検出タグアイテムの、変化検出イベント(FLnetCtrl.Common1TagイベントまたはFLnetCtrl.Common2Tagイベント)発生有無を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100

'■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;

 // ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


CommonTag.TagNameプロパティ
要約　構文　値　例外　解説　サンプル
要約 タグ名称を取得または設定します。
構文
[Visual Basic]
Public Property TagName As String
[C#]
public string TagName{get; set;}
値 タグ名称。規定値は""です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 変化検出タグアイテムの名称を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100

'■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;

 // ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tagクラス
要約　コンストラクタ　プロパティ　メソッド
要約

コモンメモリ領域1の変化検出タグアイテムを表します。

＜階層＞
System.Object
  HKE.FLnetCtrl.CommonTag
    HKE.FLnetCtrl.Common1Tag

コンストラクタ
名前 | 説明
Common1Tag() | Common1Tagクラスの新しいインスタンスを作成します。パラメータはデフォルト値となります。
Common1Tag(パラメータ) | 指定したパラメータに対応するCommon1Tagクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
Enabled Boolean ○ ○ 変化検出イベントの発生有無(CommonTagクラスから継承されます。)
TagName String ○ ○ タグ名称(CommonTagクラスから継承されます。)
Trigger Tag1TriggerEnum ○ ○ トリガ種別
Address UInt16 ○ ○ 変化検出アドレス(CommonTagクラスからオーバーライドされます。)
Bit Byte ○ ○ 変化検出ビット
DelayTime UInt16 ○ ○ イベント検知遅延時間(CommonTagクラスから継承されます。)
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Common1Tagコンストラクタ
要約　構文　解説
要約 Common1Tagクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public Common1Tag()
解説 プロパティの値は規定値になります。


Common1Tagコンストラクタ(パラメータ指定)
要約　構文　引数　解説　サンプル
要約 指定したパラメータに対応するCommon1Tagクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal bEnabled As Boolean, _
ByVal strTagName As String, _
ByVal nTrigger As Tag1TriggerEnum, _
ByVal nAddress As UShort, _
ByVal nBit As Byte, _
ByVal nDelayTime As UShort _
)
[C#]
public LockBlock(
bool bEnabled,
string strTagName,
Tag1TriggerEnum nTrigger,
ushort nAddress,
byte nBit,
ushort nDelayTime
)
引数
名前 | 説明
bEnabled | (i) 変化検出イベントの発生有無[true=有効, false=無効]
strTagName | (i) タグ名称
nTrigger | (i) トリガ種別
nAddress | (i) 変化検出アドレス[word単位, 0～511]
nBit | (i) 変化検出ビット[0～15]
nDelayTime | (i) イベント検知遅延時間[100ms単位, 0～1000]
解説 値を指定して、Common1Tagクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tag.Bitプロパティ
要約　構文　値　例外　解説　サンプル
要約 変化検出ビットを取得または設定します。
構文
[Visual Basic]
Public Property Bit As Byte
[C#]
public byte Bit{get; set;}
値 変化検出を行うビット[0～15]。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 コモンメモリ領域1変化検出タグアイテムの、変化検出ビットを設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tag.Triggerプロパティ
要約　構文　値　例外　解説　サンプル
要約 トリガ種別を取得または設定します。
構文
[Visual Basic]
Public Property Trigger As Tag1TriggerEnum
[C#]
public Tag1TriggerEnum Trigger{get; set;}
値 変化検出を行うトリガ種別(Tag1TriggerEnum列挙体)。規定値はTag1TriggerEnum.BitOnOffです。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 コモンメモリ領域1変化検出タグアイテムの、変化検出トリガ条件を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tagクラス
要約　コンストラクタ　プロパティ　メソッド
要約

コモンメモリ領域2の変化検出タグアイテムを表します。

＜階層＞
System.Object
  HKE.FLnetCtrl.CommonTag
    HKE.FLnetCtrl.Common2Tag

コンストラクタ
名前 | 説明
Common2Tag() | Common2Tagクラスの新しいインスタンスを作成します。パラメータはデフォルト値となります。
Common2Tag(パラメータ) | 指定したパラメータに対応するCommon2Tagクラスの新しいインスタンスを作成します。
プロパティ

名前

型 get set 説明
Enabled Boolean ○ ○ 変化検出イベントの発生有無(CommonTagクラスから継承されます。)
TagName String ○ ○ タグ名称(CommonTagクラスから継承されます。)
Trigger Tag2TriggerEnum ○ ○ トリガ種別
Address UInt16 ○ ○ 変化検出アドレス(CommonTagクラスからオーバーライドされます。)
Threshold UInt16 ○ ○ しきい値
DelayTime UInt16 ○ ○ イベント検知遅延時間(CommonTagクラスから継承されます。)
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Common2Tagコンストラクタ
要約　構文　解説
要約 Common2Tagクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public Common2Tag()
解説 プロパティの値は規定値になります。


Common2Tagコンストラクタ(パラメータ指定)
要約　構文　引数　解説　サンプル
要約 指定したパラメータに対応するCommon2Tagクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal bEnabled As Boolean, _
ByVal strTagName As String, _
ByVal nTrigger As Tag2TriggerEnum, _
ByVal nAddress As UShort, _
ByVal nThreshold As UShort, _
ByVal nDelayTime As UShort _
)
[C#]
public LockBlock(
bool bEnabled,
string strTagName,
Tag2TriggerEnum nTrigger,
ushort nAddress,
ushort nThreshold,
ushort nDelayTime
)
引数
名前 | 説明
bEnabled | (i) 変化検出イベントの発生有無[true=有効, false=無効]
strTagName | (i) タグ名称
nTrigger | (i) トリガ種別
nAddress | (i) 変化検出アドレス[word単位, 0～8191]
nThreshold | (i) しきい値
nDelayTime | (i) イベント検知遅延時間[100ms単位, 0～1000]
解説 値を指定して、Common2Tagクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tag.Thresholdプロパティ
要約　構文　値　例外　解説　サンプル
要約 しきい値を取得または設定します。
構文
[Visual Basic]
Public Property Threshold As UShort
[C#]
public ushort Threshold{get; set;}
値 変化検出を判定するしきい値。規定値は0です。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 コモンメモリ領域2変化検出タグアイテムの、変化検出を判定するしきい値を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tag.Triggerプロパティ
要約　構文　値　例外　解説　サンプル
要約 トリガ種別を取得または設定します。
構文
[Visual Basic]
Public Property Trigger As Tag2TriggerEnum
[C#]
public Tag2TriggerEnum Trigger{get; set;}
値 変化検出を行うトリガ種別(Tag2TriggerEnum列挙体)。規定値はTag2TriggerEnum.WordChangeです。
例外 以下のFLnetException例外が発生します。
エラー番号(ErrorNumberEnum) | 発生条件
Value | 範囲外の値を設定した。
LinkIn | リンク参加(待機/モニタ)中に値を設定した。
解説 コモンメモリ領域2変化検出タグアイテムの、変化検出トリガ条件を設定します。リンク参加中は設定できません。リンク参加前に設定してください。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tagsクラス
要約　コンストラクタ　プロパティ　メソッド
要約

Common1Tag(コモンメモリ領域1変化検出タグアイテム)オブジェクトのコレクション。

＜階層＞
System.Object
  System.Collections.CollectionBase
    HKE.FLnetCtrl.Common1Tags

コンストラクタ

名前

説明
Common1Tags() | Common1Tag要素未登録の、Common1Tagsクラスの新しいインスタンスを作成します。
Common1Tags(要素) | Common1Tag要素を指定し、Common1Tagsクラスの新しいインスタンスを作成します。
プロパティ

名前

型

 get set

説明
Capacity Int32 ○ ○ コレクションに格納できる項目の最大数
(System.Collections.CollectionBaseクラスから継承されます。)
Count Int32 ○ × コレクション内のCommon1Tagオブジェクト数
(System.Collections.CollectionBaseクラスから継承されます。)
Item Common1Tag ○ ○ コレクション内の指定したインデックス位置にあるCommon1Tagオブジェクト
メソッド
名前 | 説明
Add | Common1Tagオブジェクトをコレクションの末尾に追加します。
AddRange | Common1Tagオブジェクト配列をコレクションに追加します。
Clear | Common1TagsインスタンスからすべてのCommon1Tagオブジェクトを削除します。
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
RemoveAt | Common1Tagsインスタンスの指定したインデックスにある要素を削除します。
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Common1Tagsコンストラクタ
要約　構文　解説
要約 Common1Tag要素未登録の、Common1Tagsクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public Common1Tags()
解説 Common1Tagオブジェクトは未登録の状態です。


Common1Tagsコンストラクタ(要素指定)
要約　構文　引数　解説　サンプル
要約 Common1Tag要素を指定し、Common1Tagsクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal oaInitialTags() As Common1Tag _
)
[C#]
public Common1Tags(
Common1Tag[] oaInitialTags
)
引数
名前 | 説明
oaInitialTags | (i) コレクションに追加するCommon1Tagオブジェクトの配列
解説 Common1Tagオブジェクト配列要素を指定して、Common1Tagsクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tags.Itemプロパティ
要約　構文　引数　値　例外　解説　サンプル
要約 コレクション内の指定したインデックス位置にあるCommon1Tagを取得または設定します。
構文
[Visual Basic]
Public Default Property Item( _
ByVal nIndex As Integer _
) As Common1Tag
[C#]
public Common1Tag this[
int nIndex
] {get; set;}
引数
名前 | 説明
nIndex | (i) コレクションの0から始まるインデックス番号
値 コレクション内の指定したインデックス位置のCommon1Tagオブジェクト
例外 以下の例外が発生します。
例外の種類 | 発生条件
ArgumentOutOfRangeException | nIndexの値がコレクションの範囲外
FLnetException(ErrorNumberEnum.LinkIn) | リンク参加(待機/モニタ)中に値を設定した。
解説 このインデクサを使用し、配列表記を使用して、コレクション内の指定したインデックス位置にあるCommon1Tagを取得または設定します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common1Tags = New HKE.FLnetCtrl.Common1Tags(oTag1)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common1Tags(2).Enabled = True
 FLnetCtrl.Common1Tags(2).TagName = "制御開始要求"
 FLnetCtrl.Common1Tags(2).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
FLnetCtrl.Common1Tags(2).Address = 17
FLnetCtrl.Common1Tags(2).Bit = 15
FLnetCtrl.Common1Tags(2).DelayTime = 100
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
Private Sub FLnetCtrl_Common1Tag(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.Common1TagEventArgs) Handles FLnetCtrl.Common1Tag
'タグ名称を取得します。
 Dim sTagName As String = FLnetCtrl.Common1Tags(e.TagIndex).TagName
If e.TagIndex.Equals(0) Then
 'モータ運転開始時の処理
 ElseIf e.TagIndex.Equals(1) Then
 'モータ運転停止時の処理
 End If
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common1Tags = new HKE.FLnetCtrl.Common1Tags(oTag1);

 // Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common1Tags[2].Enabled = true;
fLnetCtrl.Common1Tags[2].TagName = "制御開始要求";
fLnetCtrl.Common1Tags[2].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
fLnetCtrl.Common1Tags[2].Address = 17;
fLnetCtrl.Common1Tags[2].Bit = 15;
fLnetCtrl.Common1Tags[2].DelayTime = 100;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// コモンメモリ領域1変化検出タグの条件を満たした場合に発生します。
 private void fLnetCtrl_Common1Tag(object sender, HKE.FLnetCtrl.Common1TagEventArgs e)
{
// タグ名称を取得します。
 string sTagName = fLnetCtrl.Common1Tags[e.TagIndex].TagName;

if (e.TagIndex.Equals(0))
{
// モータ運転開始時の処理
 }
else if (e.TagIndex.Equals(1))
{
// モータ運転停止時の処理
 }
}


Common1Tags.Addメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 Common1Tagオブジェクトをコレクションの末尾に追加します。
構文
[Visual Basic]
Public Function Add( _
ByVal oTagItem As Common1Tag _
) As MethodReturnEnum
[C#]
public MethodReturnEnum Add(
Common1Tag oTagItem
)
引数
名前 | 説明
oTagItem | (i) コレクションの末尾に追加するCommon1Tag
戻り値 追加結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
LinkIn | リンク参加(待機/モニタ)中
解説 Addメソッドを発行して、Common1Tagをコレクションの末尾に追加します。リンク参加中は追加できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
 Try
 '■コモンメモリ領域1変化検出タグの設定
Dim oTagA1 As New HKE.FLnetCtrl.Common1Tag
 'アイテムの属性を設定します。
oTagA1.Enabled = True
 oTagA1.TagName = "モータ運転開始"
 oTagA1.Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
 oTagA1.Address = 16
 oTagA1.Bit = 0
 oTagA1.DelayTime = 0
 'アイテムを追加します。
FLnetCtrl.Common1Tags.Add(oTagA1)
 FLnetCtrl.Common1Tags.Add(New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0))
 Catch oException As HKE.FLnetCtrl.FLnetException
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
 oException.Message, oException.ParamName)
 End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag oTagA1 = new HKE.FLnetCtrl.Common1Tag();
// アイテムの属性を設定します。
oTagA1.Enabled = true;
oTagA1.TagName = "モータ運転開始";
oTagA1.Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTagA1.Address = 16;
oTagA1.Bit = 0;
oTagA1.DelayTime = 0;
// アイテムを追加します。
fLnetCtrl.Common1Tags.Add(oTagA1);
fLnetCtrl.Common1Tags.Add(new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0));
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tags.AddRangeメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 Common1Tagオブジェクト配列をコレクションに追加します。
構文
[Visual Basic]
Public Function AddRange( _
ByVal oaTagItems As Common1Tag() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum AddRange(
Common1Tag[] oaTagItems
)
引数
名前 | 説明
oaTagItems | (i) コレクションに追加するCommon1Tagオブジェクトの配列
戻り値 追加結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
LinkIn | リンク参加(待機/モニタ)中
解説 AddRangeメソッドを発行して、oaTagItemsで指定したCommon1Tagオブジェクト配列を追加します。これにより、複数のCommon1Tagオブジェクトを1回の操作でコレクションに追加できます。リンク参加中は追加できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグの設定
 Dim oTag1(1) As HKE.FLnetCtrl.Common1Tag
'アイテムの属性を設定します。
 oTag1(0) = New HKE.FLnetCtrl.Common1Tag()
oTag1(0).Enabled = True
 oTag1(0).TagName = "モータ運転開始"
 oTag1(0).Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn
oTag1(0).Address = 16
oTag1(0).Bit = 0
oTag1(0).DelayTime = 0
'アイテムを一括で設定します。
 oTag1(1) = New HKE.FLnetCtrl.Common1Tag(True, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0)
'変化検出タグ配列を追加登録します。
 FLnetCtrl.Common1Tags.AddRange(oTag1)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグの設定
 HKE.FLnetCtrl.Common1Tag[] oTag1 = new HKE.FLnetCtrl.Common1Tag[2];
// アイテムの属性を設定します。
 oTag1[0] = new HKE.FLnetCtrl.Common1Tag();
oTag1[0].Enabled = true;
oTag1[0].TagName = "モータ運転開始";
oTag1[0].Trigger = HKE.FLnetCtrl.Tag1TriggerEnum.BitOn;
oTag1[0].Address = 16;
oTag1[0].Bit = 0;
oTag1[0].DelayTime = 0;
// アイテムを一括で設定します。
 oTag1[1] = new HKE.FLnetCtrl.Common1Tag(true, "モータ運転停止", HKE.FLnetCtrl.Tag1TriggerEnum.BitOn, 16, 1, 0);
// 変化検出タグ配列を追加登録します。
 fLnetCtrl.Common1Tags.AddRange(oTag1);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tags.Clearメソッド
要約　構文　戻り値　解説　サンプル
要約 コレクションからすべてのCommon1Tagオブジェクトを削除します。
構文
[Visual Basic]
Public Function Clear() As MethodReturnEnum
[C#]
public MethodReturnEnum Clear()
戻り値 削除結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
LinkIn | リンク参加(待機/モニタ)中
解説 Clearメソッドを発行して、すべてのCommon1Tagオブジェクトを削除します。Countプロパティも0に設定されます。リンク参加中は削除できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグアイテムを一括削除します。
 FLnetCtrl.Common1Tags.Clear()
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグアイテムを一括削除します。
 fLnetCtrl.Common1Tags.Clear();
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common1Tags.RemoveAtメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 指定したインデックスにあるCommon1Tagオブジェクトを削除します。
構文
[Visual Basic]
Public Function RemoveAt( _
ByVal nIndex As Integer _
) As MethodReturnEnum
[C#]
public MethodReturnEnum　RemoveAt(
int nIndex
)
引数
名前 | 説明
nIndex | (i) 削除する要素の、0から始まるインデックス番号
戻り値 削除結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nIndexが0未満 (2) nIndexがCount以上
LinkIn | リンク参加(待機/モニタ)中
解説 RemoveAtメソッドを発行して、指定したインデックス位置にある Common1Tagオブジェクトをコレクションから削除します。リンク参加中は削除できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域1変化検出タグアイテム番号=10を削除します。
 FLnetCtrl.Common1Tags.RemoveAt(10)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域1変化検出タグアイテム番号=10を削除します。
 fLnetCtrl.Common1Tags.RemoveAt(10);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tagsクラス
要約　コンストラクタ　プロパティ　メソッド
要約

Common2Tag(コモンメモリ領域2変化検出タグアイテム)オブジェクトのコレクション。

＜階層＞
System.Object
  System.Collections.CollectionBase
    HKE.FLnetCtrl.Common2Tags

コンストラクタ

名前

説明
Common2Tags() | Common2Tag要素未登録の、Common2Tagsクラスの新しいインスタンスを作成します。
Common2Tags(要素) | Common2Tag要素を指定し、Common2Tagsクラスの新しいインスタンスを作成します。
プロパティ

名前

型

 get set

説明
Capacity Int32 ○ ○ コレクションに格納できる項目の最大数
(System.Collections.CollectionBaseクラスから継承されます。)
Count Int32 ○ × コレクション内のCommon2Tagオブジェクト数
(System.Collections.CollectionBaseクラスから継承されます。)
Item Common2Tag ○ ○ コレクション内の指定したインデックス位置にあるCommon2Tagオブジェクト
メソッド
名前 | 説明
Add | Common2Tagオブジェクトをコレクションの末尾に追加します。
AddRange | Common2Tagオブジェクト配列をコレクションに追加します。
Clear | Common2TagsインスタンスからすべてのCommon2Tagオブジェクトを削除します。
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ReferenceEquals | 指定した複数のObjectインスタンスが同一かどうかを判断します。(System.Objectクラスから継承されます。)
RemoveAt | Common2Tagsインスタンスの指定したインデックスにある要素を削除します。
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Common2Tagsコンストラクタ
要約　構文　解説
要約 Common2Tag要素未登録の、Common2Tagsクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New()
[C#]
public Common2Tags()
解説 Common2Tagオブジェクトは未登録の状態です。


Common2Tagsコンストラクタ(要素指定)
要約　構文　引数　解説　サンプル
要約 Common2Tag要素を指定し、Common2Tagsクラスの新しいインスタンスを作成します。
構文
[Visual Basic]
Public Sub New( _
ByVal oaInitialTags() As Common2Tag _
)
[C#]
public Common2Tags(
Common2Tag[] oaInitialTags
)
引数
名前 | 説明
oaInitialTags | (i) コレクションに追加するCommon2Tagオブジェクトの配列
解説 Common2Tagオブジェクト配列要素を指定して、Common2Tagsクラスの新しいインスタンスを作成するには、このコンストラクタを使用します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tags.Itemプロパティ
要約　構文　引数　値　例外　解説　サンプル
要約 コレクション内の指定したインデックス位置にあるCommon2Tagを取得または設定します。
構文
[Visual Basic]
Public Default Property Item( _
ByVal nIndex As Integer _
) As Common2Tag
[C#]
public Common2Tag this[
int nIndex
] {get; set;}
引数
名前 | 説明
nIndex | (i) コレクションの0から始まるインデックス番号
値 コレクション内の指定したインデックス位置のCommon2Tagオブジェクト
例外 以下の例外が発生します。
例外の種類 | 発生条件
ArgumentOutOfRangeException | nIndexの値がコレクションの範囲外
FLnetException(ErrorNumberEnum.LinkIn) | リンク参加(待機/モニタ)中に値を設定した。
解説 このインデクサを使用し、配列表記を使用して、コレクション内の指定したインデックス位置にあるCommon2Tagを取得または設定します。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグを登録します。
 FLnetCtrl.Common2Tags = New HKE.FLnetCtrl.Common2Tags(oTag2)

'Index番号=2のアイテムの属性を設定します。
 FLnetCtrl.Common2Tags(2).Enabled = True
 FLnetCtrl.Common2Tags(2).TagName = "アーム位置低"
 FLnetCtrl.Common2Tags(2).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower
FLnetCtrl.Common2Tags(2).Address = 258
FLnetCtrl.Common2Tags(2).Threshold = 10000
FLnetCtrl.Common2Tags(2).DelayTime = 50
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub

'コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
Private Sub FLnetCtrl_Common2Tag(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.Common2TagEventArgs) Handles FLnetCtrl.Common1Tag
'タグ名称を取得します。
 Dim sTagName As String = FLnetCtrl.Common2Tags(e.TagIndex).TagName
If e.TagIndex.Equals(0) Then
 'タンク液量上回り時の処理
 ElseIf e.TagIndex.Equals(1) Then
 '電力量変化時の処理
 End If
End Sub

[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグを登録します。
 fLnetCtrl.Common2Tags = new HKE.FLnetCtrl.Common2Tags(oTag2);

// Index番号=2のアイテムの属性を設定します。
 fLnetCtrl.Common2Tags[2].Enabled = true;
fLnetCtrl.Common2Tags[2].TagName = "アーム位置低";
fLnetCtrl.Common2Tags[2].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordLower;
fLnetCtrl.Common2Tags[2].Address = 258;
fLnetCtrl.Common2Tags[2].Threshold = 10000;
fLnetCtrl.Common2Tags[2].DelayTime = 50;
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}

// コモンメモリ領域2変化検出タグの条件を満たした場合に発生します。
 private void fLnetCtrl_Common2Tag(object sender, HKE.FLnetCtrl.Common2TagEventArgs e)
{
// タグ名称を取得します。
 string sTagName = fLnetCtrl.Common2Tags[e.TagIndex].TagName;

if (e.TagIndex.Equals(0))
{
// タンク液量上回り時の処理
 }
else if (e.TagIndex.Equals(1))
{
// 電力量変化時の処理
 }
}


Common2Tags.Addメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 Common2Tagオブジェクトをコレクションの末尾に追加します。
構文
[Visual Basic]
Public Function Add( _
ByVal oTagItem As Common2Tag _
) As MethodReturnEnum
[C#]
public MethodReturnEnum Add(
Common2Tag oTagItem
)
引数
名前 | 説明
oTagItem | (i) コレクションの末尾に追加するCommon2Tag
戻り値 追加結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
LinkIn | リンク参加(待機/モニタ)中
解説 Addメソッドを発行して、Common2Tagをコレクションの末尾に追加します。リンク参加中は追加できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
 Try
 '■コモンメモリ領域2変化検出タグの設定
Dim oTagA2 As New HKE.FLnetCtrl.Common2Tag
 'アイテムの属性を設定します。
 oTagA2.Enabled = True
 oTagA2.TagName = "タンク液量上回り"
 oTagA2.Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTagA2.Address = 256
oTagA2.Threshold = 2000
oTagA2.DelayTime = 10
'アイテムを追加します。
FLnetCtrl.Common2Tags.Add(oTagA2)
FLnetCtrl.Common2Tags.Add(New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0))
 Catch oException As HKE.FLnetCtrl.FLnetException
 MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
 oException.Message, oException.ParamName)
 End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag oTagA2 = new HKE.FLnetCtrl.Common2Tag();
// アイテムの属性を設定します。
oTagA2.Enabled = true;
oTagA2.TagName = "タンク液量上回り";
oTagA2.Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTagA2.Address = 256;
oTagA2.Threshold = 2000;
oTagA2.DelayTime = 10;
// アイテムを追加します。
fLnetCtrl.Common2Tags.Add(oTagA2);
fLnetCtrl.Common2Tags.Add(new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0));
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tags.AddRangeメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 Common2Tagオブジェクト配列をコレクションに追加します。
構文
[Visual Basic]
Public Function AddRange( _
ByVal oaTagItems As Common2Tag() _
) As MethodReturnEnum
[C#]
public MethodReturnEnum AddRange(
Common2Tag[] oaTagItems
)
引数
名前 | 説明
oaTagItems | (i) コレクションに追加するCommon2Tagオブジェクトの配列
戻り値 追加結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
LinkIn | リンク参加(待機/モニタ)中
解説 AddRangeメソッドを発行して、oaTagItemsで指定したCommon2Tagオブジェクト配列を追加します。これにより、複数のCommon2Tagオブジェクトを1回の操作でコレクションに追加できます。リンク参加中は追加できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグの設定
 Dim oTag2(1) As HKE.FLnetCtrl.Common2Tag
'アイテムの属性を設定します。
 oTag2(0) = New HKE.FLnetCtrl.Common2Tag()
oTag2(0).Enabled = True
 oTag2(0).TagName = "タンク液量上回り"
 oTag2(0).Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver
oTag2(0).Address = 256
oTag2(0).Threshold = 2000
oTag2(0).DelayTime = 10
'アイテムを一括で設定します。
 oTag2(1) = New HKE.FLnetCtrl.Common2Tag(True, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0)
'変化検出タグ配列を追加登録します。
 FLnetCtrl.Common2Tags.AddRange(oTag2)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグの設定
 HKE.FLnetCtrl.Common2Tag[] oTag2 = new HKE.FLnetCtrl.Common2Tag[2];
// アイテムの属性を設定します。
 oTag2[0] = new HKE.FLnetCtrl.Common2Tag();
oTag2[0].Enabled = true;
oTag2[0].TagName = "タンク液量上回り";
oTag2[0].Trigger = HKE.FLnetCtrl.Tag2TriggerEnum.WordOver;
oTag2[0].Address = 256;
oTag2[0].Threshold = 2000;
oTag2[0].DelayTime = 10;
// アイテムを一括で設定します。
 oTag2[1] = new HKE.FLnetCtrl.Common2Tag(true, "電力量変化", HKE.FLnetCtrl.Tag2TriggerEnum.WordChange, 257, 0, 0);
// 変化検出タグ配列を追加登録します。
 fLnetCtrl.Common2Tags.AddRange(oTag2);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tags.Clearメソッド
要約　構文　戻り値　解説　サンプル
要約 コレクションからすべてのCommon2Tagオブジェクトを削除します。
構文
[Visual Basic]
Public Function Clear() As MethodReturnEnum
[C#]
public MethodReturnEnum Clear()
戻り値 削除結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
LinkIn | リンク参加(待機/モニタ)中
解説 Clearメソッドを発行して、すべてのCommon2Tagオブジェクトを削除します。Countプロパティも0に設定されます。リンク参加中は削除できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグアイテムを一括削除します。
 FLnetCtrl.Common2Tags.Clear()
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグアイテムを一括削除します。
 fLnetCtrl.Common2Tags.Clear();
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


Common2Tags.RemoveAtメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 指定したインデックスにあるCommon2Tagオブジェクトを削除します。
構文
[Visual Basic]
Public Function RemoveAt( _
ByVal nIndex As Integer _
) As MethodReturnEnum
[C#]
public MethodReturnEnum　RemoveAt(
int nIndex
)
引数
名前 | 説明
nIndex | (i) 削除する要素の、0から始まるインデックス番号
戻り値 削除結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常
InvalidParameter | (1) nIndexが0未満 (2) nIndexがCount以上
LinkIn | リンク参加(待機/モニタ)中
解説 RemoveAtメソッドを発行して、指定したインデックス位置にある Common2Tagオブジェクトをコレクションから削除します。リンク参加中は削除できません。
サンプル
[Visual Basic]
'[コモン変化タグ]ボタンClick
Private Sub btnSetCommonTag_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetCommonTag.Click
Try
 '■コモンメモリ領域2変化検出タグアイテム番号=10を削除します。
 FLnetCtrl.Common2Tags.RemoveAt(10)
Catch oException As HKE.FLnetCtrl.FLnetException
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine + _
oException.Message, oException.ParamName)
End Try
End Sub
[C#]
// [コモン変化タグ]ボタンClick
private void btnSetCommonTag_Click(object sender, EventArgs e)
{
try
 {
// ■コモンメモリ領域2変化検出タグアイテム番号=10を削除します。
 fLnetCtrl.Common2Tags.RemoveAt(10);
}
catch (HKE.FLnetCtrl.FLnetException oException)
{
MessageBox.Show("エラー番号=" + oException.ErrorNumber.ToString() + System.Environment.NewLine +
oException.Message, oException.ParamName);
}
}


BlockChangedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.BlockChanged(自ノードのブロックデータ値変化検知)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.BlockChangedEventArgs

フィールド

名前

型

 get set

説明
WordBlock Boolean ○ × ブロック種別[false=バイトブロック, true=ワードブロック]
StartAddress UInt32 ○ × ライトされたブロックの先頭アドレス
Size UInt32 ○ × ライトされたブロックのサイズ
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


BlockReadRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.BlockReadReplied(ブロックリード応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.BlockReadRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
WordBlock Boolean ○ × ブロック種別[false=バイトブロック, true=ワードブロック]
Address UInt32 ○ × 読込み開始アドレス
Size UInt16 ○ × 読込みサイズ
Result ReplyMessageResultEnum ○ × 応答結果
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | リードデータ
Error(異常) | エラーコード
NotSupport(非実装) | なし
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


BlockWriteRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.BlockWriteReplied(ブロックライト応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.BlockWriteRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
WordBlock Boolean ○ × ブロック種別[false=バイトブロック, true=ワードブロック]
Address UInt32 ○ × 書込み開始アドレス
Size UInt16 ○ × 書込みサイズ
Result ReplyMessageResultEnum ○ × 応答結果
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | なし
Error(異常) | エラーコード
NotSupport(非実装) | なし
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Common1TagEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.Common1Tag(コモンメモリ領域1変化タグ検出)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.Common1TagEventArgs

フィールド

名前

型

 get set

説明
TagIndex UInt16 ○ × タグ番号[0～]
NowValue Boolean ○ × 変化後の値
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


Common2TagEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.Common2Tag(コモンメモリ領域2変化タグ検出)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.Common2TagEventArgs

フィールド

名前

型

 get set

説明
TagIndex UInt16 ○ × タグ番号[0～]
NowValue UInt16 ○ × 変化後の値
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


CommonChangedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.CommonChanged(コモンメモリ変化検知)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.CommonChangedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × コモンメモリが変化した領域を送信領域とするノード番号
CommonType CommonTypeEnum ○ × コモンメモリ種別
CommonArea CommonArea ○ × コモンメモリ領域
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LinkErrorEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.LinkError(リンクエラー)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.LinkErrorEventArgs

フィールド

名前

型

 get set

説明
Number LinkErrorNumberEnum ○ × エラー番号
Param Int32 ○ × 詳細エラーコード
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LinkInEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.LinkIn(リンク参加)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.LinkInEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × 参加したノード番号[1～254]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LinkOutEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.LinkOut(リンク離脱)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.LinkOutEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × 離脱したノード番号[1～254]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LogClearedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.LogCleared(自ノードログデータクリア通知)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.LogClearedEventArgs

フィールド

ありません。

メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LogClearRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.LogClearReplied(ログデータクリア応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.LogClearRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
Result ReplyMessageResultEnum ○ × 応答結果。非実装応答はありません。
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | なし
Error(異常) | エラーコード
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LogReadRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.LogReadReplied(ログデータリード応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.LogReadRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
Result ReplyMessageResultEnum ○ × 応答結果。非実装応答はありません。
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | ログデータ。ログデータのフォーマットは応答元ノードで公開されている実装仕様をご確認ください。
Error(異常) | エラーコード
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


MessageEchoRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.MessageEchoReplied(メッセージ折返し応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.MessageEchoRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
MatchingResult Boolean ○ × 一致判定結果[true=一致, false=不一致]
Data FLnetObject ○ × 応答データ
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


MessageErrorEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.MessageError(メッセージ関連エラー)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.MessageErrorEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × 送信先ノード番号[1～255]
MessageNo UInt16 ○ × メッセージ番号
Number MessageErrorNumberEnum ○ × エラー番号
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


NetParamReadRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.NetParamReadReplied(ネットワークパラメータリード応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.NetParamReadRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
Result ReplyMessageResultEnum ○ × 応答結果。非実装応答はありません。
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | なし
Error(異常) | エラーコード
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


NetParamWriteRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.NetParamWriteReplied(ネットワークパラメータライト応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.NetParamWriteRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
Result ReplyMessageResultEnum ○ × 応答結果
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | なし
Error(異常) | エラーコード
NotSupport(非実装) | なし
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


ProfileReadRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.ProfileReadReplied(プロファイルリード応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.ProfileReadRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
Result ReplyMessageResultEnum ○ × 応答結果。非実装応答はありません。
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | プロファイルデータ。プロファイルデータはバイナリデータです。フォーマットは応答元ノードで公開されている実装仕様またはデバイスプロファイル仕様書(JEM-TR214)をご確認ください。
Error(異常) | エラーコード
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


RunStopRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.RunStopReplied(運転/停止指令応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.RunStopRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
RunCommand Boolean ○ × 運転/停止指令[true=運転, false=停止]
Result

ReplyMessageResultEnum

 ○ × 応答結果
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | なし
Error(異常) | エラーコード
NotSupport(非実装) | なし
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


SendCompletedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.SendCompleted(メッセージ送信完了)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.SendCompletedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × 送信先ノード番号[1～255]
MessageNo UInt16 ○ × メッセージ番号
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


UserMessageReceivedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.UserMessageReceived(透過形メッセージ受信)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.UserMessageReceivedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ送信元ノード番号[1～254]
MessageNo UInt16 ○ × メッセージ番号
Data FLnetObject ○ × 受信データ
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


VendorMessageRepliedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.VendorMessageReplied(ベンダ固有メッセージ応答)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.VendorMessageRepliedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ応答元ノード番号[1～254]
VendorName FLnetObject ○ × ベンダ名
SubCode FLnetObject ○ × サブコード
Result ReplyMessageResultEnum ○ × 応答結果
Data FLnetObject ○ × 応答データ。応答結果(Result)に応じて、データ内容が異なります。
Result | 内容
Normal(正常) | データ
Error(異常) | エラーコード
NotSupport(非実装) | なし
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


VendorMessageRequestedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.VendorMessageRequested(ベンダ固有メッセージ要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.VendorMessageRequestedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ要求元ノード番号[1～254]
Multi Boolean ○ × 1対nメッセージ通信判定[false=1対1, true=1対n]
VendorName FLnetObject ○ × ベンダ名
SubCode FLnetObject ○ × サブコード
Data FLnetObject ○ × 要求データ
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


NetParamWriteRequestedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.NetParamWriteRequested(ネットワークパラメータライト要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.NetParamWriteRequestedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ要求元ノード番号[1～254]
Common CommonArea ○ × コモンメモリ
NodeName String ○ × ノード名称[10byte]
CommonFlg Boolean ○ × コモンメモリの設定フラグ[true=設定, false=未設定]
NodeNameFlg Boolean ○ × ノード名称の設定フラグ[true=設定, false=未設定]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


RunStopRequestedEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.RunStopRequested(運転/停止指令要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.RunStopRequestedEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × メッセージ要求元ノード番号[1～254]
RunCommand Boolean ○ × 運転/停止指令[true=運転, false=停止]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


MeasureChangedEventArgsクラス
要約　フィールド　メソッド
要約

測定状態変化イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.MeasureChangedEventArgs

フィールド

名前

型

 get set

説明
Sender Boolean ○ × イベント発生元 [true=自分以外(設定ツールなど), false=自分(APP自身)]
Status MeasureStatusEnum ○ × 測定状態
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


SlaveEventArgsクラス
要約　フィールド　メソッド
要約

スレーブイベント関連のデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.SlaveEventArgs

フィールド

名前

型

 get set

説明
NodeNo Byte ○ × スレーブノード番号[1～249]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


NetParamWriteRequestedFromSettingToolEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.NetParamWriteRequestedFromSettingTool(設定ツールからのネットワークパラメータライト要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.NetParamWriteRequestedFromSettingToolEventArgs

フィールド

名前

型

 get set

説明
SettingToolAddr UInt32 ○ × 設定ツールのIPアドレス
Common CommonArea ○ × コモンメモリ
NodeName String ○ × ノード名称[10byte]
CommonFlg Boolean ○ × アドレスの設定フラグ[true=設定, false=未設定]
NodeNameFlg Boolean ○ × ノード名称の設定フラグ[true=設定, false=未設定]
Result RequestedMessageResultEnum ○ ○ 設定可否判定結果
Join Boolean ○ ○ 再参加[true=再参加有り, false=再参加無し]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


RunStopRequestedFromSettingToolEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.RunStopRequestedFromSettingTool(設定ツールからの運転/停止指令要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.RunStopRequestedFromSettingToolEventArgs

フィールド

名前

型

 get set

説明
SettingToolAddr UInt32 ○ × 設定ツールのIPアドレス
RunCommand Boolean ○ × 運転/停止指令[true=運転, false=停止]
Result RequestedMessageResultEnum ○ ○ 設定可否判定結果
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


SetIORequestedFromSettingToolEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.SetIORequestedFromSettingTool(設定ツールからのIO割付要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.SetIORequestedFromSettingToolEventArgs

フィールド

名前

型

 get set

説明
SettingToolAddr UInt32 ○ × 設定ツールのIPアドレス
IO IOInfo[] ○ × 全IO割付情報
Result RequestedMessageResultEnum ○ ○ 設定可否判定結果
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


SetConfigParamRequestedFromSettingToolEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.SetConfigParamRequestedFromSettingTool(設定ツールからのコンフィギュレーション用パラメータ設定要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.SetConfigParamRequestedFromSettingToolEventArgs

フィールド

名前

型

 get set

説明
SettingToolAddr UInt32 ○ × 設定ツールのIPアドレス
Common CommonArea ○ × コモンメモリ
TokenWatchTime Int32 ○ × トークン監視時間[ms]
MinFrameInterval Int32 ○ × 最小許容フレーム間隔[100μs]
NodeName String ○ × ノード名称
CommonFlg Boolean ○ × アドレスの設定フラグ[true=設定, false=未設定]
NodeNameFlg Boolean ○ × ノード名称の設定フラグ[true=設定, false=未設定]
TokenFlg Boolean ○ × トークン監視時間の設定フラグ[true=設定, false=未設定]
MinFrameFlg Boolean ○ × 最小許容フレーム間隔の設定フラグ[true=設定, false=未設定]
Result RequestedMessageResultEnum ○ ○ 設定可否判定結果
Join Boolean ○ ○ 再参加[true=再参加有り, false=再参加無し]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


ResetNodeRequestedFromSettingToolEventArgsクラス
要約　フィールド　メソッド
要約

FLnetCtrl.ResetNodeRequestedFromSettingTool(設定ツールからのノードリセット要求)イベントのデータを提供します。

＜階層＞
System.Object
  System.EventArgs
    HKE.FLnetCtrl.ResetNodeRequestedFromSettingToolEventArgs

フィールド

名前

型

 get set

説明
SettingToolAddr UInt32 ○ × 設定ツールのIPアドレス
Result RequestedMessageResultEnum ○ ○ リセット可否判定結果
Join Boolean ○ ○ 再参加[true=再参加有り, false=再参加無し]
メソッド
名前 | 説明
Equals | 2 つの Object インスタンスが等しいかどうかを判断します。(System.Objectクラスからオーバーライドされます。)
GetHashCode | 特定の型のハッシュ関数として機能します。(System.Objectクラスから継承されます。)
GetType | 現在のインスタンスのTypeを取得します。(System.Objectクラスから継承されます。)
ToString | 現在のObjectを表すStringを返します。(System.Objectクラスから継承されます。)


LogAck構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、ACK関連に関するログデータです。

メンバ

名前

型

説明
AckErr | UInt32 | ACKエラー回数
VersionErr | UInt32 | 通番バージョンエラー回数
SeqNoErr | UInt32 | 通番番号エラー回数
MsgNoErr | UInt32 | メッセージ番号エラー回数


LogCyclic構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドで取得するサイクリック伝送に関するログデータです。

メンバ

名前

型

説明
RecvErr | UInt32 | 送受信エラー回数
AddrErr | UInt32 | アドレスサイズエラー回数
CbnErr | UInt32 | CBNエラー回数
TbnErr | UInt32 | TBNエラー回数
BsizeErr | UInt32 | BSIZEエラー回数


LogData構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドで取得するログデータです。

メンバ

名前

型

説明
SendRecv | LogSendRecv | 送受信に関するログデータ
Frame | LogFrame | フレーム種類に関するログデータ
Cyclic | LogCyclic | サイクリック伝送に関するログデータ
Message | LogMessage | メッセージ伝送に関するログデータ
Ack | LogAck | ACK関連に関するログデータ
Token | LogToken | トークン関連に関するログデータ
Link | LogLink | リンク情報(ノード稼動状態,加入および離脱)に関するログデータ


LogFrame構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、フレーム種類に関するログデータです。

メンバ

名前

型

説明
SendToken | UInt32 | トークン送信回数
SendCyclic | UInt32 | サイクリックフレーム送信回数
SendUnicast | UInt32 | 1対1メッセージ送信回数
SendMulticast | UInt32 | 1対nメッセージ送信回数
RecvToken | UInt32 | トークン受信回数
RecvCyclic | UInt32 | サイクリックフレーム受信回数
RecvUnicast | UInt32 | 1対1メッセージ受信回数
RecvMulticast | UInt32 | 1対nメッセージ受信回数


LogLink構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、リンク情報(ノード稼働状態,加入および離脱)に関するログデータです。

メンバ

名前

型

説明
ElapseTime | UInt32 | 通算稼働時間[秒]
WaitFrame | UInt32 | フレーム待ち回数
LinkIn | UInt32 | 加入回数
LinkOut | UInt32 | 離脱回数
LinkOutBySkip | UInt32 | 離脱回数(ノードスキップによる)
AnotherLinkOut | UInt32 | 他ノード離脱回数


LogMessage構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドで取得するメッセージ伝送に関するログデータです。

メンバ

名前

型

説明
Resend | UInt32 | 再送回数
RetryOut | UInt32 | 再送オーバー回数
RecvErr | UInt32 | 受信エラー回数
SeqVerErr | UInt32 | 通番バージョンエラー回数
SeqVerify | UInt32 | 通番再送認識回数


LogSendRecv構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドまたはFLnetCtrl.GetMyNodeLogV3メソッドで取得する、送受信に関するログデータです。

メンバ

名前

型

説明
SendData | UInt32 | ソケット送信通算回数
SendSockErr | UInt32 | ソケット送信エラー回数
RecvData | UInt32 | ソケット受信通信回数
RecvSockErr | UInt32 | ソケット受信エラー回数


LogToken構造体
要約　メンバ
要約

FLnetCtrl.GetMyNodeLogメソッドで取得するトークン関連に関するログデータです。

メンバ

名前

型

説明
Conflict | UInt32 | 多重化回数
Destroy | UInt32 | 破棄回数
Retry | UInt32 | 再発行回数
KeepTimeout | UInt32 | 保持タイムアウト回数
WatchTimeout | UInt32 | 監視タイムアウト回数


NetworkState構造体
要約　メンバ
要約

FLnetCtrl.GetNetworkStateメソッドで取得するネットワーク情報です。

メンバ

名前

型

説明
TokenOwner | Byte | トークン保持ノード番号[1～254]
MinFrameInterval | Byte | 最小許容フレーム間隔[100us単位, 0～50]
MaxRefreshCycle | UInt16 | リフレッシュサイクル許容時間[ms単位, 0～65535]
RefreshCycle | UInt16 | リフレッシュサイクル測定時間(現在値)[ms単位, 0～65535]
RefreshCycleHigh | UInt16 | リフレッシュサイクル測定時間(最大値)[ms単位, 0～65535]
RefreshCycleLow | UInt16 | リフレッシュサイクル測定時間(最小値)[ms単位, 0～65535]


NodeState構造体
要約　メンバ
要約

FLnetCtrl.GetNodeStateメソッドで取得するノード状態です。

メンバ

名前

型

説明
VendorName | String | ベンダ名
MakerType | String | 製造業者形式
NodeName | String | ノード名(設備名)
Common | CommonArea | コモンメモリ情報
TokenTime | Byte | トークン監視時間[ms単位, 1～255]
MaxRefreshCycle | UInt16 | リフレッシュサイクル許容時間[ms単位, 0～65535]
RefreshCycle | UInt16 | リフレッシュサイクル実測値[ms単位, 0～65535]
MinFrameInterval | Byte | 最小許容フレーム間隔[100us単位, 0～50]
UpperState | UInt16 | 上位層の状態(運転情報,エラー情報など)
LinkState | Byte | FAリンクの状態(参加/離脱など)
ProtocolVersion | Byte | プロトコルタイプ[16#80固定]
MyNodeState | Byte | 自ノード状態(ノード番号重複検知など)


LogDataV3構造体
要約　メンバ
要約

FlnetCtrl.GetMyNodeLogV3メソッドで取得するログデータです。

メンバ

名前

型

説明
SendRecv | LogSendRecv | 送受信に関するログデータ
Frame | LogFrame | フレーム種類に関するログデータ
Cyclic | LogCyclicV3 | サイクリック伝送に関するログデータ(V3)
Message | LogMessageV3 | メッセージ伝送に関するログデータ(V3)
Ack | LogAck | ACK関連に関するログデータ
Token | LogTokenV3 | トークン関連に関するログデータ(V3)
Link | LogLink | リンク情報(ノード稼動状態,加入および離脱)に関するログデータ
IP | LogIPV3 | 汎用通信データ送信元ログに関するログデータ(V3)


LogCyclicV3構造体
要約　メンバ
要約

FlnetCtrl.GetMyNodeLogV3メソッドで取得するサイクリック伝送に関するログデータです。

メンバ

名前

型

説明
RecvErr | UInt32 | 送受信エラー回数
AddrErr | UInt32 | アドレスサイズエラー回数
CbnErr | UInt32 | CBNエラー回数
TbnErr | UInt32 | TBNエラー回数
BsizeErr | UInt32 | BSIZEエラー回数
RecvCyclicErrTime | UInt32 | 受信エラー検出時間[sec]


LogMessageV3構造体
要約　メンバ
要約

FlnetCtrl.GetMyNodeLogV3メソッドで取得するメッセージ伝送に関するログデータです。

メンバ

名前

型

説明
Resend | UInt32 | 再送回数
RetryOut | UInt32 | 再送オーバー回数
RefreshCycleTime | UInt32 | リフレッシュサイクル最大値検出時の時間[sec]
RecvErr | UInt32 | 受信エラー回数
SeqVerErr | UInt32 | 通番バージョンエラー回数
SeqVerify | UInt32 | 通番再送認識回数
RecvMessageErrTime | UInt32 | メッセージ伝送受信エラー検出時間[sec]


LogTokenV3構造体
要約　メンバ
要約

FlnetCtrl.GetMyNodeLogV3メソッドで取得するトークンに関するログデータです。

メンバ

名前

型

説明
Conflict | UInt32 | トークン多重化回数
Destroy | UInt32 | トークン破棄回数
Retry | UInt32 | トークン再発行回数
DestroyTime | UInt32 | トークン破棄検出直近の時間[sec]
RetryTime | UInt32 | トークン再発行直近の時間[sec]
KeepTimeoutTime | UInt32 | トークン保持タイムアウト直近の時間[sec]
KeepTimeout | UInt32 | トークン保持タイムアウト回数
WatchTimeout | UInt32 | トークン監視タイムアウト回数
WatchTimeoutTime | UInt32 | トークン監視タイムアウト直近の時間[sec]
MaxHoldTime | UInt32 | トークン保持時間最大値[μsec]
MinHoldTime | UInt32 | トークン保持時間最小値[μsec]
MaxHoldTimeDetect | UInt32 | トークン保持時間最大値検出時間[sec]
HoldTimeMeasure | UInt32 | トークン保持時間測定時間[sec]
HoldTimeMeasureCount | UInt32 | トークン保持時間測定中のトークン回数


LogIPV3構造体
要約　メンバ
要約

FlnetCtrl.GetMyNodeLogV3メソッドで取得する汎用通信データ送信元ログに関するログデータです。

メンバ

名前

型

説明
Time | UInt32 | 汎用通信データ送信元ログ測定時間[sec]
Ip1Address | UInt32 | IP1アドレス
Ip1Count | UInt32 | IP1受信カウンタ
Ip2Address | UInt32 | IP2アドレス
Ip2Count | UInt32 | IP2受信カウンタ
Ip3Address | UInt32 | IP3アドレス
Ip3Count | UInt32 | IP3受信カウンタ
Ip4Address | UInt32 | IP4アドレス
Ip4Count | UInt32 | IP4受信カウンタ
Ip5Address | UInt32 | IP5アドレス
Ip5Count | UInt32 | IP5受信カウンタ
Ip6Address | UInt32 | IP6アドレス
Ip6Count | UInt32 | IP6受信カウンタ
Ip7Address | UInt32 | IP7アドレス
Ip7Count | UInt32 | IP7受信カウンタ
Ip8Address | UInt32 | IP8アドレス
Ip8Count | UInt32 | IP8受信カウンタ
Ip9Address | UInt32 | IP9アドレス
Ip9Count | UInt32 | IP9受信カウンタ
Ip10Address | UInt32 | IP10アドレス
Ip10Count | UInt32 | IP10受信カウンタ


LogTokenTime構造体
要約　メンバ
要約

FLnetCtrl.GetMeasureTokenTimeメソッドで取得するトークン保持時間測定項目に関するログデータです。

メンバ

名前

型

説明
Destroy | UInt32 | トークン破棄回数
DestroyTime | UInt32 | トークン破棄検出直近の時間[sec]
Retry | UInt32 | トークン再発行回数
RetryTime | UInt32 | トークン再発行直近の時間[sec]
KeepTimeout | UInt32 | トークン保持タイムアウト回数
KeepTimeoutTime | UInt32 | トークン保持タイムアウト直近の時間[sec]
WatchTimeout | UInt32 | トークン監視タイムアウト回数
WatchTimeoutTime | UInt32 | トークン監視タイムアウト直近の時間[sec]
MaxHoldTime | UInt32 | トークン保持時間最大値[μsec]
MinHoldTime | UInt32 | トークン保持時間最小値[μsec]
MaxHoldTimeDetect | UInt32 | トークン保持時間最大値検出時間[sec]
HoldTimeMeasure | UInt32 | トークン保持時間測定時間[sec]
HoldTimeMeasureCount | UInt32 | トークン保持時間測定中のトークン回数
RefreshCycleTime | UInt32 | リフレッシュサイクル最大値検出時の時間[sec]
RecvCyclic | UInt32 | サイクリックフレーム受信回数
RecvCyclicErr | UInt32 | サイクリック伝送受信エラー回数
RecvCyclicErrTime | UInt32 | サイクリック伝送受信エラー検出時間[sec]
RecvMessageErr | UInt32 | メッセージ伝送受信エラー回数
RecvMessageErrTime | UInt32 | メッセージ伝送受信エラー検出時間[sec]


SlaveStatus構造体
要約　メンバ
要約

スレーブ状態です。

メンバ

名前

型

説明
InputPoint | UInt32 | 入力点数
OutputPoint | UInt32 | 出力点数
MasterNodeNo | UInt16 | マスタノード番号
MasterOffOutput | Boolean | マスタ離脱時のIO出力[false=クリア,true=ホールド]
RemoteOffOutput | Boolean | リモート制御フラグOFF時のIO出力[false=クリア,true=ホールド]
RemoteOffInput | Boolean | リモート制御フラグOFF時のIO入力[false=クリア,true=ホールド]
FreeData | UInt16[] | マスタからスレーブ毎に指定する設定
GeneralPurpose | UInt16[] | 汎用ステータス


SlaveInputStatus構造体
要約　メンバ
要約

FLnetCtrl.GetInputStatusメソッドで取得する入力ステータスです。

メンバ

名前

型

説明
StatusNo | UInt16 | スレーブ状態番号[0=未加入, 1=停止中, 2=接続処理中, 3=動作中, 4=マスタ不在, 5=自ノード離脱, 6=設定異常]
InputStatus | SlaveStatus | スレーブ状態


SlaveOutputStatus構造体
要約　メンバ
要約

FLnetCtrl.GetOutputStatusメソッドで取得、FLnetCtrl.SetOutputStatusメソッドで設定する出力ステータスです。

メンバ

名前

型

説明
RemoteControl | Boolean | リモート制御[false=リモート停止,true=リモート動作]
OutputStatus | SlaveStatus | スレーブ状態


IOInfo構造体
要約　メンバ
要約

FLnetCtrl.GetIOメソッドで取得、FLnetCtrl.SetIOメソッドで設定するIO割付情報です。

メンバ

名前

型

説明
NodeNo | Byte | ノード番号[1～249]
InDataArea | Byte | IO入力データ領域[1=領域1, 2=領域2]
InDataAddress | Int16 | IO入力データアドレス[領域1:0x0000～0x01FF, 領域2:0x0000～0x1FFF]
InDataSize | Int16 | IO入力データサイズ[ワード単位]
InputPoint | UInt32 | 入力点数
OutDataArea | Byte | IO出力データ領域[1=領域1, 2=領域2]
OutDataAddress | Int16 | IO出力データアドレス[領域1:0x0000～0x01FF, 領域2:0x0000～0x1FFF]
OutDataSize | Int16 | IO出力データサイズ[ワード単位]
OutputPoint | UInt32 | 出力点数
InStateArea | Byte | IO入力ステータス領域[1=領域1, 2=領域2]
InStateAddress | Int16 | IO入力ステータスアドレス[領域1:0x0000～0x01FF, 領域2:0x0000～0x1FFF]
OutStateArea | Byte | IO出力ステータス領域[1=領域1, 2=領域2]
OutStateAddress | Int16 | IO出力ステータスアドレス[領域1:0x0000～0x01FF, 領域2:0x0000～0x1FFF]


IOInfos構造体
要約　メンバ
要約

全IO割付情報です。

メンバ

名前

型

説明
SlaveNum | Byte | スレーブ個数
Infos | IOInfo[] | IO割付情報


BlockChangedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.BlockChanged(自ノードのブロックデータ値変化検知)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub BlockChangedEventHandler( _
ByVal sender As Object, _
ByVal e As BlockChangedEventArgs _
)
[C#]
public delegate void BlockChangedEventHandler(
Object sender,
BlockChangedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


BlockReadRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.BlockReadReplied(ブロックリード応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub BlockReadRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As BlockReadRepliedEventArgs _
)
[C#]
public delegate void BlockReadRepliedEventHandler(
Object sender,
BlockReadRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


BlockWriteRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.BlockWriteReplied(ブロックライト応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub BlockWriteRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As BlockWriteRepliedEventArgs _
)
[C#]
public delegate void BlockWriteRepliedEventHandler(
Object sender,
BlockWriteRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


Common1TagEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.Common1Tag(コモンメモリ領域1変化タグ検出)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub Common1TagEventHandler( _
ByVal sender As Object, _
ByVal e As Common1TagEventArgs _
)
[C#]
public delegate void Common1TagEventHandler(
Object sender,
Common1TagEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


Common2TagEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.Common2Tag(コモンメモリ領域2変化タグ検出)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub Common2TagEventHandler( _
ByVal sender As Object, _
ByVal e As Common2TagEventArgs _
)
[C#]
public delegate void Common2TagEventHandler(
Object sender,
Common2TagEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


CommonChangedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.CommonChanged(コモンメモリ値変化)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub CommonChangedEventHandler( _
ByVal sender As Object, _
ByVal e As CommonChangedEventArgs _
)
[C#]
public delegate void CommonChangedEventHandler(
Object sender,
CommonChangedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LinkErrorEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LinkError(リンクエラー)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LinkErrorEventHandler( _
ByVal sender As Object, _
ByVal e As LinkErrorEventArgs _
)
[C#]
public delegate void LinkErrorEventHandler(
Object sender,
LinkErrorEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LinkInEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LinkIn(リンク参加)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LinkInEventHandler( _
ByVal sender As Object, _
ByVal e As LinkInEventArgs _
)
[C#]
public delegate void LinkInEventHandler(
Object sender,
LinkInEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LinkOutEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LinkOut(リンク離脱)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LinkOutEventHandler( _
ByVal sender As Object, _
ByVal e As LinkOutEventArgs _
)
[C#]
public delegate void LinkOutEventHandler(
Object sender,
LinkOutEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LogClearedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LogCleared(自ノードログデータクリア通知)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LogClearedEventHandler( _
ByVal sender As Object, _
ByVal e As LogClearedEventArgs _
)
[C#]
public delegate void LogClearedEventHandler(
Object sender,
LogClearedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LogClearRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LogClearReplied(ログデータクリア応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LogClearRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As LogClearRepliedEventArgs _
)
[C#]
public delegate void LogClearRepliedEventHandler(
Object sender,
LogClearRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LogReadRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LogReadReplied(ログデータリード応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LogReadRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As LogReadRepliedEventArgs _
)
[C#]
public delegate void LogReadRepliedEventHandler(
Object sender,
LogReadRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


MessageEchoRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.MessageEchoReplied(メッセージ折返し応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub MessageEchoRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As MessageEchoRepliedEventArgs _
)
[C#]
public delegate void MessageEchoRepliedEventHandler(
Object sender,
MessageEchoRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


MessageErrorEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.MessageError(メッセージ関連エラー)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub MessageErrorEventHandler( _
ByVal sender As Object, _
ByVal e As MessageErrorEventArgs _
)
[C#]
public delegate void MessageErrorEventHandler(
Object sender,
MessageErrorEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


NetParamReadRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.NetParamReadReplied(ネットワークパラメータリード応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub NetParamReadRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As NetParamReadRepliedEventArgs _
)
[C#]
public delegate void NetParamReadRepliedEventHandler(
Object sender,
NetParamReadRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


NetParamWriteRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.NetParamWriteReplied(ネットワークパラメータライト応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub NetParamWriteRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As NetParamWriteRepliedEventArgs _
)
[C#]
public delegate void NetParamWriteRepliedEventHandler(
Object sender,
NetParamWriteRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


ProfileReadRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.ProfileReadReplied(プロファイルリード応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub ProfileReadRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As ProfileReadRepliedEventArgs _
)
[C#]
public delegate void ProfileReadRepliedEventHandler(
Object sender,
ProfileReadRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


RunStopRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.RunStopReplied(運転/停止指令応答) イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub RunStopRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As RunStopRepliedEventArgs _
)
[C#]
public delegate void RunStopRepliedEventHandler(
Object sender,
RunStopRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


SendCompletedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.SendCompleted(メッセージ送信完了)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub SendCompletedEventHandler( _
ByVal sender As Object, _
ByVal e As SendCompletedEventArgs _
)
[C#]
public delegate void SendCompletedEventHandler(
Object sender,
SendCompletedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


UserMessageReceivedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.UserMessageReceived(透過形メッセージ受信)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub UserMessageReceivedEventHandler( _
ByVal sender As Object, _
ByVal e As UserMessageReceivedEventArgs _
)
[C#]
public delegate void UserMessageReceivedEventHandler(
Object sender,
UserMessageReceivedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


VendorMessageRepliedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.VendorMessageReplied(ベンダ固有メッセージ応答)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub VendorMessageRepliedEventHandler( _
ByVal sender As Object, _
ByVal e As VendorMessageRepliedEventArgs _
)
[C#]
public delegate void VendorMessageRepliedEventHandler(
Object sender,
VendorMessageRepliedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


VendorMessageRequestedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.VendorMessageRequested(ベンダ固有メッセージ要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub VendorMessageRequestedEventHandler( _
ByVal sender As Object, _
ByVal e As VendorMessageRequestedEventArgs _
)
[C#]
public delegate void VendorMessageRequestedEventHandler(
Object sender,
VendorMessageRequestedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


NetParamWriteRequestedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.NetParamWriteRequested(ネットワークパラメータライト要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub NetParamWriteRequestedEventHandler ( _
sender As Object, _
e As NetParamWriteRequestedEventArgs _
)
[C#]
public delegate void NetParamWriteRequestedEventHandler(
Object sender,
NetParamWriteRequestedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


RunStopRequestedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.RunStopRequested(運転/停止指令要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub RunStopRequestedEventHandler ( _
sender As Object, _
e As RunStopRequestedEventArgs _
)
[C#]
public delegate void RunStopRequestedEventHandler(
Object sender,
RunStopRequestedEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


InputDataChangedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.InputDataChanged(入力データ更新)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub InputDataChangedEventHandler ( _
sender As Object, _
e As SlaveEventArgs _
)
[C#]
public delegate void InputDataChangedEventHandler(
Object sender,
SlaveEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


InputStatusChangedEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.InputStatusChanged(入力ステータス更新)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub InputStatusChangedEventHandler ( _
sender As Object, _
e As SlaveEventArgs _
)
[C#]
public delegate void InputStatusChangedEventHandler(
Object sender,
SlaveEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LinkInSlaveEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LinkInSlave(スレーブノードリンク参加)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LinkInSlaveEventHandler ( _
sender As Object, _
e As SlaveEventArgs _
)
[C#]
public delegate void LinkInSlaveEventHandler(
Object sender,
SlaveEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


LinkOutSlaveEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.LinkeOutSlave(スレーブノードリンク離脱)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub LinkOutSlaveEventHandler ( _
sender As Object, _
e As SlaveEventArgs _
)
[C#]
public delegate void LinkOutSlaveEventHandler(
Object sender,
SlaveEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


MeasureChangedEventHandlerデリゲート
要約　構文　引数
要約

FLnetCtrl.MeasureTokenTimeChanged(トークン保持時間測定状態変化)/

FLnetCtrl.MeasureDataLogChanged(汎用通信データ送信元ログ測定状態変化)イベントを処理するメソッドです。

構文
[Visual Basic]
Public Delegate Sub MeasureChangedEventHandler ( _
sender As Object, _
e As MeasureChangedEventArgs _
)

[C#]
public delegate void MeasureChangedEventHandler(
Object sender,
MeasureChangedEventArgs e
)

引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


NetParamWriteRequestedFromSettingToolEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.NetParamWriteRequestedFromSettingTool(設定ツールからのネットワークパラメータライト要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub NetParamWriteRequestedFromSettingToolEventHandler ( _
sender As Object, _
e As NetParamWriteRequestedFromSettingToolEventArgs _
)

[C#]
public delegate void NetParamWriteRequestedFromSettingToolEventHandler(
Object sender,
NetParamWriteRequestedFromSettingToolEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


RunStopRequestedFromSettingToolEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.RunStopRequestedFromSettingTool(設定ツールからの運転/停止指令要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub RunStopRequestedFromSettingToolEventHandler ( _
sender As Object, _
e As RunStopRequestedFromSettingToolEventArgs _
)
[C#]
public delegate void RunStopRequestedFromSettingToolEventHandler(
Object sender,
RunStopRequestedFromSettingToolEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


SetIORequestedFromSettingToolEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.SetIORequestedFromSettingTool(設定ツールからのIO割付要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub SetIORequestedFromSettingToolEventHandler ( _
sender As Object, _
e As SetIORequestedFromSettingToolEventArgs _
)
[C#]
public delegate void SetIORequestedFromSettingToolEventHandler(
Object sender,
SetIORequestedFromSettingToolEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


SetConfigParamRequestedFromSettingToolEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.SetConfigParamRequestedFromSettingTool(設定ツールからのコンフィギュレーション用パラメータ設定要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub SetConfigParamRequestedFromSettingToolEventHandler ( _
sender As Object, _
e As SetConfigParamRequestedFromSettingToolEventArgs _
)
[C#]
public delegate void SetConfigParamRequestedFromSettingToolEventHandler(
Object sender,
SetConfigParamRequestedFromSettingToolEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


ResetNodeRequestedFromSettingToolEventHandlerデリゲート
要約　構文　引数
要約 FLnetCtrl.ResetNodeRequestedFromSettingTool(設定ツールからのノードリセット要求)イベントを処理するメソッドです。
構文
[Visual Basic]
Public Delegate Sub ResetNodeRequestedFromSettingToolEventHandler ( _
sender As Object, _
e As ResetNodeRequestedFromSettingToolEventArgs _
)
[C#]
public delegate void ResetNodeRequestedFromSettingToolEventHandler(
Object sender,
ResetNodeRequestedFromSettingToolEventArgs e
)
引数
名前 | 説明
sender | (i) イベントの送信元。FLnetCtrlオブジェクトです。
e | (i) イベントデータ


CommonTypeEnum列挙体
要約　メンバ
要約

FLnetCtrl.CommonChangedイベントのコモンメモリ種別を示します。

メンバ

名前

値

説明
Area1 | 1 | コモンメモリ領域1のみ値が変化しました。
Area2 | 2 | コモンメモリ領域2のみ値が変化しました。
AreaBoth | 3 | コモンメモリ領域1およびコモンメモリ領域2の値が変化しました。


ErrorNumberEnum列挙体
要約　メンバ
要約

FLnetExceptionクラスのエラー番号を示します。

メンバ

名前

値

説明
Normal | 0 | 正常です。
Value | 1 | 設定値が正しくありません。範囲および型を見直してください。
LinkIn | 2 | リンク参加中に設定できません。リンク離脱中に設定してください。
LinkOut | 3 | リンク離脱中に設定できません。リンク参加中に設定してください。
Security | 4 | セキュリティエラーが発生しました。プロテクトキーの接続状態を確認してください。
DesignMode | 5 | デザインモードでは設定できません。
LocalIP | 6 | LocalIPプロパティの値が正しくありません。LocalIPプロパティの値を見直してください。
System 7 システムエラーが発生しました。以下の原因が考えられます。
(1)メモリ不足
(2)ネットワークポートが既に使用中(IP ポート:55000～55003)
(3)TCP/IP のプロパティが正しく設定されていない
Cast | 8 | 型変換に失敗しました。変換元のオブジェクトが、nullまたは変換に必要なサイズを満たしません。
Null | 9 | null(Nothing)値を設定できません。
CommandServerStart | 10 | コマンドサーバ起動中に設定できません。
CommandServerUdpIP | 11 | CommandServerUdpIPプロパティの値が正しくありません。
CommandServerTcpIP | 12 | CommandServerTcpIPプロパティの値が正しくありません。
IoSetting | 13 | IO割付の設定が正しくありません。
Unknown | -1 | 不明なエラーが発生しました。
InnerException | -2 | FL-net Control内部で例外が発生しました。


LinkErrorNumberEnum列挙体
要約　メンバ
要約

FLnetCtrl.LinkErrorイベントのエラー番号を示します。

メンバ

名前

値

説明
NodeNoOverlap 1 [意味]ノード番号が重複しているため、リンクに参加できませんでした。

[対策方法]ノード番号を変更してからリンクに参加してください。
CommonAreaOverlap 2 [意味]コモンメモリの領域が重複しているため、コモンメモリ無しでリンクに参加しました。

[対策方法]コモンメモリの領域を重複しないように設定してください。
LinkInTimeout 3 [意味]リンク参加タイムアウトが発生しました。

[対策方法]ネットワークの状況を確認してください。
LinkOut 4 [意味]ネットワーク状況によりリンクから離脱しました(ネットワークへの再参加は行いません)。FLnetCtrl.AlwaysLinkプロパティ=Falseの条件で発生します。

[対策方法]ネットワークの状況を確認してください。
LinkOutAndRetryLinkIn 5 [意味]ネットワーク状況によりリンクから離脱しましたが、リンクに再参加します。FLnetCtrl.AlwaysLinkプロパティ=Trueの条件で発生します。

[対策方法]ネットワークの状況を確認してください。
RetryLinkInFailed 6 [意味]リンク再参加処理でエラーが発生しました。FLnetCtrl.AlwaysLinkプロパティ=Trueの条件で発生します。

[対策方法]ネットワークの状況およびリンク参加パラメータを確認してください。
TrialTimeout 7 [意味]試用版の制限時間を超えたため、リンクから離脱しました。

[対策方法]これ以上、リンクに参加することはできません。
SecurityError 8 [意味]セキュリティエラーを検知したため、リンクから離脱しました。

[対策方法]プロテクトキーが接続されていることを確認してください。
TokenModeUnmatch 9 [意味]トークンモード不一致を検知したためリンクに参加できませんでした。

[対策方法]ネットワーク上にFAリンクプロトコルVer.1.00版の機器が混在しています。Ver.1.00版とVer.2.00版を同一ネットワーク上に混在することはできません。バージョンを統一してください。
SystemError 11 [意味]通信エンジン(DLL)でシステムエラーを検出しました。

[対策方法]詳細エラーコードのGetLastError関数の戻り値を開発コンテナのオンラインヘルプ等でご確認ください。エラーの発生箇所を、イベントログで確認してください。
NetworkError 12 [意味]通信エンジン(DLL)でネットワークエラーを検出しました。

[対策方法]詳細エラーコードのWSAGetLastError関数の戻り値を開発コンテナのオンラインヘルプ等でご確認ください。エラーの発生箇所を、イベントログで確認してください。
FatalError 13 [意味]通信エンジン(DLL)で致命的エラーを検出しました。

[対策方法]OSの状態が不安定の場合に発生する可能性があります。OSを再起動してから、再度プログラムを実行してください。
ProtocolError 14 [意味]通信エンジン(DLL)でプロトコルエラーを検出しました。

[対策方法]詳細エラーコードのプロトコルエラー内容を確認してください。
DllSecurityError 15 [意味]通信エンジン(DLL)でセキュリティエラーを検出しました。

[対策方法]詳細エラーコードのセキュリティエラー内容を確認してください。


LinkStateEnum列挙体
要約　メンバ
要約

FLnetCtrl.LinkStateプロパティの自ノードリンク参加状態を示します。

メンバ

名前

値

説明
LinkOut | 0 | [取得]リンク離脱中です。[設定]リンクから離脱します。
LinkIn | 1 | [取得]リンク参加中です。[設定]リンクに参加します。
LinkMonitor | 2 | [取得]モニタ中です。[設定]モニタモードを開始します。
LinkInWait | 3 | [取得]リンク参加待ち状態です。取得のみ可能です。


MessageErrorNumberEnum列挙体
要約　メンバ
要約

FLnetCtrl.MessageErrorイベントのエラー番号を示します。

メンバ

名前

値

説明
SendTimeout 1 [意味]メッセージ送信タイムアウトが発生しました。FLnetCtrl.Timeout.MessageSendプロパティの設定時間が経過するまでに、以下の条件を満たしました。
(1)1対1メッセージの場合は、送信先ノードから送達確認(ACK応答)を受信できなかった。
(2)1対Nメッセージの場合は、メッセージの送信ができなかった。
なお、FLnetCtrl.Timeout.MessageSendプロパティ=0の場合は、本イベントは発生しません。

[対策方法]ネットワークの状況によっては、メッセージ送信までに時間が掛かる場合があります。ネットワーク状況に応じて、FLnetCtrl.Timeout.MessageSendプロパティの値を調整してください。調整してもエラーが頻発する場合は、送信先ノードの状態を確認してください。

ReplyTimeout 2 [意味]メッセージ応答受信タイムアウトが発生しました。1対1要求メッセージの送信が完了してから、FLnetCtrl.Timeout.MessageReplyプロパティの設定時間以内に、応答メッセージを受信しませんでした。なお、FLnetCtrl.Timeout.MessageReplyプロパティ=0の場合は、本イベントは発生しません。

[対策方法]ネットワーク状況によっては、メッセージ応答までに時間が掛かる場合があります。ネットワーク状況に応じて、FLnetCtrl.Timeout.MessageReplyプロパティの値を調整してください。調整してもエラーが頻発する場合は、要求先ノードの状態を確認してください。

AckNone 10 [意味]送信先ノードからの送達確認(ACK応答)がありません。メッセージ再送を3回行いましたが、送信先ノードから送達確認がありませんでした。

[対策方法]送信先ノードの状態を確認してください。

AckBufferFull 11 [意味]送信先ノードのバッファが一杯です。メッセージ再送を3回行いましたが、送信先ノードから16#02(メッセージ用バッファフル)の送達確認(ACK応答)を受信しました。

[対策方法]送信先ノードの状態を確認してください。

AckNotInitial 12 [意味]送信先ノードの初期化が完了していません。メッセージ再送を3回行いましたが、送信先ノードから16#03(メッセージ受信処理の初期化未完)の送達確認(ACK応答)を受信しました。

[対策方法]送信先ノードの状態を確認してください。

AckVseqError 13 [意味]VSEQ(通番バージョン番号)エラーを検知しました。メッセージ再送を3回行いましたが、送信先ノードから16#05(通番バージョン番号エラー検知)の送達確認(ACK応答)を受信しました。

[対策方法]送信先ノードの状態を確認してください。

AckFormatError 14 [意味]フォーマット異常を検知しました。メッセージ再送を3回行いましたが、送信先ノードから16#06(フォーマット異常検知)の送達確認(ACK応答)を受信しました。

[対策方法]送信先ノードの状態を確認してください。


MethodReturnEnum列挙体
要約　メンバ
要約

FL-net Controlのメソッド戻り値を示します。

メンバ

名前

値

説明
Normal | 0 | 正常終了しました。
InvalidParameter | 1 | 引数が正しくありません。引数の値および型を見直してください。
MyNodeLinkOut | 2 | 自ノードがリンク離脱中です。リンク参加中にメソッドを発行してください。
MyNodeLinkIn | 3 | 自ノードがリンク参加中です。リンク離脱中にメソッドを発行してください。
TargetNodeLinkOut | 4 | 対象ノードがリンク離脱中です。対象ノードのリンク状態を確認してください。
SendBusy | 5 | メッセージが送信ビジー状態です。
VendorMessageNotSupport | 6 | ベンダ固有メッセージサーバ機能非実装(FLnetCtrl.VendorMessageSupportプロパティ=False)の条件で、FLnetCtrl.ReplyVendorMessageメソッドが発行されました。FLnetCtrl.VendorMessageSupportプロパティをTrueに設定してください。
SettingTool | 7 | 設定ツールから設定中です。
Unknown | -1 | 不明なエラーです。
InnerException | -2 | FL-net Control内部で例外が発生しました。


NodeLinkStateEnum列挙体
要約　メンバ
要約

FLnetCtrl.GetAllNodesLinkStateメソッドのノードリンク参加状態を示します。

メンバ

名前

値

説明
LinkOut | 0 | 未参加のノードです。
LinkIn | 1 | 参加中のノードです。
InvalidTM | 2 | トークンモードが異なるノード(FAリンクプロトコルVer.1.00版の機器)です。


ReplyMessageResultEnum列挙体
要約　メンバ
要約

応答メッセージの種別(結果)を示します。

メンバ

名前

値

説明
Normal | 0 | 正常の応答です。
Error | 1 | 異常の応答です。要求されたメッセージの実装はしているが、そのメッセージのパラメータにエラーがあります。
NotSupport | 2 | 非実装の応答です。要求されたメッセージの処理機能を実装していません。


Tag1TriggerEnum列挙体
要約　メンバ
要約

Common1Tagのトリガ条件を示します。

メンバ

名前

値

説明
BitOn | 0 | ビットの立ち上がり(OFF->ON)を検出します。
BitOff | 1 | ビットの立ち下がり(ON->OFF)を検出します。
BitOnOff | 2 | ビットの変化(OFF->ON, ON->OFF)を検出します。


Tag2TriggerEnum列挙体
要約　メンバ
要約

Common2Tagのトリガ条件を示します。

メンバ

名前

値

説明
WordLower | 0 | ビットの立ち上がり(OFF->ON)を検出します。
WordOver | 1 | ビットの立ち下がり(ON->OFF)を検出します。
WordChange | 2 | ビットの変化(OFF->ON, ON->OFF)を検出します。


WriteNetParamEnum列挙体
要約　メンバ
要約

FLnetCtrl.RequestNetParamWriteメソッドのライト項目を示します。

メンバ

名前

値

説明
NodeName | 1 | ノード名(設備名)だけ書き込みます。
CommonArea | 2 | 領域1,領域2の先頭アドレスおよびサイズだけ書き込みます。
Both | 3 | 領域1および領域2の先頭アドレス,サイズおよびノード名(設備名)を書き込みます。


RequestedMessageResultEnum列挙体
要約　メンバ
要約

要求メッセージの種別(結果)を示します。

メンバ

名前

値

説明
Enable | 0 | 許可します。
Disable | 1 | 許可しません。


MeasureStatusEnum列挙体
要約　メンバ
要約

測定ステータスを示します。

メンバ

名前

値

説明
StartStop | 0 | 測定中→停止中
StopStart | 1 | 停止中→測定中
StartStart | 2 | 測定中→測定中


SlaveLinkStateEnum列挙体
要約　メンバ
要約

FLnetCtrl.GetAllSlaveNodesLinkStateメソッドのスレーブノードリンク参加状態を示します。

メンバ

名前

値

説明
LinkOut | 0 | 未参加のスレーブノードです。
LinkIn | 1 | 参加中のスレーブノードです。
NotSlave | 2 | スレーブノード以外です。


IOErrorEnum列挙体
要約　メンバ
要約

IO割付設定時(FLnetCtrl.SetIOメソッド)のエラー情報を示します。

メンバ

名前

値

説明
Normal | 0 | 正常
InvalidNodeNo | 1 | ノード番号が範囲外
IsMyNodeNo | 2 | ノード番号が自ノード番号と同じ
OverlapNodeNo | 3 | ノード番号が重複
InvalidArea | 4 | 領域が範囲外
InvalidAddress | 5 | アドレスが範囲外
OverlapOutputData | 6 | 出力データと出力ステータスが重複
OverlapOutputArea | 7 | スレーブ出力エリアが重複
InvalidOutputArea | 8 | スレーブ出力エリアが自ノード送信領域範囲外
OverlapInputData | 9 | 入力データと入力ステータスが重複
OverlapInputArea | 10 | スレーブ入力エリアが重複
InvalidInputArea | 11 | スレーブ入力エリアが自ノード送信領域範囲内
InvalidPoint | 12 | 入出力点数が範囲外


DLLエラー番号(致命的エラー)
要約　値
要約

FLnetCtrl.LinkErrorイベントで通知される、LinkErrorEventArgsクラスのエラー番号(Numberフィールド)= FatalErrorの場合、詳細エラーコード(Paramフィールド)の値および意味は、以下の通りです。OSの状態が不安定の場合に発生する可能性があります。OSを再起動してから、再度プログラムを実行してください。

値

Param

説明(意味)
10001 | メモリ確保エラー(送信データバッファ)
10002 | メモリ確保エラー(サイクリック受信バッファ)
10003 | メモリ確保エラー(メッセージ受信バッファ)
10004 | メモリ確保エラー(参加要求受信バッファ)
10005 | メモリ確保エラー(サイクリック送信バッファ0ページ)
10006 | メモリ確保エラー(サイクリック送信バッファ1ページ)
10007 | メモリ確保エラー(メッセージ送信管理メモリ)
10008 | メモリ確保エラー(ACKバッファ)
20001 | スレッド生成エラー(サイクリック受信スレッド)
20002 | スレッド生成エラー(メッセージ受信スレッド)
20003 | スレッド生成エラー(参加要求フレーム受信スレッド)
20004 | スレッド生成エラー(メッセージ受信メインスレッド)
20005 | スレッド生成エラー(メッセージ送信メインスレッド)
20006 | スレッド生成エラー(サイクリック送信スレッド)
20007 | スレッド生成エラー(プロトコル管理スレッド)
20008 | スレッド生成エラー(コマンドサーバメインスレッド)
20009 | スレッド生成エラー(コマンドサーバ(UDP)スレッド)
20010 | スレッド生成エラー(コマンドサーバ(TCP)スレッド)
20011 | スレッド生成エラー(汎用通信データ送信元ログ測定スレッド)
20012 | スレッド生成エラー(任意マスタスレッド)
30001 | イベント生成エラー(サイクリック受信スレッド)
30002 | イベント生成エラー(メッセージ受信スレッド)
30003 | イベント生成エラー(参加要求フレーム受信スレッド)
30004 | イベント生成エラー(タイマ通知)
30005 | イベント生成エラー(メッセージ受信メインスレッド)
30006 | イベント生成エラー(メッセージ送信メインスレッド)
30007 | イベント生成エラー(サイクリック送信スレッド)
30008 | イベント生成エラー(プロトコル管理スレッド)
30009 | イベント生成エラー(最小許容フレーム通知)
30010 | イベント生成エラー(コマンドサーバメインスレッド)
30011 | イベント生成エラー(コマンドサーバ(UDP)スレッド)
30012 | イベント生成エラー(コマンドサーバ(TCP)スレッド)
30013 | イベント生成エラー(デバイスレベル管理)
40001 | 初期化処理エラー(ミューテックス取得)
40002 | 初期化処理エラー(DLL読込み)


DLLエラー番号(ネットワークエラー)
要約　値
要約

FLnetCtrl.LinkErrorイベントで通知される、LinkErrorEventArgsクラスのエラー番号(Numberフィールド)= NetworkErrorの場合、詳細エラーコード(Paramフィールド)の値は、WSAGetLastError関数()の戻り値を示します。意味および対策方法は、以下の通りです。

値

Param

別名定義(Winsock.h)

説明(意味および対策)
10024 WSAEMFILE 使用可能なリソースが不足しています。接続しているコネクションが多い。

実行中または常駐しているプログラムを終了したり、他のコネクションを切断してから、プログラムを再起動してください。

10042 WSAENOPROTOOPT ソケットオプションの指定が不正です。

Windows(R)標準以外のTCP/IPシステムが組み込まれている可能性があります。組み込まれているTCP/IPを確認してください。

10048 WSAEADDRINUSE 指定したアドレスは既に使用されています。以前に使用していたコネクションが正常に終了できなかった場合に発生することもあります。同じアドレス，ポート番号を使用するプログラムが実行中の場合に発生します。

同じアドレス，ポート番号を使用するプログラムを終了し、時間をおいてから、プログラムを再起動してください。

10049 WSAEADDRNOTAVAIL 指定したアドレスは無効です。TPケーブルがNICポートに接続されていない場合も、発生することがあります。

指定したアドレス(FLnetCtrl.LocalIPプロパティ)が間違っています。アドレスの値を確認して、再実行してください。

10050 WSAENETDOWN ネットワークシステムに障害を検知しました。動作パソコンにProxyが導入されている場合にも、発生することがあります。

TCP/IPプロトコルの設定を再確認してください。Proxyが導入されている場合は、Proxyの使用を無効にしてください。

10055 WSAENOBUFS システムに使用可能な空きバッファが不足しています。接続コネクション数や実行プログラムが多い場合にも、発生することがあります。

他のプログラムを終了したり、他のコネクションを切断してから、プログラムを再起動してください。

10058 WSAESHUTDOWN 既にTCP/IPシステムがシャットダウンしているため、送受信ができない状態となっています。

TCP/IPプロトコルのサービスが動作していることを確認してください。サービスが起動していない場合は、サービスを開始してください。

10091 WSASYSNOTREADY ネットワークサブシステムが利用できません。

TCP/IPプロトコルが正しく組み込まれていることを確認してください。

10092 WSAVERNOTSUPPORTED 要求されたバージョンをサポートしていません。

Windows(R)標準以外のTCP/IPシステムが組み込まれている可能性があります。組み込まれているTCP/IPを確認してください。

11001 WSAHOST_NOT_FOUND 指定されたホスト名称（アドレス）が正しくありません。

指定したアドレス(FLnetCtrl.LocalIPプロパティ)の値を確認して、再実行してください。


DLLエラー番号(プロトコルエラー)
要約　値
要約

FLnetCtrl.LinkErrorイベントで通知される、LinkErrorEventArgsクラスのエラー番号(Numberフィールド)= ProtocolErrorの場合、詳細エラーコード(Paramフィールド)の値および意味は、以下の通りです。

値

Param

説明(意味および対策)
10001 トークン多重化検出。自ノードがトークン保持中に他ノードからトークンフレームを受信したため、自ノードのトークンを破棄しました。ネットワークパラメータの設定によって発生する場合があります。

コモンメモリ送信領域のサイズ(FLnetCtrl.CommonSendプロパティ)に合わせて、トークン監視タイムアウト時間(FLnetCtrl.TokenTimeプロパティ)の値を調整(大きく)してください。

10002 トークン重複検出。自ノードがトークン保持中に他ノードからトークンフレームを受信しましたが、自ノードがトークンを保持しています。ネットワークパラメータの設定によって発生する場合があります。

コモンメモリ送信領域のサイズ(FLnetCtrl.CommonSendプロパティ)に合わせて、トークン監視タイムアウト時間(FLnetCtrl.TokenTimeプロパティ)の値を調整(大きく)してください。

10003 トークン重複検出。自ノードがトークン保持中に他ノードからトークンフレームを受信しましたが、自ノードがトークンを保持しています。ネットワークパラメータの設定によって発生する場合があります。

コモンメモリ送信領域のサイズ(FLnetCtrl.CommonSendプロパティ)に合わせて、トークン監視タイムアウト時間(FLnetCtrl.TokenTimeプロパティ)の値を調整(大きく)してください。

10004 トークン取りこぼし(受信バッファフル)。サイクリック受信用のバッファがフルになったため、サイクリックフレームの受信に失敗しました。パソコン内の処理負荷が大きいために発生することが考えられます。

パソコン内の処理負荷を減らすか、最小許容フレーム間隔(FLnetCtrl.MinFrameIntervalプロパティ)の値を調整(大きく)してください。

20001 カレントフラグメントブロック異常。受信したサイクリックフレームのCBNの値が正しくないため、サイクリックデータの書き込みに失敗しました。他ノードでトークン保持タイムアウトが発生したため、サイクリックフレームの送信が途中で中断された場合も考えられます。

イベントログにて、異常が発生しているノードをご確認ください。

20002 カレントブロック長異常。受信したサイクリックフレームのデータサイズまたはBSIZEの値が正しくないため、サイクリックデータの書き込みに失敗しました。

イベントログにて、異常が発生しているノードをご確認ください。

20003 トータルフラグメントブロック異常。受信したサイクリックフレームのTBNの値が正しくないため、サイクリックデータの書き込みに失敗しました。

イベントログにて、異常が発生しているノードをご確認ください。

30001 | 受信通番バージョン異常。受信したメッセージフレームの通番バージョンの値が正しくないため、メッセージ受信ができませんでした。この場合、送信元ノードに通番バージョン番号異常の送達確認(ACK応答)を送信します。
30002 | 受信通番異常。同一通番(再送用)のメッセージフレームを受信しました。
30003 受信フォーマット異常。受信したメッセージフレームのフォーマットが正しくない(プロトコル仕様に準拠しない)ため、メッセージを受信できませんでした。

送信元ノードから送信されるメッセージ内容をご確認ください。

30004 メッセージ取りこぼし(受信バッファフル)。メッセージ受信用バッファがフルになったため、メッセージの受信に失敗しました。パソコン内の処理負荷が大きいために発生することが考えられます。

パソコン内の処理負荷を減らすか、最小許容フレーム間隔(FLnetCtrl.MinFrameIntervalプロパティ)の値を調整(大きく)してください。

30005 ACK送信バッファフル。送信元ノードに送信するACKデータのバッファがフルになったため、メッセージの受信に失敗しました。パソコン内の処理負荷が大きいために発生することが考えられます。

パソコン内の処理負荷を減らすか、最小許容フレーム間隔(FLnetCtrl.MinFrameIntervalプロパティ)の値を調整(大きく)してください。

40001 ヘッダタイプ異常(サイクリックデータ)。サイクリック受信用ポート(ポート番号=55000)でFAリンクフレーム以外のフレームを受信しました。他のネットワークフレームが混在する場合、FL-net通信性能に悪影響をおよぼす可能性があります。

FL-netネットワーク上に他のネットワークを混在しないようにしてください。

40002 ヘッダタイプ異常(メッセージデータ)。メッセージ受信用ポート(ポート番号=55001)でFAリンクフレーム以外のフレームを受信しました。他のネットワークフレームが混在する場合、FL-net通信性能に悪影響をおよぼす可能性があります。

FL-netネットワーク上に他のネットワークを混在しないようにしてください。

40003 ヘッダタイプ異常(参加要求データ)。参加要求受信用ポート(ポート番号=55002)でFAリンクフレーム以外のフレームを受信しました。他のネットワークフレームが混在する場合、FL-net通信性能に悪影響をおよぼす可能性があります。

FL-netネットワーク上に他のネットワークを混在しないようにしてください。

40004 トークンモード不一致検知。ネットワーク上にFAリンクプロトコルVer.1.00版の機器が混在しています。Ver.1.00版とVer.2.00版を同一ネットワーク上に混在することはできません。

バージョンを統一してください。

40005 ヘッダタイプ異常(コマンドサーバ)。汎用コマンドサーバ送受信用ポート(ポート番号=55004)でFAリンクフレーム以外のフレームを受信しました。

FL-netネットワーク上に他のネットワークを混在しないようにしてください。

50001 コモンメモリ(アドレス/サイズ)異常。受信したサイクリックフレームに含まれるヘッダ項目(コモンメモリアドレス/サイズ)が正しくないため、サイクリックデータの書き込みに失敗しました。

イベントログで、異常が発生しているノードを確認してください。

60001 ACK内容異常。受信したACKデータの内容が正しくありません。送信先ノードとのメッセージ伝送で同期がとれない理由で発生する可能性があります。3回連続してイベントが発生する場合は、送信先ノードにメッセージ送信が完了できません。

イベントログで、送信先ノードから送信されるACKデータ内容を確認してください。

60002 通番バージョン不一致。受信したACKデータの通番バージョンが正しくありません。送信先ノードとのメッセージ伝送で同期がとれない理由で発生する可能性があります。3回連続してイベントが発生する場合は、送信先ノードにメッセージ送信が完了できません。

イベントログで、送信先ノードから送信されるACKデータ内容を確認してください。

60003 通番不一致受信したACKデータの通番データが正しくありません。送信先ノードとのメッセージ伝送で同期がとれない理由で発生する可能性があります。3回連続してイベントが発生する場合は、送信先ノードにメッセージ送信が完了できません。

イベントログで、送信先ノードから送信されるACKデータ内容を確認してください。

70001 トークン監視タイムアウト発生。トークン監視タイムアウト時間内にトークンを受信することができませんでした。なお、ノードがリンクから離脱する場合には必ず発生します。

コモンメモリ送信領域の大きさに合わせて、対象ノードのトークン監視タイムアウト時間の値を調整(大きく)してください。

70002 トークン保持タイムアウト発生。自ノードのトークン監視タイムアウト時間内にトークンを送信することができませんでした。

コモンメモリ送信領域のサイズ(FLnetCtrl.CommonSendプロパティ)に合わせて、トークン監視タイムアウト時間(FLnetCtrl.TokenTimeプロパティ)の値を調整(大きく)してください。


DLLエラー番号(セキュリティエラー)
要約　値
要約

FLnetCtrl.LinkErrorイベントで通知される、LinkErrorEventArgsクラスのエラー番号(Numberフィールド)= DllSecurityErrorの場合、詳細エラーコード(Paramフィールド)の値および意味は、以下の通りです。

値

Param

説明(意味および対策)
10001 プロテクトキー接続確認時にエラーを検知しました。

プロテクトキー用通信ドライバをインストールしてください。

10002

①プロテクトキーが接続されていません。プロテクトキー用通信ドライバがインストールされていない場合にも、発生することがあります。

②ライセンス認証データが不一致です。

①プロテクトキーの接続を確認してください。プロテクトキー用通信ドライバがインストールされていない場合は、インストールを行ってください。

②正しいライセンス認証データを登録してください。

10003 パソコンに接続されているプロテクトキーが正しくありません。

接続されているプロテクトキーを確認してください。FL-net Control専用のプロテクトキーを使用してください。


試用版の制限

FL-net Control (.NET版)

試用版の制限事項
機能制限　再配布　サポート　免責事項
機能制限

試用版では、一部機能制限があります。

  1. 本ソフトウェアロード時に、試用版であることを示すメッセージが表示されます。
  2. 起動後１時間で処理を停止します。引き続き試用される場合は、本ソフトウェアを再起動してください。
  3. 自ノードのコモンメモリ送信領域の範囲設定に制限があります。領域１は0～7[word]の範囲、領域２は0～15[word]の範囲のみ設定が可能です。
再配布

本ソフトウェアを弊社の許諾なく再配布することを禁じます。

サポート

試用版に関するサポートはありません。また、個別のメールサポートはいたしません。製品に関する問合せは、弊社営業窓口へお願いいたします。

免責事項

本ソフトウェアを使用することにより生じた被害等は一切の保証をいたしません｡また、機能的な不具合に対する対策は行いません。


FLnetCtrl.GetAllSlaveNodesLinkStateメソッド

FL-net Control (.NET版)

FLnetCtrl.GetLinkInSlavesメソッド
要約　構文　引数　戻り値　解説　サンプル
要約 全スレーブノードのリンク参加状態を取得します。
構文
[Visual Basic]
Public Function GetAllSlaveNodesLinkState( _
ByRef nNodes() As SlaveLinkStateEnum _
) As MethodReturnEnum
[C#]
public MethodReturnEnum GetAllSlaveNodesLinkState(
out SlaveLinkStateEnum[] nNodes
)
引数
名前 | 説明
nNodes | (o) 取得した全スレーブノードのリンク参加状況の配列[要素数=254]
戻り値 取得結果[MethodReturnEnum列挙体]
値 | 条件
Normal | 正常(モニタ中含む)
MyNodeLinkOut | 自ノードリンク未参加(離脱中/参加待機中)状態
InnerException | FL-net通信ライブラリ(FL_KE.dll)が存在しない
解説 全スレーブノードのリンク参加状況(未参加/参加中/スレーブ以外)の一覧を取得します。
サンプル
[Visual Basic]

'スレーブノードがリンクに参加した場合に発生します。

Private Sub FLnetCtrl_LinkInSlave(ByVal sender As System.Object, ByVal e As HKE.FLnetCtrl.SlaveEventArgs) Handles FLnetCtrl.LinkInSlave

Dim eState() As HKE.FLnetCtrl.SlaveLinkStateEnum

Dim eRtc As HKE.FLnetCtrl.MethodReturnEnum = FLnetCtrl.GetAllSlaveNodesLinkState(eState)

If eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal) Then

'参加ノード数を調べます。

Dim nNodes As Integer

For nLoop As Integer = 0 To 253 Step 1

'参加状況判定

If eState(nLoop).Equals(HKE.FLnetCtrl.SlaveLinkStateEnum.LinkIn) Then

nNodes = nNodes + 1

End If

Next nLoop

MessageBox.Show("リンク参加スレーブノード数は、" + nNodes.ToString() + "ノードです。")

End If

End Sub

[C#]

// スレーブノードがリンクに参加した場合に発生します。

private void fLnetCtrl_LinkInSlave(object sender, HKE.FLnetCtrl.SlaveEventArgs e)

{

HKE.FLnetCtrl.SlaveLinkStateEnum[] eState;

HKE.FLnetCtrl.MethodReturnEnum eRtc = fLnetCtrl.GetAllSlaveNodesLinkState(out eState);

if (eRtc.Equals(HKE.FLnetCtrl.MethodReturnEnum.Normal))

{

// 参加ノード数を調べます。

int nNodes = 0;

for (int nLoop = 0; nLoop < 254; nLoop++)

{

// 参加状況判定

if (eState[nLoop].Equals(HKE.FLnetCtrl.SlaveLinkStateEnum.LinkIn))

{

nNodes++;

}

}

MessageBox.Show("リンク参加スレーブノード数は、" + nNodes.ToString() + "ノードです。");

}

}


イベントログ

FL-net Control for .NET

補足：イベントログについて
前へ　次へ
イベントログ
  1. Windows[スタート]メニューより、[すべてのプログラム(P)]→[Hitachi-KE]→[FL-net Control.NET]→[ツール]→[イベントビューア]を選択し、イベントビューア画面を表示してください。画面左側ツリーの"アプリケーション"を選択してください(画面①参照)。画面右側の一覧表示のうち、ソース列の値が"FL_KE"または"FL-net Control.NET"である行が本製品で出力したイベントログです(画面②参照)。一覧内の項目をダブルクリックすると、イベントログの詳細内容を確認することができます(画面③参照)。

  2. イベントログ容量を設定する場合は、イベントビューア画面左側ツリーの[アプリケーション]を右クリックし、ポップアップメニューより[プロパティ(R)]を選択してください。アプリケーションのプロパティ画面が表示されます。以下の手順で設定を行ってください。
    ① 最大ログサイズ(M)の値を大きく設定してください。※ご使用のパソコン環境(ハードディスク残量など)に依存します。適切な値を設定してください。
    ② ログサイズが最大値に達したときの操作を、[○必要に応じてイベントを上書きする]を選択してください。※ご使用するパソコンの運用方法に依存します。
    ③ [OK]ボタンをクリックしてください。

  3. イベントログをファイルに保存する場合は、イベントビューア画面左側ツリーの[アプリケーション]を右クリックし、ポップアップメニューより[ログファイルの名前を付けて保存(A)…]を選択してください。アプリケーションの名前を付けて保存画面が表示されます。任意のファイル名を入力して、アプリケーションログをファイルに保存してください。