在很多时候,有多个任务具有动作命令指令。为了防止多个任务运行动作命令时,对仅有的一个机器人产生的控制冲突,有必要进行连锁处理。一个任务进行爱普生机器人控制时,另一个任务则会等待控制权。这样,各任务就可以完全按照预定的顺序执行各自的动作语句。
通过 MemSw 与 Wait 指令同时使用,可以做任务间的互锁。
每个任务在执行动做之前,通过 MemSw 与 Wait 指令确认机器人可用之后,再开始动作指令的执行。
MemSw 函数用于返回指定存储器I/O位的状态。
格式MemSw(位编号)
参数位编号 以表示存储器I/O位编号的数值进行指定。
返回值指定的位为ON时返回“1” 返,为OFF时返回“0” 返。
说明MemSw用于返回1个存储器I/O位的状态。MemSw通常与MemOn及MemOff命令配套使用。
MemOn用于将指定的位设为ON。
MemOff则用于将指定的位设为OFF。
举例:
Function main
Integer I
MemOff 1
Xqt 2, task2
For i = 1 to 100
Wait MemSw(1) = Off //在进行 go 指令之前等待机器人的控制权
Go P(i)
MemOn 1 // go 指令执行之后,释放机器人的控制权
Next I
Fend
Function task2
Integer I
For i = 101 to 200
Function task2
Integer I
For i = 101 to 200
Wait MemSw(1) = On //在进行 go 指令之前等待机器人的控制权
Go P(i)
MemOff 1 //go 指令执行之后,释放机器人的控制权
Next I