- ベストアンサー
MCプロトコルで1ビットだけONする方法についての質問
- MCプロトコル通信アプリを作成中。ワード単位書き込みはできているが、ビット単位の書き込み方法がわからない。
- MELSECプロトコルマニュアルを確認したが、ビット単位書き込みの方法についての説明がない。
- バイト配列にどの値を書き込めば1ビットだけONになるのかわからない。文字列連結からASCII変換する方法が良いかどうか知りたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
本件のMCプロトコルとは 三菱電機PLC通信プロトコルの事ですよね? http://www.mitsubishielectric.co.jp/fa/download/index.html MELSECコミュニケーションプロトコルリファレンスマニュアル Ver.AD SH-080003 (6.63MB) 97/486ページ ビット単位の一括書込み(コマンド: 1401) ここに記載されてるけど >データ列をビット列で並べるだけ と、言う風には解釈できないけど? >文字列で連結させてアスキー変換する方法ではなく アスキーモードでなくバイナリモードの意味でしょうか? >&H1 (0x01) という値を書き込んでも何もなりません。 例えばデバイスM100を1個だけとかの意味? マニュアルをよく読みましょうね 0x0100ですね 0x01 00 ↑ ↑ M100 M101 尚、通信系プログラムを作る時の鉄則として データ読出し命令から作るベシ! データ読出し命令が満足に動かないのに書込み命令は厳禁である 本件も読出し命令から先にプログラム&デバッグしていれば 悩むことなく完了した話でしょうね
その他の回答 (2)
- hahaha8635
- ベストアンサー率22% (800/3610)
プロトコル自体を作らないといけない 232Cで説明すると 今やってるのは http://www.ee.fukui-nct.ac.jp/~yoneda/data/C/a_06.htm このレベル やらないといけないのは http://www.picfun.com/serial22.html このレベル
お礼
ありがとうございます。 マイコンも難しいですね。SPIとか動かすのにとても苦労したことがあります。
- kuro804
- ベストアンサー率29% (523/1762)
こんばんは このプロトコルは全く無知ですので、ほんの少し場違いかとは思いますが一言。 ”たとえば1ビットだけONしたいときは、バイト配列に書き込むやりかただと、どういう値を書き込めばよいのでしょうか。 &H1 (0x01) という値を書き込んでも何もなりません。” 上記文章箇所のみについてです。 ”1ビットのみON”にする為のバイト単位の書込では、0x01を書き込むとビット0のみ1としてビット1~7までを0という書込になります。 ビット0のみ1として他ビット1~7は普遍とするためには、直前に該当するバイトを読み出してそのバイトと0x01をORする必要があります。ORすればビット1~7は変化しません。 以上、
お礼
0x01をORする必要があります。ORすればビット1~7は変化しません。 ビット演算ですね。ありがとうございます。
お礼
ありがとうございました。 >データ読出し命令が満足に動かないのに書込み命令は厳禁である 参考にさせていただきます!