NonSoft

スクリプト通信テスト(RS232C/TCPIP/UDPIP)


 ダウンロード

スクリプト(VBS)を使用した簡単!! 通信テスト!! 対象プロトコルはRS232C、TCP/IP、UDP/IP!! (コマンドライン/バッチ可)

ダウンロード 
RS232CのVBSサンプル  TCP/IPのVBSサンプル  UDP/IPのVBSサンプル 

その他の通信ツールはこちらです。通信ツール(RS232C TCP/IP UDP/IP)
====================================================================================================
【タイトル     】スクリプト通信テスト(RS232C/TCPIP/UDPIP)
【Version      】3.0.0.8
【ファイル     】ScriptComTest.zip
【圧縮ファイルの中身】Rs232cTest.vbs (RS232C用のVBS通信テスト) VBSのサンプルソース
【圧縮ファイルの中身】TcpIpCTest.vbs (TCP/IP用のVBS通信テスト) VBSのサンプルソース(Client)
【圧縮ファイルの中身】TcpIpSTest.vbs (TCP/IP用のVBS通信テスト) VBSのサンプルソース(Server)
【圧縮ファイルの中身】UdpIpTest.vbs  (UDP/IP用のVBS通信テスト) VBSのサンプルソース
【圧縮ファイルの中身】NonComSck.ocx  (RS232C、TCP/IP、UDP/IP用のOCX)
【圧縮ファイルの中身】Rs232cTool.exe (RS232C用の評価ツール)
【圧縮ファイルの中身】TcpIpTool.exe  (TCP/IP用の評価ツール)
【圧縮ファイルの中身】UdpIpTool.exe  (UDP/IP用の評価ツール)
【圧縮ファイルの中身】ReadMe.txt
【必要ソフト   (1)】MSCOMM32.OCXが入っているVB6ランタイム(RS232Cの時)
【必要ソフト   (2)】MSWINSCK.OCXが入っているVB6ランタイム(TCP/IPまたはUDP/IPの時)
【必要ソフト   (3)】EXCEL2000、EXCEL2003およびEXCEL2010で動作確認
【動作確認     】Windows8/Windows7/XP/2000
【ソフト種別    】フリーソフト(寄付歓迎)
【作者/著作権者  】のん
【作者への連絡先  】http://nonsoft.la.coocan.jp/
====================================================================================================
1.はじめに
  本プログラムをダウンロード頂きまして誠にありがとうございます。
  本プログラムは、スクリプト(VBS)を使用して電文の送受信テストを行なう通信テストツールです。
  3つの通信プロトコル(RS232C、TCP/IP、UDP/IP)の通信テストが出来ます。
  VBS(VB SCRIPT/WSH)で記述していますのでサンプルソースとしてもお試し頂けます。
  <主な機能>
  1.ポート接続(オープン)
  2.ポート切断(クローズ)
  3.データ送信(文字列送信/バイナリ(HEX指定)送信)
  4.データ受信(文字列表示/バイナリ(HEX指定)表示)

  ※RS232Cの場合はDTR/RTSの制御およびDSR/CTSの確認を行う事が出来ます。
  ※スクリプト通信テスト(RS232C/TCPIP/UDPIP)を評価するためのツールも同梱しています。

  <関連ツール>
  EXCEL通信テスト(RS232C/TCPIP/UDPIP)       ※VBA(EXCELやACCESS)で通信プログラミング
  EXCEL(VBA)を使用した簡単!! 通信テスト!! 対象プロトコルはRS232C、TCP/IP、UDP/IP!!
  仮想シリアル(COMポート)ドライバ           ※仮想(ボード無! コネクタ無! ケーブル無!)
  2つの仮想COMポート(RS232Cシリアル)をクロスケーブルで接続したように通信するドライバ!!

2.インストール方法/アンインストール方法
  事前に管理者として次のコマンド実行してください (参照)"事前に実行してください.bat"
  regsvr32.exe "NONCOMSCK.OCX" (注意)"NONCOMSCK.OCX"をフルPATHで指定してください

  本プログラム一式を削除(アンインストール)する際は、
  管理者として次のコマンドを実行してください。
  regsvr32.exe /u "NONCOMSCK.OCX"

  (注意)64bit(x64)版のWINDOWSで標準のVB SCRIPTを実行するとCreateObjectでエラーが発生するため、
     32bit(x86)版のVB SCRIPT(C:\Windows\SysWow64\cscript.exe)を実行してください。

