IOBLOCK ON/OFF (Statement)


Concurrently executes a non-motion instruction such as an I/O or calculation instruction during execution of a motion instruction.


IOBLOCK {ON|OFF}


Use IOBLOCK ON and IOBLOCK OFF as a pair. Non-motion instructions such as plural I/O instructions or calculation instructions that follow a motion instruction, can be executed concurrently during execution of a robot motion instruction.
When a robot motion instruction is issued, the controller interrupts the concurrent execution and waits the currently executed operation (pass start in the case of pass motion) to be completed. Then, the controller executes the next motion instruction. If a non-motion instruction follows the next motion instruction, it is also concurrently executed with the motion instruction. If IOBLOCK OFF is executed during execution of a motion instruction in IOBLOCK, the system proceeds to the next step after execution of the motion instruction.


  • Concurrent processing is not executed in the following cases.
    Execution of the next step should stop until the motion instruction is finished (from designation of the pass motion until the pass motion starts) in all cases.
    • If a motion option is added to a motion instruction
    • If you execute CHANGEWORK, CHANGETOOL, SPEED, JSPEED, ACCEL, or JACCEL.
    • If you execute the conventional language library of [aspChange], [aspACLD], arm motion library [mvSetPulseWidth], [mvSetTimeOut], [mvReverseFlip], [mvResetPulsetWidth], or [mvResetTimeOut].
  • If the system is restarted after a step or instantaneously stop of the robot during robot movement, the robot may not execute concurrent motion with a non-motion command.
  • If the robot is stopped after a step during the first motion when a motion instruction is repeated twice in IOBLOCK, the robot stops after a step once the next motion is finished. During execution of the first motion, if you instantaneously stop and run the step, the robot also stops after the step once the next motion is finished.
    Example
    IOBLOCK ON
    MOVE P, JO
    During movement to JO, even if the robot is stopped after a step, the next motion of MOVE P, J1 is executed.After that, the robot stops after a step.
    MOVE P, J1
    SET IO[1]
    IOBLOCK OFF

  • The range of IOBLOCK is valid only in a defined program, not in a subprogram.
    Example
    PROGRAM PRO1
    TAKEARM
    DEFPOS 1p1, 1p2
    IOBLOCK ON
    CALL SUB1
    MOVE P, 1p1, 1p2
    SET IO[1]
    SET IO[2]
    IOBLOCK OFF
    :
    :
    For this type of program, IOBLOCK defined in PRO1 is not valid in SUB1. The valid IOBLOCK range is independent for each program.
  • IOBLOCK is disabled in the teaching check mode.


TAKEARM
'Obtains robot control priority.
IOBLOK ON
'Concurrently executes an I/O instruction with the next
'motion instruction.
MOVE P, (902.7,0,415.3,180,50,180,1)
'Moves (PTP control) to the coordinates
'(902.7,0,415.3,180,50,180,1).
SET IO[240]
'Sets the port 240 BIT type to ON.
SET IO[241],40
'Sets the port 241 BIT type to ON for 40 ms.
SET IO[SOL1]
'Sets the port designated by I/O variable SOL1 to ON.
SET IO[104 TO 110]
'Sets the port 104 to 110 BIT type to ON.
IF IO[242] THEN
RESET IO[240]
'Sets the port 240 type to OFF.
RESET IO[SOL1]
'Sets the port designated by I/O variable SOL1 to OFF.
RESET IO[104 TO 110]
'Sets the port 104 to 110 BIT type to OFF.
ENDIF
IOBLOCK OFF


Top