ユーザ用ツール

サイト用ツール


ja-jp_products:mpino_studio2:monitoring

文書の過去の版を表示しています。


MPINO STUDIO 2 Phase 6・シリアル・ラダーモニタリング

シリアルモニターでArduino Codeの送受信データを確認し、ラダーモニタリングで接点・コイル・メモリの現在値と導通状態を確認する方法を説明します。

Arduino Codeのシリアルデータとラダーロジックの状態を確認する2つのモニタリングフロー

1. シリアル・ラダーモニタリング

2つの機能は、確認する対象と画面に表示する値が異なります。

確認する内容 使用する機能 画面に表示される値
Arduino CodeのSerial.print()出力とPCから送ったデータ シリアルモニター 文字またはHEXバイト
ラダーロジックの接点・コイル・メモリ・導通状態 ラダーモニタリング ON/OFF、現在値、導通色

シリアルモニターは、Arduino Codeがボードのシリアルポートで送受信するデータを確認するときに使用します。ラダーモニタリングは、ボードで実行中のラダーロジックの内部状態をラダー画面で確認するときに使用します。

2. シリアルモニターの接続

  1. ステータスバー右側のポート選択で、PCに接続されたシリアルポートを選択します。
  2. アクティビティバーのシリアルモニターを選択するか、下部パネルのシリアルモニタータブを開きます。
  3. Arduino CodeのSerial.begin()と同じ通信速度を選択します。
  4. 受信文字のエンコーディングを選択し、接続を押します。
  5. 状態が接続済みに変わったことを確認します。

対象ポート、通信速度、エンコーディング、接続ボタンを示したシリアルモニター

  • 1 対象ポート:ステータスバーで選択したPCのシリアルポートです。
  • 2 通信速度:Arduino CodeのSerial.begin()と同じbaudを選択します。
  • 3 エンコーディング:受信バイトを文字として解釈する方式です。
  • 4 接続:接続、切断、再接続の状態を切り替えて確認します。

受信エンコーディングはUTF-8EUC-KR(韓国語)Shift-JIS(日本語)Latin-1 (ISO-8859-1)Windows-1252に対応し、初期値はUTF-8です。エンコーディングはASCII表示の受信データだけに適用され、HEX表示と送信データには適用されません。

接続中に通信速度を変更しても、現在の接続にはすぐ反映されません。切断を押してから再接続してください。Serial.begin()と通信速度が異なる場合は、受信文字が崩れたりデータが表示されなかったりします。

3. データの受信・送信

次のコードは1秒ごとにカウンター値を送信し、PCからRまたはrを受信すると値を0に戻します。

unsigned long previousMillis = 0;
int count = 0;
 
void setup() {
  Serial.begin(9600);  // シリアルモニターも9600 baudに設定します。
  Serial.println("Counter ready. Send R to reset.");
}
 
void loop() {
  if (millis() - previousMillis >= 1000) {  // 1秒ごとに値を送信します。
    previousMillis = millis();
    count++;
    Serial.print("count = ");
    Serial.println(count);
  }
 
  if (Serial.available() > 0) {  // PCから受信したデータがあるときに読み取ります。
    char received = Serial.read();
    if (received == 'R' || received == 'r') {
      count = 0;
      Serial.println("-- reset --");
    }
  }
}

コードをビルドして書き込み、シリアルモニターを9600 baudで接続すると、count = 1count = 2が1秒間隔で表示されます。入力欄にRを入力してEnterまたは送信を押すと、> Rとボードの応答– reset –を確認できます。

カウンター値の受信、Rの送信、リセット応答が続くシリアルモニター

ASCII・HEX表示

ASCII表示では、選択したエンコーディングで受信バイトを文字として表示します。HEX表示では、同じデータを41 42 0D 0Aのように2桁の大文字バイトと空白で表示します。

同じシリアルデータをASCII文字とHEXバイトで表示した比較

表示モードを切り替えると、以前の受信内容が消去され、新しいモードでデータの表示を開始します。ボタンには現在のモードではなく、切り替え先のモードが表示されます。

行末文字

入力欄の横で、送信データの末尾に追加する行末文字を選択します。

選択 追加されるバイト 使用条件
None(LE なし) なし 入力したデータだけを送信
改行 (LF) 0A \nを待つコード
キャリッジリターン (CR) 0D \rを待つコード
改行 + キャリッジリターン (CRLF) 0D 0A \r\nを待つコード

None、LF、CR、CRLFが送信データの末尾に追加するバイト

ASCII表示で入力した文字は常にUTF-8で送信されます。HEX表示では52または52 0D 0Aのようにrawバイトを直接入力できます。空白なしの520D0Aも使用できます。16進数以外の文字がある場合や桁数が奇数の場合は送信されません。

コピーは現在の受信バッファ全体をクリップボードへコピーします。消去は接続を維持したまま画面の受信内容を空にします。

