問い合わせとその回答をご紹介いたします。
無料相談やってます!
RS-232Cについて分らない事があれば、メールでお気軽にお問い合わせください。
弊社でわかる事であれば、無償にてお答えいたします。
お問い合わせいただいた内容は、このページでご紹介する場合がございます。予めご了承ください。
無料相談はメールのみの受け付けです。お電話では、お答えできません。
■全二重通信と半二重通信の見分け方を教えて下さい。
全二重と半二重は、RS485で行う通信です。
RS-232 または RS-422 であれば、基本的には全二重通信です。
但し、RS-422 と RS-485は、電気的な違いがほとんどありません。
このため、同一ハードでRS-422 と RS-485兼ねる場合があります。
つまりRS422だからといって、全二重通信とは限らないことになります。
この場合は、信号線の数で判断できます。
信号線が2本なら半二重と言えます。
信号線が4本なら実際の信号をモニタするしか判断できません。
なぜなら信号線が4本あれば全二重も半二重も両方できるからです。
ソフトウェアから全二重と半二重を判断するのは、ゲート制御の有無で行えます。
半二重の場合、同一の信号線で送受信を行う訳ですから、送信する場合にゲートをONし、受信中はゲートをOFFする必要があります。
無線機のトランシーバーで、しゃべる時にボタンを押し、聞く時にはボタンを放す、あの動作です。
通常はゲートをOFFし、送信する直前にゲートをON、送信終了後にゲートをOFFする処理が入っていれば、半二重通信で利用できる事になります。
但し、全二重通信でゲート処理を行っても、全く問題ありませんので、ゲート処理があるから半二重通信だ!と断定はできません。
あくまでも半二重通信に対応したソフトである・・・ただそれだけです。
また、最近のハードウェアでは、ハードが送受信を判断して、自動的にゲート制御を行うのが主流になっています。
このため、ソフトウェアを解析しただけでは、全二重なのか?半二重なのかは判断できません。
正確に全二重と半二重を確認するのであれば、ラインモニタを利用して直接電文を見てみるしか方法は無いと思います。
■BCCの内容がSTXに一致する場合があります。回避方法を教えて下さい。
RS232C通信において、受信器側では受信中にSTXを受信したら受信データをクリアし、受信処理をやり直す作りとしています。たまたまBCC部のコードがSTXに一致するケースがあり、受信器がデータをクリアし、応答できない事象があります。BCC部のチェックを優先し、BCCがSTXに一致しても受信処理を継続する作りとすべきか、それとも仕様の不備(BCCは制御コードに一致しないコードにする?)と考えるものでしょうか。JIS X 5001には詳細な規定がありませんが、一般的にはどうすべきでしょうか。
これは、BCCをバイナリコードで送信しているから発生する場合です。
シリアル通信において、バイナリコードの直接送信は、ご質問にある通り制御コードと重複する可能性があるため、危険です。
一般的には、バイナリコードを直接送信するのではなく、16進数に変換して ‘0’~‘9’ および ‘A’~‘F’のASCIIコードで送信します。
通信テキスト内部にバイナリーコードが存在しないことが保証されているので、ご質問にある問題は起きなくなります。
デメリットとしては、BCCがバイナリー送信時の2倍時間が掛かることです。
しかし9600bpsの場合、BCCが2Byteなら約2ms延長されるだけです。通信速度が速ければ、一般的には無視できるレベルです。
どちらにメリットがあるか検討して、対処して下さい。
■20m先の機器
20m先の機器をRS-232 3芯で制御していますが、通信できる機器とできない機器があります。
RS-232は、近距離洋の通信方式です。10mを越える様な遠距離通信には向きません。
遠距離の通信を行うのであれば、RS-422またはRS-485を利用して下さい。
この通信方式であれば、ドライバICによっては数百メートルの高速通信が可能です。
ご購入・問合わせ
- TEL:0940-62-5640
- FAX:0940-62-5641
- support★fukufukudenshi.jp
★の部分を@に置き換えて下さい。