• ベストアンサー

VBでRS232Cの制御について。

promeの回答

  • prome
  • ベストアンサー率32% (64/196)
回答No.1

私も9766さんと同じようなバイナリデータの通信プログラムをVB で作りました。 9766さんの場合、どの部分がどのようにうまく通信できないでしょうか? それを教えていただければ何かお役に立てるかもしれません。 基本的なことですが、InputModeプロパティは大丈夫でしょうね? ComInputModeBinary(=1)にしないとダメですから。

9766
質問者

補足

どうもありがとうございます。 MSComm1.CommPort=1 MSComm1.Settings="9600,n,8,1" MSComm1.PortOpen=True MSComm1.InputMode=comInputModeBinary 送信してデータが送られているようです。 (RS232C→RS485変換にて計測機器に送信。その際LEDが瞬間的に点灯します) データが間違っていても何らかの信号が帰ってくるはずなんですが・・・。 メールを出しても返事のない人みたい。(おこられてしまうかな) 接続は間違いありません。 ヒントをおしえてください。

関連するQ&A

  • VB2005によるRS232C制御

    VB2005でZX-800L(TAKASAGO)を動かしたいのですがポートオープンできません。(オープンできるとREMOTOが点灯するはずなんですが…) 現在MSCommまたは確認の意味でNSPcomを用いています。(シリアルポートもあるんですができれば前者でやりたい) 機器の設定は何度も確認して間違いはないと思われます。(windowsXP使用)プログラムは以下です。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '<RS232C constant> STX = "02" EOT = "04" ENQ = "05" '伝送キャラクタ設定 ACK = "06" NAK = "15" ETX = "03" RTN = "0A" Comport = 1 OP = "9600,n,8,1" 'baud rate,stop bit,data bit,parity ADD = "01" 'RS232Cアドレス BC = "\" & EOT & ADD 'EOT+ADD Call ATH(BC) 'アスキー変換サブルーチンです。 EOTADD = BCH または (MSComm.CommPort = 1 'RS-232Cポート番号 MSComm.PortOpen = True MSComm.Settings = "9600,n,8,1" MSComm.RThreshold = 1 MSComm.SThreshold = 1 MSComm.RTSEnable = False MSComm.InputMode = MSCommLib.InputModeConstants.comInputModeBinary) End Sub この後、クリックイベント ret = Me.NspCom.ComOpen(Comport, OP) If ret = -1 Then MsgBox("miss") End If または (MSComm.PortOpen = true) でオープンさせたいのですが… 機器のHPにもサンプルプログラムもなく困っています。助言&ご指摘お願いします。

  • シリアル通信:フロー制御

    シリアル通信:フロー制御 シリアル通信のフロー制御について教えて下さい。 とある解説ページにて Xon/Xoff はバイナリデータの送受信には 使用できない。 と書いてあったのですが、これは伝送フォーマット[A] は NGになり、 [B] で通信しなさいという意味になるのでしょうか? それとも[C]の場合がNGになるということでしょうか? <伝送フォーマット> [A] STX | テキスト | ETX | CR | LF [B] テキスト| CR | LF [C] STX | バイナリ | ETX | CR | LF よろしくお願いします。

  • TCP/IP通信の送信データについて

    TCP/IP通信の開発をしています。 開発はVS 2005 VB.net です。 送信データは下記の通りとなっていますが、BCCの算出方法が分かりません。 送信データ:[STX TEXT ETX BCCH BCCL CR] 制御文字は下記の通りです。 STX 02H(hex) テキストの開始 ETX 03H(hex) テキストの終了 BCC 水平パリティとして誤り検出に使用する CR 0DH(hex) キャリッジリターン ※1)BCCは、STXの後からETXの前までバイト単位でXORを行い、結果を上位と下位の4ビットに分け、それぞれASCIIに変換して上位下位の順で転送する。 ※2)BCC計算範囲はTEXT部です。 ※1)の部分を同コーディングすればよいか分かりません。 ご教授いただければと思います。

  • RS-422Aの通信

    三菱電機のQJ71C24N-R4でチラーとの通信をしたのですが 通信できないで困っています、チラーの通信仕様は、 スタートビット 1、データビット 8 パリテイー なし  ストップビット 1 誤り制御 水平パリテイー です、送信は EOT アドレス 職別子  ENQ    受信は STX 職別子 データ ETX BCC です、三菱電機のQJ71C24N-R4は垂直パリティー ですので、通常のOUTPUTで送信しても、。相手から 何もかえってきません、どうしたらいいのか大変こまっています 通信プロトコルは。無手順でしています 経験のある方、ご教授お願いします

  • TeraTermのマクロで制御文字のやり取り

    TeraTermマクロの初心者です。 マクロで機器と通信しようとしたのですが上手く行きません。 機器はデータの先頭に[STX]、終端に[ETX]が付く、次のような文字列を 送ってきます。  [STX] データ文字列 [ETX] これに対して、TeraTerm側からは[ACK]の文字を送らなければなりません。 そこで次のようなマクロを作ってみましたが、駄目でした。。  1: while 1 ;無限ループ  2: wait #3 ;ETXを待つ  3: send 6 ;ACKを送る  4: endwhile 2行目の後に、pause文を入れたりして調べたところ、どうも2行目が実行 されていないようです。 分かる方がいましたら、教えてください。

  • RS232C通信ポート(COM1)が開かない

    Windows2000をシステムとする、旧型 IBM Think Padを使って通信ポート(9ピン)に、RS232C クロスケーブルで 富士電機プロコン(シーケンサー)と接続し、ONLINEにしたいのですが、<通信ポートをオープンできません>というメッセージが表示され、接続されません。 それで、Windowsのデバイスマネイジャーで、パソコン側の通信ポート(COM1)のプロバティをみると、<このデバイスは正常に作動しています。>とあります。 富士電機のサポートセンターに状況を問い合わせた所、パソコン本体側にエラーと思われるとの回答でした。 復旧の仕方がわかりません。 どなたさまかご教示くだされたく、お願い申しあげます。 使用状態 パソコンの使用状況、ウィルスチェッカー:ESET Smart Security 4 インストール。インターネットは、ドコモFomaの データ通信をUSBに接続してアクセス。 RS232C通信ポートは、富士プロコンのみで使用しています。 その他設定  1.アプリケーションソフトの<通信ポート設定>     PCとのポート(P): COM 1    ポートの設定(M): ビット/秒(B) 19200   データビット(D): 8     パリティ(P): なし               ストップビット(S): 1    フロー制御(F): なし    2.ローダアダプタのディップSW設定 ⇒ 1,2,3,4,5,6 OFF 7,8 ON 即ち ☆パソコンローダモード     ☆データビット: 8   ☆パリティビット有無: 無           ☆パリティビット奇偶: 奇数  ☆ボーレート: 19200    

  • rs232cでのRfidリーダライタの制御方法

    研究用にタカヤ製品http://www.takaya.co.jp/enterprise/rf/rfid/module.htmのRFID評価キットTR3-D002Aを購入しました。 Visual Basicでリーダライタを制御するプログラムを作りたいと思っているのですが、プログラミングなどはした事もなく何から初めてよいのか途方にくれています。 通信コマンドは公開されているので、とりあえず、直接通信コマンドをRS232C経由でリーダライタに送って、リーダライタの読み取りモードを変更してみようと思っているですが、そのようにrs232cに繋いだ機器に直接通信コマンドを送るようなソフトはあるでしょうか? テキストデータを送受信するソフトはあるのですが、なにもレスポンスがありません。通信コマンドは STX アドレス コマンド データ長 ETX SUM CR などとなっているので、それらを送って機器からレスポンスを得たいのですが、、、、 おそらく質問の仕方もかなりずれていると思うのですが、お手柔らかに答えて頂けると幸いです。 また、参考になるサイトなどがあれば教えてください。 osはwindows2000です。よろしくお願いします。

  • RS232C通信ポート(COM1)が開かない

    カテゴリー <その他>でアップした質問を <Windows2000、NT>のカテゴリーに 再アップさせていただきます。 Windows2000をシステムとする、旧型 IBM Think Padを使って通信ポート(9ピン)に、RS232C クロスケーブルで、 富士電機プロコン(シーケンサー)と接続し、ONLINEにしたいのですが、<通信ポートをオープンできません>というメッセージが表示され、接続されません。 それで、Windowsのデバイスマネイジャーで、パソコン側の通信ポート(COM1)のプロバティをみると、<このデバイスは正常に作動しています。>とあります。 富士電機のサポートセンターに状況を問い合わせた所、パソコン本体側にエラーと思われるとの回答でした。 通信ポートのパラメータが変わったのか、それとも別の理由なのか、復旧の仕方がわかりません。 どなたさまかご教示くだされたく、お願い申しあげます。 <ThikPadパソコン使用状態> システム : Windows 2000 Service Pack4 ウィルスチェッカー:ESET Smart Security 4 インストール。 インターネットはドコモFomaのデータ通信アダプタを、USBに接続してアクセス。 RS232C通信ポートは、富士プロコンのみで使用しています。 <プロコン PLC 通信設定>  1.アプリケーションソフトの<通信ポート設定>       PCとのポート(P): COM 1     ポートの設定(M): ビット/秒(B) 19200  データビット(D): 8    パリティ(P): なし  ストップビット(S): 1   フロー制御(F): なし    2.ローダアダプタのディップSW設定 ⇒ 1,2,3,4,5,6 OFF 7,8 ON      即ち ☆パソコンローダモード     ☆データビット: 8   ☆パリティビット有無: 無       ☆パリティビット奇偶: 奇数  ☆ボーレート: 19200 <ケーブル>   パソコン~ローダアダプタ : 9ピン、25ピン RS232Cクロスケーブル、                   富士からは市販クロスケーブル使用のこととされ、通信データの接続                   ピン番号のみ公開。    ローダアダプタ~PLC  : 富士電機提供 専用ケーブル <PLCアプリ 使い勝手>   2ヶ月前までは、今回不具合のパソコン、RS232Cケーブル接続で、問題なくPLCとオンラインにな  っていた。

  • 友達の質問に回答したいんですが、ネットワークに関することです。

    友達の質問に回答したいんですが、ネットワークに関することです。 ネットワークの最初のくだりになるんですが、 「あ」という文字をネットワークで送信する。 「あ」はUNICODEの「3042」です。これを2進数で表示すると、「1001110110010」です。これを2バイトで表示すると、「0001001110110010」です。それに、ベーシック手順で送信なれらば、SOH(ヘッディング開始)【0000001】ヘッディング【0000001】、STX(テキスト開始)【0000010】データ、ETX(テキスト終了)【0000100】BCC【偽りチェックということで、水平パリティ、垂直パリティとあります。それによってデーターが変わります。】これだけのデータを送信します。 「あ」=  「00010011101100100000001000000100000100000100」これにパリティチェックです。 これで、いいのでしょうか?

  • VBで16進数をバイナリ変換しRS232通信

    VB CommunityでRS232C通信プログラムを作成しています。 OKWaveをみて、ポート接続などはできたのですが、 データ送信でつまづいてます。 16進数をバイナリ変換し送信したいのです。 その部分ですが、16進数で[11]をバイナリに変換して送信したい場合、 Dim command(0) As Byte command(0) = &H11 SerialPort1.Write(command, 0, 1) としても、16進数で[11]を送ったときの動作を行いません。。 VectorなどでのRS232通信テストツールでは反応あるのですが。。 初歩的ですみませんが、よろしくお願いします。