■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#8227-0RS232Cのデータ送信方法SHUU2000-03-07(火) 00:21
     #8236-0RE#8227:RS232Cのデータ送信方法だち公2000-03-07(火) 08:08
     #8251-0RE#8227:RS232Cのデータ送信方法匿名82512000-03-07(火) 11:44
     #8322-0RE#8251:RS232Cのデータ送信方法SHUU2000-03-08(水) 00:07
     #8325-0RE#8322:RS232Cのデータ送信方法だち公2000-03-08(水) 01:40
     #8368-0RE#8322:RS232Cのデータ送信方法匿名83682000-03-09(木) 00:37
#8227-0
RS232Cのデータ送信方法
最近VBをはじめたばかりの者です。
RS232Cでプリンタにデータを送信して印刷させたいのですが、プリンタがうまく動作しません。
これまでの方法は、WINDOWSドライバを介さずに、バイナリデータのコマンドをMSDOSプロンプトで
直接プリンタに送信していました。
これをVBで行ないたいのですが、MSCOMMコントロールをフォームに貼り付け、
以下のコードを書きました。

Private Sub Form_Load()
 MSComm1.CommPort = 1
 MSComm1.Settings = "19200,N,8,1"
 MSComm1.PortOpen = True
  'HHHを印刷する。
 MSComm1.Output =  Chr$(&H48) & Chr$(&H48) & Chr$(&H48) & Chr$(&HA)
 MSComm1.PortOpen = False
End Sub

これで、印刷結果はHHHと印刷されるはずですが、プリンタに反応がありません。
(MSDOSではうまくいきます)
お分かりの方がいらっしゃいましたらおしえてください。
#8236-0
RE#8227:RS232Cのデータ送信方法
> 最近VBをはじめたばかりの者です。
> RS232Cでプリンタにデータを送信して印刷させたいのですが、プリンタがうまく動作しません。
> これまでの方法は、WINDOWSドライバを介さずに、バイナリデータのコマンドをMSDOSプロンプトで
> 直接プリンタに送信していました。
> これをVBで行ないたいのですが、MSCOMMコントロールをフォームに貼り付け、
> 以下のコードを書きました。
> 
> Private Sub Form_Load()
>  MSComm1.CommPort = 1
>  MSComm1.Settings = "19200,N,8,1"
>  MSComm1.PortOpen = True
>   'HHHを印刷する。
>  MSComm1.Output =  Chr$(&H48) & Chr$(&H48) & Chr$(&H48) & Chr$(&HA)
>  MSComm1.PortOpen = False
> End Sub
> 
> これで、印刷結果はHHHと印刷されるはずですが、プリンタに反応がありません。
> (MSDOSではうまくいきます)
> お分かりの方がいらっしゃいましたらおしえてください。

そのプリンタのWin上での仕様をまず調べましょう!!
例えばボーレート等が9600のノンパリ、Evenになったりする場合も考えられます。
#8251-0
RE#8227:RS232Cのデータ送信方法
> これで、印刷結果はHHHと印刷されるはずですが、プリンタに反応がありません。
> (MSDOSではうまくいきます)
> お分かりの方がいらっしゃいましたらおしえてください。
とりあえずボーレートやパリティなどの設定は当然出来ていますよね?
そうすると次に疑うべきはハンドシェイクの設定です。
これ、案外重要ですよ。
#8322-0
RE#8251:RS232Cのデータ送信方法
> > これで、印刷結果はHHHと印刷されるはずですが、プリンタに反応がありません。
> > (MSDOSではうまくいきます)
> > お分かりの方がいらっしゃいましたらおしえてください。
> とりあえずボーレートやパリティなどの設定は当然出来ていますよね?
> そうすると次に疑うべきはハンドシェイクの設定です。
> これ、案外重要ですよ。

