38.5.2.3 VB.NET 2003 プログラム例 - データの読み書きをするサンプル(デバイスアクセスAPI)

サンプルプログラムの場所 : (GP-Pro EXのDVD-ROM内)\WinGP\SDK\Pro-SDK\DotNet\EasySmpl

Imports ProEasyDotNet
' ProEasyオブジェクトをインポートします。
Public Class Form1
 Inherits System.Windows.Forms.Form
 
 #Region " Windows フォームデザイナで生成されたコード"
 
  Public Sub New()
   MyBase.New()
 
   ' この呼び出しはWindows フォームデザイナで必要です。
   InitializeComponent()
 
   ' ProEasy 初期化.。InitializeComponent()呼び出しの後に初期化を追加します。
   Dim iResult As Integer = ProEasy.EasyInit() ' WinGP SDK を最初に一度だけ初期化します。
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
   End If
 
  End Sub
 
  ' Form は、コンポーネント一覧に後処理を実行するためにdispose をオーバーライドします。
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
   If disposing Then
    If Not (components Is Nothing) Then
     components.Dispose()
    End If
   End If
  MyBase.Dispose(disposing)
  End Sub
 
~中略(以下のWindows フォームデザイナで生成されたコードは省略します)~
 
 #End Region
 
 Private Sub ReadBit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadBit.Click
 
 End Sub
 
 Private Sub Read16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Read16.Click
 
  Try
 
   ' 読み込みデータ.
   Dim nDataAry(1) As Short
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDevice16("#WinGP", "Buf_16", nDataAry, 1)
   ' ここではGP-Pro EXで設定した"Buf_16"(USR201)というシンボルを使用しています。
   ' デバイスアドレスを直接指定することもできます。
   ' 38.5.2.2 デバイスアドレスを直接指定する方法
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_16.Text = CStr(nDataAry(0))
 
   Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub Read32_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Read32.Click
 
  Try
 
   ' 読み込みデータ.
   Dim nDataAry(1) As Integer
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDevice32("#WinGP", "Buf_32", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_32.Text = CInt(nDataAry(0))
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub ReadBCD16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadBCD16.Click
 
  Try
   ' 読み込みデータ.
   Dim nDataAry(1) As Short
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDeviceBCD16("#WinGP", "Buf_BCD16", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_BCD16.Text = CShort(nDataAry(0))
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub ReadBCD32_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadBCD32.Click
 
  Try
   ' 読み込みデータ.
   Dim nDataAry(1) As Integer
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDeviceBCD32("#WinGP", "Buf_BCD32", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_BCD32.Text = CInt(nDataAry(0))
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub ReadFloat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadFloat.Click
 
  Try
   ' 読み込みデータ.
   Dim nDataAry(1) As Single
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDeviceFloat("#WinGP", "Buf_Float", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_Float.Text = CSng(nDataAry(0))
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub ReadDouble_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadDouble.Click
 
  Try
   ' 読み込みデータ.
   Dim nDataAry(1) As Double
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDeviceDouble("#WinGP", "Buf_Double", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_Double.Text = CDbl(nDataAry(0))
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub ReadStr_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadStr.Click
 
  Try
   ' 読み込みデータ.
   Dim nDataAry As String
 
   ' 読み込み.
   Dim iResult As Integer = ProEasy.ReadDeviceStr("#WinGP", "Buf_Str", nDataAry, 10)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
   Me.Buf_Str.Text = nDataAry
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub ReadVariant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadVariant.Click
 
 End Sub
 
 Private Sub ReadSymbol_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
ReadSymbol.Click
 
 End Sub
 
 Private Sub WriteBit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteBit.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Short
   nDataAry(0) = CShort(Val(Me.WBuf_Bit.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDeviceBit("#WinGP", "Buf_16", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub Write16_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Write16.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Short
   nDataAry(0) = CShort(Val(Me.WBuf_16.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDevice16("#WinGP", "Buf_16", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub Write32_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Write32.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Integer
   nDataAry(0) = CInt(Val(Me.WBuf_32.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDevice32("#WinGP", "Buf_32", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub WriteBCD16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteBCD16.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Short
   nDataAry(0) = CShort(Val("&h" + Me.WBuf_BCD16.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDevice16("#WinGP", "Buf_BCD16", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub WriteBCD32_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteBCD32.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Integer
   nDataAry(0) = CInt(Val("&h" + Me.WBuf_BCD16.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDeviceBCD32("#WinGP", "Buf_BCD32", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub WriteFloat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteFloat.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Single
   nDataAry(0) = CSng(Val(Me.WBuf_Float.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDeviceFloat("#WinGP", "Buf_Float", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub WriteDouble_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteDouble.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry(1) As Double
   nDataAry(0) = CDbl(Val(Me.WBuf_Double.Text))
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDeviceDouble("#WinGP", "Buf_Double", nDataAry, 1)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub WriteString_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteString.Click
 
  Try
   ' 書き込みデータ.
   Dim nDataAry As String
   nDataAry = Me.WBuf_Str.Text
 
   ' 書き込み.
   Dim iResult As Integer = ProEasy.WriteDeviceStr("#WinGP", "Buf_Str", nDataAry, 10)
   If iResult Then
    Dim sErrMsg As String
    ProEasy.EasyLoadErrorMessageEx(iResult, sErrMsg)
    MsgBox(sErrMsg)
   End If
 
  Catch ex As Exception
 
   MsgBox(ex.Message)
 
  End Try
 
 End Sub
 
 Private Sub WriteVariant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles WriteVariant.Click
 
  ' VB.NET ではVariant型が廃止されObject型を使うようになります。
  ' それに伴いWriteDeviceVariant()はWriteDeviceEasyObject() に変更されました。
 
 End Sub
 
 Private Sub WriteSymbol_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
WriteSymbol.Click
 
  ' WriteSymbol系はWriteSymbolVariant() しか見当たらない.
 
 End Sub
 
End Class