3.著作権・ライセンス
  本プログラムの全ての著作権は「のん」が所有しています。本プログラム一式を転載する場合は著作権所有
  者の許可が必要となります。(NonSoft の紹介リンクは問題ありませんので宜しくお願いします)また、著作
  権所有者が許可したサイトでのみダウンロードが可能となります。商用利用についての制限はありません。

  本プログラムはフリーライセンス(寄付歓迎)です。
  本プログラムを長期間使用される場合は、寄付やホームページ紹介等をしてください。
  寄付はこちらでお願いします。http://nonsoft.la.coocan.jp/kifu.html

4.免責事項
  本プログラムが原因による損害・問題に対し一切の責任を負えません。
  ご利用者の責任の範囲内でお使いください。

5.作者への問合せについて
  作者への問合せはメールのみとさせて頂きます。問合せ内容によっては回答出来ない場合もございますので
  予めご了承願います。また、作者不在時または問い合わせ数が多い場合など、回答に日数がかかる場合がご
  ざいますので予めご了承願います。

<RS232CのVBSサンプル>
'****************************************************************************
' 機能名    : スクリプト通信テスト(RS232C)
' 機能説明  : スクリプト(VBS)を使用したRS232Cの通信テストツール
' 著作権    : Copyright(C) 2010 のん All rights reserved
' URL    : http://nonsoft.la.coocan.jp/
'           : このソースを使用(流用/改変/転載/等全て)した成果物を不特定
'           : 多数に公開/配布する場合は、このソースを参考にした旨を記述
'           : してください。(例)WEBページやReadMeにURLのリンクを貼る等
' 動作環境  : MSCOMM32.OCXが入っているVB6ランタイムが必要です。
'           : 事前に"regsvr32 NONCOMSCK.OCX"を実行してください。
'****************************************************************************
' RS232C初期化
Set MSComm1 = CreateObject("NonComSck.MSComm")

' イベント開始
MSComm1.Start_EventForScript()

' RS232C設定
MSComm1.CommPort = 11
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1

' RS232Cポートオープン
MSComm1.PortOpen = True

' データ送信
' HexToByteArrayでHEX文字列をByte配列変換してデータ送信
MSComm1.Output = MSComm1.HexToByteArray("02313233343503")

WScript.Sleep(1000)

' データ送信
' StrToByteArrayで通常文字列をByte配列変換してデータ送信
MSComm1.Output = MSComm1.StrToByteArray(Chr(2) & "ABCDE" & Chr(3))

' OnCommのイベント番号定義
const comEvSend = 1
const comEvReceive = 2
const comEvCTS = 3
const comEvDSR = 4
const comEvCD = 5
const comEvRing = 6
const comEvEOF = 7

' データ受信
Do
    WScript.Sleep(1000)
    Evt = MSComm1.GetEventParameters()
    If Ubound(Evt) >= 0 Then
        If Evt(0) = "OnComm" Then
            ' Evt(8) : OnCommのイベント番号(MSComm1.CommEvent)
            Select Case Evt(8)
            Case comEvReceive
                ' Evt(9) : 受信データ(Byte配列)
                ' ByteArrayToStrで受信データを通常文字列に変換
                MsgBox MSComm1.ByteArrayToStr(Evt(9))
                ' ByteArrayToHexで受信データをHEX文字列に変換
                MsgBox MSComm1.ByteArrayToHex(Evt(9))
                ' 通信終了電文チェック
                If MSComm1.ByteArrayToStr(Evt(9)) = "END" Then
                    Exit Do
                End If
            Case comEvCTS
                MsgBox "CTS:" & MSComm1.CTSHolding
                MSComm1.RTSEnable = MSComm1.CTSHolding
            Case comEvDSR
                MsgBox "DSR:" & MSComm1.DSRHolding
                MSComm1.DTREnable = MSComm1.DSRHolding
            Case Else
            End Select
        End If
    End If
Loop

' RS232Cポートクローズ
MSComm1.PortOpen = False

' イベント終了
MSComm1.End_EventForScript()

MsgBox "終了"

<TCP/IP(クライアント)のVBSサンプル>
'****************************************************************************
' 機能名    : スクリプト通信テスト(TCP/IPクライアント)
' 機能説明  : スクリプト(VBS)を使用したTCP/IPの通信テストツール
' 著作権    : Copyright(C) 2010 のん All rights reserved
' URL    : http://nonsoft.la.coocan.jp/
'           : このソースを使用(流用/改変/転載/等全て)した成果物を不特定
'           : 多数に公開/配布する場合は、このソースを参考にした旨を記述
'           : してください。(例)WEBページやReadMeにURLのリンクを貼る等
' 動作環境  : MSWINSCK.OCXが入っているVB6ランタイムが必要です。
'           : 事前に"regsvr32 NONCOMSCK.OCX"を実行してください。
'****************************************************************************
' TCP/IP初期化
Set Winsock1 = CreateObject("NonComSck.Winsock")