4. ラダーモニタリングの設定

ラダーモニタリングデータは、プロジェクトで選択したボード通信チャンネルから送信されます。最初にチャンネルを設定し、プロジェクトをもう一度ビルドして書き込む必要があります。

モニタリング使用ポートの設定、ビルド、書き込み、モニタリングの順序

  1. 環境設定 → ラダー設定 → モニタリング使用ポートを開きます。
  2. PCと接続するボードの通信チャンネルを選択します。
  3. プロジェクトをもう一度ビルドして書き込みます。
  4. ステータスバーで、その接続に対応するPCシリアルポートを選択します。

ラダー設定でモニタリング使用ポートを選択する画面

選択中のボードで使用できるチャンネルだけが一覧に表示されます。使用しないを選択すると、ファームウェアはラダーモニタリングデータを生成しません。SerialSerial1Serial2のうち実際に表示される項目は、選択したボードの通信チャンネル定義に従います。MPINO-8A4R(T)-Sでは使用しないSerialSerial1が表示されます。

チャンネルを変更して書き込む前にモニタリングを開始すると、書き込みの案内が表示されます。アップロードを選択し、変更したチャンネルをボードへ反映してください。

モニタリングチャンネルの変更後に書き込みが必要であることを示す案内

ポート競合の注意: 選択したチャンネルをプロジェクトの通信設定またはArduino Codeでも使用すると、モニタリングデータとユーザー通信が競合します。競合の案内が表示された場合は、モニタリング専用チャンネルを選択するか、同じチャンネルを使用する通信設定とコードを変更してください。

5. ラダーモニタリングの開始・終了

ポート設定と書き込みが完了したら、次のいずれかの方法でラダーモニタリングを開始または終了します。

  • シリアルモニターのヘッダーにあるモニタリングボタン
  • ラダー画面の右クリックメニューにあるモニタリング ONモニタリング OFF
  • Ctrl + M

シリアルモニターボタン、ラダーの右クリックメニュー、Ctrl Mによる3つの切り替え方法

ショートカットはファイル → 環境設定 → ショートカットで変更できます。

モニタリング使用ポートが使用しないの場合は、モニタリングポートの設定が必要という案内が表示されます。環境設定を開くを選択し、4番の設定を完了してください。

モニタリング使用ポートが設定されていない場合の案内

PCシリアルポートを選択していない場合は、ステータスバーでポートを選択してから再度開始してください。モニタリングを開始すると、ボタンと右クリックメニューがON状態に変わります。終了すると接続を切断し、ラダーのリアルタイム表示を消去します。

6. ラダー状態の読み方

モニタリングを開始すると、ラダー画面で導通状態とセルの現在値を同時に確認できます。

ボックス関数値、ワード値、タイマー現在値、比較値を示したラダーモニタリング画面

セルの種類 画面で確認する内容
ビット接点・コイル 黄色の導通表示とON/OFF状態
ボックス関数 ボックス内に表示される対象アドレスの現在値
ワードメモリ セルの下に表示される現在値
タイマー・カウンター接点 完了条件の導通状態
比較接点 比較する両方の現在値と比較結果
空のセルに入力したアドレス ビットアドレスのON/OFFまたは数値アドレスの現在値
  • 1 ボックス関数の現在値:タイマー、カウンター、演算対象の値をボックス内で確認します。
  • 2 ワード現在値:D、C、Tなどの値をセルの下で確認します。
  • 3 タイマー現在値:タイマーアドレスの現在値を時間単位または数値で確認します。
  • 4 比較値:接点の下に両辺の現在値が表示され、比較結果は導通で確認します。

ボードが停止した場合や接続が切れた場合は、最後に受信した値と導通表示が画面に残ることがあります。この状態では、時間によって変化する@F特殊ビットの点滅が停止します。値が変化しない場合は、最初にモニタリングの接続状態を確認してください。

7. 表示形式

ラダーセルを右クリックし、リアルタイム数値の表示形式を選択します。現在選択中の形式にはチェックが表示されます。

1つの16ビット値を5種類の数値形式で表示した比較

表示形式 読み方
Signed Decimal 現在のデータ型に応じた符号付き10進数で表示
Unsigned Decimal 整数のビットパターンを符号なし10進数として表示
Hexdecimal ビットパターンを0xから始まる16進数で表示
Binary ビットパターンを0bから始まる2進数で表示
Floating Point 16ビット整数はhalf-precision、32ビット整数はsingle-precision実数として解釈して表示

上の画像は1つの16ビット値を比較した例です。32ビット値はHexdecimalでは8桁、Binaryでは32桁で表示され、Rメモリは保存されている32ビット実数を基準に表示されます。

