ユーザ用ツール

サイト用ツール


ja-jp_products:mpino_studio2:box_functions

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


MPINO STUDIO 2 Phase 4・ボックス関数

ボックス関数の入力・修正方法、実行条件、MPINO Studio 2で使用できるボックス関数を説明します。

ボックス関数の入力・修正方法、実行条件、MPINO Studio 2で使用できるボックス関数を説明します。

1. ボックス関数の作成

命令の作成方法

  1. ラダーセルを選択し、Ctrl + Enterでボックス関数を作成します。
  2. 編集画面でカテゴリと命令を選択します。
  3. 選択された引数を入力し、Tabで次の引数へ移動します。
  4. 入力後、Enterまたは確認を押します。

ボックス関数編集画面では、命令を探して引数を入力します。番号は下の説明と同じ位置を示します。

ボックス関数編集画面では、命令を探して引数を入力します。番号は下の説明と同じ位置を示します。

  • カテゴリ:タイマー、カウンター、演算など命令の種類を選択します。
  • 命令一覧:選択したカテゴリで使用する命令を選びます。
  • 命令入力:命令と引数を1行で入力します。
  • 説明:選択した命令の動作、引数、例を確認します。
  • 確認・キャンセル:入力値をセルに保存するか、変更を取り消します。

命令の読み方

カテゴリを選択して命令を押すと、入力欄に基本形式が入り、最初の引数が選択されます。値を入力し、Tabで次の引数へ移動します。定型命令では命令名と引数を空白で区切ります。

カテゴリを選択して命令を押すと、入力欄に基本形式が入り、最初の引数が選択されます。値を入力し、''Tab''で次の引数へ移動します。定型命令では命令名と引数を空白で区切ります。

2. ボックス関数を修正する

入力済みのボックス関数を修正するには、セルを選択してEnterを押すか、ダブルクリックします。別の命令を選択すると、入力欄全体が新しい命令の基本形式に変わります。確認は変更を保存し、キャンセルは編集前の値に戻します。

3. ボックス関数の実行条件

左側の接点から届くON・OFF状態がボックス関数の入力です。タイマーとカウンターは入力がOFFのときも、現在値と完了状態を命令ごとの規則で処理します。左側に接点がなければ入力は常にONです。INC D0のような累積命令を1回だけ実行する場合は立ち上がりエッジ接点を使用します。

左側の接点から届くON・OFF状態がボックス関数の入力です。タイマーとカウンターは入力がOFFのときも、現在値と完了状態を命令ごとの規則で処理します。左側に接点がなければ入力は常にONです。''INC D0''のような累積命令を1回だけ実行する場合は立ち上がりエッジ接点を使用します。

4. 定型命令と自由入力形式

定型命令はパレットに登録された44種類で、命令ごとに入力形式と引数の数が決まっています。自由入力形式では計算式を含む代入式、またはArduino関数呼び出しを直接入力します。

区分 入力例 使用基準
定型命令 MOV D0 D1 パレットから命令を選択し、表示された引数を入力
自由入力形式 D0 = readSensor() Arduinoコードで作成した関数呼び出し、または対応する式を直接入力

Arduino Codeの関数呼び出し

以下の2つの画面は、Arduino Codeに記述したsetMotor()関数と、ラダーロジックから同じ関数を呼び出すボックス関数を示します。

Arduino Codeに関数を記述する

Arduino CodeにsetMotor()関数を記述した画面

ラダーロジックから関数を呼び出す

M0接点がONのときにsetMotor(100)を呼び出すボックス関数

ボックス関数に入力する関数名の大文字・小文字、引数の数、データ型はArduino Codeの関数定義と一致させます。末尾にセミコロンは付けません。この例では、M0接点がONのときにsetMotor(100)を呼び出します。

Arduino Codeの関数呼び出しの詳細を見る

5. ボックス関数一覧

