接続方法

<< Click to Display Table of Contents >>

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

接続方法

概要

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

 

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

Step1.サーバ設定

タグ登録設定を行います。

Step2.クライアント設定

OCXの設定等を行います。

Step3.接続確認

VBアプリケーションからの接続を確認します。

Step4.値の読み書き

VBアプリケーションから値の読み書きを行います。

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

VBアプリケーションでタグの値をリアルタイムに表示させます。

 

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

 

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

 

c_interface_0121

AddTag

通信を行うタグの登録を宣言します。

タグの登録はオンライン後でも可能です。

c_interface_0126



c_interface_0122

NetWorkParame

Online = True

オンラインがTrueの間、サーバとの通信が行えます。

 

c_interface_0126



c_interface_0123

Update = True

ValueChanged

UpdateプロパティをTrueにすると、自動更新を開始します。

タグ値が変化した時にValueChangedイベントが発生します。

値変化による動的な処理の実装はこのイベントを利用します。

c_interface_0126



c_interface_0124

ReadVal

WriteVal

メソッドを利用したタグの読み書きを行います。

 

c_interface_0126



c_interface_0125

Update = False

Online = False

通信の終了処理はフォームを閉じると自動的に行われます。

従って、通常は終了処理を意識する必要はありません。

 

 

 

hint

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

 

Step1.サーバ設定

タグの設定

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

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

 

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

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

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

 


インターフェースの設定

 

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

 

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

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

 

attention

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

 

 

Step2.クライアント設定

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

 

 

1.Visual Basicを起動します。
 

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

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

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

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

 

 

hint

NetworkParamにて「サーバIPアドレス,サーバポート番号,更新周期」に続けて、「通信タイムアウト(秒),接続時タイムアウト(秒)」を設定できます。

 

例)「,3000,1000,10,10」

 

タイムアウトの設定のところで、「-1」を設定すると、OS依存でタイムアウト時間が決定されます。OS依存の場合10分以上待たされることもありますのでご注意ください。なにも設定しないとデフォルト値(通信タイムアウト:5、接続時タイムアウト:-1)になります。

 

hint

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

 

Visible:Trueの場合

c_interface_0103

 

c_interface_0102

Visible:Falseの場合

c_interface_0104

 

c_interface_0105

 

 

Step3.接続確認

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

 

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

 

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

 

 

Step4.値の読み書き

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

 

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

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タグに値が渡されることを確認してください。
c_interface_0112

 
 

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

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

 

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

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

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

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)にタグの現在値が表示されます。
c_interface_0117
 
Text2に任意の数値を書き込み、書き込みボタンを押してください。入力した数値がタグに書き込まれ、Text3の表示も伴って変化することを確認して下さい。
c_interface_0118