表示形式は1つのセルやプロジェクトだけに適用される設定ではありません。このPCのすべてのプロジェクトに共通して適用され、プログラムを再起動しても維持されます。初期値はSigned Decimalです。

タイマーの現在値

タイマープリセットをTON T0 1m10sのような時間構文で入力すると、Signed Decimalでは現在値も1m10s43s210ms500msのような時間単位で表示されます。プリセットを数値で入力した場合は、現在値も数値で表示されます。

数値プリセットと時間構文プリセットによるタイマー現在値の表示比較

Signed Decimal以外の形式を選択すると、時間構文ではなく選択した数値形式で表示されます。カウンタープリセットには時間単位を使用しません。

比較接点の値

D0 > D1のような比較接点は、モニタリング中に5 > 3のような両辺の現在値を接点の下に表示します。Binaryでは長い値を読みやすくするため複数行で表示され、その他の形式では1行で表示されます。

比較接点の現在値を1行で表示した場合とBinaryで複数行表示した場合の比較

8. ポートの使用関係

シリアルモニターとラダーモニタリングは、ステータスバーで選択した1つのPCシリアルポートを共有するため、同時には接続できません。

シリアルモニターとラダーモニタリングのポート使用状態の切り替え

現在の状態 実行する操作 結果
シリアルモニター接続中 ラダーモニタリングを開始 シリアルモニターを切断し、115200 baudでラダーモニタリングを開始します。
ラダーモニタリング中 シリアルモニターを接続 ラダーモニタリングを終了し、選択したbaudでシリアルモニターを接続します。
ラダーモニタリング中 データを送信 送信入力欄は使用できません。
シリアルモニター接続中 書き込みを開始 一時的に切断し、書き込み終了後に同じポートとbaudで再接続します。
ラダーモニタリング中 書き込みを開始 モニタリングを一時停止し、書き込み終了後に再接続します。

ラダーモニタリングが115200 baudで接続されている間も、シリアルモニターで選択したbaudは維持され、通常のシリアルモニターを再接続するときに使用されます。

ボードが切断されると、通常のシリアルモニターは最大5回、自動再接続を試みます。再接続に成功すると、受信画面に自動再接続の案内が追加されます。自動再接続が終了しても接続できない場合は、ポート一覧とケーブルを確認してから手動で再接続してください。ラダーモニタリングの値が停止した場合は、自動復旧を待たずにモニタリングを一度終了してから再開してください。

書き込みを開始すると現在の接続を切断し、成功・失敗に関係なく、書き込み前に使用していたシリアルモニターまたはラダーモニタリングの接続を復元します。どちらも接続していなかった場合は、書き込み後もOFFのままです。ビルドだけを実行した場合は接続を切断しません。

ラダーモニタリング中でも、同じチャンネルを115200 baudで使用するSerial.print()出力はシリアルモニターの受信画面に表示される場合があります。ただし、ユーザーデータとモニタリングフレームが混在する可能性があるため、Arduino Codeの通信とラダーモニタリングには別々のチャンネルを使用することを推奨します。

9. トラブルシューティング

症状 確認する項目 対処
接続を押しても接続できません。 ステータスバーのポート選択と現在の接続状態 使用するPCシリアルポートを選び直して接続します。
ポート一覧にボードがありません。 ケーブル接続、USB認識、ポート一覧 ケーブルを接続し直し、ポート一覧をもう一度開きます。
受信文字が崩れます。 Serial.begin()のbaudと受信エンコーディング 同じ通信速度を選択し、ファームウェアの文字エンコーディングに合わせます。
データを受信できません。 接続状態、baud、Serial.print()の実行 シリアルモニターの接続とSerial.begin()のbaudを確認します。
HEX送信に失敗します。 16進数文字と偶数桁 AB CD 01またはABCD01の形式で入力します。
ラダーモニタリングを開始できません。 モニタリング使用ポートとステータスバーのPCポート ポートを設定して再度ビルド・書き込みを行い、PCポートを選択します。
モニタリング中でも導通と値が表示されません。 ポート変更後の書き込みと実際の接続チャンネル 変更した設定で再度ビルド・書き込みを行い、接続チャンネルを確認します。
値が変化せず最後の値が残ります。 ボードの動作とモニタリング接続 ボード電源と通信を確認し、モニタリングを再接続します。
Arduino CodeのSerial.print()が表示されません。 チャンネル、baud、ラダーモニタリングの状態 通常のシリアルモニターを接続するか、ラダーモニタリング中は同じチャンネルの115200 baud出力か確認します。データが競合する可能性があるため、チャンネルの共有は推奨しません。
モニタリングポート競合の案内が表示されます。 同じチャンネルを使用する通信設定とArduino Code モニタリング専用チャンネルを選択するか、同じチャンネルを使う設定とコードを変更します。

関連文書

ja-jp_products/mpino_studio2/monitoring.1789114805.txt.gz · 最終更新: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki