ユーザ用ツール

サイト用ツール


ja-jp_products:mpino_studio2:memory

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ja-jp_products:mpino_studio2:memory [2026/09/08 22:56] – 바깥 편집 127.0.0.1ja-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メモリの違い**、アドレス表記、メモリ領域設定、プロジェクトでの使用箇所、特殊ビットメモリを説明します。
  
-^ 基準ボード ^ 完了目標 ^ +{{ :ja-jp_products:mpino_studio2:memory-learning-path.svg?1000 |メモリ理解の順序 }}
-| MPINO-8A4R(T)-S | メモリアドレスを区別し、プロジェクト内の使用箇所を探せること | +
- +
-{{ :ja-jp_products:mpino_studio2:memory-learning-path.svg?1000 |Phase 2でメモリを学ぶ順序 }}+
  
 > **スクリーンショットについて:** 画面は韓国語UIです。ボタンの位置、アイコン、ショートカットは同じです。 > **スクリーンショットについて:** 画面は韓国語UIです。ボタンの位置、アイコン、ショートカットは同じです。
行 27: 行 24:
 | ''T'' | WORD | タイマ現在値(符号付き内部WORDメモリ) | -32,768 ~ 32,767 | | ''T'' | WORD | タイマ現在値(符号付き内部WORDメモリ) | -32,768 ~ 32,767 |
 | ''R'' | Floating Point(32ビット) | 内部Floating Pointメモリ(実数メモリ) | 約-3.4028235E38 ~ +3.4028235E38 | | ''R'' | Floating Point(32ビット) | 内部Floating Pointメモリ(実数メモリ) | 約-3.4028235E38 ~ +3.4028235E38 |
 +
 +==== Arduinoコードとラダーロジックのメモリ共有 ====
 +
 +ラダーロジックとArduinoコードは、P・M・D・C・T・Rメモリの同じ保存領域を使用します。一方で書き込んだ値は、もう一方から同じアドレスで読み取れます。
 +
 +{{ :ja-jp_products:mpino_studio2:memory-sharing.svg?1000 |Arduinoコードとラダーロジックが同じPLCメモリを共有する構造 }}
 +
 +Arduinoコードでは、ラダーアドレスと同じ名前をそのまま使うか、配列形式で記述できます。どちらも同じメモリを参照します。
 +
 +  * ラダーの''M0'' ↔ Arduinoコードの''M0''または''M[0]''
 +  * ラダーの''D0'' ↔ Arduinoコードの''D0''または''D[0]''
 +  * ラダーの''R0'' ↔ Arduinoコードの''R0''または''R[0]''
 +
 +<code cpp>
 +void loop() {
 +  M0 = true;    // ラダーのM0ビット接点をON状態にします。
 +  D0 = 120;     // ラダーとArduinoコードでD0の整数値を共有します。
 +  R0 = 23.5f;   // ラダーとArduinoコードでR0の実数値を共有します。
 +
 +  ladderLoop(); // 上で保存した値を使ってラダーロジックを実行します。
 +}
 +</code>
 +
 +ラダーロジックで変更した値は、''ladderLoop()''の実行後にArduinoコードから読み取れます。同じスキャン内の読み書き順序は、''loop()''内で''ladderLoop()''を呼び出す位置に従います。
 +
 +> **入出力割り当ての注意:** P領域とボード機能に割り当てられたC領域は、ラダースキャン中に実際の入出力と同期します。これらの領域をArduinoコードと共有するときは、**設定 → ラダーピンマップ設定**でアドレスと入出力方向を先に確認してください。
  
 > **Pアドレスの注意:** Pアドレスは**ボードのピン編集**で確認および変更できます。Pアドレスの入出力方向と物理端子は、プロジェクトで選択したボードの定義に従います。 > **Pアドレスの注意:** Pアドレスは**ボードのピン編集**で確認および変更できます。Pアドレスの入出力方向と物理端子は、プロジェクトで選択したボードの定義に従います。
