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


第1回 キャッシュドロワを制御してみよう

今回使用する機器

DWS48MRS-2/USB

DWS48MRS-2/USBはパソコンのUSBインターフェースに接続して使用するキャッシュドロワです。
USBポートを経由してから信号を送ることで、トレイを開くことができます。

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

パソコンとキャッシュドロワを接続インターフェースには通常3種類あります。

・レジプリンタなどに搭載されているDKD(Drawer Kick Driver)インターフェース
・RS232Cポートを利用したシリアルインターフェース
・USBポートを利用したシリアルインターフェース(USB<->RS232C変換)

このような接続インターフェースがありますが、最終的にはキャッシュドロワの内部にあるソレノイドを駆動することによってトレイを開くことになります。

※ソレノイドとは、トレイのロックをはずす電磁石のことです。この電磁石の電流を流すとドロワ内部のフックが外れトレイがドロワ内から出てきます。

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

2)パソコンとキャッシュドロワの接続

さて、キャッシュドロワをパソコンに接続してみます。今回使用するDWS48MRS-2/USB本体の背面を見てもUSBポートは存在しません。これはDWS48MRS-2/USB自身がDWS48MRS-2RS232-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)を展開します。

    ・ポートの確認が取れたら、ここを参照して設定を行います。
  9. ユーティリティソフトウェアでキャッシュドロワからトレイを排出させることができたら設置完了です。

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

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

3)制御既定

DWS48MRS-2はUSBインターフェース(USB232-00)を通してシリアル通信を行うことでトレイを開くことができます。以下が通信条件です。

  • 通信速度    300BPS、8Bit、NonParity、1StopBit
  • 送信コマンド    00h、00h(2バイト分のマークフラグを送ります。)

制御プログラムを作成する場合の注意点がDWS48MRS-2取扱説明書の9ページと10ページに記載されています。必ずこの注意事項を読んだ上で作成してください。

4)プログラムの作成

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

  1. オペレーションシステム    Windows2000 Professional SP3&Hot fix適用
  2. 開発言語                      Microsoft Visual Basic Version6.0 SP5適用

注意: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になってますので、これをbox_commに変更しておきます。

次に、ボタンコントロールを貼り付けます。すでにキャッシュドロワが接続されているなら下記のプログラムを記述することでキャッシュドロワを開くことができます。

Private Sub Command1_Click  ()
Dim DataOutput(0) as Byte
Dim CountOutput as Integer
	Command1.Enabled = False
	box_comm.CommPort = 1	' キャッシュドロワの接続されてるポート番号
	box_comm.Settings = "300,n,8,1"
	box_comm.Handshaking = comNone
	box_comm.PortOpen = True
	DataOutput(0) = 0
	For CountOutput = 1 to 2
		box_comm.Output = DataOutput()
	Next
	Do
		DoEvents	' 送信確認中に他のイベントを処理できるようにする
	Loop Until box_comm.OutBufferCount = 0
	box_comm.PortOpen = false
	Command1.Enabled = true
End Sub

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

Private Function CommSet_(ary() As String)
On Error GoTo CommSet_Err
Dim comm As MSComm
    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
    Resume CommSet_Exit
End Function

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

Public Sub BoxOpen()
Dim OutputData(0) As Byte
Dim OutputCount As Integer

    box_comm.PortOpen = True
    OutputData(0) = 0
    For OutputCount = 1 To 2
        box_comm.Output = OutputData
    Next
    Do
        DoEvents
    Loop Until box_comm.OutBufferCount = 0
    box_comm.PortOpen = False
End Sub

Private Sub Form_Load()
    CommSet "1,300,n,8,1"
End Sub

Private Sub Command1_Click()
    Command1.Enabled = False
    BoxOpen
    Command1.Enabled = True
End Sub

尚、以下のメソッドは他のフォームからも呼び出すことが可能ですので、このフォームをプロジェクトに追加するだけで使用することができます。

  • CommSet    通信ポートの初期化を行います。順にポート番号、速度、パリティ、データ長、ストップビットと指定します。
  • BoxOpen    このコマンドでキャッシュドロワを開きます。

今回作成した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.