パソコンレジを作ってみよう!


第2回 カスタマディスプレイを使ってみよう

今回使用する機器

VFD2002E

大きく見やすい蛍光表示管(VFD) 20桁2行 英数カナ表示。
CDF22VRSやDM-D110などの互換コマンドが使用できます。

1)インターフェースの種類

パソコンとカスタマディスプレイを接続インターフェースには通常2種類あります。

・RS232Cポートを利用したシリアルインターフェース
・USBポートを利用したシリアルインターフェース(USB<->RS232C変換)

上記にあげた方法は物理的にパソコンとカスタマディスプレイを接続する手段になります。実質的にはどちらのインターフェースを利用してもシリアル通信によるコマンド転送を行うことになります。

今回は、現在主流になりつつあるUSBポートを搭載したカスタマディスプレイの制御を行います。USBポートはUSBハブを利用することにより多くの機器を接続することが可能になりますがそれに伴って注意点もいくつか存在します。詳細は「USB接続機器についての情報」をご覧ください。

2)パソコンとカスタマディスプレイの接続

さて、カスタマディスプレイをパソコンに接続してみます。今回使用するVFD2002E/USB本体の背面を見てもUSBポートは存在しません。これはVFD2002E/USB自身がVFD2002ERS232-USB I/Fコンバータ USB232-00のセット製品であるからです。

まず、カスタマディスプレイの電源を投入していない状態で以下の手順を行います。このときパソコンの電源を投入しておいても問題はありません。

  1. カスタマディスプレイの背面にあるRS232Cコネクタ(Dsub 9Pin メス)に付属の接続ケーブル(9Pin オス-メスストレート結線)を差し込みます。付属の接続ケーブル以外を利用する場合には「通信ケーブル情報」を参照の上ご利用ください。
  2. 接続ケーブルの反対側をUSB232-00のRS232Cコネクタ(D-SUB 9Pinオス)に接続します。
  3. USB232-00付属のUSBケーブルをパソコン接続ポートに接続します。このケーブルには両端に異なった形状のコネクタがついていますので、形状を確認した上で接続してください。
  4. USB232-00付属のUSBケーブルをパソコンのUSBポートに差し込みます。
  5. USBケーブルをパソコンに接続するとドライバーのインストールが始まります。メッセージにしたがって、添付フロッピーからデバイスドライバをインストールしてください。インストール終了後、USB232-00は通常のCOMポートとして使用できます。
  6. 接続が完了するとUSB232-00のLINKランプ(LED)が点灯します。正しくインストールされていない場合、LINK LEDは点灯しません。
  7. パソコンの設定が完了したら、キャッシュドロワにACアダプタを接続します。まれに電源投入直後にトレイが排出されることがありますが、誤動作ではありませんので速やかにトレイを戻してください。
  8. 添付のユーティリティソフトウェアをインストールします。インストールした段階ではCOMポートの設定が完了していませんので、次の手順で設定を行います。
    ・ デバイスマネージャを開きます。
    ・ ポート(COMとLPT)を展開します。

    ・ポートの確認が取れたら、ここを参照してINIファイルの設定を変更します。
  9. ユーティリティソフトウェアでカスタマディスプレイに文字が表示されたら設置完了です。
    ユーティリティソフトのインストール及び設定方法などについてはVFD2002E取扱説明書(PDF:458KB)の15ページから19ページをご覧ください。

※USBコネクタにはシリーズA、シリーズB及びシリーズ・ミニBが存在します。通常は以下のような利用目的で使用します。

USBコネクタ(シリーズA) PC側(ホストアダプタ側)のUSBコネクタ(アップストリーム)
USBコネクタ(シリーズB) 周辺機器側のUSBコネクタ(ダウンストリーム)
USBコネクタ(シリーズ・ミニB) 携帯機器向けに追加された小型のUSBコネクタ(ダウンストリーム)。「ミニB」と称するコネクタは何種類かあるが、USBの規格書にあるミニBコネクタはこれ1つだけだ

3)制御既定

VFD2002EはUSBインターフェース(USB232-00)を通してシリアル通信を行うことで画面に文字を表示できます。以下が通信条件です。

  • 通信速度    9600BPS、8Bit、NonParity、1StopBit
  • コマンド選択    ESC/pos DM-D110
  • 国際文字設定    文字セット:日本    コードテーブル:カタカナ

4)プログラムの作成

今回は以下の環境を使ってプログラムを作成していきます。

  1. オペレーションシステム    Windows2000 Professional SP3&Hot fix適用
  2. 開発言語                      Microsoft Visual Basic Version6.0 SP5適用
  3. コマンドモード        ESC/pos DM-D110を使用
    (コマンドセットに関してはVFD2002E取扱説明書(PDF:458KB)の23ページから24ページをご覧ください。)

基本的な文字表示を行う場合、ANK文字をカスタマディスプレイに送信するとディスプレイに文字列が表示されます。コントロールコードを伴った文字列を送信するとコマンド制御機能が働きます。
一番簡単な表示方法としては、

  1. カーソルを上行左端にセットするコマンドを送信する。(0Bh)
  2. 40文字(20桁2行)を送信する

これで全画面のデータを書き換えることができます。
※ VB5.0以上で文字列を扱う場合、内部的にUNICODEが基本になりますので、表示文字の生成には注意が必要です。この場合、BYTE型を用いることで文字コードに左右されること無く表示文字を生成することが可能になります。

注意:Microsoft Visual Studio .NET 若しくは .NET Frameworkがインストールされている環境では正常な開発及び実行ができない場合があります。Microsoft Visual Studio .NETを使用される場合は、今回のサンプルをVisual Basic .NETに置き換えてください。一部言語仕様が異なりますので注意して置き換えてください。

