北海道の制御屋です。PLC/HMI(MITSUBISHI,OMRON,KEYENCE and OTHERS) 全国何処へでも伺います。

RS232C双方向通信で躓いた話

先日RS232Cの双方向通信で躓きました。メ-カ-サポ-トに電話しても匙を投げられなんとか自力解決しましたが、わかってみると大した原因ではなかったです。ま、そんなもんですよね。

送受信しない

問題となったのは三菱電機iQ-Rのシリアルコミュニケ-ションユニットと同じく三菱電機Qのシリアルコミュニケ-ションユニットでの双方向通信です。設定は両方ともに以下の通り

  • デ-タビット長 8ビット
  • パリティ-ビット なし
  • ストップビット 1
  • 通信速度 2400bps
  • 伝送タイプはバイト単位

いつもはこの設定で送受信するのですが今回は全く繋がりません。見てみるとQ→RでRがエラ-を返しています。エラ-コ-ドは7F24でした。これをサポ-トに伝えると双方向通信ではでないエラ-だと言われました。確かにマニュアルにも対象外となっています。

回線トレ-スしてみた

プログラムを移植してQ対Q、R対Rだと正常に通信しますのでプログラムの問題であることは排除されました。送受信プログラムをマニュアルを元に一から構築してQ側で送信デ-タをトレ-スしてみました。

R側からNAK(0x15)の後にエラ-コ-ドが返ってきています。

サムチェックを外した

サムチェックを外してR側から送信をかけてQ側の受信をトレ-スしてみました。

なにやら受信はしているようですがACKを返しません。もう一度送ってみると…

受信の途中でACKを返しています。つまり受信数設定とデ-タ数が合っていないと推測されますね。
通しでモニタした結果も載せておきます。

パラメ-タを再確認してみた

Q側のパラメ-タを再確認してみました。

何度見てもバイト単位になってる。けど挙動はワ-ド単位の挙動をしている???
次にユニットのバッファメモリで受信数を調べてみました。

あらららデ-タは5つしか受け取っていません。そして5ワ-ド分になっています。完全にQ側はワ-ド単位で動いていますね。

ユニットのフラッシュROMに書き込んでいなかった!

そういえばQJ71C24NはユニットのフラッシュROMに何やら書きこむ必要があった事を思い出してインテリジェントユニットへ書き込みを行いました。

無事に通信できました。

パラメ-タ類を正常値に戻してQ→Rの後にR→Qを試したら無事に通りました。

この問題の厄介だなと思ったのがQ対Qだと何事もなく通信してしまい、動作的には正常に見える(実際正常に送受信する)しQ対Rの時にだけ起こる点ですね。問題を解決するまで3日かかりました(汗)

Leave a Reply

Your email address will not be published. Required fields are marked *