行 38: 行 61:
 **設定 → メモリ領域設定**で、使用するメモリ数を変更できます。(ショートカット: ''Ctrl + Shift + M'' **設定 → メモリ領域設定**で、使用するメモリ数を変更できます。(ショートカット: ''Ctrl + Shift + M''
  
-{{ :products:mpino_studio2:memory-settings-modal.png?430|図1. メモリ領域ごとの使用数と予想SRAM使用量を確認するメモリ領域設定画面}}+{{ :products:mpino_studio2:memory-settings-modal.png?430 |図1. メモリ領域ごとの使用数と予想SRAM使用量を確認するメモリ領域設定画面 }}
  
 ^ 領域 ^ 標準数 ^ 標準アドレス範囲 ^ ^ 領域 ^ 標準数 ^ 標準アドレス範囲 ^
行 68: 行 91:
 | ''C11'' ~ ''C99'' | 上記機能に直接割り当てられていないC領域 | 使用目的を確認してから選択 | | ''C11'' ~ ''C99'' | 上記機能に直接割り当てられていないC領域 | 使用目的を確認してから選択 |
  
-> **重要:** このボードで''C0''~''C10''を一般的なカウンタアドレスにすると、同じアドレスを使用するボード機能とデータが重なる可能性があります。カウンタを割り当てる前に、**ド・メモリ情報のピンマップ**と**使用メモリマップ**の両方を確認してください。+> **重要:** このボードで''C0''~''C10''を一般的なカウンタアドレスにすると、同じアドレスを使用するボード機能とデータが重なる可能性があります。カウンタを割り当てる前に、**設定 → ラダーピンマップ設定**と**設定 → 使用したメモリ**を確認してください。
  
 割り当てられるアドレスはボードごとに異なり、ユーザーが変更することもできます。**設定 → ラダーピンマップ設定**で確認してください。 割り当てられるアドレスはボードごとに異なり、ユーザーが変更することもできます。**設定 → ラダーピンマップ設定**で確認してください。
行 111: 行 134:
 ===== 5. プロジェクトで使用中のメモリを探す ===== ===== 5. プロジェクトで使用中のメモリを探す =====
  
-メニューから**表示 → 使用メモリマップ**を選択するか、''Ctrl+Shift+L''を押します。+メニューから**設定 → 使用したメモリ**を選択するか、''Ctrl+Shift+L''を押します。
  
-{{ :products:mpino_studio2:memory-map-modal.png?800 |図2. 使用メモリマップでアドレスと参照箇所を確認する画面 }}+{{ :products:mpino_studio2:memory-map-modal.png?800 |図2. 使用したメモリでアドレスと参照箇所を確認する画面 }}
  
 アドレスを変更するときやメモリ領域を縮小するときは、先にこの画面を確認すると重複使用と範囲エラーを減らせます。 アドレスを変更するときやメモリ領域を縮小するときは、先にこの画面を確認すると重複使用と範囲エラーを減らせます。
  
-===== 6. 時間で動く特殊ビットメモリ =====+===== 6. 特殊ビットメモリ =====
  
-''@''で始まる特殊ビットメモリは、一般的なP・Mメモリアドレスと異なり、時間の経過に合わせてMPINO Studio 2が状態を自動更新します。ラダーの接点または立上り・立下りエッジセルで使用できます。 +''@''で始まる特殊ビットメモリは、MPINO Studio 2が状態を自動更新します。ラダーのビット接点で使用できます。
- +
-{{ :ja-jp_products:mpino_studio2:special-memory-timing.svg?1000 |@100と@F1000特殊ビットメモリの時間動作比較 }}+
  
 ^ 形式 ^ 動作 ^ 例 ^ ^ 形式 ^ 動作 ^ 例 ^
 +| ''@ON'' | 常時ON | ビット接点を常に真にする |
 +| ''@OFF'' | 常時OFF | ビット接点を常に偽にする |
 | ''@<ms>'' | 指定した時間の境界を通過するたびに1回、1スキャンだけON | ''@100''は100msごとに1スキャンON | | ''@<ms>'' | 指定した時間の境界を通過するたびに1回、1スキャンだけON | ''@100''は100msごとに1スキャンON |
 | ''@F<ms>'' | 指定時間ON、同じ時間OFFを繰り返す | ''@F1000''は1秒ON、1秒OFFを繰り返す | | ''@F<ms>'' | 指定時間ON、同じ時間OFFを繰り返す | ''@F1000''は1秒ON、1秒OFFを繰り返す |
 +
 +''@ON''と''@OFF''は大文字と小文字を区別しないため、''@on''と''@off''も使用できます。
 +
 +{{ :ja-jp_products:mpino_studio2:special-memory-timing.svg?1000 |@100と@F1000特殊ビットメモリの時間動作比較 }}
  
 ''@100''は、プログラムのスキャンがちょうど100msの時刻に一致しなくても、境界を通過していれば1回ONになります。一定間隔で値を増やす処理や動作開始条件に使用できます。 ''@100''は、プログラムのスキャンがちょうど100msの時刻に一致しなくても、境界を通過していれば1回ONになります。一定間隔で値を増やす処理や動作開始条件に使用できます。
行 131: 行 158:
 ''@F1000''は、状態を手動で反転するコードを書かなくても1秒間隔のON/OFF条件を作ります。 ''@F1000''は、状態を手動で反転するコードを書かなくても1秒間隔のON/OFF条件を作ります。
  
-{{ :products:mpino_studio2:special-relay-example.png?500 |図3. ラダーセルに特殊接点を入力した例 }}+{{ :products:mpino_studio2:special-relay-example.png?420 |図3. ラダーセルに特殊ビットメモリを入力した例 }}
  
-特殊接点には次の入力規則があります。+特殊ビットメモリには次の入力規則があります。
  
-  * 時間単位はミリ秒(ms)です。+  * ''@<ms>''と''@F<ms>''時間単位はミリ秒(ms)です。
   * かっこは使いません。''@F(1000)''ではなく''@F1000''と入力します。   * かっこは使いません。''@F(1000)''ではなく''@F1000''と入力します。
-  * 接点セルまたは立上り・立下りエッジセルだけで使用します。+  * ビット接点だけで使用します。
   * 出力コイルのアドレスには使用しません。   * 出力コイルのアドレスには使用しません。
-  * ''@ON''のような任意の名前は使用できません。 
  
 ===== トラブルシューティング ===== ===== トラブルシューティング =====
行 146: 行 172:
 | 入力したアドレスが許可されません。 | 領域文字、アドレス範囲、B/W/D接頭辞への対応、''.n''ビットアクセスへの対応を順に確認します。 | | 入力したアドレスが許可されません。 | 領域文字、アドレス範囲、B/W/D接頭辞への対応、''.n''ビットアクセスへの対応を順に確認します。 |
 | メモリ領域設定を保存できません。 | 予想SRAM使用量が全SRAMを超え、赤色で表示されていないか確認します。 | | メモリ領域設定を保存できません。 | 予想SRAM使用量が全SRAMを超え、赤色で表示されていないか確認します。 |
-| 使用メモリマップにアドレスが表示されません。 | 正しい領域タブとラダー・コードフィルタを選び、アドレスを入力して''Enter''を押します。 |+| 使用したメモリにアドレスが表示されません。 | 正しい領域タブとラダー・コードフィルタを選び、アドレスを入力して''Enter''を押します。 |
 | Cカウンタ値が予想と異なります。 | MPINO-8A4R(T)-Sの''C0''~''C10''ボードピン割当との重複を先に確認します。 | | Cカウンタ値が予想と異なります。 | MPINO-8A4R(T)-Sの''C0''~''C10''ボードピン割当との重複を先に確認します。 |
-| ''@F1000''を入力できません。 | 出力コイルではなく接点またはエッジセルを選択しているか、かっこを付けていないか確認します。 |+| ''@F1000''を入力できません。 | ビット接点を選択しているか、かっこを付けていないか確認します。 |
  
 ===== 関連文書 ===== ===== 関連文書 =====
 +
 +  * [[ja-jp_products:mpino_studio2:activity_bar|Phase 8・アクティビティバーとサイドパネル]]
 +
 +  * [[ja-jp_products:mpino_studio2:menus_settings|Phase 7・メニューと環境設定]]
 +
 +  * [[ja-jp_products:mpino_studio2:monitoring|Phase 6・シリアル・ラダーモニタリング]]
  
   * [[:ja-jp_products:mpino_studio2:first_project|Phase 1 · 最初のプロジェクトを作る]]   * [[:ja-jp_products:mpino_studio2:first_project|Phase 1 · 最初のプロジェクトを作る]]
ja-jp_products/mpino_studio2/memory.1788875803.txt.gz · 最終更新: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki