データの読み込み

<< Click to Display Table of Contents >>

マニュアル > サーバ作成ガイド > インターフェース編 > IPLinkインターフェース > IPLinkクライアントライブラリ > IPLinkクライアントライブラリのサンプル集 >

データの読み込み

概要

このサンプルは、「クライアントキャッシュとサーバキャッシュ」で解説した4通りの方法によってタグの値を読み込むサンプルプログラムです。

 

c_interface_0134

 

 

サンプルのダウンロード

このページで紹介されている作成例には、サンプルが用意されています。

 

サンプルは以下からダウンロードすることができます。

 

なお、サンプル及び詳細の説明は、VB.NET2010で行います。

 

 

プラグラムの要点

プログラムの要点について説明します。

 

ValueChanged イベント
ValueChanged イベントはタグの値が変化すると発生するイベントです。戻り値「Value」には通信が成功した場合の値が格納されているため、信頼できる値となります。
 

'------------------------------------------
' Event - ValueChanged
'------------------------------------------
Private Sub AxIPLink1_ValueChanged(sender As Object, e As AxIPLINKLib6._DClientIPLinkEvents_ValueChangedEvent) Handles AxIPLink1.ValueChanged
    Select Case e.tagPath
        Case "U01.F01.T01"
            txtRead1.Text = CStr(e.value)
    End Select
End Sub

 
 

ReadVal(DataSource=0)
ReadValメソッドの第三引数DataSourceを0とすると、クライアントキャッシュの値を取得します。この方法は最も高速なデータ取得方法となるため、迅速なReadValの反応が求められる場合は、この方法を使用します。
 

If Not AxIPLink1.ReadVal("U01.F01.T02", a, 0) Then
    txtError.Text = AxIPLink1.ErrMessage
    Exit Sub
End If

 
 

ReadVal(DataSource=1)
ReadValメソッドの第三引数DataSourceを1とすると、サーバキャッシュの値を取得します。サーバ側で更新されている値を取得するため、クライアント側とサーバ間で定期的な自動更新が不要になるため、その間の負荷を下げる効果があります。そのため、ネットワークの帯域などが狭い場合などに使用する方法になります。
 

If Not AxIPLink1.ReadVal("U01.F01.T03", a, 1) Then
    txtError.Text = AxIPLink1.ErrMessage
    Exit Sub
End If

 
 

ReadVal(DataSource=2)
ReadValメソッドの第三引数DataSourceを2とすると、デバイス値を取得します。この方法は、強制的にPLCとの通信要求を行うため、もっとも処理時間と負荷が高い方法になります。ただし、要求の都度、実際にPLCと通信が行われた結果が帰ってくるため、最も新しいデバイス値を取得することができます。PLCとの同期が必要な場合や低周期的なデータ取得が必要なく、バッチ処理のような一定の期間(間隔)ごとに処理をおこなう場合はこちらの方法が最適です。
 

If Not AxIPLink1.ReadVal("U01.F01.T04", a, 2) Then
    txtError.Text = AxIPLink1.ErrMessage
    Exit Sub
End If

 

 

動作確認

オンライン後、Visual Basicアプリケーションを実行して下さい。タグのランプが「T01」~「T03」まで赤色、「T04」が黄色になったのを確認してください。

c_interface_0135

 

通信接続が正しく行われていることを確認したら、各読み込みボタンを押してタグの値が正しく読み込まれることを確認してください。

 

 

hint

「T04」は「AddTag」でアクティブでない状態で登録したため、サーバとPLC間で自動更新が行われません。アクティブでないタグはランプが黄色になります。

 

IPLink1.AddTag "U01.F01.T04", False