====== MPINO STUDIO 2 Phase 4-9・自由入力形式ボックス関数 ====== 代入式、計算式、Arduino関数呼び出しをボックス関数に直接入力する方法を説明します。 {{ :ja-jp_products:mpino_studio2:free-input-flow.svg?1000 |代入式、計算式、Arduino関数呼び出しをボックス関数に直接入力する方法を説明します。 }} Arduinoコードの関数を呼び出す自由入力形式ボックス関数の実際のラダー画面です。 {{ :ja-jp_products:mpino_studio2:ladder-free-call-2x.png?1000 |Arduinoコードの関数を呼び出す自由入力形式ボックス関数の実際のラダー画面です。 }} {{ :ja-jp_products:mpino_studio2:free-input-examples.svg?1000 |自由入力形式ボックス関数の入力値と実行結果の例 }} ===== 1. 自由入力形式の入力規則 ===== 命令パレットで**自由**を選択し、対応する式を1行で入力します。左側条件がONのときに実行され、接点がなければ毎スキャン実行されます。 ^ 形式 ^ 入力値 ^ 意味 ^ | 代入 | ''D0 = (D1 + 10) * 2'' | 計算結果を書き込み可能なアドレスに格納 | | 関数結果の代入 | ''D0 = readSensor()'' | Arduino関数の戻り値を格納 | | 単独関数呼び出し | ''doWork()'' | 戻り値を格納せず関数を実行 | ===== 2. 代入式 ===== ''D0 = D0 + 1''は実行するたびにD0を1増やします。''R0 += 1.5''のような複合代入式も使用できます。 ^ 演算子 ^ 意味 ^ | ''='' | 右側の計算結果を対象に格納 | | ''+='' ''-='' ''*='' ''/='' ''%='' | 対象と右側の値を計算し、同じ対象に格納 | | ''&='' ''%%|%%='' ''^='' ''<<='' ''>>='' | ビット演算またはシフト結果を同じ対象に格納 | ===== 3. Arduino関数呼び出し ===== Arduinoコードで作成した関数を呼び出せます。戻り値がある場合は''D0 = readSensor()''のようにメモリへ格納します。 int readSensor() { // Arduino標準関数でA0を読み取り、その値を返します。 return analogRead(A0); } ボックス関数に''D0 = readSensor()''と入力します。左側条件がONになると関数が呼び出され、戻り値がD0に格納されます。 ===== 4. キャスト ===== ''REAL''、''DW''、''WD''、''UD''、''UW''で計算値のデータ形式を明示できます。変換する値を括弧内に入力します。 ^ 命令 ^ 意味 ^ | ''REAL(D0)'' | 32ビット浮動小数点へ変換。整数除算を実数計算にする場合に使用 | | ''DW(D0)'' | 符号付き32ビット整数へ変換 | | ''WD(DD0)'' | 符号付き16ビット整数へ変換。上位ビットが切り捨てられる場合あり | | ''UD(D0)'' | 符号なし32ビット整数へ変換 | | ''UW(DD0)'' | 符号なし16ビット整数へ変換。上位ビットが切り捨てられる場合あり | キャスト名は大文字で入力し、括弧内には値を1つだけ入れます。キャストは右側の計算式で使用し、代入文の左側には使用できません。 ===== 5. トラブルシューティング ===== ^ 症状 ^ 確認項目 ^ | 関数が見つかりません。 | Arduinoコードに同じスペルと大文字・小文字で宣言されているか確認します。 | | 値が速く増えすぎます。 | 接点がなければ毎スキャン実行されます。1回だけ実行する場合は立ち上がりエッジ接点を使用します。 | ===== 関連文書 ===== * [[ja-jp_products:mpino_studio2:box_functions|Phase 4・ボックス関数]] * [[ja-jp_products:mpino_studio2:box_functions:logic_control|ロジック制御ボックス関数]] * [[ja-jp_products:mpino_studio2|MPINO STUDIO 2ユーザーマニュアル]]