' イベント開始
Winsock1.Start_EventForScript()

' TCP/IP接続
Winsock1.Connect "127.0.0.1", 8888

' TCP/IP接続待ち
Do While Winsock1.State = 6
    WScript.Sleep(1000)
Loop

' データ送信
' HexToByteArrayでHEX文字列をByte配列変換してデータ送信
Winsock1.SendData Winsock1.HexToByteArray("02313233343503")

WScript.Sleep(1000)

' データ送信
' StrToByteArrayで通常文字列をByte配列変換してデータ送信
Winsock1.SendData Winsock1.StrToByteArray(Chr(2) & "ABCDE" & Chr(3))

' データ受信
Do
    WScript.Sleep(1000)
    Evt = Winsock1.GetEventParameters()
    If Ubound(Evt) >= 0 Then
        Select Case Evt(0)
        Case "Close2"
            MsgBox Evt(0)
            Exit Do
        Case "Connect"
            'MsgBox Evt(0)
        Case "ConnectionRequest"
            'MsgBox Evt(0) & ":" & Evt(1)
        Case "DataArrival"
            ' Evt(9) : 受信データ(Byte配列)
            ' ByteArrayToStrで受信データを通常文字列に変換
            MsgBox Evt(0) & ":" & Evt(1) & ":" & Winsock1.ByteArrayToStr(Evt(9))
            ' ByteArrayToHexで受信データをHEX文字列に変換
            MsgBox Evt(0) & ":" & Evt(1) & ":" & Winsock1.ByteArrayToHex(Evt(9))
            ' 通信終了電文チェック
            If Winsock1.ByteArrayToStr(Evt(9)) = "END" Then
                Exit Do
            End If
        Case "Error"
            'MsgBox Evt(0) & ":" & Evt(1) & ":" & Evt(2) & ":" & Evt(3) & ":" & _
            '       Evt(4) & ":" & Evt(5) & ":" & Evt(6) & ":" & Evt(7)
        Case "SendComplete"
            'MsgBox Evt(0)
        Case "SendProgress"
            'MsgBox Evt(0) & ":" & Evt(1) & ":" & Evt(2)
        Case Else
        End Select
    End If
Loop

' TCP/IP切断
Winsock1.Close2

' イベント終了
Winsock1.End_EventForScript()

MsgBox "終了"

<TCP/IP(サーバ)のVBSサンプル>
'****************************************************************************
' 機能名    : スクリプト通信テスト(TCP/IPサーバ)
' 機能説明  : スクリプト(VBS)を使用したTCP/IPの通信テストツール
' 著作権    : Copyright(C) 2010 のん All rights reserved
' URL    : http://nonsoft.la.coocan.jp/
'           : このソースを使用(流用/改変/転載/等全て)した成果物を不特定
'           : 多数に公開/配布する場合は、このソースを参考にした旨を記述
'           : してください。(例)WEBページやReadMeにURLのリンクを貼る等
' 動作環境  : MSWINSCK.OCXが入っているVB6ランタイムが必要です。
'           : 事前に"regsvr32 NONCOMSCK.OCX"を実行してください。
'****************************************************************************
' TCP/IP初期化
Set Winsock1 = CreateObject("NonComSck.Winsock")

' イベント開始
Winsock1.Start_EventForScript()

' クライアントからの接続待ち
Winsock1.LocalPort = 8888
Winsock1.Listen

