注)このページは 取扱説明書 の後にお読みください。


ミッションファイルについて

ミッションファイルは Mission Reflector Fast ( 以下「 Reflector 」 )に与える
「動作命令」を記述をしたファイルです。


【 特 徴 】

◆ 記載自由度を保ちながら、簡単に記述できるように工夫しています。

◆ テキスト形式なので何かと取扱いが便利です。

◆ 暗号化することができます(取扱説明書参照)。

◆ ミッションファイルの置き場はそれぞれにアクセスできる環境が整っていれば、 ローカルPCでもLANで繋がったPCでもインターネットサーバでもかまいません。


【 記 述 】

Reflectorは出荷設定のまま起動すると、インストールフォルダ内にあるテスト用のミッションファイルを参照し動作シミュレーションをするようにしてありますが、 下図の白文字部分はそのミッションファイル 「testmission.txt」(以下テストミッション) をメモ帳やワードパッドなどのテキストエディタで開き見た様子を示しています。 (図をクリックすると図を別ウインドウでも開くので参照しやすくなります。)

★項目リンク★

 《 基 本 》

 《 命令詳細 》 (丸番は左図に対応)

  @ 外部ファイル実行命令
  A 遅延命令
  B ループ命令
  C ジャンプ命令
  D 一時停止命令
  E 終了命令
  F リロード命令
  G ミッション切替命令
  H ログ操作命令
  I 接続パラメータ変更命令
  J 文字列記憶命令
  K 命令実行条件
  L 外部データの取込


《 基 本 》

★ 命令は基本的に処理の種類(「=」の左側)と動作内容(「=」の右側)で構成されます。

★ 命令の実行に条件をつける場合は、命令の左側に( )で括って記載します。

★ 命令は上から動作させる順番に、1行に1命令づつ半角で記載(ファイル名やパス名などを除く) していきます。 命令は大文字でも小文字でも構いません。空白行は自由に挿入してもらってかまいませんが(上図参照)、個々の命令の中にはスペースを設けず左寄せで記載してください。

★ * # ? ! < > [ ] @ % : ; の半角文字のいずれかが先頭にある場合、その行はメモ書きとみなされ動作スルーとなります。

★ これら命令を記載したミッションファイルはテキストエディタ等を使って作成し、 必ず 「テキスト形式」 で保存します。ただし拡張子は「.txt 」でなくても全くかまいません。 なお作者が推奨するミッションの拡張子は「.mdf ( mission data file の略 ) 」 で、 これは関連づけ登録させるときに都合がよい(他に影響しない)ことや、 そのファイルがミッションである事が明確になること、関係者以外による安易な閲覧を避けることなどが理由です。

★ 作成したミッションファイルは ユーザ設定 の「ミッション用ユーティリティ」で暗号化する事ができます。 また暗号化したファイルを復号化(暗号化前の状態に戻す)する事もできます。

★ 作成したミッションファイルは配置先に応じたツール(ローカルやLANなら「エクスプローラ」、インターネットなら「FTPソフト」など)を使って転送します。 インターネットへの転送は ユーザ設定 の「ミッション用ユーティリティ」で可能ですが、 ショートカットアイコンへのドロップだけでファイルをアップロードできる「 ドロップFTP 」(フリーソフト)も簡単でお勧めです。


《 命令詳細 》

@ 外部ファイル実行命令

外部のファイルを実行します。WINDOWS上で動作するものなら、アプリケーション実行ファイル(拡張子EXE)に限らず、 バッチファイル、テキストファイル、htmlファイル、画像ファイル、音楽ファイルなどアプリケーションに関連付けされたデータファイルは全て指定することができます (ただし、書込みとぶつかるためログファイルをこの命令で開くのは禁止です。後述の「ログ操作命令」で行ってください。)。

この命令には実行フローの異なる 「並行実行」 と 「直列実行」 の2つのモードがあります。

【 並列実行 】

指定した外部ファイルをミッションフローと分離並行して実行させます。 Reflector は起動させた外部ファイルの動作進行に関係なく、次行の処理へ進みます。

並列実行は、「EXEC/P=」の後ろに実行させる外部ファイルのパス名を書き指定します(パス名を""で括る必要はありません)。 さらに「&」を付記し、その後ろで起動パラメータを指定することができます(パラメータの記載方法と内容は起動させるプログラムによります。)

例:
EXEC/P=equip\ctrl01.exe&/h ← ファイルを並列実行指示。パラメータ /h 付帯。 WLOG=制御01スタート   ← 上記ファイルの進展に依らずログへ書込みされる。

この命令に記載数の制限はありませんが、並行処理となるので遅延命令なしにむやみやたらにたくさん指定するのはお勧めしません。 特に低スペックマシンで実行する場合は負担が大きくなるのでご注意ください。

