ja-jp_products:mpino_studio2:memory
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| ja-jp_products:mpino_studio2:memory [2026/09/08 15:43] – 바깥 편집 127.0.0.1 | ja-jp_products:mpino_studio2:memory [2026/09/14 12:24] (現在) – 外部編集 127.0.0.1 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== MPINO STUDIO 2 Phase 2 · メモリを理解する ====== | ====== MPINO STUDIO 2 Phase 2 · メモリを理解する ====== | ||
| - | このページでは、**P・M・D・C・T・Rメモリの違い**、アドレス表記、メモリ領域設定、使用メモリマップ、時間で動く特殊接点を説明します。 | + | このページでは、**P・M・D・C・T・Rメモリの違い**、アドレス表記、メモリ領域設定、プロジェクトでの使用箇所、特殊ビットメモリを説明します。 |
| - | ^ 基準ボード ^ 完了目標 ^ | + | {{ : |
| - | | MPINO-8A4R(T)-S | メモリアドレスを区別し、プロジェクト内の使用箇所を探せること | | + | |
| - | + | ||
| - | {{ : | + | |
| > **スクリーンショットについて: | > **スクリーンショットについて: | ||
| - | ===== 1. メモリとは | + | ===== 1. PLC基本メモリ ===== |
| + | |||
| + | Arduinoプログラムとは異なり、PLCではP・M・D・C・T・Rメモリを使用します。Arduinoコードでは、PLCメモリの割り当て後に残ったSRAMへ変数を割り当てることができます。 | ||
| メモリは、プログラムの実行中に入力状態、内部条件、計算結果、タイマ値などを保存する領域です。MPINO Studio 2のラダーロジックとArduino Cコードは、このメモリを共有して使用できます。 | メモリは、プログラムの実行中に入力状態、内部条件、計算結果、タイマ値などを保存する領域です。MPINO Studio 2のラダーロジックとArduino Cコードは、このメモリを共有して使用できます。 | ||
| 行 26: | 行 25: | ||
| | '' | | '' | ||
| - | > **Pアドレスの注意: | + | ==== Arduinoコードとラダーロジックのメモリ共有 ==== |
| - | > **R値の比較:** 実数計算では小さな丸め誤差が生じることがあります。計算した実数を制御条件に使う場合は、用途に合った許容範囲を設けて比較してください。 | + | ラダーロジックとArduinoコードは、P・M・D・C・T・Rメモリの同じ保存領域を使用します。一方で書き込んだ値は、もう一方から同じアドレスで読み取れます。 |
| - | ===== 2. MPINO-8A4R(T)-Sの標準メモリ ===== | + | {{ : |
| + | |||
| + | Arduinoコードでは、ラダーアドレスと同じ名前をそのまま使うか、配列形式で記述できます。どちらも同じメモリを参照します。 | ||
| + | |||
| + | * ラダーの'' | ||
| + | * ラダーの'' | ||
| + | * ラダーの'' | ||
| + | |||
| + | <code cpp> | ||
| + | void loop() { | ||
| + | M0 = true; // ラダーのM0ビット接点をON状態にします。 | ||
| + | D0 = 120; // ラダーとArduinoコードでD0の整数値を共有します。 | ||
| + | R0 = 23.5f; // ラダーとArduinoコードでR0の実数値を共有します。 | ||
| + | |||
| + | ladderLoop(); // 上で保存した値を使ってラダーロジックを実行します。 | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ラダーロジックで変更した値は、'' | ||
| + | |||
| + | > **入出力割り当ての注意: | ||
| + | |||
| + | > **Pアドレスの注意: | ||
| + | |||
| + | > **R値の誤差に関する注意: | ||
| + | |||
| + | ===== 2. メモリ領域 | ||
| MPINO-8A4R(T)-Sを選択したときの標準メモリ数は次のとおりです。 | MPINO-8A4R(T)-Sを選択したときの標準メモリ数は次のとおりです。 | ||
| + | |||
| + | **設定 → メモリ領域設定**で、使用するメモリ数を変更できます。(ショートカット: | ||
| + | |||
| + | {{ : | ||
| ^ 領域 ^ 標準数 ^ 標準アドレス範囲 ^ | ^ 領域 ^ 標準数 ^ 標準アドレス範囲 ^ | ||
| 行 41: | 行 70: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| + | |||
| + | **メモリ領域設定画面: | ||
| 個数と最後のアドレスを混同しないでください。番号は0から始まるため、Dメモリ200個は'' | 個数と最後のアドレスを混同しないでください。番号は0から始まるため、Dメモリ200個は'' | ||
| 行 46: | 行 77: | ||
| ==== C領域とボードのピン割当 ==== | ==== C領域とボードのピン割当 ==== | ||
| - | MPINO-8A4R(T)-Sでは、C領域の先頭部分がボード機能に割り当てられています。 | + | MPINO-8A4R(T)-Sでは、'' |
| + | |||
| + | 割り当てるメモリは、**設定 → ラダーピンマップ設定**で変更できます。 | ||
| + | |||
| + | > **アナログ・PWM出力の注意: | ||
| {{ : | {{ : | ||
| 行 56: | 行 91: | ||
| | '' | | '' | ||
| - | > **重要:** このボードで'' | + | > **重要:** このボードで'' |
| - | ほかのMPINO製品ではメモリ数とピン割当が異なる場合があります。別のボードプロジェクトにこのアドレス表をそのまま適用しないでください。 | + | 割り当てられるアドレスはボードごとに異なり、ユーザーが変更することもできます。**設定 → ラダーピンマップ設定**で確認してください。 |
| - | ===== 3. データ幅を理解する | + | ===== 3. データ形式 |
| データ幅は、一度に読み書きするビット数です。扱える値の範囲とメモリ使用量が変わります。 | データ幅は、一度に読み書きするビット数です。扱える値の範囲とメモリ使用量が変わります。 | ||
| 行 78: | 行 113: | ||
| ===== 4. メモリアドレスの読み方 ===== | ===== 4. メモリアドレスの読み方 ===== | ||
| - | 長いアドレスは左から、**データ幅の接頭辞**、**メモリ領域**、**アドレス番号**、**ビット番号**に分けて読みます。 | + | メモリアドレスは、最も単純な形式から始め、必要な要素を一つずつ追加して読みます。 |
| - | {{ : | + | {{ : |
| - | たとえば'' | + | - '' |
| + | - '' | ||
| + | - '' | ||
| + | - '' | ||
| - | - '' | + | ==== メモリ構造 ==== |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | ==== 幅の接頭辞とビットアクセス ==== | + | ビット、バイト、ワード、ダブルワード、実数のメモリ構造です。 |
| - | ^ 表記 ^ 使用できる領域 ^ 例 ^ | + | {{ : |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | '' | + | P・M領域では、個別のBITアドレスを8個、16個、32個ずつまとめ、BYTE・WORD・DWORDとして読みます。小さいアドレスが最下位ビットになるため、'' |
| - | 次の表記は使用できません。 | + | D・C・T領域では、一つのアドレスが1 WORDです。連続する二つのWORDをまとめるとDWORDになり、'' |
| - | * '' | + | ===== 5. プロジェクトで使用中のメモリを探す ===== |
| - | * R領域への幅の接頭辞 | + | |
| - | * R領域への'' | + | |
| - | アドレス入力欄でエラーが表示された場合は、表記だけでなく、選択した領域がその幅とビットアクセスに対応しているか確認します。 | + | メニューから**設定 → 使用したメモリ**を選択するか、'' |
| - | ===== 5. メモリ領域サイズを確認する ===== | + | {{ : |
| - | + | ||
| - | メニューから**設定 → メモリ領域設定**を選択するか、'' | + | |
| - | + | ||
| - | {{ : | + | |
| - | + | ||
| - | 次の順序で確認します。 | + | |
| - | + | ||
| - | - 現在のプロジェクトのボードが**MPINO-8A4R(T)-S**であることを確認します。 | + | |
| - | - P、M、D、C、T、R入力欄の個数を確認します。 | + | |
| - | - 値を入力していない空欄は、選択したボードの標準値を使用します。 | + | |
| - | - 下部の予想SRAM使用量と全SRAMを確認します。 | + | |
| - | - 全容量を超えると表示が赤くなり、設定を保存できません。 | + | |
| - | - 変更が必要な場合は値を入力して**保存**を選択します。 | + | |
| - | - ダイアログを閉じ、'' | + | |
| - | + | ||
| - | 明確な理由がなければボードの標準値を維持してください。個数を増やすと使用できるアドレスが増えますが、SRAM使用量も増えます。個数を減らすと既存のラダーセルやArduino Cコードが範囲外を参照する可能性があるため、変更の前後に使用メモリマップを確認します。 | + | |
| - | + | ||
| - | ===== 6. プロジェクトで使用中のメモリを探す ===== | + | |
| - | + | ||
| - | メニューから**表示 → 使用メモリマップ**を選択するか、'' | + | |
| - | + | ||
| - | {{ : | + | |
| - | + | ||
| - | 使用メモリマップは次のように使います。 | + | |
| - | + | ||
| - | - 上部の'' | + | |
| - | - ラダーとコードのフィルタで確認するソースを絞ります。 | + | |
| - | - アドレス検索欄にアドレスを入力して'' | + | |
| - | - 色が付いたアドレスセルは、現在のプロジェクトで使用中です。 | + | |
| - | - 使用中のセルを選択すると、下部に参照箇所が表示されます。 | + | |
| - | - 参照項目を選ぶと、該当するラダーセルまたはコード位置へ移動できます。 | + | |
| - | - ダイアログを閉じて再度開いてもタブとスクロール位置は維持されます。アプリを再起動すると初期化されます。 | + | |
| - | + | ||
| - | ==== Phase 1プロジェクトで確認する ==== | + | |
| - | + | ||
| - | - Phase 1で保存したプロジェクトを開きます。 | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| - | - '' | + | |
| アドレスを変更するときやメモリ領域を縮小するときは、先にこの画面を確認すると重複使用と範囲エラーを減らせます。 | アドレスを変更するときやメモリ領域を縮小するときは、先にこの画面を確認すると重複使用と範囲エラーを減らせます。 | ||
| - | ===== 7. 時間で動く特殊接点 | + | ===== 6. 特殊ビットメモリ |
| - | '' | + | '' |
| - | + | ||
| - | {{ : | + | |
| ^ 形式 ^ 動作 ^ 例 ^ | ^ 形式 ^ 動作 ^ 例 ^ | ||
| + | | '' | ||
| + | | '' | ||
| | '' | | '' | ||
| | '' | | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | {{ : | ||
| '' | '' | ||
| 行 166: | 行 158: | ||
| '' | '' | ||
| - | {{ : | + | {{ : |
| - | 特殊接点には次の入力規則があります。 | + | 特殊ビットメモリには次の入力規則があります。 |
| - | * 時間単位はミリ秒(ms)です。 | + | * '' |
| * かっこは使いません。'' | * かっこは使いません。'' | ||
| - | * 接点セルまたは立上り・立下りエッジセルだけで使用します。 | + | * ビット接点だけで使用します。 |
| * 出力コイルのアドレスには使用しません。 | * 出力コイルのアドレスには使用しません。 | ||
| - | * '' | ||
| - | |||
| - | ===== 8. 実習 · P32を1秒間隔で点滅させる ===== | ||
| - | |||
| - | Phase 1回路の'' | ||
| - | |||
| - | - Phase 1プロジェクトを開き、**ファイル → 名前を付けて保存**で'' | ||
| - | - 出力負荷が外れていることを確認します。 | ||
| - | - '' | ||
| - | - '' | ||
| - | - アドレスを'' | ||
| - | - 出力コイルのアドレスは'' | ||
| - | - '' | ||
| - | - MPダウンロードケーブルを接続し、右下でポートを選択します。 | ||
| - | - '' | ||
| - | - Phase 1でモニタリングポートを設定済みの場合は、'' | ||
| - | - '' | ||
| - | |||
| - | 実習後に物理入力の確認へ戻す場合は、接点アドレスを'' | ||
| - | |||
| - | ===== 9. 状況別のメモリ選択基準 ===== | ||
| - | |||
| - | ^ 保存する値 ^ 最初に検討する領域 ^ 確認する内容 ^ | ||
| - | | 実際のデジタル入出力 | '' | ||
| - | | ラダー内部のON/ | ||
| - | | 一般的な整数と計算結果 | '' | ||
| - | | カウンタ現在値 | '' | ||
| - | | タイマ経過値 | '' | ||
| - | | 小数点を含む値 | '' | ||
| - | | 周期的な接点条件 | '' | ||
| - | |||
| - | ===== 10. 完了チェック ===== | ||
| - | |||
| - | 次の項目を説明または確認できればPhase 2は完了です。 | ||
| - | |||
| - | * '' | ||
| - | * MPINO-8A4R(T)-Sの'' | ||
| - | * BIT、BYTE、WORD、DWORDのサイズと符号付き値の範囲を確認した。 | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| - | * 実習を別プロジェクトとして保存し、ビルド結果を確認した。 | ||
| ===== トラブルシューティング ===== | ===== トラブルシューティング ===== | ||
| 行 223: | 行 172: | ||
| | 入力したアドレスが許可されません。 | 領域文字、アドレス範囲、B/ | | 入力したアドレスが許可されません。 | 領域文字、アドレス範囲、B/ | ||
| | メモリ領域設定を保存できません。 | 予想SRAM使用量が全SRAMを超え、赤色で表示されていないか確認します。 | | | メモリ領域設定を保存できません。 | 予想SRAM使用量が全SRAMを超え、赤色で表示されていないか確認します。 | | ||
| - | | 使用メモリマップにアドレスが表示されません。 | 正しい領域タブとラダー・コードフィルタを選び、アドレスを入力して'' | + | | 使用したメモリにアドレスが表示されません。 | 正しい領域タブとラダー・コードフィルタを選び、アドレスを入力して'' |
| | Cカウンタ値が予想と異なります。 | MPINO-8A4R(T)-Sの'' | | Cカウンタ値が予想と異なります。 | MPINO-8A4R(T)-Sの'' | ||
| - | | '' | + | | '' |
| - | | P32が点滅しません。 | '' | + | |
| ===== 関連文書 ===== | ===== 関連文書 ===== | ||
| + | |||
| + | * [[ja-jp_products: | ||
| + | |||
| + | * [[ja-jp_products: | ||
| + | |||
| + | * [[ja-jp_products: | ||
| * [[: | * [[: | ||
ja-jp_products/mpino_studio2/memory.1788849790.txt.gz · 最終更新: by 127.0.0.1
