第 3 章 サンプルプログラム



3.1 LANでの Visual Basicサンプルプログラム

注意:8423を社内ネットワーク等に繋げる場合は、社内のネットワーク管理者に相談の
うえ8423のIPアドレス等を設定して下さい。


ご使用のパソコンが、社内ネットワーク等に繋がっておらず、8423とパソコンを1対1
で繋げる場合は、以下の例のようにIPアドレス等を設定して下さい。


*8423をHUBに繋げる場合は、ストレートケーブルをご使用下さい。
*8423をパソコンと1対1で繋げる場合は、ストレートケーブル+クロス変換コネクタ
(または、クロスケーブル)をご使用下さい。

*8423のIPアドレス等の設定は、8423取説を参照して下さい
*例えば、ご使用のパソコンの、サブネットマスクが255.255.255.0であった場合、8423の
サブネットマスクも255.255.255.0とし、IPアドレスの左から1,2,3桁までをパソコンの
IPアドレスと同じにし、4桁目のみを違う値にすると通信ができます。



注意:下記のTCP/IPのプロパティの設定は、あくまでも説明用の例としての設定であり、
ご使用のパソコンが社内ネットワーク等に繋がっている場合は、ご使用のパソコンの
IPアドレス等の設定をむやみに変更すると、社内ネットワーク等に障害を及ぼす可能性が
ありますので、変更する場合はネットワーク管理者に相談のうえ設定して下さい。


ご使用のパソコンが、社内ネットワーク等に繋がっておらず、8423とパソコンを1対1
で繋げる場合は、以下の例のようにIPアドレス等を設定して下さい。




以下のサンプルプログラムは、Visual Basicに付属のWinsock コントロールを用いて作成しました。

プログラムを実行するには、次のことをする必要があります。(Visual Basic 6の場合)
(1)Visual Basic メニューの、プロジェクト−コンポーネントを開き、Winsock Control をチェック
してOKボタンを押して下さい。Winsock コントロールが登録されます。(ネットワークのアイコン)

(2)フォームに、Winsock コントロールを貼り付けて下さい。
(3)「IPアドレス」入力用のテキストボックスを、txtIPという名前で作成して下さい。
IPアドレスは、8423で設定してある値を入力します。
(4)「ポート番号」入力用のテキストボックスを、txtPortという名前で作成して下さい。
ポート番号は、8423で設定してある一番右のXにあたる桁を2にして入力します。
(5)「コマンド実行」用のボタンを、Command1という名前で作成して下さい。Command1_Click()関数に対応します。
(6)「接続」用のボタンを、Command2という名前で作成して下さい。Command2_Click()関数に対応します。
(7)「切断」用のボタンを、Command3という名前で作成して下さい。Command3_Click()関数に対応します。
(8)「Text1」結果出力用のテキストボックスを、Text1という名前で作成して下さい。
(9)「Text2」接続状態用のテキストボックスを、Text2という名前で作成して下さい。
(10)サンプルプログラムにを参照してプログラムを入力して下さい。

(11)プログラムを実行して、「接続」ボタンを押すと、Command2_Click()に記述された処理が行われ、
Text2のボックスに「LAN接続完了」と表示されます。
「LAN接続待ち」と表示されたままでしたら、ケーブルの接続、IPアドレス、ポート番号等を確認して下さい。
(12)「コマンド実行」ボタンを押すと、Command1_Click()に記述された処理が行われます。
(13)最後に、「切断」ボタンを押すと、Command3_Click()に記述された処理が行われ、「LAN切断完了」
と表示されれば終わりです。



以下のサンプルプログラムで$の付く変数は、文字列型です。




LANサンプルプログラム1

このプログラムは、本器に接続してコマンドの送受信を行います。
コマンドの欄に送信したいコマンドを入力し、コマンド実行ボタンを押すと送信されます。
応答があるコマンド(?)が含まれるコマンドの場合は、テキストボックスに応答が表示されます。




LANサンプルプログラム1 Visual Basic 6

LANサンプルプログラム1 Visual Basic 2005 Express Edition



LANサンプルプログラム2

このコマンドは、本器に接続して測定データの取得を行います。
:MEMORY:MAXPOINT?クエリによって、ストレージデータが入出力可能であるか調べます。
出力したいデータのチャネルとポイントを:MEMORY:POINTコマンドによって指定します。
ASCII形式で取込む場合は、:MEMORY:ADATA?クエリ、電圧値形式の場合は:VDATA?
クエリを使用します。




LANサンプルプログラム2 Visual Basic 6

LANサンプルプログラム2 Visual Basic 2005 Express Edition



LANサンプルプログラム3

このプログラムは、本器に接続して各CHの値を取り込みEXCELに貼り付けます。
データ取得間隔は1秒より遅い間隔で設定できます。
EXCELがインストールされている必要があります。




LANサンプルプログラム3 Visual Basic 6

LANサンプルプログラム3 Visual Basic 2005 Express Edition



3.2 USBでの Visual Basicサンプルプログラム

8423 メモリハイロガーUSBドライバ説明

1.ベンダーID とプロダクトID

VenderID :108F (HEX)
ProductID :8423 (HEX)


2.パソコンへの8423USBドライバのインストール
(「SetupDriver32.msi」または「SetupDriver64.msi」を使用します。)

2-1.「SetupDriver32.msi」を実行してください。
  (WindowsVista/7の64bit版の場合は「SetupDriver64.msi」 を実行してください。)
2-2.「Next」 ボタンをクリックします。
2-3.「Everyone」をチェックして 「Next」ボタンをクリックします。
  (インストール先を変更したい場合は、 「Browse...」ボタンをクリックし、インストールするフォルダを変更します。通常は、変更する必要はありません。)
2-4.「Next」ボタンをクリックします。
 ・WindowsXPの場合は途中で何度かマイクロソフトが認証するソフトウェアではないというメッセージが表示されますが、「続行」ボタンを押してそのまま続行してください。
 ・WindowsVista/7の場合、プログラムの続行の許可を求めるダイアログが表示されますが、「続行」をクリックして次へ進みます。
 ・WindowsVista/7の場合、さらにインストールの許可を求めるダイアログが表示される場合がありますが、
  「HIOKI E.E. CORPORATIONからのソフトウェアは常に信頼する」にチェックを入れて 「インストール」ボタンを押して次へ進みます。
2-5.「Close」ボタンを押します。


3.パソコンへの8423の接続
(8423の接続の前に、2.パソコンへの8423USBドライバのインストールを行ってください。)

・Windows XPの場合
3-1.8423にACアダプタを接続して電源を入れます。
3-2.コンピュータと8423を付属のUSBケーブルで接続します。
  「新しいハードウェアが見つかりました」と画面に表示後、新しいハードウェア検出ウィザードが始まります。
3-3.「いいえ、今回は接続しません」をチェックして「次へ」ボタンをクリックします。
3-4.「ソフトウェアを自動的にインストールする(推奨)」をチェックして「次へ」ボタンをクリックします。
  ドライバのインストールが始まりますのでお待ちください。
3-5.「続行」ボタンをクリックします。
  マイクロソフトが認証するソフトウェアではないというメッセージが表示されますが、「続行」ボタンを押してそのまま続行してください。
3-6.インストールが終了しましたら「完了」ボタンをクリックします。

・Windows2000/Vista/7 の場合
3-1.8423にACアダプタを接続して電源を入れます。
3-2.コンピュータと8423を付属のUSBケーブルで接続します。自動的にドライバがインストールされて、デバイスを使用する準備が完了します。


4.パソコンへの8423接続の確認

4-1.「スタート」「コントロールパネル」「システム」をクリックして、システムのプロパティーを表示します。
4-2.「ハードウエア」「デバイスマネージャ」「USB(Universal Serial Bus)コントローラ」をクリックします。
4-3.USB(Universal Serial Bus)コントローラの一覧の中に、MEMORY HiLOGGER 8423 があることを確認してください。
(一覧の中に、MEMORY HiLOGGER 8423 がない場合は、2.パソコンへの8423USBドライバのインストールをやり直してください)


5.コマンドによる通信
(HiUsbL.dllとVisualBasic等を使用します。)

HiUsbL.dllに含まれている以下の関数を使って通信をします。
(以下は、Visual Basic 6の場合についての説明です。
Visual Basic 2005では下記説明のLongの部分をIntegerに置き換えてください。)

5-1.パソコンと8423のUSBオープン用関数
OpenUSBBulkFile(ByVal pipeNo As Long, ByVal ProductID As Long, ByVal SN As Long) As Long
引数: pipeNo:USB通信用パイプ番号を指定します。
パソコンから8423への送信用パイプは 1 を指定します。
パソコンへ8423からの受信用パイプは 0 を指定します。
ProductID:8423のプロダクトIDである 8423 を指定します。
SN:8423のシリアル番号を指定します。(例=070312345 など)
(パソコンに8423を1台しか繋がない場合は、シリアル番号は 0 でも通信できます。)
戻り値:ハンドル
(指定したProductID、SNの8423が見つからない場合は -1 が返ります。)

オープン用関数の使用例
Const OUT_PIPE As Long = 1
Const IN_PIPE As Long = 0
Dim OutDeviceHandle As Long
Dim InDeviceHandle As Long

OutDeviceHandle = OpenUSBBulkFile(OUT_PIPE, CInt(Val("8423")), CInt(Val("070312345")))
InDeviceHandle = OpenUSBBulkFile(IN_PIPE, CInt(Val("8423")), CInt(Val("070312345")))

