• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MCプロトコル 1ビットだけONしたいとき)

MCプロトコルで1ビットだけONする方法についての質問

このQ&Aのポイント
  • MCプロトコル通信アプリを作成中。ワード単位書き込みはできているが、ビット単位の書き込み方法がわからない。
  • MELSECプロトコルマニュアルを確認したが、ビット単位書き込みの方法についての説明がない。
  • バイト配列にどの値を書き込めば1ビットだけONになるのかわからない。文字列連結からASCII変換する方法が良いかどうか知りたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • lumiheart
  • ベストアンサー率47% (1141/2405)
回答No.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 尚、通信系プログラムを作る時の鉄則として データ読出し命令から作るベシ! データ読出し命令が満足に動かないのに書込み命令は厳禁である 本件も読出し命令から先にプログラム&デバッグしていれば 悩むことなく完了した話でしょうね

noname#235633
質問者

お礼

ありがとうございました。 >データ読出し命令が満足に動かないのに書込み命令は厳禁である 参考にさせていただきます!

その他の回答 (2)

  • hahaha8635
  • ベストアンサー率22% (800/3610)
回答No.2

プロトコル自体を作らないといけない 232Cで説明すると 今やってるのは http://www.ee.fukui-nct.ac.jp/~yoneda/data/C/a_06.htm このレベル やらないといけないのは http://www.picfun.com/serial22.html このレベル

noname#235633
質問者

お礼

ありがとうございます。 マイコンも難しいですね。SPIとか動かすのにとても苦労したことがあります。

  • kuro804
  • ベストアンサー率29% (523/1762)
回答No.1

こんばんは このプロトコルは全く無知ですので、ほんの少し場違いかとは思いますが一言。 ”たとえば1ビットだけONしたいときは、バイト配列に書き込むやりかただと、どういう値を書き込めばよいのでしょうか。 &H1 (0x01) という値を書き込んでも何もなりません。” 上記文章箇所のみについてです。 ”1ビットのみON”にする為のバイト単位の書込では、0x01を書き込むとビット0のみ1としてビット1~7までを0という書込になります。 ビット0のみ1として他ビット1~7は普遍とするためには、直前に該当するバイトを読み出してそのバイトと0x01をORする必要があります。ORすればビット1~7は変化しません。 以上、

noname#235633
質問者

お礼

0x01をORする必要があります。ORすればビット1~7は変化しません。 ビット演算ですね。ありがとうございます。