# 接続方法

マニュアル > サーバ作成ガイド > インターフェース編 > IPLinkインターフェース > IPLinkクライアントライブラリ > # 接続方法 |

概要

VisualBasic等の開発アプリケーションからIPLink接続を行うための入門的な手順について解説します。

ここで紹介する手順としては、大きく分けて以下の３ステップです。

Step1.サーバ設定 | タグ登録設定を行います。
Step2.クライアント設定 | OCXの設定等を行います。
Step3.接続確認 | VBアプリケーションからの接続を確認します。
Step4.値の読み書き | VBアプリケーションから値の読み書きを行います。
Step5.値のリアルタイム表示 | VBアプリケーションでタグの値をリアルタイムに表示させます。

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

なお、基本的な開発フローは以下の様な流れになります。

| AddTag | 通信を行うタグの登録を宣言します。 タグの登録はオンライン後でも可能です。
| NetWorkParame Online = True | オンラインがTrueの間、サーバとの通信が行えます。
| Update = True ValueChanged | UpdateプロパティをTrueにすると、自動更新を開始します。 タグ値が変化した時にValueChangedイベントが発生します。 値変化による動的な処理の実装はこのイベントを利用します。
| ReadVal WriteVal | メソッドを利用したタグの読み書きを行います。
| Update = False Online = False | 通信の終了処理はフォームを閉じると自動的に行われます。 従って、通常は終了処理を意識する必要はありません。

| コンパイルは32bit(x86)/64bit(x64)どちらにも対応しています。

Step1.サーバ設定

タグの設定

Panel Serverを起動して下記の手順に従ってタグの設定を行って下さい。ここでは、PLCの代わりに仮想デバイスを使用します。もし、PLCが手元にあれば、PLCのタグを設定しても構いません。

1.ユニットを追加します。
画面左側のツリーから「Driver」を右クリックしてメニューを表示し、「ユニット追加」を選択してください。
選択ダイアログが表示されるので、「メモリ」の「仮想通信」「仮想デバイス」を選択して、「OK」を押してください。

2.フォルダを追加します。
「U01」を右クリックしてメニューを表示し、「フォルダ追加」を選択します。

3.タグを追加します。
「F01」を右クリックしてメニューを表示し、「タグ追加」を選択します。　「T01」というタグが追加されます。

4.タグのプロパティを設定します。
リストから「T01」を右クリックしてメニューを表示し、「プロパティ」を選択します。「アドレス設定」タブから「04 - D データレジスタ」を選択し、「OK」を押してください。
以下は例として、D0000（ワードレジスタ）を数値タグとして設定しています。

インターフェースの設定

IPLinkインターフェースの設定を行います。

1.左側のツリーの「IPLink」を右クリックし「プロパティ」を選択します。

2.プロパティを設定します。
IPLinkサーバのIPアドレス及びポート番号を指定します。「インターフェースを有効にする」にチェックが入っていることを確認してください。
複数のネットワークカードが存在する場合など、PCに複数のIPアドレスがある場合を除き、IPアドレスを明記する必要は特にありません。アドレスの指定が無い場合、自動的にデフォルトIPアドレスが設定されます。また、ポート番号はシステム構成上使用が可能な任意の番号を指定してください。ここでは3000を指定します。

| IPLinkサーバを同じPC内で複数起動させる場合には、各サーバがそれぞれ異なるポート番号となるように設定してください。

Step2.クライアント設定

Visual Basicでクライアントアプリケーションの作成を行います。

1.Visual Basicを起動します。

2.ツールボックスで右クリックし、メニュー［アイテムの選択］を選択します。

3.「COMコンポーネント」の「Roboticsware IPLink Ver6.0」にチェックを付けて、「OK」をします。

4.コントロールをフォームに貼り付けます。
ツールバーから「IPLink」オブジェクトを選択し、フォームに貼り付けます。

5.プロパティを設定します。
IPLinkコントロールのプロパティに、下記の設定をおこないます。
NetworkParam : 「,3000,1000」
Online : 「True」
NetworkParamは「サーバIPアドレス,サーバポート番号,更新周期」の順にパラメータを設定します。IPアドレスに何を指定していない場合は、自動的に取得されたIPアドレスが使用されます。IPアドレスを指定する場合は固定値を設定してください。
OnlineをTRUEにすると、サーバと接続され通信可能な状態になります。