カテゴリ 命令 機能
タイマーボックス関数 TON 入力がONの間は時間を積算し、設定値に達すると完了状態をONにします。入力がOFFになると、現在値と完了状態を0に戻します。
TOFF 入力がONになると完了状態をすぐにONにします。入力がOFFになってから設定時間が経過すると、完了状態をOFFにします。
TPL 入力がONに変わった時点で完了状態をONにします。入力がOFFになる時点と設定時間が終了する時点のうち、先に発生した時点でOFFにします。
TMON 入力が一度ONになると、設定時間の間は完了状態をONにします。その間は入力の変化と再入力を受け付けません。
TMR 入力がONの間は時間を積算します。入力がOFFになると現在値と完了状態を保持し、次にONになるとその値から積算を再開します。初期化にはラダーRESETコイルを使用します。
TAON TONと同じオンディレイ動作を100 msティックで処理します。
TAOFF TOFFと同じオフディレイ動作を100 msティックで処理します。
TAPL TPLと同じ入力保持パルス動作を100 msティックで処理します。
TAMON TMONと同じワンショットパルス動作を100 msティックで処理します。
TAMR TMRと同じ積算動作を100 msティックで処理します。初期化にはラダーRESETコイルを使用します。
カウンターボックス関数 CTU 左側条件がOFFからONへ変化するたびに、現在値を1増やします。現在値が設定値以上になると完了状態をONにし、最大値で停止します。
CTD 現在値に設定値を読み込んだ後、左側条件の立ち上がりエッジごとに1減らします。現在値が0になると完了状態をONにし、0で停止します。
CTUD 左側条件がONの間、増加入力の立ち上がりエッジで1を加え、減少入力の立ち上がりエッジで1を引きます。両方が同じスキャンで立ち上がった場合、値は変化しません。
ビット・ラッチボックス関数 SET 左側条件がONのとき、Mビットまたは出力に設定されたPビットへONを格納します。条件がOFFになった後もONを保持します。
RST 左側条件がONのとき、Mビットまたは出力に設定されたPビットへOFFを格納します。タイマーとカウンターの初期化には、ボックス関数RSTではなくラダーRESETコイルを使用します。
算術ボックス関数 ADD 2つの値を加算し、結果を対象に格納します。
SUB 1つ目の値から2つ目の値を減算し、結果を対象に格納します。
MUL 2つの値を乗算し、結果を対象に格納します。
DIV 1つ目の値を2つ目の値で除算し、商を対象に格納します。整数同士の計算では小数部を格納しません。
MOD 1つ目の値を2つ目の値で除算し、余りを対象に格納します。
INC 対象の値を1増やし、同じアドレスに格納します。
DEC 対象の値を1減らし、同じアドレスに格納します。
SCALE 入力範囲の整数値を出力範囲の整数値へ線形変換し、対象に格納します。入力範囲外の値は近い境界値に制限し、IN_MINとIN_MAXが同じ場合はOUT_MINを格納します。
FLOOR ソース値以下で最大の整数を対象に格納します。たとえば12.8は12、-1.2は-2になります。
SQRT ソース値の平方根を対象に格納します。小数部を保持する場合はRメモリを対象に使用します。
転送ボックス関数 MOV ソース値を1つ、対象にコピーします。
GMOV 連続するD・C・T WORDのソース領域を、同じ順序で対象領域へコピーします。
FMOV D・C・T WORDアドレス1つの値を読み取り、対象の連続WORD領域を同じ値で埋めます。
ビット演算ボックス関数 WAND 2つのWORDの各ビットをAND演算し、結果を対象に格納します。
WOR 2つのWORDの各ビットをOR演算し、結果を対象に格納します。
WXOR 2つのWORDの各ビットをXOR演算し、結果を対象に格納します。
WNOT ソースWORDの各ビットを反転し、結果を対象に格納します。
SHL WORDを左へシフトし、結果を対象に格納します。左へ出たビットを捨て、右の空きを0で埋めます。シフト数には0~15を使用します。
SHR D WORDを右へ論理シフトし、結果を対象に格納します。右へ出たビットを捨て、左の空きを0で埋めます。
ROL D・C・T WORDを左へローテートし、結果を対象に格納します。左へ出たビットは右端へ戻します。
ROR D・C・T WORDを右へローテートし、結果を対象に格納します。右へ出たビットは左端へ戻します。
変換ボックス関数 INV ソースWORDの各ビットを反転し、結果を対象に格納します。変換カテゴリでWNOTと同じ演算を使用する場合に選択します。
NEG ソース値の符号を反転し、結果を対象に格納します。
H2D 4桁のBCDとして格納されたソースWORDを10進整数として読み取り、対象に格納します。
D2H 0~9999の10進整数を4桁のBCDに変換し、対象WORDに格納します。
ロジック制御ボックス関数 JMP 左側条件がONのとき、同じラダー内の後ろにあるラベルへ移動し、その間のラダー行を飛ばします。飛ばした出力と計算対象は以前の状態を保持します。
JMPN 左側条件がOFFのとき、同じラダー内の後ろにあるラベルへ移動します。その他の動作と制限はJMPと同じです。
MCS 0~15のレベルでマスターコントロール区間を開始します。左側条件がOFFのとき、対応するMCSCLRまでの区間内のコイルをOFFとして処理します。
MCSCLR 指定したレベルのマスターコントロール区間と、その内側の区間を終了します。
自由入力形式ボックス関数 自由入力形式ボックス関数 D0 = D0 + 1 · R0 += 1.5 · D0 = readSensor()

6. ビルドエラーの確認

不正な命令や引数はビルド時にエラーとして表示されます。メッセージのラダー名と行番号を確認し、該当するボックス関数を開き直します。

症状 確認項目
命令が見つからない 命令名のスペルと定型命令一覧を確認
引数数エラー 詳細ページの入力形式と空白を確認
アドレスまたは型エラー Phase 2で対象メモリの種類とデータ形式を確認
0除算の可能性 DIVMODSCALEの除数または入力範囲を確認

関連文書

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki