Xqt
ファンクション名で指定したプログラムを実行し、タスクを生成します。
書式
Xqt [タスク番号,] ファンクション名 [(引数リスト)] [, Normal | NoPause | NoEmgAbort ]
パラメーター
- タスク番号
- 実行するタスクのタスク番号を、1~32の整数で指定します。省略可能です。バックグラウンドタスクの場合、65~80の整数を指定します。
- ファンクション名
- 実行するファンクション名を指定します。
- 引数リスト
- 呼び出されたときにファンクションに渡される引数のリストを指定します。引数が複数ある場合は、カンマで区切ってください。省略可能です。
- タスクタイプ
- 省略可能です。通常は省略します。バックグラウンドタスクの場合、タスクタイプの指定は意味を持ちません。
- Normal
- 通常のタスクを生成します。
- NoPause
- Pauseステートメントや、Pause入力信号が発生したときに、および、安全扉開状態で一時停止しないタスクを生成する場合に指定します。
- NoEmgAbort
- 非常停止時、およびエラー発生時に処理を継続するタスクを生成する場合に指定します。
解説
Xqt は、指定されたファンクションを開始し、すぐに戻ります。
通常は、タスク番号パラメーターは必要ありません。タスク番号を省略すると、SPEL+が自動的にファンクションにタスク番号をつけるので、ユーザーがタスク番号の管理をする必要はありません。
注意
タスクタイプ
タスクタイプで、NoPauseやNoEmgAbortを指定することにより、コントローラー全体を監視するようなタスクを生成することができます。
ただし、これら特殊なタスクは、SPEL+のタスクの動作や特殊なタスクの制限事項を十分理解した上で使用することを強く推奨します。
特殊なタスクの詳細については、以下のマニュアルを参照してください。
"Epson RC+ ユーザーズガイド - 特殊なタスク"バックグラウンドタスク
バックグラウンドタスクでXqtを実行した場合、生成されるタスクもバックグラウンドタスクとなります。
バックグラウンドタスクからメインファンクションを実行するには、StartMain命令を使用してください。
バックグラウンドタスクの詳細は、以下のマニュアルを参照してください。
"Epson RC+ ユーザーズガイド - 特殊なタスク"
NoEmgAbort タスクとバックグラウンドタスクで実行できないコマンド
NoEmgAbortタスクとバックグラウンドタスクでは以下のコマンドを実行することはできません。
| A | Accel |
| AccelR | |
| AccelS | |
| AIO_TrackingStart | |
| AIO_TrackingEnd | |
| Arc | |
| Arc3 | |
| Arch | |
| Arm | |
| ArmCalib | |
| ArmCalibCLR | |
| ArmCalibSET | |
| ArmClr | |
| ArmSet | |
| AutoLJM | |
| AutoOrientationFlag | |
| AutoSTM | |
| AvoidSingularity | |
| B | Base |
| BGo | |
| BMove | |
| Box | |
| BoxClr | |
| Brake | |
| C | Calib |
| Cnv_AbortTrack | |
| Cnv_Accel | |
| Cnv_AccelLim | |
| Cnv_Adjust | |
| Cnv_AdjustClear | |
| Cnv_AdjustGet | |
| Cnv_AdjustSet | |
| Cnv_DownStream | |
| Cnv_Fine | |
| Cnv_Mode | |
| Cnv_OffsetAngle | |
| Cnv_QueAdd | |
| Cnv_QueMove | |
| Cnv_QueReject | |
| Cnv_QueRemove | |
| Cnv_QueUserData | |
| Cnv_Trigger | |
| Cnv_UpStream | |
| CollisionDetect | |
| CP | |
| CP_Offset | |
| Curve | |
| CVMove | |
| E | ECP |
| ECPClr | |
| ECPSet | |
| F | Find |
| Fine | |
| FineDist | |
| Force_Calibrate | |
| Force_ClearTrigger | |
| Force_Sensor | |
| Force_SetTrigger | |
| G | Go |
| H | Hand_On |
| Hand_Off | |
| Home | |
| HomeClr | |
| HomeSet | |
| Hordr | |
| I | Inertia |
| J | JTran |
| Jump | |
| Jump3 | |
| Jump3CP | |
| JRange | |
| L | LatchEnable |
| LimitTorque | |
| LimZ | |
| LimZMargin | |
| Local | |
| LocalClr | |
| M | MCal |
| MCordr | |
| Motor | |
| Move | |
| O | OLAccel |
| P | Pass |
| PerformMode | |
| Pg_LSpeed | |
| Pg_Scan | |
| Plane | |
| PlaneClr | |
| Power | |
| PTPBoost | |
| Pulse | |
| Q | QP |
| QPDecelR | |
| QPDecelS | |
| R | Range |
| Reset *1 | |
| Restart *2 | |
| S | Sense |
| SetLatch | |
| SFree | |
| SingularityAngle | |
| SingularityDist | |
| SingularitySpeed | |
| SLock | |
| SoftCP | |
| Speed | |
| SpeedFactor | |
| SpeedR | |
| SpeedS | |
| SyncRobots | |
| T | TC |
| TGo | |
| Till | |
| TLSet | |
| TLClr | |
| TMove | |
| Tool | |
| Trap | |
| V | VCal |
| VcalPoints | |
| VCls | |
| VCreateCalibration | |
| VCreateObject | |
| VCreateSequence | |
| VDefArm | |
| VDefGetMotionRange | |
| VDefLocal | |
| VDefSetMotionRange | |
| VDefTool | |
| VDeleteCalibration | |
| VDeleteObject | |
| VDeleteSeuence | |
| VEditWindow | |
| VGet | |
| VGoCenter | |
| VLoad | |
| VLoadModel | |
| VRun | |
| VSave | |
| VSaveImage | |
| VSaveModel | |
| VSet | |
| VShowModel | |
| VStatsShow | |
| VStatsReset | |
| VStatsResetAll | |
| VStatsSave | |
| VSD | |
| VTeach | |
| VTrain | |
| W | WaitPos |
| Weight | |
| WorkQue_Add | |
| WorkQue_Reject | |
| WorkQue_Remove | |
| WorkQue_Sort | |
| WorkQue_UserData | |
| X | Xqt *3 |
| XYLim |
- *1 Reset Errorは実行可能
- *2 Trap Error の処理タスクからは実行可能
- *3 バックグラウンドタスクからは実行可能
ループ文の中でXQT命令を頻繁に繰り返すような使い方はしないでください Do…Loop等ループ文の中でXQT命令を頻繁に繰り返すような使い方はしないでください。 コントローラーがハングアップ状態になる可能性があります。このような使い方をする場合は、 Wait命令(Wait 0.1)を入れてください。
参照
Function...Fend, Halt, Resume, Quit, StartMain, Trap (ユーザー定義トリガー)
Xqt使用例
Function main
Xqt flash 'タスクflashを開始
Xqt Cycle(5) 'タスクCycleを開始
Do
Wait 3 'タスクflashを3秒間実行
Halt flash 'タスクを一時停止
Wait 3
Resume flash 'タスクを再開
Loop
Fend
Function Cycle(count As Integer)
Integer i
For i = 1 To count
Jump pick
On vac
Wait .2
Jump place
Off vac
Wait .2
Next i
Fend
Function flash
Do
On 1
Wait 0.2
Off 1
Wait 0.2
Loop
Fend