<< Click to Display Table of Contents >> マニュアル > サーバ作成ガイド > インターフェース編 > IPLinkインターフェース > IPLinkクライアントライブラリ > IPLinkクライアントライブラリのサンプル集 > IPLinkによるタグのモニタリング |
概要
このサンプルは、32点のデータをリアルタイムにモニタリングするサンプルプログラムです。タグをアクティブとして登録し、UpdateプロパティをTrueとすることにより、値変化時にイベントが発生します。各項目の表示については、StateChangedイベントを使用し、IPLinkサーバとの接続状況の表示を行っています。また、ValueStateChanged イベントを使用し、タグの値及び品質が変化した場合、各タグ値の表示を自動的に更新します。
サンプルのダウンロード
このページで紹介されている作成例には、サンプルが用意されています。
サンプルは以下からダウンロードすることができます。
なお、サンプル及び詳細の説明は、VB.NET2010で行います。
プラグラムの要点
プログラムの要点について説明します。
▪フォームロード処理
フォームロード時に、IPLinkサーバと接続を行うためのNetworkParamプロパティの設定を行います。合わせて通信を行うタグをAddTagで登録を行う等の初期処理を行います。
'IPlink Setting AxIPLink1.Visible = False AxIPLink1.AddTags(32, TagPaths, Actives, Results) AxIPLink1.NetworkParam = ",3000,1000" AxIPLink1.Online = True AxIPLink1.CtlUpdate = True
クライアントとサーバ間の値の更新周期はNetworkParamで設定します。サーバとPLC間の値の更新周期は各PLCのフォルダプロパティで設定します。 |
▪StateChangedイベント
StateChangedはIPLinkサーバの接続状態が変化した時に発生します。接続中であれば「True」、未接続であれば「False」が取得できます。ここでは、取得した接続状態を、エディットボックスへ表示しています。
'------------------------------------------ ' Event - StateChanged '------------------------------------------ Private Sub AxIPLink1_StateChanged(sender As Object, e As AxIPLINKLib6._DClientIPLinkEvents_StateChangedEvent) Handles AxIPLink1.StateChanged txtState.Text = CStr(e.state) End Sub
▪ValueStateChangedイベント
ValueStateChangedはIPLinkサーバのタグの値及び品質が変化したときに発生します。ここでは、タグの品質が正常(True)であった場合、値のエディットボックスへ表示します。また、品質が異常になった場合、「Error!」と表示させています。
'------------------------------------------ ' Event - ValueStateChanged '------------------------------------------ Private Sub AxIPLink1_ValueStateChanged(sender As Object, e As AxIPLINKLib6._DClientIPLinkEvents_ValueStateChangedEvent) Handles AxIPLink1.ValueStateChanged If e.state Then txtVal(Integer.Parse(e.tagPath.Substring(e.tagPath.Length - 2))).Text = CStr(e.value) Else txtVal(Integer.Parse(e.tagPath.Substring(e.tagPath.Length - 2))).Text = "Error!" End If End Sub
通信切断の検証
通信切断の原因としては、大きく以下の2つに分けられます。
通信障害の発生時、このサンプルで使用している2つのイベントは以下のように動作します。
▪ValueStateChanged(ByVal TagPath As String, ByVal Value As Variant, ByVal State As Boolean)
「ValueStateChanged」イベントは3つの引数があり、第3引数である「State」は値の品質を表します。何らかの理由で値が取得できなかったとき、State引数にはFalseが設定されます。これは、クライアントとサーバ間の障害、サーバとPLC間の障害、いずれの障害においても同様に発生します。
▪StateChanged(ByVal State As Boolean)
「StateChanged」イベントは、クライアントとサーバ間の通信状態が変化した時に発生するイベントです。サーバとPLC間で通信ができなくなった時は発生しません。障害時には「State」引数にFalseが設定されます。
このサンプルを使用して、通信障害時の動作検証を行います。
1.クライアントとサーバ間の通信障害
クライアントとサーバ間の通信障害を模擬するため、正常通信中にアプリケーションをオフラインにして下さい。すると、StateChanged及びValueStateChangedが発生します。フォーム上では値が「Error!」になり、状態が「False」と表示されることを確認してください。
|
2.サーバとPLC間の通信障害
サーバとPLC間の通信障害を模擬するため、正常通信中にU01ユニットを右クリックし、「ユニット操作」「切断」を選択して下さい。切断操作により、PLCとの通信不能状態をシミュレートすることができます。この場合、ValueStateChangedのみ発生します。フォーム上では値が「Error!」になりますが、状態は「True」のまま表示されています。なお、切断状態であるためServer側のタグのクオリティは全てBADになります。
|