- ベストアンサー
RS-422A通信トラブル:三菱電機QJ71C24N-R4とチラーの通信不可
- 三菱電機のQJ71C24N-R4でチラーとのRS-422A通信ができず、困っています。
- チラーの通信仕様は、スタートビット1、データビット8、パリティなし、ストップビット1、誤り制御水平パリティです。
- 三菱電機のQJ71C24N-R4は垂直パリティなので、通常のOUTPUTでは送信できません。経験のある方、ご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
LD X16A MOVP K2 D3000 FMOVP K0 D3001 K2 MOVP K20 D3003 G.INPUT U16 D3000 D3100 M2631 受信読出し D3000 受信チャンネルNo2 D3001 受信結果 D3002 受信データ数 D3003 受信データ許容数(20ワード) STX 職別子(M1) データ ETX BCC 02H 4DH31H 20H20H20H20H31H32H2EH33H 03H 61H 初回の受信データ D3100 4D02h D3101 2031h D3102 2020h D3103 3120h D3104 2E32h D3105 0333h D3106 (0061h) <本来ならBCCはここに読み出したいのだが読み出せない D3107 D3108 D3109 2回目以降の受信データ D3100 0261h <前回読み込めなかったBCCが先頭に来て後へズレる D3101 314Dh D3102 2020h D3103 2020h D3104 3231h D3105 332Eh D3106 0003h D3107 D3108 D3109 >QJ71は垂直パリテイーでチラーのほうは、水平パリティーなので 用語の問題ですが垂直パリティとは ↓です 9600 データビット 8 パリテイー なし ストップビット 1 水平パリティとはBCCの事です http://www5e.biglobe.ne.jp/~komichan/network/n1_CRC.html http://www.lineeye.co.jp/html/term_ayamari.html 本件の場合ETXの後ろのBCCが問題なのですが Q対応シリアルコミュニケーションユニットユーザーズマニュアル(応用編) SH(名)-080002-P(1/1) (約6,306KB) 174/382ページ 6.1 無受信監視時間(タイマ0)の設定 (c) 無手順プロトコルでデータ交信している場合(方式1) これでBCC受信後の無受信時間検出によりエラーを発生させて エラーフラグによりBCCを読み出す事が可能になります ユーザ登録フレームはGX Configurator-SCが無ければほぼ不可能です 但し、Configurator-SCにはETXの後ろにBCCを付ける事は出来ません 要するに使えません
その他の回答 (3)
> 受信は STX 職別子 データ ETX BCC > 受信終了コードを03H(ETX)に指定しています なので、2回目の受信から一つずれて前のBCCが先頭に来ます >00E3とか、理解できないものが、はいってきています 従って、恐らくこれはBCCでしょう Ch2受信バッファ A00 受信データ数 <ここには何が入ってますか? A01 BCC <前回受信したBCC(1ワード?) A02 STX、M1 <STX、識別子 A03 データ <データは1ワード? A04 ETX と並ぶはずです
お礼
回答ありがとうございます 受信データの振り分けのプログラムを書きます LD M2631 ANI M2632 [*D3002 K2 Z2} {WT0B D3010 D3100 K0Z2} {= D3101 H4D }{= D3102}-{SET M2640} と受信D3100の振り分けています D3100~D3139までは0000でD3140にでーたがはいります この感じですとバッフアーメモリのA41からのにはいるようです 実際確認ができませんしたので,A00は 受信したときのデータ は変化します.A01~A40まではなんなのかわかりません 通常の受信データを取扱書からサンプルのデータを見ると STX 職別子(M1) データ ETX BCC 02H 4DH31H 20H20H20H20H31H32H2EH33H 03H 61H データの表記は SP SP SP SP 12.3 で 温度表記は12.3度です QJ71は垂直パリテイーでチラーのほうは、水平パリティーなので データの処理が、違うのですが?FA相談の回答では、プログラム の処理やユーザー登録フレームの設定が必要ですとの回答をもらいました 今、取扱説明書を読んでいますが、理解ができずに苦しんでおります よろしくお願いします
具体的なプログラムはどうなってますか? --------------------[$MOV "EOT1234567890ENQ"] とかじゃあないでしょうね EOTは04hですよ 45h,4Fh,54hでは有りませんよ ENQは05hですよ 45h,4Eh,51hでは有りませんよ QJ71の受信終了コードは何になってますか? デフォルトはCRLF[0D0Ah]ですがこれには有りません 終了コード「無」ですよ 受信バイト数固定モードにするか? 可変長受信終了コード無しモードにするか? さもなくば終了コードETX[03h]にしてBCCを無視するかですが omron温調器の通信が出来てるのでこの辺りの設定は済んでるとは思うけど
過去ログ http://mori.nc-net.or.jp/EokpControl?&tid=138200&event=QE0004 QJ71C24の通信はラダーでアスキーコードの電文を16進コードで出力するように作ります 要するにBCCは自分でラダーで計算プログラムを作って電文中に挿入します >送信は EOT アドレス 職別子 ENQ >受信は STX 職別子 データ ETX BCC どうころんでもこれは誤記でしょう 送信は ENQ アドレス 職別子 EOT じゃあないでしょうか? でも、送信にBCCが付いてないけれど? 送信と受信でプロトコルが違うのもおかしい気がするし EOT: End Of Transmission http://www.wdic.org/w/WDIC/EOT STX: Start of TeXt http://www.wdic.org/w/WDIC/STX ENQ: ENQuiry http://www.wdic.org/w/WDIC/ENQ
お礼
lumiheart様回答ありがとうございます 電文内容は、表記のとおりです チラーは オリオン機械のRKE1500B-Vです EOT アドレス 職別子 ENQ とりせつの表記をそのまま書きます (1)ポーリング手順 1)データリンクの初期化 ポストコンピュータは。ポーリングシーケンス送信の前にデータリンク の初期化のためにEOTを送信します 2)ポーリングシーケンス送信 アドレス-職別子-ENQ アドレス ポーリングする機器のデバイスアドレス 職別子 データを職別するコード ENQ ポーリングシーケンス終了をあらわす伝送制御キャラクタ その後、ポストコンピュータは、本体からの応答待ちとなります をあります.BCCのことは何まありません、その後にサンプルの電文が ありますが,Bccとことはありません、今回はじめての通信で1CHのほう は、オムロンの温調器(E5CN3台)の、通信はうまく通信していますが 2CHのほうは、うまくいきません。アドバイスのほどよろし お願いします。 ありがとうござます現在のソフトです LD M2611 MOV H4 D2910 MOV H30 D2912 MOV H35 D2912 MOV H4D D2913 MOV H31 D2914 MOV H5 D2915 LD SM400 BTOW D2910 D2940 K6 LD M2611 PLS M2620 LD M2620 MOV K2 D2930 MOV K0 D2931 MOV K3 D2932 G.OUT U16 D2930 D2940 M2630 LD X16A MOVP K2 D3000 FMOVP K0 D3001 K2 MOVP K20 D3003 G.INPUT D3000 D3100 M2631 が送信、受信です 受信終了コードを03H(ETX)に指定しています 後SW3 05CA SW4 0006に設定しています QJ71C24N-R4のSD RDの LEDランプも 送信、受信のタイミングで点灯します 送信バッフアーのも 801 3004.802 4D35. 803 0531 なつて、います 受信バッフアーですが,A00からですが、わからないもの がはいつて着ています、受信に電文ですと A01のところに STX、M1なので A01 4D02にが入るはずですが 00E3とか、理解できないものが、はいってきています という状態です、よろしくお願いします
お礼
詳しい解説ありがとうございます。三菱電機の技術相談のメールをしても 詳しい回答が得られず、ユーザー登録フレームたどのようのしたらいいのか もう一度配線の見直しをしたりしておうさおしているだけで、時間過ぎて います。ユーザー登録フレームの考えは捨てます BCCは判断しないのですから。プログラムを下記の用に変更して見ます LD M2631 ANI {*D3002 K2 Z2} {WTOB D3100 D3200 KZ02} {= D3201 H02} SET M2640 LD M2640 {MOVP K0 D3026} 表示データをクリア {MOVP H30 D3219}温度でーた10-3を0にする {MOVP D3208 D3120}温度でーた10-2 {MOVP D3209 D3121}温度でーた10-1 {MOVP D3211 D3122}温度でーた10-0 {BTOWP D3211 D3224 K4} {HABINP D3224 D3226}アスキーデータをBINに変換 D3100 0261H D3200 0061 D3101 314DH D3201 0002 D3102 2020H D3202 0031 D3103 2020H D3203 004D D3104 3231H D3204 0020 D3105 332EH D3205 0020 D3106 0003H D3206 0020 D3107 D3207 0020 D3208 0031 D3209 0032 D3210 002E D3211 0033 D3212 0003 を変換して2ワード目の0002Hが来たときに背TM2640 で温度デーたのD3208~D3211のを取り入れる この方法で初回のデータを無視して2回目以降からのデータ を取り入れると方法でやって見ます 御教授お願いします ありがとうございました。無事終了しました 終了コードのフラッシュロムに書き込み方の違いと 温度でーたが9.9になると通常09.9ではなく sp 9.9となることでアスキーとBINの変換 にエラーがでた為でした また何かありましたら御教授お願いします