Windowsでパソコンのシリアル通信ポートを使ったプログラムを作成する際、汎用に使えるカスタムコントロールが用意されています。それがコミュニケーションコントロール(MSComm)です。このOCXを使えばVisual BasicでフォームにMSCommコントロールを貼り付けるだけで簡単にシリアルポートへの送受信プログラムを作ることができます。
それではVisualBasic6.0を起動してみましょう。
起動後、ツールボックスに下のアイコンが存在する人はすでにMSCommを使用したことがある人です。
このアイコンが存在しない場合は次の手順で追加してください。

  1. .ツールボックス上で右クリックして表示されるサブダイアログで「コンポーネント」を選択すると、追加可能なコンポーネントの一覧表が下図のような「コンポーネントダイアログ」で表示されます。
  2. この中にある、「Microsoft Comm Control 6.0」にチェックを追加してOKとすれば、下図のようにツールボックス内に電話の記号のMSCommコンポーネントが追加されます。

【フォームを作成する】

新しいプロジェクト作成で起動すれば自動的にフォーム編集Windowが開きます。開かない場合にはプロジェクトエクスプローラ内のフォームをダブルクリックして開きます。その後、ツールボックスのMSCommのアイコンをクリックしてフォーム上に貼り付けます。このコンポーネントは実行時に表示されませんので適当な位置に貼り付けてください。



 

 

 

ここで話の流れをスムーズにするために貼り付けたMSCommコンポーネントの名前を変更しておきます。
貼り付けた直後はオブジェクト名がMSComm1になってますので、これをvfd_commに変更しておきます。
今回はMSCommコンポーネントを使用して通信を行いますが、ここで注意点があります。VB6は文字コードとしてUNICODEを採用しているためにASCIIコードも2バイト文字として扱われています。通常であればBYTE配列に落としてからデータを整理して送信するところですがMSCommはこの操作を包括しているようです。よって”アイウエオ”という半角カナ文字もしっかり1バイト文字として送信されています。APIなどを利用してプログラムを書く場合にはこの点に注意してください。

次に、ボタンコントロールを貼り付けます。すでにカスタマディスプレイが接続されているなら下記のプログラムを記述することで文字が表示されます。

Private Sub Command1_Click  ()
Dim CountOutput as Integer
	Command1.Enabled = False
	vfd_comm.CommPort = 1	' カスタマディスプレイの接続されてるポート番号
	vfd_comm.Settings = "9600,n,8,1"
	vfd_comm.Handshaking = comNone
	vfd_comm.PortOpen = True
	vfd_comm.Output = "123456789"
	Do
		DoEvents	' 送信確認中に他のイベントを処理できるようにする
	Loop Until vfd_comm.OutBufferCount = 0
	vfd_comm.PortOpen = false
	Command1.Enabled = true
End Sub

この状態では汎用性が無いので、以下の汎用的に使えるコードを掲載しておきます。

Public Function CommSet(channel, data As String)
Dim ary() As String
Dim ret
    ary = Split(data, ",")
    CommSet = CommSet_(channel, ary)
End Function

Private Function CommSet_(channel, ary() As String)
On Error GoTo CommSet_Err
Dim comm As MSComm
    Set comm = vfd_comm
    If channel = "box" Then Set comm = box_comm
    comm.CommPort = ary(0)
    comm.Settings = ary(1) & "," & ary(2) & "," & ary(3) & "," & ary(4)
    comm.Handshaking = comNone
    CommSet_ = True
CommSet_Exit:
    Exit Function
CommSet_Err:
    CommSet_ = False
    MsgBox "パラメータが不正です"
    Resume CommSet_Exit
End Function
Private Sub PutVFD(dt As String)
    vfd_comm.PortOpen = True
    vfd_comm.Output = dt
    Do
        DoEvents
    Loop Until vfd_comm.OutBufferCount = 0
    vfd_comm.PortOpen = False
End Sub
Private Sub Form_Load()
    CommSet "1,9600,n,8,1"
End Sub

Private Sub Command1_Click()
    Command1.Enabled = False
    PutVFD "123456789"
    Command1.Enabled = True
End Sub

今回作成したVisual Basicのプロジェクトファイルと実行モジュールを公開しています。
下記のリンクからダウンロードしてください。

サンプルプロジェクト

パソコンレジを作ってみよう! 第1回 キャッシュドロアーを制御してみよう  第2回 カスタマディスプレイを使ってみよう
第3回 レジキーボードってどうやって使うの? 第4回 レシートプリンタに印刷してみよう 第5回 バーコードスキャナを接続してみよう
第6回 レジソフトを作ってみよう(仕様作成編) 第7回 レジソフトを作ってみよう(データベース設計編) 第8回 レジソフトを作ってみよう(マスターメンテナンス編)
第9回 レジソフトを作ってみよう(レジ機能編) 第10回 タッチパネルに対応してみよう  

Last Update : 2011/09/09


戻る トップページへ ご注文方法について 更新情報 
 テクノベインズ株式会社 〒113-0034 東京都文京区湯島3丁目31-4 ツナシマ第1ビル2階 電話:03-3832-7460 (平日:09:00-17:30) FAX:03-3832-7430
Techno Veins Co.,Ltd. Tsunashima Daiichi Bldg 2F, 31-4, Yushima 3, Bunkyou, Tokyo, 1130034, JAPAN. Tel:+81 3-3832-7460 FAX:+81 3-3832-7430  sales@technoveins.co.jp (弊社地図)
©Copyright Techno Veins Co.,Ltd. 1987-2011. All rights Reserved.