• 締切済み

MELSEC-QシーケンサをVBAで通信したい!

三菱のシーケンサMELSEC-Qシリーズのシーケンサ「QJ71C24N」にエクセルVBAで 通信したいと考えています。なかなかうまくいかず、困り果てています・・・。 下記、進めてきた経緯と組んだプログラムを書きます。 どこがおかしいか、どなたか教えてください・・・ ■ゴール シーケンサ内部のM300という変数に格納されている値を、VBAで作成した テキストボックスに表示させたい。 1.使用するエクセルのバージョンは2003です。 MSCOMMが入ってなかったため、「vb6sp6rt4.exe」というランタイムを用いて MSCOMMはインストールできました。 2.以下プログラム Dim R As String Private Sub CommandButton1_Click() Sheets("Sheet1").Select MSComm1.DTREnable = True MSComm1.RTSEnable = True MSComm1.inputLen = 0 'Input プロパティ使用時に、バッファ全体を読み取る。 MSComm1.commport = 1 'これは必要かと考え、テキストにはないが追加。 MSComm1.Settings = "9600,N,8,1" MSComm1.portopen = True MSComm1.inbuffercount = 0 ' 0文字受信するまで待機 MSComm1.output = Chr$(H5) + "F90000FF0004010000D*0010200050" + Chr$(H31) + Chr$(H43) End Sub +でいいのでしょうか?&というのも見ましたが・・・。 一応下記の通りだと取扱説明書をみながら、進めました。 'chr$(H5):制御コードENQuiry(問合せ):ヘッダ 'F900:識別番号+フレーム+局番号 '00FF:ネットワーク番号+PC番号 '00:自局番号 '0401:コマンド(一括読み出し) '0000:サブコマンド(モニタ条件指定無し、デバイスメモリ拡張指定無し) 'D*:デバイスコード '001020:先頭デバイス '50:デバイス点数 ' Chr$(H31) + Chr$(H43):サムチェックコード ↓ここからが、テキストボックスへの表示になりますが・・・。これもうまくいかず。 Private Sub CommandButton2_Click() R = MSComm1.input text1.Text = R text2.Text = Mid$(R, 6, 4) End Sub そして、ポートオープン。これは、エラーが出ず、うまくいったと考えています。 Private Sub Form_Load() Sheets("Sheet1").Select MSComm1.DTREnable = True MSComm1.RTSEnable = True MSComm1.inputLen = 0 'Input プロパティ使用時に、バッファ全体を読み取る。 MSComm1.commport = 1 'これは必要かと考え、テキストにはないが追加。 MSComm1.Settings = "9600,N,8,1" MSComm1.portopen = True End Sub そして、ポートクローズ。こちらも、エラーが出ず、うまくいったと考えています。 Private Sub CommandButton3_Click() MSComm1.portopen = False End Sub 最大の問題は、しっかりとコードが送信できているのかというところです。 解らないところも多々あるため不明な点も多いですが、なにとぞ、教えてください。

みんなの回答

  • nsytyu50
  • ベストアンサー率100% (1/1)
回答No.1

MSCOMM は使ったことがないので、外していたらごめんなさい。 使用ポートとポートの設定はあっていますか? > MSComm1.commport = 1 'これは必要かと考え、テキストにはないが追加。 > MSComm1.Settings = "9600,N,8,1" デバイスマネージャから確認できます。 http://121ware.com/qasearch/1007/app/servlet/qadoc?QID=002572 ポートからの入出力は、ラインモニターがあればはっきりわかります。 みえちゃん http://miechan.jp/hm2f.htm ソフトウェア製品は使ったことがありませんが、いろいろあるようです。 簡易ソフトウェアラインモニター http://www.vector.co.jp/soft/win95/prog/se210167.html 通信関係のツールいろいろ http://www.vector.co.jp/vpack/filearea/win/hardware/comm/index.html 探していたら、こんなソフトもありました。 VB,VBAからシリアルポート制御プログラムを作成するためモジュール http://www.vector.co.jp/soft/win95/hardware/se314506.html 以上、ご参考になれば。

joe19790922
質問者

お礼

ありがとうございました!やってみます(^^)

関連するQ&A