| NetworkParamにて「サーバIPアドレス,サーバポート番号,更新周期」に続けて、「通信タイムアウト（秒）,接続時タイムアウト（秒）」を設定できます。 例）「,3000,1000,10,10」 タイムアウトの設定のところで、「-1」を設定すると、OS依存でタイムアウト時間が決定されます。OS依存の場合10分以上待たされることもありますのでご注意ください。なにも設定しないとデフォルト値（通信タイムアウト:5、接続時タイムアウト:-1）になります。

| IPLinkのコントロールはそのままコンパイルして実行すると画面上に表示されてしまいます。もし、非表示にしたい場合は、プロパティのVisibleをFalseに指定してください。
Visible：Trueの場合 | Visible：Falseの場合

Step3.接続確認

ここまでの設定で、IPLinkによる通信が正しく行われることを確認してみます。Visual Basicの開始ボタンを押して、プログラムを実行して下さい。「Number of Clients」には、現在接続されているクライアントの数が表示されます。この値が「1」になっている事で、接続が正しく行われていることが確認できます。

▪サーバ側　クライアント接続数を確認する

▪Visual Basic
実行ボタンを押して、アプリケーションを実行します。
※Visual Basicを開始する前にアプリケーションがオンライン（黄色ボタン）になっていることを確認して下さい。

Step4.値の読み書き

「ReadVal」「WriteVal」メソッドを呼び出して、ボタンクリックによるタグの読み書きを行います。

1.コントロールを貼り付けます。
フォームに2つのボタンと2つのテキストボックスを貼り付けます。このボタンとテキストをタグの読み書きに使用します。

2.コードを記述します。
フォームのロード時、Readボタン押下時、Writeボタン押下時それぞれの処理を以下のように記述します。

    Public Class Form1
        '------------------------------------
        ' Event - FormLoad
        '------------------------------------
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            AxIPLink1.AddTag("U01.F01.T01", True)  'タグ登録
        End Sub

        '------------------------------------
        ' Read Button Click
        '------------------------------------
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim vVal As Object = Nothing
            If Not AxIPLink1.ReadVal("U01.F01.T01", vVal, 1) Then
                TextBox1.Text = "Error!"
            Else
                TextBox1.Text = vVal
            End If

        End Sub

        '------------------------------------
        ' Write Button Click
        '------------------------------------
        Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
            If Not AxIPLink1.WriteVal("U01.F01.T01", TextBox2.Text) Then
                TextBox2.Text = "Error!"
            End If

        End Sub
    End Class

3.プログラムを実行します。
Visual Basicの開始ボタンを押して、プログラムを開始して下さい。T01タグのランプが下記のように赤色に変わっていればタグへの接続が完了しています。タグの現在値は「現在値」の欄で確認できます。T01タグの値を更新してVisual Basic側の読み込みボタンを押し、値が取得できる事を確認してください。また、Visual Basicから値を更新して書き込みボタンを押し、T01タグに値が渡されることを確認してください。

Step5.値のリアルタイム表示

「ValueChanged」イベントによるタグ値のリアルタイム表示を行います。リアルタイム表示とは、タグの変化に応じた画面の動的更新の事です。

1.コントロールを貼り付けます。
モニタ用のテキストを以下のように配置します。

2.IPLinkコントロールのプロパティの設定を行います。
CtlUpdateプロパティをTrueに設定してください

3.ValueChangedイベントの定義を行います。
コード入力画面からIPLinkコントロールを選択し、ValueChangedイベントを選択し、イベントをコードに追加してください。

4.コードを記述します。
「ValueChanged」イベントに下記のコードを記述してください。

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

5.プログラムを実行します。
Visual Basicの開始ボタンを押して、プログラムを開始して下さい。フォームが表示されると、テキストコントロール（Text3）にタグの現在値が表示されます。
Text2に任意の数値を書き込み、書き込みボタンを押してください。入力した数値がタグに書き込まれ、Text3の表示も伴って変化することを確認して下さい。