VBでPLCと通信したいのですがうまくいきません。
PLCは三菱製シーケンサ(etherユニット:QJ71E71)Qシリーズです。
ether/UDP/QnA互換3Eフレームのバイナリーコード 通信です。
WINSOCKを使用して、PLCのデータレジスタの値を読出したいのですが・・・
リッファレンスマニュアルを参照して
「500000FFFF03000C001000010400002C0100A80300」
↑こんなコマンドを送信すると
「濱?」←こなのが返ってきます。
だれか、こころあたりのかたよろしくおねがいします。
ちゃんとバイナリコードを送っていますか?
文字列をそのまま送っていませんか?
また、ちゃんとバイナリで受けてますか?
バイナリを文字列として受け取っていませんか?
バイナリを単に文字列変数で受けただけだとアスキーとして表示されますよ。
そして大抵は化けます。
初めて通信するプログラムを作るならバイナリではなくアスキーで組んだほうがわかり易いですよ。
なにかバイナリでないといけない理由でもあるんでしょうか?
紅閃光さんありがとうございます。
文字列をそのまま送ってました。
バイナリでの送受信やってみます。
既存のシステムがバイナリ通信の為、バイナリこだわってます。
以前、アスキー(この時はシーケンサがAシリーズでしたけど)でやった時は、
わりとスムーズにいったのですが・・・
解決!!
ちゃんと、バイナリで送受信したらうまくいきました。
紅閃光さんありがとうございました。
ツイート | ![]() |