さっそくお答えをありがとうございます。
しかしうまくいきません。
ボーレートやパリティの設定はプリンタに合わせて行なっています。(19200,n,8,1)
ハンドシェイクはデータの送信のみのため、設定していませんでしたが、
一応設定して、ためしましたがプリンタは動作しませんでした。
MSDOSでは”4848480A”というバイナリデータ(HHH文字印刷+改行)を
プリンタに送信して動作できています。
同じ環境のパソコン、ポート、ケーブル、プリンタを使用していますが、
MSDOS+バイナリデータを→VBで行なうとうまくいきません。
なぜでしょう?
#8325-0
RE#8322:RS232Cのデータ送信方法
> > > これで、印刷結果はHHHと印刷されるはずですが、プリンタに反応がありません。
> > > (MSDOSではうまくいきます)
> > > お分かりの方がいらっしゃいましたらおしえてください。
> > とりあえずボーレートやパリティなどの設定は当然出来ていますよね?
> > そうすると次に疑うべきはハンドシェイクの設定です。
> > これ、案外重要ですよ。
> 
> さっそくお答えをありがとうございます。
> しかしうまくいきません。
> ボーレートやパリティの設定はプリンタに合わせて行なっています。(19200,n,8,1)
> ハンドシェイクはデータの送信のみのため、設定していませんでしたが、
> 一応設定して、ためしましたがプリンタは動作しませんでした。
> MSDOSでは”4848480A”というバイナリデータ(HHH文字印刷+改行)を
> プリンタに送信して動作できています。
> 同じ環境のパソコン、ポート、ケーブル、プリンタを使用していますが、
> MSDOS+バイナリデータを→VBで行なうとうまくいきません。
> なぜでしょう?

とりあえず、MSCommはあまり性能がいいとは言えませんので文化オリエント社のPDQComm
をオススメします!!実際私はコレでRS−232Cからサーマルプリンタで
ビシバシ印刷してます!!
#8368-0
RE#8322:RS232Cのデータ送信方法
あらら、ハンドシェイクじゃなかったですか。
見当違いで申し訳ない。

こういう場合、とりあえず基本的な事柄から考えましょう。

まず、Windows上で文字として表現できない文字コードがあります。
MSDNヘルプのASCII文字セットに載ってますが、ここで・として
表現されているコードは文字列としては扱えません。
これらのコードを文字列変数に格納してMSCommに送ろうとすると、数値の
0に化けてしまい、正常に送信することはできません。
例えば、Chr$(127)なんてのは0として送信されます。
まあ、ここら辺はラインモニタがあれば判りやすいのですが・・。

とりあえず、基本的に32ビットVB環境でのシリアル通信はバイト型配列
を使うことが推奨されていますからね。

普通にシリアル通信を行う場合でも通信先の機器仕様によってはBCCなど
を付加しないといけませんが、このBCCの値なども何気に文字で表せない
コード値になってしまう場合が結構あります。

また、機器によってはstrconv関数で送信文字列を変換してやらないと受け
付けない場合もあります。

そこら辺をふまえて、もう一度見直してみてください。
私に出来るアドバイスはこれくらいです。
このページと関連する記事:
#24450-0ハンドシェイクについて2000-06-28(水) 15:20
#782-0MSComm(PDQComm)での通信ポート設定について・・・・1999-08-12(木) 11:20
#45497-0MSComm.output2001-07-31(火) 13:53
#1807-1MSCommでのバイナリデータ送信方法2002-07-17(水) 06:57
#662-0制御系プログラムわからな〜い2001-10-29(月) 16:23
#662-3制御系プログラムわからな〜い2001-10-29(月) 07:23
#9-5VB6でRS232Cを使って制御のプログラム2001-10-15(月) 05:05
#16222-0RE#16220:プリンタ出力について2001-05-22(火) 12:05
#1518-2シリアル通信でのjpegファイルの送受信の仕方が分かりません2002-07-09(火) 14:35
#43616-0古〜いプリンタで印刷するには?2001-05-31(木) 20:10
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)