ログへは実行命令時に 「 外部ファイル並列実行 」 を記載します。ファイル終了は検知しません。


【 直列実行 】 (終了検出利用制御)

指定した外部ファイルをミッションフローの一部として実行させるものです。 Reflector は起動させた外部ファイルの終了(自動あるいは手動)を待って、次行の処理へ進みます。

直列実行は、「EXEC/S=」 の後ろに実行させる外部ファイルのパス名を書き指定します(パス名を""で括る必要はありません。)。 さらに「&」を付記し、その後ろで起動パラメータを指定することができます(パラメータの記載方法と内容は起動させるプログラムによります。)

例:
EXEC/S=equip\ctrl02.exe&/h ← ファイルを直列実行指示。パラメータ /h 付帯。 WLOG=制御02完了     ← 上記ファイルの終了を待ってログへ書込みされる。

この命令に記載数の制限はありませんが、実行した外部ファイルの終了が検知できないとミッション実行処理はそこで止まったままになりますので記載には注意が必要です。

ログへは起動した外部ファイル終了検知時に、「 外部ファイル直列実行 」 を記載します。

注) 実行する外部ファイルの種類により終了信号を発するタイミングは異なります。 一般的にはアプリケーションのウインドウを閉じてからですが、例えば Internet Explorer は起動して表示されるだけで出します。 これらの特性を踏まえ、外部ファイルを直列実行させる場合は意図したとおりのフローになるか、事前によくテストしておくことをお勧めします。

A 遅延命令

「WAIT=」の後ろに次の動作を行うまでの遅延時間(秒)を記載します。 ただし、24時間(86400秒)を超える遅延時間指定は正しく計測できません。 時間間隔が長い処理を行う場合はWINDOWSタスク等に登録してON処理/OFF処理を別々に指定時間に実行させる方が常駐させることなく快適です。
命令で指定した遅延時間と実行された時の実遅延時間と差が大きい場合は、ユーザ設定 の 「 遅延時間補正値 」 で調整できます。

この命令に記載位置や記載個数の制限はありません。

B ループ命令

指定範囲の命令をループして繰返動作させることができます。
繰返し起点は「RPT」と記載して指定します。省略すると先頭行が起点になります。
繰り返しの終点では「LOOP=」とその後ろで繰返回数を指定しますが(例:LOOP=4)、「LOOP=E」または「LOOP」とだけ記載した場合は回数指定のない連続繰返になります。

繰返し回数に上限はなく、置き場所も自由ですが、命令は1ミッションの中で1組しか記載できません。 2つ目以降の「LOOP」記載は動作スルーになります。 複雑なループ処理を必要とする場合はループブロックを1つのミッションファイルとして別に作り利用する方法をお勧めします (Gミッション切替命令を参照)。

C ジャンプ命令

指定範囲の命令をスルーさせることができます。
起点は「JUMP」と記載して指定します。終点は「LAND」と記載して指定します。この間の記載命令は無視され実行されません。 一時的にミッションの一定箇所を無効にしておきたい場合に便利です。

この命令に記載位置や記載個数の制限はありませんが、「LAND」を単独で使用すると不正命令になります。 また、命令実行条件を付加して「LAND」を機能させることはできません(不正命令扱い/「JUMP」は可能)。

D 一時停止命令

ミッションの実行処理を一時停止し、オペレーターからの解除指示を待ちます。
「PAUSE」と記載して指定します。命令が実行されると実行モニターのメッセージ表示部に一時停止中である旨と解除用のボタンが表示されます。 オペレーターが解除ボタンか一時停止ボタンを押すと次行以降の処理が再開されます。

この命令に記載位置や記載個数の制限はありませんが、オペレータによる解除が無いとミッション実行処理が継続しませんので記載には注意が必要です。

一時停止と解除はそれぞれログに記録されます。

E 終了命令 ( FINish )

Reflectorはミッションファイル記述の最終行を読むと自動的に終了しますが、意図的に終了位置を指示する場合には「FIN」または「END」を記述します。 ミッションの実行処理はこの命令の検出で終了しますので、それ以下に記載した命令は全て無効になります(実行条件が付加されている場合やジャンプ命令に挟まれている場合を除く)。 命令記述をいちいち削除することなく終了ポイントだけを移動できるので大変便利です。

実行時には「終了命令/処理終了」がログに記載されます。

F リロード命令 ( ReLoaD )

「RLD」と記載します。ループ命令に似ていますが、こちらはミッションファイルの再取得を行う命令です。 この命令が有効になっているうちは Reflectorは自動終了しませんので、遅延命令とを組み合わせることで、 ミッションファイルの更新をリアルタイムで処理に反映させる常駐化運転が可能になります。 ただし何らかの理由でミッションファイルを再取得できない場合には、ユーザ設定 「 ミッション受信失敗時の起動方法 」 が適用されます。 通信障害などの際にも Reflector を終了させず運転を継続させたい場合は [ 代用ミッションを使用 ] を選択し、代用ミッションファイル( submission.mdf ) に例えば以下のような記載をします。