5-2.パソコンから8423への送信用関数
WriteUSBBulk Lib "HiUsbL.dll" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal nNumberOfBytesToWrite As Long, ByRef lpNumberOfBytesWritten As Long) As Long
引数: hFile:送信用ハンドル
lpBuffer:送信データバッファのポインタ
nNumberOfBytesToWrite:送信したいデータ数
lpNumberOfBytesWritten:送信したデータ数を返すポインタ
戻り値:正常時 1 、異常時 0 が返ります。

送信用関数の使用例
Dim sendBuff As String
Dim ans As Long
Dim sendCount As Long

deli$ = Chr$(13) & Chr$(10) 'デリミタ定義
sendBuff = "*IDN?" + deli$ '機器IDの問い合わせ
(または、sendBuff = "*IDN?" & vbCrLf)

ans = WriteUSBBulk(OutDeviceHandle, sendBuff, Len(sendBuff), sendCount)

5-3.パソコンへ8423からの受信用関数
ReadUSBBulk Lib "HiUsbL.dll" (ByVal hFile As Long, ByRef lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, ByRef lpNumberOfBytesRead As Long) As Long
引数: hFile:受信用ハンドル
lpBuffer:受信データバッファのポインタ
nNumberOfBytesToRead:受信可能データ最大数
lpNumberOfBytesRead:受信したデータ数を返すポインタ
戻り値:正常時 1 、異常時 0 が返ります。

受信用関数の使用例
Const USB_RECEIVE_MAX = 512
Dim recvBuff(USB_RECEIVE_MAX * 2) As Byte
Dim ans As Long
Dim recvCount As Long

ans = ReadUSBBulk(InDeviceHandle, recvBuff, USB_RECEIVE_MAX, recvCount)
(*IDN?を送信後に受信すると、recvBuffに HIOKI,8423,0,V 1.00 などが返ってきます。)



プログラムを実行するには、次のことをする必要があります。(Visual Basic 6の場合)
(1)Visual Basic メニューの、プロジェクト−コンポーネントを開きます。
(2)「シリアル番号」入力用のテキストボックスを、textSerialという名前で作成して下さい。
シリアル番号は、[0]または、複数の8423を使う場合は8423の側面に貼ってあるシリアル番号を入力します。
(3)「コマンド実行」用のボタンを、Command1という名前で作成して下さい。Command1_Click()関数に対応します。
(4)「接続」用のボタンを、Command2という名前で作成して下さい。Command2_Click()関数に対応します。
(5)「切断」用のボタンを、Command3という名前で作成して下さい。Command3_Click()関数に対応します。
(6)「Text1」結果出力用のテキストボックスを、Text1という名前で作成して下さい。
(7)「Text2」接続状態用のテキストボックスを、Text2という名前で作成して下さい。
(8)標準モジュール「Module1」を追加して、USBのオープン、送信、受信関数を定義してください。
(9)サンプルプログラムにを参照してプログラムを入力して下さい。

(10)プログラムを実行して、「接続」ボタンを押すと、Command2_Click()に記述された処理が行われ、
Text2のボックスに「USB接続完了」と表示されます。
通信がうまく出来ない場合は、ケーブルの接続、USBドライバのインストール、シリアル番号等を確認して下さい。
(11)「コマンド実行」ボタンを押すと、Command1_Click()に記述された処理が行われます。
(12)最後に、「切断」ボタンを押すと、Command3_Click()に記述された処理が行われ、「USB切断完了」
と表示されれば終わりです。



以下のサンプルプログラムで$の付く変数は、文字列型です。




USBサンプルプログラム1

このプログラムは、本器に接続してコマンドの送受信を行います。
コマンドの欄に送信したいコマンドを入力し、コマンド実行ボタンを押すと送信されます。
応答があるコマンド(?)が含まれるコマンドの場合は、テキストボックスに応答が表示されます。




USBサンプルプログラム1 Visual Basic 6

USBサンプルプログラム1 Visual Basic 2005 Express Edition



USBサンプルプログラム2

このコマンドは、本器に接続して測定データの取得を行います。
:MEMORY:MAXPOINT?クエリによって、ストレージデータが入出力可能であるか調べます。
出力したいデータのチャネルとポイントを:MEMORY:POINTコマンドによって指定します。
ASCII形式で取込む場合は、:MEMORY:ADATA?クエリ、電圧値形式の場合は:VDATA?
クエリを使用します。




USBサンプルプログラム2 Visual Basic 6

USBサンプルプログラム2 Visual Basic 2005 Express Edition



USBサンプルプログラム3

このプログラムは、本器に接続して各CHの値を取り込みEXCELに貼り付けます。
データ取得間隔は1秒より遅い間隔で設定できます。
EXCELがインストールされている必要があります。




USBサンプルプログラム3 Visual Basic 6

USBサンプルプログラム3 Visual Basic 2005 Express Edition