# データの読み込み

マニュアル > サーバ作成ガイド > インターフェース編 > IPLinkインターフェース > IPLinkクライアントライブラリ > IPLinkクライアントライブラリの応用 > # データの読み込み |

概要

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

この機能のサンプルは、以下からご利用頂けます。

なお、サンプル及び詳細の説明は、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」が黄色になったのを確認してください。

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

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