' 接続待ち、データ送信、データ受信
Do
    WScript.Sleep(1000)
    Evt = Winsock1.GetEventParameters()
    If Ubound(Evt) >= 0 Then
        Select Case Evt(0)
        Case "Close2"
            MsgBox Evt(0)
            ' クライアントからの接続待ち(再)
            Winsock1.Close2
            Winsock1.LocalPort = 8888
            Winsock1.Listen
        Case "Connect"
            'MsgBox Evt(0)
        Case "ConnectionRequest"
            ' クライアントからの接続を自動的に許可(Accept)する仕様
            MsgBox Evt(0) & ":" & Evt(1)

            ' データ送信
            ' HexToByteArrayでHEX文字列をByte配列変換してデータ送信
            Winsock1.SendData Winsock1.HexToByteArray("02313233343503")

            WScript.Sleep(1000)

            ' データ送信
            ' StrToByteArrayで通常文字列をByte配列変換してデータ送信
            Winsock1.SendData Winsock1.StrToByteArray(Chr(2) & "ABCDE" & Chr(3))
        Case "DataArrival"
            ' Evt(9) : 受信データ(Byte配列)
            ' ByteArrayToStrで受信データを通常文字列に変換
            MsgBox Evt(0) & ":" & Evt(1) & ":" & Winsock1.ByteArrayToStr(Evt(9))
            ' ByteArrayToHexで受信データをHEX文字列に変換
            MsgBox Evt(0) & ":" & Evt(1) & ":" & Winsock1.ByteArrayToHex(Evt(9))
            ' レスポンス送信
            Winsock1.SendData chr(2) & "RESPONSE" & chr(3)
            ' 通信終了電文チェック
            If Winsock1.ByteArrayToStr(Evt(9)) = "END" Then
                Exit Do
            End If
            Case "Error"
            'MsgBox Evt(0) & ":" & Evt(1) & ":" & Evt(2) & ":" & Evt(3) & ":" & _
            '       Evt(4) & ":" & Evt(5) & ":" & Evt(6) & ":" & Evt(7)
        Case "SendComplete"
            'MsgBox Evt(0)
        Case "SendProgress"
            'MsgBox Evt(0) & ":" & Evt(1) & ":" & Evt(2)
        Case Else
        End Select
    End If
Loop

' TCP/IP切断
Winsock1.Close2

' イベント終了
Winsock1.End_EventForScript()

MsgBox "終了"

<UDP/IPのVBSサンプル>
'****************************************************************************
' 機能名    : スクリプト通信テスト(UDP/IP)
' 機能説明  : スクリプト(VBS)を使用したUDP/IPの通信テストツール
' 著作権    : Copyright(C) 2010 のん All rights reserved
' URL    : http://nonsoft.la.coocan.jp/
'           : このソースを使用(流用/改変/転載/等全て)した成果物を不特定
'           : 多数に公開/配布する場合は、このソースを参考にした旨を記述
'           : してください。(例)WEBページやReadMeにURLのリンクを貼る等
' 動作環境  : MSWINSCK.OCXが入っているVB6ランタイムが必要です。
'           : 事前に"regsvr32 NONCOMSCK.OCX"を実行してください。
'****************************************************************************
' UDP/IP初期化
Set Winsock1 = CreateObject("NonComSck.Winsock")

' イベント開始
Winsock1.Start_EventForScript()

' UDP/IP設定
Winsock1.Protocol = 1
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 8888
Winsock1.Bind 7777

WScript.Sleep(1000)

' データ送信
' HexToByteArrayでHEX文字列をByte配列変換してデータ送信
Winsock1.SendData Winsock1.HexToByteArray("02313233343503")

WScript.Sleep(1000)

' データ送信
' StrToByteArrayで通常文字列をByte配列変換してデータ送信
Winsock1.SendData Winsock1.StrToByteArray(Chr(2) & "ABCDE" & Chr(3))

' データ受信
Do
    WScript.Sleep(1000)
    Evt = Winsock1.GetEventParameters()
    If Ubound(Evt) >= 0 Then
        Select Case Evt(0)
        Case "Close2"
            'MsgBox Evt(0)
        Case "Connect"
            'MsgBox Evt(0)
        Case "ConnectionRequest"
            'MsgBox Evt(0) & ":" & Evt(1)
        Case "DataArrival"
            ' Evt(9) : 受信データ(Byte配列)
            ' ByteArrayToStrで受信データを通常文字列に変換
            MsgBox Evt(0) & ":" & Evt(1) & ":" & Winsock1.ByteArrayToStr(Evt(9))
            ' ByteArrayToHexで受信データをHEX文字列に変換
            MsgBox Evt(0) & ":" & Evt(1) & ":" & Winsock1.ByteArrayToHex(Evt(9))
            ' 通信終了電文チェック
            If Winsock1.ByteArrayToStr(Evt(9)) = "END" Then
                Exit Do
            End If
        Case "Error"
            'MsgBox Evt(0) & ":" & Evt(1) & ":" & Evt(2) & ":" & Evt(3) & ":" & _
            '       Evt(4) & ":" & Evt(5) & ":" & Evt(6) & ":" & Evt(7)
        Case "SendComplete"
            'MsgBox Evt(0)
        Case "SendProgress"
            'MsgBox Evt(0) & ":" & Evt(1) & ":" & Evt(2)
        Case Else
        End Select
    End If
Loop

' UDP/IP切断
Winsock1.Close2

' イベント終了
Winsock1.End_EventForScript()

MsgBox "終了"