例:
#submission ← ミッションタイトル(メモ書き)
WAIT=60 ← 待機時間(この場合1分)
RLD ← 代用ミッション内のリロード命令は、正規ミッションの取得再試行を意味する。

終了命令同様、この命令より下に記載した命令は全て無効になります(実行条件が付加されている場合やジャンプ命令に挟まれている場合を除く)。 ちなみにテストミッションの場合は「FIN」がより上に記述されているため「RLD」は無効の状態になっています。

ミッション取得結果はログに記載されます。

G ミッション切替命令 ( LoaD Another Mission )

指令元を現在のミッションから別のミッションへ移します。「LDAM=」の後ろにミッションファイルのパス名またはURLを記載してください。 (パス名の記載方法については取扱説明書の「 最初に読込むミッションファイルのパス 」に準じます。 パス名は""で括る必要はありません。)

何らかの理由で指定したミッションファイルが取得できない場合は、ユーザ設定 「 ミッション受信失敗時の起動方法 」 が適用されます。

また「FIN」や「RLD」同様、この命令より下に記載した命令は全て無効になります(実行条件が付加されている場合やジャンプ命令に挟まれている場合を除く)。

この命令により、別々のファイルで存在するミッションを繋いで機能させることができます。 最初に読み込む「親ミッション」で条件判定や選択を行い、次に実行する「子ミッション」で個別の動作をさせるといったことも可能です。 例えば以下のような記載をしたミッションファイルを最初に読み込ませるように設定すれば、 使用ミッション変更毎に Reflector のユーザ設定でいちいちパスを書き換える手間が解消されます。

例:
*LDAM=mission1.mdf ← ローカルファイル(メモ書き文字*で無効化)
LDAM=mission2.mdf ← ローカルファイル(有効になっている)
*LDAM=\\PC1\C\mission3.mdf ← LAN上ファイル(メモ書き文字*で無効化)
*LDAM=http://www.〜/mission4.mdf ← WEB上ファイル(メモ書き文字*で無効化)

この命令を用いてミッション取得する際に必要となるパラメーターはあらかじめ ユーザ設定 で指定しますが、 後述の I接続パラメータ変更命令 を用いてミッション中で指定することもできます。

ミッション取得結果はリロード命令同様、ログに記載されます。

H ログ操作命令 ( LOG-Control / Write to LOG )

ログに関係した命令です。現在以下の5つがありますが、記載位置や記載個数の制限はありません。

「LOGC=D」とすると、ログを ユーザ設定 で指定したアプリケーションを用いて表示します。 関連づけアプリケーションで開いた時ログ書込みと重なってエラーを出す場合には、この命令の後に適度な値で遅延命令を入れてください。

「LOGC=E」とすると、ログを一旦全て消去して初期化します。初期化後はログ先頭行に消去した旨の記載が入ります。

「LOGC=T」とすると、ログをインターネットサーバへ転送コピーします。 転送場所や転送に必要なパラメーターはあらかじめ ユーザ設定 で指定しますが、 後述の I接続パラメータ変更命令 を用いてミッション中で指定することもできます。

「LOGC=M」とすると、後述 J文字列記憶命令 で記憶させた文字列の一覧をログへ出力します。

「WLOG=」の後ろに任意の文字列(記号を含む)を記載すると、その文字列をログへ書き込みます。

I 接続パラメータ変更命令 ( Access ParaMeter )

外部ファイル実行命令やミッション切替命令でインターネットやLANのファイルを対象にするとき、 既定では ユーザ設定 の「ネットワーク設定」タブ内のパラメータが利用されますが、 これを一時的に変更してアクセスしたい場合、事前にこの命令を実施します。

なおこの命令で行った変更は Reflector 稼動中に限り保持され、再起動した場合は ユーザ設定 で入力した内容に戻ります。

命令番号とパラメータの内容は以下の通り。

各パラメータの詳細は、取扱説明書の「 ネットワーク設定タブ 」を参照してください。 以下は記載例です。

例:
EXEC/P=\\pc2\bunsyo\messege.txt ← 起動時設定でLAN上ファイルの実行
APM1=vz500    ←┐
APM2=pekorin   ←┼ アクセス前にログオン用のパラメータを変更しておく
APM3=Qt3dfs4  ←┘
LDAM=\\vz500\seigyo\mission8.txt ← LAN上の別PCからミッションを取得

J 文字列記憶命令 ( Memorize Character )

メモリーに任意の文字列を記憶させ、後述する「命令実行条件」の判定要素として利用します。 仮想コネクタやプロセス経過フラッグ、あるいは複合状態の代用など幅広い応用が可能となります。

書式は原則 「MC」 の後ろでメモリー番号、「=」 の後ろで文字列を指定しますが、
「MCR」 とすると全メモリー番号の記憶文字列をリセット(無文字記憶状態に)します。

メモリーは MC1 MC0 〜 MC9 の 9つ 10個が使用できます。 それ以外のメモリー指定は不正命令として処理されます。 同一メモリーへの文字列記憶命令は何度でも可能で、そのたびに記憶内容が上書きされます。つまり最新の記憶文字列が有効になります。

文字列には、丸括弧"("及び")"以外の文字が自由に使用できます。文字数に制限はありませんが、余りにも長い文字列の入力は処理スピードの観点からお勧めしません。

例:
MC1=いいかんじ    ← メモリー1 に "いいかんじ" を記憶。
MC1=いまいち     ← メモリー1 に "いまいち" を記憶(上書き)。
(MC1=いいかんじ)FIN ← メモリー1 が "いいかんじ" なら終了(この場合スルー)。
(MC1=いまいち)MCR ← メモリー1 が "いまいち" なら全メモリーリセット(実行)。
(MC1=)RLD       ← メモリー1 が 無文字 ならリロード(実行される)。

記憶文字列は Reflector 稼動中は保持され、リロードしてもミッションが切り替わっても有効です。 Reflector 終了時の取扱いについては ユーザ設定 の「一般設定タブ」-「文字列メモリー内容の保存」で選択します。

K 命令実行条件

「LAND」を除く上述の全ての命令に対して、記憶文字列の内容を実行条件として付帯することができます。

「MC」 の後ろでメモリー番号、「=」 の後ろで文字列を指定し、これらを( )で括って命令の左側に記載します。 メモリー番号は 1〜9 が指定できます。なお「=」の代わりに「#」を記載して不一致条件を指定することも可能です。

条件が合致しない場合は何の動作もせずスルーします。

例1:
(MC1=いいかんじ)FIN  ← MC1 が 「いいかんじ」 なら終了。
(MC1#いいかんじ)MCR ← MC1 が 「いいかんじ」 でなければ、全メモリーリセット。
(MC1=)RLD        ← MC1 が 無文字 ならリロード。

条件はその条件文読込時に1度だけ判定され命令を実行します。自動再判定はしません。

条件に記載個数の制限はありません(命令は1行中に1つしか書けません)。 ただし記載条件が多くなればその条件判別に費やす時間も多くなり、そのぶん命令動作に至るまでの時間は長くなります。

条件は横に複数並べるとANDの条件になります。

例2:
(MC2=1)(MC3=1)RLD  ← MC2かつMC3が「1」なら、リロードする。
(MC4=1)(MC5=1)WAIT=10 ← MC4かつMC5が「1」なら、、10秒待機して次行へ。
(MC2=0)(MC3=0)(MC4=0)(MC5=0)MC1=処理完了 ← MC1で条件代用
(MC1=処理完了)FIN ← MC1が「処理完了」(即ちMC2〜MC5が全て「0」)なら終了。

ちなみに、異条件同命令の要素を縦に複数並べるとORの条件になります。

例3:
(MC2=×)FIN ←┬ MC2〜MC5のいずれかが「×」なら、終了する。
(MC3=×)FIN ←┤
(MC4=×)FIN ←┤
(MC5=×)FIN ←┘

外部ファイル実行命令なども組み合わせると、さまざまな選択処理が可能になります。

L 外部データの取込 ( READ data ) Ver1.04〜

外部ファイルに記載されているテキストデータを1行づつデータメモリーに取り込み、上述の「命令実行条件」の判定要素として利用します。 エラー制御やフィードバック制御などに応用できます。

データ取込みは、「READ=」の後ろに外部データファイルのパス名を書き指定します(ただしインターネット上のデータ取込には対応していません)。

取込みは最大100行までで、最上行から順にデータメモリー DT0 〜 DT99 に格納されます。 取込みは何度でも可能で、一旦全てのデータメモリーをリセットしてから内容が書込みされます。

例:
EXEC/S=amic2313.exe&5:n03a03     ← 実行ファイルを直列実行。
READ=response.log             ← ログファイルのデータを取込。
(DT0=0)(DT1=1)EXEC/P=照明I点灯.bat ← 1行目が0で2行目が1ならファイル実行。

取込データは Reflector 稼動中は保持され、リロードしてもミッションが切り替わっても有効ですが、Reflector 終了時に全て揮発します。



【 変更履歴 】


Aug-2008 (ver1.00) : Mission Reflector Fast 公開に伴う新規作成

June-2009 (ver1.04) : 外部データ取込機能追加、文字列メモリーの追加他



Producted by CustomEng.