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