====== MPINO STUDIO 2 Phase 5・Arduino Codeの編集 ======
Arduino Codeファイルの作成・管理、コード作成、自動補完、定義への移動、検索・置換、コードエラーの確認方法を説明します。
{{ :ja-jp_products:mpino_studio2:code-editor-learning-path.svg?1000 |コードファイル選択から問題確認までのArduino Code編集手順 }}
===== 1. Arduino Code編集画面 =====
エクスプローラーの**コード**グループでファイルを選択すると、Arduino Code編集画面が開きます。番号は下の説明と同じ位置を示します。
{{ :ja-jp_products:mpino_studio2:code-editor-marked.svg?1000 |コードグループ、行番号と折りたたみ、コード入力領域、ミニマップを示すArduino Code編集画面 }}
* **1** コードグループ:プロジェクトに含まれるArduino Codeファイルを表示します。
* **2** 行番号・コードの折りたたみ:コード位置を確認し、関数やコードブロックを折りたたみ・展開します。
* **3** コード入力領域:Arduino C/C++コードを作成・修正します。
* **4** ミニマップ:ファイル全体の構造と現在表示している位置を確認します。
ファイルを選択すると、その内容が編集画面に表示され、エクスプローラーの選択項目も切り替わります。
===== 2. コードファイルの作成・管理 =====
==== 基本コードファイル ====
新規プロジェクトの最初のコードファイル名は''main''です。プロジェクトを初めて保存すると、プロジェクトファイル名に合わせて自動的に変更されます。
最初のコードファイルはプロジェクトのエントリーファイルです。コード一覧の先頭に固定され、名前変更・削除・移動はできません。
==== コードファイルの操作 ====
^ 操作 ^ マウス ^ キーボード ^ 結果 ^
| 追加 | **コード**グループの''+''、またはコードグループ・ファイルの右クリックメニューで**追加** | - | 新しい''.ino''ファイルが一覧の末尾に追加され、すぐに開きます。 |
| 名前変更 | ファイルをダブルクリック、または右クリックメニューの**名前の変更** | ''F2''または''Enter'' | 追加したコードファイルの名前を変更します。 |
| 削除 | ファイルの''×''、または右クリックメニューの**削除** | ''Delete'' | 確認画面で承認した後、ファイルを削除します。 |
| 一覧内の移動 | ファイルを上下にドラッグ | ''Ctrl + ↑''・''Ctrl + ↓'' | エクスプローラーで選択した追加ファイルを1つ移動します。 |
{{ :ja-jp_products:mpino_studio2:code-files-marked.svg?1000 |追加、基本ファイル、追加ファイル、名前変更と削除メニューを示すコードファイル管理画面 }}
コードファイル名に拡張子は入力しません。空の名前、ピリオドで始まる名前、''/''・''\''・''..''を含む名前、および大文字小文字だけが異なる重複名は使用できません。
追加ファイルの移動は現在の作業一覧に反映されます。プロジェクトを開き直すと、追加ファイルは名前順に並びます。
===== 3. コード作成・ファイル間での関数使用 =====
機能ごとにコードファイルを分けると、プロジェクトのコードを見つけて管理しやすくなります。次の例では、値の範囲を制限する関数を''control''ファイルに作成し、基本コードファイルから呼び出します。
==== ''control''ファイル ====
int limitValue(int value) {
return constrain(value, 0, 100); // 値を0~100の範囲に制限します。
}
==== 基本コードファイル ====
void setup() {
}
void loop() {
D0 = limitValue(D1); // D1を0~100に制限してD0へ保存します。
ladderLoop(); // 作成したラダーロジックを実行します。
}
* ''limitValue()''はArduino標準関数''constrain()''を使用し、受け取った値を0~100の範囲で返します。
* 同じプロジェクトの複数の''.ino''ファイルは1つのスケッチとして一緒にビルドされるため、別のファイルに作成した関数を呼び出せます。
* この例は''MPINO-8A4R(T)-S''プロジェクトで実際にコンパイルして確認しました。
{{ :ja-jp_products:mpino_studio2:code-files-share.svg?1000 |controlファイルのlimitValue関数定義と基本コードファイルからの呼び出し }}
''D0''と''D1''の保存形式、およびArduino CodeとPLCメモリの共有方法は、[[ja-jp_products:mpino_studio2:memory|Phase 2・メモリを理解する]]を参照してください。ラダーのボックス関数からArduino関数を呼び出す方法は、[[ja-jp_products:mpino_studio2:box_functions:free_input|Arduino Code関数呼び出しの詳細]]で確認できます。
**注意:** ''loop()''から''ladderLoop()''を削除すると、作成したラダーロジックは実行されません。
===== 4. 自動補完を使用する =====
関数名や変数名の先頭を入力すると、使用できる項目が自動補完一覧に表示されます。
- コード入力領域に関数名または変数名の先頭を入力します。
- 一覧が開かない場合は''Ctrl + Space''を押します。
- ''↑''・''↓''で項目を選択します。
- ''Enter''または''Tab''で選択した項目を入力します。
前の例で''limitV''を入力すると、別のコードファイルに作成した''limitValue()''を選択できます。
{{ :ja-jp_products:mpino_studio2:code-autocomplete.svg?1000 |limitVを入力したコード行とlimitValueの自動補完候補 }}
^ 自動補完項目 ^ 表示例 ^ 確認内容 ^
| プロジェクトの関数・変数 | ''limitValue()'' | プロジェクトのコードファイルに作成した名前 |
| Arduino標準関数・定数 | ''constrain()''・''HIGH'' | Arduinoが提供する関数と定数 |
| ボードコア・ライブラリ | 解析された関数・定数 | 選択したボードコアとプロジェクトのライブラリ項目 |
ボードコアとライブラリの項目はコード解析の完了後に表示されることがあります。自動補完で入力した場合も、引数の数と型は関数定義に合わせる必要があります。
===== 5. 定義へ移動する =====
関数名または変数名にカーソルを置き、''F12''を押すと定義位置を確認できます。
^ 定義位置 ^ ''F12''の結果 ^
| 現在のコードファイル | 定義がある行へ移動します。 |
| 別のコードファイル | そのファイルを開き、定義がある行へ移動します。 |
| Arduinoコア・ライブラリ | 読み取り専用の定義画面を開きます。 |
基本コードファイルの''limitValue()''で''F12''を押すと、''control''ファイルの関数定義へ移動します。''constrain()''などのArduinoコア関数は、読み取り専用の定義画面で確認できます。上部の閉じるボタンまたは''Esc''で画面を閉じます。
{{ :ja-jp_products:mpino_studio2:code-definition-marked.svg?1000 |関数呼び出し位置、F12で開いた定義、読み取り専用状態 }}
* **1** 呼び出し位置:定義を確認する関数名です。
* **2** 関数定義:''F12''で移動した宣言または実装位置です。
* **3** 読み取り専用:Arduinoコアとライブラリの定義を編集できない状態です。
^ フォーカス位置 ^ ''F12''の動作 ^
| Arduino Code | 定義へ移動 |
| ラダーロジック | 立ち下がりエッジ接点を作成 |
同じショートカットでも、選択中の編集画面によって動作が異なります。
===== 6. 検索・置換 =====
Arduino Codeとラダーロジックでは、現在の編集画面に対応した検索・置換画面を使用します。
==== Arduino Codeでの検索・置換 ====
^ 操作 ^ キー・ボタン ^ 結果 ^
| 検索を開く | ''Ctrl + F'' | 現在のコードファイルで文字列を検索します。 |
| 置換を開く | ''Ctrl + H'' | 検索文字列と置換文字列を入力します。 |
| 前・次の結果 | ''Shift + Enter''・''Enter''または画面ボタン | 検索結果の間を移動します。 |
| 置換 | **置換**・**すべて置換** | 選択した結果または現在のファイル内のすべての結果を変更します。 |
大文字小文字、単語単位、正規表現のオプションを使用できます。
==== ラダーロジックでの検索・置換 ====
ラダーグリッドにフォーカスを置き、''Ctrl + F''を押します。現在のラダーまたはすべてのラダーで、接点・コイルのアドレスとセル内のコード文字列を検索・置換できます。
^ 検索方式 ^ 検索対象 ^ 置換 ^
| 通常検索 | アドレスとセル内コード | 1件置換・すべて置換を使用可能 |
| 単語単位 | ''M1''の検索では''M10''を除外 | 完全なアドレスだけを検索 |
| ボックス関数検索 | ボックス関数の命令語名 | 完全一致だけを検索し、置換は使用不可 |
{{ :ja-jp_products:mpino_studio2:find-replace-comparison.svg?1000 |Arduino Codeとラダーロジックの検索・置換画面の比較 }}
===== 7. コードエラーを確認する =====
新しいエラーまたは警告が追加されると、下部の**問題**パネルでメッセージと位置を確認できます。パネルが表示されていない場合は''Ctrl + J''を押し、**問題**タブを選択します。
- 問題タブのバッジでエラーと警告の合計を確認します。
- 重大度とエラーメッセージを確認します。
- 表示されたファイル名と行・列の位置を確認します。
- 基本コードファイルの問題項目を選択すると、そのコード位置へ移動します。
{{ :ja-jp_products:mpino_studio2:code-problems-marked.svg?1000 |問題タブ、エラーメッセージ、ファイルと行の位置、エラーのあるコード行 }}
* **1** 問題タブ・件数:確認するエラーと警告の合計です。
* **2** エラーメッセージ:原因を確認する診断内容です。
* **3** ファイル・行・列:問題が検出された位置です。
* **4** コード位置:問題項目を選択して移動した行です。
追加したコードファイルで発生したエラーは、問題項目のファイル名と行番号を確認し、エクスプローラーから該当ファイルを直接開いてください。
ビルド出力全体の確認と再ビルド方法は、[[ja-jp_products:mpino_studio2:first_project|Phase 1・最初のプロジェクトを作る]]を参照してください。
===== 8. Arduino Code編集ショートカット =====
ショートカットは**ファイル → 環境設定 → ショートカット**で変更できます。
{{ :ja-jp_products:mpino_studio2:code-editor-shortcuts.svg?1000 |Arduino Code編集で使用する主なショートカット }}
^ 操作 ^ 既定のショートカット ^ 適用位置 ^
| 自動補完を開く | ''Ctrl + Space'' | コード入力領域 |
| 定義へ移動 | ''F12'' | コードの関数・変数名 |
| 検索 | ''Ctrl + F'' | コードまたはラダー編集領域 |
| 置換 | ''Ctrl + H'' | Arduino Code編集領域 |
| 下部パネルの表示・非表示 | ''Ctrl + J'' | 作業画面全体 |
| コードファイル名の変更 | ''F2''または''Enter'' | エクスプローラーの追加コードファイル |
| コードファイルの削除 | ''Delete'' | エクスプローラーの追加コードファイル |
| コードファイルの移動 | ''Ctrl + ↑''・''Ctrl + ↓'' | エクスプローラーの追加コードファイル |
''F2''、''F12''、''Delete''、''Ctrl + ↑''・''Ctrl + ↓''は、フォーカス位置によって別の機能を実行することがあります。使用前にコード領域またはエクスプローラーの対象ファイルを選択してください。
===== 9. トラブルシューティング =====
^ 症状 ^ 確認項目 ^
| 自動補完一覧が開きません。 | コード入力領域を選択して''Ctrl + Space''を押し、関数名のスペルを確認します。 |
| 別のコードファイルの関数が自動補完にありません。 | 関数名と波かっこ、両方のファイルが同じプロジェクトにあることを確認し、コード解析の完了を待ちます。 |
| ''F12''を押しても定義が開きません。 | 関数名にカーソルがあること、Arduino Codeにフォーカスがあること、コードに構文エラーがないことを確認します。 |
| 定義画面を編集できません。 | Arduinoコアとライブラリの定義は読み取り専用で開きます。 |
| 予想と異なる検索画面が開きます。 | 現在選択している編集対象がArduino Codeかラダーロジックかを確認します。 |
| 最初のコードファイルを変更できません。 | 最初のコードファイルはプロジェクトが管理するため、名前変更・削除・移動はできません。 |
| 追加コードファイルの問題項目から該当行へ移動しません。 | 問題項目のファイル名と行番号を確認し、エクスプローラーからファイルを直接開きます。 |
===== 関連文書 =====
* [[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:memory|Phase 2・メモリを理解する]] — Arduino CodeとPLCメモリの共有
* [[ja-jp_products:mpino_studio2:ladder_editing|Phase 3・ラダー編集の基礎]] — ラダーセル、接点、コイルの編集
* [[ja-jp_products:mpino_studio2:box_functions|Phase 4・ボックス関数]] — ボックス関数とArduino関数呼び出し
* [[ja-jp_products:mpino_studio2|MPINO STUDIO 2ユーザーマニュアル]]