Preview only show first 10 pages with watermark. For full document please download

Robot Controller

   EMBED


Share

Transcript

Robot controller Programming Guide Document Asyril_ROBOT_Programming_Guide_EN 000.100.520 Version B1 Date 09.08.2016 Robot controller - Asyril SA Programming Guide Introduction © Copyright Asyril S.A. Version: B1 Table of contents 1 INTRODUCTION .............................................................................................................................................. 3 1.1 GENERAL INFORMATION........................................................................................................................... 3 2 ROBOT CONTROLLER ARCHITECTURE...................................................................................................... 4 3 CONFIGURING THE ROBOT .......................................................................................................................... 5 3.1 4 5 COMMUNICATION WITH THE ROBOT .......................................................................................................... 6 4.1 GENERAL INFORMATION........................................................................................................................... 6 4.2 PROGRAMMING USING THE EMBEDDED TCP/IP SERVER........................................................................ 7 4.2.1 Basic principle ............................................................................................................................... 7 4.2.2 Session establishment procedure .............................................................................................. 7 SYNTAX ........................................................................................................................................................... 8 5.1 6 7 8 ROBOT CONFIGURATION FILES ................................................................................................................ 5 GENERAL INFORMATION........................................................................................................................... 8 5.1.1 Command syntax .......................................................................................................................... 8 5.1.2 Response syntax .......................................................................................................................... 9 MOVEMENT AND TRAJECTORY ................................................................................................................. 10 6.1 ROBOT STATE MACHINE ......................................................................................................................... 10 6.2 HOMING MODES FOR POCKETDELTA ROBOT ......................................................................................... 13 ROBOT TEXT COMMANDS .......................................................................................................................... 15 7.1 CONTROLLER COMMANDS ..................................................................................................................... 16 7.2 CONFIGURATION COMMANDS................................................................................................................. 20 7.3 ROBOT MODULE COMMANDS ................................................................................................................. 22 7.4 INPUT/OUTPUT COMMANDS .................................................................................................................... 39 7.5 ARL INTERPRETER COMMANDS ............................................................................................................. 40 7.6 PROCESS COMMANDS ............................................................................................................................ 42 7.7 IOWAGO MODULE COMMANDS............................................................................................................. 44 TECHNICAL SUPPORT................................................................................................................................. 45 8.1.1 For a better service … ............................................................................................................... 45 8.1.2 Contact ......................................................................................................................................... 45 ALPHABETICAL INDEX ........................................................................................................................................ 46 THEMATIC INDEX ................................................................................................................................................. 47 000.100.520 Robot controller - Programming Guide 2/49 Robot controller - Asyril SA Programming Guide Introduction © Copyright Asyril S.A. Version: B1 1 Introduction 1.1 General information This document is the property of Asyril S.A.; it may not be reproduced, modified or communicated, in whole or in part, without our prior written authorisation. Asyril S.A. reserves the right to modify any information contained in this document without prior notice for reasons related to product improvement. Before using the product, please read this entire document in order to ensure that the product is used correctly. However, if you encounter difficulties when using the product, do not hesitate to contact our customer service department. In this manual, the safety information that must be respected is split into three types: "Danger", "Important" and "Note". These messages are identified as follows: DANGER! Failure to respect this instruction may result in serious physical injury. DANGER! This instruction identifies an electrical hazard. Failure to respect this instruction may result in electrocution or serious physical injury due to an electric shock. IMPORTANT! Failure to respect this instruction may result in serious damage to equipment. NOTE: The reader's attention is drawn to this point in order to ensure that the product is used correctly. However, failure to respect this instruction does not pose a danger. Reference … For more information on a specific topic, the reader is invited to refer to another manual or another page of the current manual. IMPORTANT! Asyril cannot be held responsible for damage to property or persons caused by the failure to follow the instructions contained in the manual for your machine. NOTE: All dimensions and values in this manual are expressed in millimetres (mm) 000.100.520 Robot controller - Programming Guide 3/49 Robot controller - Asyril SA Programming Guide Robot controller architecture © Copyright Asyril S.A. Version: B1 2 Robot controller architecture tcp client http client tcp server http server Command interpreter Robot module Process module OMAC State Machine State Machine ARL-Interpreter Control modules Workspace / Frames Task Manager / task list Path planner Robot RT IO Hardware Fig 1. Robot controller architecture 000.100.520 Robot controller - Programming Guide 4/49 Robot controller - Asyril SA Programming Guide Configuring the robot © Copyright Asyril S.A. Version: B1 3 Configuring the robot 3.1 Robot configuration files Four files are used to specify the configuration of the controller and the robot parameters. These files are read and recognised once when the application is started. 1) The .version file (extension ".version") This file is read first and defines the global parameters of the controller and the robot. In particular, it is used to define the access paths to the other configuration files, as well as the robot type, number of the degree of freedom, etc. 2) The .controller file (extension ".controller") defines all the control setting parameters. (PID, dynamic parameters, various synchro options, etc. ) 3) The .model (extension ".model") defines the geometric parameters for the robot and the workspace. 4) The "process.arc" file This optional file is used to declare and configure the modules specific to the process, such as the non-real time io or management/communication with the Asyview vision module. 000.100.520 Robot controller - Programming Guide 5/49 Robot controller - Asyril SA Programming Guide Communication with the robot © Copyright Asyril S.A. Version: B1 4 Communication with the robot 4.1 General information The robot controller is designed to be controlled as a slave from "outside" using text commands. It incorporates TCP/IP and http servers, and it is necessary to log in as a "client" to communicate with the robot. The function of these servers is to receive the command from the user, process it and formulate the response. Each of these two servers can perform the same task; only the protocol differs. The HTTP/XML server is reserved by the embedded user interface (web page). The default configurations for the Robot server ports are shown in the following table: ROBOT IP address Subnet Mask http/XML port TCP/IP port Pocket 192.168.0.10 255.255.255.0 8080 8181 Power 192.168.0.20 255.255.255.0 8080 8181 Desktop 192.168.0.30 255.255.255.0 8080 8181 Table 4-1: Robot TCP/IP parameters The text protocol also includes limited access to the system (login) which means that only users with the correct access level can access the desired commands. 000.100.520 Robot controller - Programming Guide 6/49 Robot controller - Asyril SA Programming Guide Communication with the robot © Copyright Asyril S.A. Version: B1 4.2 Programming using the embedded TCP/IP server 4.2.1 Basic principle The robot contains only one server, which operates as a slave. This means that it cannot actively send data to the master application. All the desired data or actions must be requested from the robot by sending a command and awaiting the response. An example of a master/slave application is shown in the diagram below. This illustration shows two TCP clients, one using polling to keep the robot state up to date, and the other enabling process commands to be sent to the robot. Master application PocketDelta Robot GetState Polling Thread TCPClient1 0 p0=v0 … pN=vN cm TCP server d … =v0 0 p0 pN= vN Text Protocol TCPClient2 Process Figure1: Example: controlling a robot as a Master 4.2.2 Session establishment procedure The robot can accept an unlimited number of clients simultaneously accessing the servers. The steps required to establish a connection are always the same, and are described below: 1- Create a socket and attempt to connect the client to the robot server 2- When the connection is established, the robot sends a welcome message: ← 0 Connected. RobotType=…. SerialNumber=xxx. Use ‘login’ to begin. 3- The first command to be sent to the robot if the "LOGIN " command → login user=user passwd=user If the login is valid, the robot responds as follows: → 72 Logged as ‘User’. 4- The connection is then open and active. The robot can accept all the other commands described in the "commands" section 000.100.520 Robot controller - Programming Guide 7/49 Robot controller - Asyril SA Programming Guide Syntax © Copyright Asyril S.A. Version: B1 5 Syntax 5.1 General information The syntax of the text protocol is based on ASCII code and is used to check whether the command received is correct. This check is carried out on the following levels:  Command: checks whether the command is valid  Parameters: checks whether the parameter is valid and whether all the parameters necessary for the command are present  Values: checks whether the value is of the desired type (Boolean, integer, string, etc.) 5.1.1 Command syntax A text protocol command is constructed as follows: Prefix Parameters Suffix Command parameterX=valueX Carriage Return & Line Feed Table 5-1: Text command syntax The number of parameters for the commands and responses may vary from 0 to N depending on the instruction. If no parameter is required, the command or code is followed directly by Carriage Return & Line Feed with no space. All the instructions are described in the following sections. IMPORTANT NOTE: Sent commands must contain at least space character between each parameter. 000.100.520 Robot controller - Programming Guide 8/49 Robot controller - Asyril SA Programming Guide Syntax © Copyright Asyril S.A. Version: B1 5.1.2 Response syntax 5.1.2.1 Construction The robot's response to a command is constructed as shown below: Prefix Parameters Suffix Code parameterX=valueX Carriage Return & Line Feed Table 5-2: Text response syntax For the responses, the first parameter corresponds to the command's return MoveTO MoveTO x=0.010 x=0.010 y=0.010 y=0.010 z=0.03 z=0.03 speedfactor=0.1CRLF speedfactor=0.1CRLF DEMAND 0CRLF 0CRLF 30 30 Wrong Wrong state state ANSWER code. In the event of an error, the same parameter sends the corresponding error message and the code is then not zero. An instruction will prompt an immediate Figure 5-1: immediate response to any command response from the robot, as shown in Figure 5-1. 5.1.2.2 List of response codes The codes that may be returned and their associated meanings are listed below:  0 – Command OK.  2– Wrong number of args  5 – Syntax error  10 – Cannot give help  20 – Invalid arguments  30 – Wrong state  32 – Brakes engaged  33 – Out of workspace  40 – Not permitted  50 – Internal error  60 – Wrong value  70 – Wrong login  72 – Logged as 'User'  73 – Logged as 'Admin' 000.100.520 Robot controller - Programming Guide 9/49 Robot controller - Asyril SA Programming Guide Movement and trajectory © Copyright Asyril S.A. Version: B1 6 Movement and trajectory Information concerning the movements, trajectories and elements of the workspace, such as points and indices, is contained in the documentation "Asyfeed_Programming_Guide_EN" 6.1 Robot state machine The GETSTATE command is used to read the robot state and obtain a variety of information, such as the current position or the input/output state. The following tables summarise the meaning of each value sent to the GETSTATE instruction. current/desired corresponding name details The robot is in the "emergency stop" state. -2 STATE_EMERGENCY_PRESSED Release the emergency stop button to switch to the "off" state. The robot is in the "error" state. -1 STATE_ERROR Confirm and clear the error by switching to the "off" state. The 0 STATE_OFF In robot order is to in the issue "off" a state. movement instruction, select the "idle" state The robot is in the "homing" state. 1 STATE_HOMING When homing is complete, the state automatically switches to "on" then "idle". The robot is in the "on" state. 2 STATE_ON The following logic state is "idle". The robot is in the "idle" state. 3 STATE_IDLE The robot is ready to move. Table 6-1: robot state lists 000.100.520 Robot controller - Programming Guide 10/49 Robot controller - Asyril SA Programming Guide Movement and trajectory © Copyright Asyril S.A. Version: B1 motionstate corresponding name details -1 TRAJ_ERROR Trajectory error 0 INPOSITION Target position reached 1 MOVING_BUFF Movement in progress. The next movement required if a "blend" is desired has not yet been defined 2 MOVING Movement in progress. The next movement is already defined. 3 MOVING_BLENDING Moving. Blending Table 6-2: movement states (motionstate) outofworkspace corresponding name details 0 Included in the workspace the robot is within its workspace 1 Outside workspace. the robot's current position is outside the workspace Table 6-3: position in the work volume (outofworkspace) Robot error corresponding name details 0 NO_ERROR No error 1 POSITION_TRACKING_ERROR Position tracking error 2 CURRENT_TRACKING_ERROR Current tracking error 3 HOMING_ERROR Homing error 4 INTERNAL_ERROR Non-specific error 5* SECURITY_IO_ERROR Indicates that the security digital input is in the "low" state. The surveillance function of this input is optional and activated/deactivated by a parameter of the ".version" configuration file. * Only valid for "pocket" and "power" robots. Table 6-4: robot error lists 000.100.520 Robot controller - Programming Guide 11/49 Robot controller - Asyril SA Programming Guide Movement and trajectory taskstate © Copyright Asyril S.A. Version: B1 corresponding name details -1 TASK_ERROR Task error 0 TASK_DONE Task done 1* TASK_BUFFERING Task buffering *This transition state is defined but not currently used. 2 TASK_INPROGRESS Task in progress 3 TASK_NOT_STARTED Task not started Table 6-5: task state tasklist corresponding name details -1 TASK_LIST_ERROR There is an error in the current task 0 TASK_LIST_DONE The task list is empty and the state current task is done. 1 TASK_LIST_PROCESSING In operation. At least one task is active. Table 6-6: tasklist state prgstate corresponding name details -1 PRG_ERROR Program interrupted by an error 0 PRG_STOPPED Program stopped 1 PRG_STOPPING Program stopping 2 PRG_RUNNING Program running 3 PRG_SUSPENDING Program suspending 4 PRG_SUSPENDED Program suspended Table 6-7: program state (prgstate) 000.100.520 Robot controller - Programming Guide 12/49 Robot controller - Asyril SA Programming Guide Movement and trajectory © Copyright Asyril S.A. Version: B1 6.2 Homing modes for pocketdelta robot There are several robot homing modes linked to the structure of the delta robot. This allows the three motors to be homed simultaneously or one at a time, either systematically or in relation to a specific event. The table below summarises the various homing modes and the associated codes. homing corresponding name mode 0 HOMING_NORMAL 1 HOMING_NORMAL_ONLY_ONCE details - successive homing of the three motors:  searching for external signal  searching for first motor index found after the external signal. - homing each time the status changes from "off" to "idle" - successive homing of the three motors:  searching for external signal  searching for first motor index found after the external signal. - only one homing at each activation 2 HOMING_WITHOUT_SENSORS 3 HOMING_WITHOUT_SENSORS_ONLY_ONCE - successive homing of the three motors:  searching for first motor index found after the external signal. - homing each time the status changes from "off" to "idle" - successive homing of the three motors:  searching for first motor index found after the external signal. - only one homing at each activation 4 000.100.520 HOMING_ONLY_SENSORS - successive homing of the three motors:  searching for external signal only - homing each time the status changes from "off" to "idle" Robot controller - Programming Guide 13/49 Robot controller - Asyril SA Programming Guide Movement and trajectory 5 © Copyright Asyril S.A. Version: B1 HOMING_ONLY_SENSORS_ONLY_ONCE - successive homing of the three motors:  searching for external signal only - only one homing at each activation 6 NO_HOMING 10 HOMING_ALL_TOGETHER 11 HOMING_ALL_TOGETHER_ONLY_ONCE - no homing - simultaneous homing of the three motors:  Homing on 1st motor index found. Reversal of the motor's rotation direction if the external signal is detected. - homing each time the status changes from "off" to "idle" - simultaneous homing of the three motors:  Homing on 1st motor index found. Reversal of the motor's rotation direction if the external signal is detected - only one homing at each activation 12 HOMING_ALL_TOGETHER_ FORCE_INITSENSOR - simultaneous homing of the three motors:   Searching for external signal Reversal of rotation direction and homing on 1st motor index found. - homing each time the status changes from "off" to "idle" 13 HOMING_ALL_TOGETHER_FORCE_ INITSENSOR_ONLY_ONCE - simultaneous homing of the three motors:   Searching for external signal Reversal of rotation direction and homing on 1st motor index found. - only one homing at each activation Table 6-8: homing types (homing mode) 000.100.520 Robot controller - Programming Guide 14/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7 Robot text commands This section describes all the commands accessible via TCP from the robot platform. The following syntax has been used to describe the commands:  [parameters] = optional parameters  (z) = "Boolean" type variable  (i) = "Integer" type variable  (f) = "Floating-point number" type variable  (s) = "Character string" type variable  (l) = "Long integer" type variable 000.100.520 Robot controller - Programming Guide 15/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.1 Controller commands GETVERSION Syntax: Function: Parameters: Feedback: GETVERSION Displays the label for the software version installed on the robot none ← "0 PRODUCTKEY=(s1) PRODUCTSN=(s2) SOFTRELEASE=(s3) SOFTUPDATE=(s4) ROBOTYPE=(s5) DOF=(s5) SN=(s6)" ← "40 Not permitted" Example: GETVERSION ← "0 PRODUCTKEY=ROBOT-POC-01--10-03-FL-NO PRODUCTSN=simdelta SOFTRELEASE=4.4.1_RC3 SOFTUPDATE=24.09.2013 ROBOTTYPE=SIM DOF=3 SN=12345678910" See also: LOGIN Syntax: Function: Parameters: Feedback: LOGIN user=(s) passwd=(s) [timeout=(f)] Open a session with a user name and password. user User name passwd Password timeout Optional. Timeout for the session in [s]. Default value 120[s] ← "0" (OK) ← "20 Invalid arguments for timeout. Must be greater than 0" ← "50 Internal error" ← "70 Wrong login" ← "72 Logged as 'User'" ← "73 Logged as 'Admin'" ← "74 Logged as 'Superuser'" Example: See also: 000.100.520 Login user=admin passwd=secret timeout=300 Logout Robot controller - Programming Guide 16/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 LOGOUT Syntax: Function: Parameters: Feedback: Example: See also: LOGOUT Exit the current session none ← "0" LOGOUT LOGIN HELP Syntax: Function: Parameters: Feedback: HELP [command=(s)] [listdetailed=(i)] list all of the existing commands or display help for a specific command. command Name of specific command listdetailed Print help for all commands in a file called "TextCMD.txt" ← "0" (Command OK) ← "10 cannot give help on Unknown command" ← "40 Not permitted." (login privilege is too low) Example: HELP command=MoveTo See also: 000.100.520 Robot controller - Programming Guide 17/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 LOG Syntax: Function: Parameters: Feedback: LOG cmd=(s) [filename=(s)] Used to manage the controller's "log" functions cmd Selection sub-command for action to be performed Possible values: (1) 'startPrintLog' (2) 'stopPrintLog' (3) 'listLogFiles' (4) 'deleteLogFile' (5) 'readLogFile' (6) 'startLogTaskPlanner' (7) 'stopLogTaskPlanner' (8) 'startLogTcpServer' (9) 'stopLogTcpServer' (10) 'startLogController' (11) 'stopLogController' filename File name for 'readLogFile' and 'deleteLogFile' sub-commands ← "0" (command ok) ← "20 Invalid arguments." ← "40 Not permitted." (login privilege is too low) ← "50 Internal error" Example: LOG cmd=startLogTaskPlanner See also: SYSTEM Syntax: Function: *SYSTEM* cmd=(s) [arg1=(s)] [arg2=(s)] Used to send a system command. *NOTE*: Command for Asyril internal use only. Otherwise, normal robot behaviour cannot be guaranteed. Parameters: Feedback: cmd System command arg1 First optional argument arg2 Second optional argument ← "0 " ← "1 " Example: See also: 000.100.520 - Robot controller - Programming Guide 18/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 IP Syntax: Function: IP cmd=(s) [parameter=(s)] [value=(s)] Used to display or modify the robot's IP address NOTE: Only valid for the pocket delta type robot Parameters: Feedback: cmd Selection sub-command for action to be performed possible values: (1)'show', (2)'edit' parameter Keyword defining the parameter to be edited Possible values: (1)'hostname', (2) 'domain', (3) 'nameserver', (4) 'route', (5) 'manual_ip', (6) 'manual_netmask' value Parameter value ← "0" (command ok) ← "2 Wrong number of args." ← "40 Not permitted." (login privilege is too low) ← "50 Internal error" Example: IP cmd=edit parameter=manuall_ip value=192.168.0.10 See also: - EXIT Syntax: Function: *EXIT* Exit the controller application immediately *NOTE*: Command for Asyril internal use only. Otherwise, normal robot behaviour cannot be guaranteed. Parameters: Feedback: none ← "0" (command ok) ← "40 Not permitted." (login privilege is too low) Example: EXIT See also: - 000.100.520 Robot controller - Programming Guide 19/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.2 Configuration commands CONTROLLER Syntax: Function: CONTROLLER cmd=(s) [name=(s)] [idx=(i)] [value=(s)] [data=(s)] Access to read and modify the controller's low-level parameters. NOTE: This "low-level" system is reserved for internal use by Asyril. Parameters: Feedback: cmd Selection sub-command for action to be performed possible values: (1)'toString', (2)'startDebug', (3)'stopDebug' (4)'readControllerFile', (5)'readModelFile', (6)'getBrakes', (7)'readanalogueoutputs', (8)'getMotorTorque', (9)'getTCPparameters' (10)'saveParameters', (11)'reloadFile', (12)'setParameter[s]' (13)'getParameter[s]', (14)'getParametersXML' name Parameter name for 'getParameter(s)' and 'setParameter(s)' subcommands idx Index for "vector" type parameter values value Parameter value for 'getParameter(s)' and 'setParameter(s)' subcommands data XML data for 'setParameter[s]' sub-commands Supports percent encoding ← "0" (command ok) ← "0 =" For activation of "getParameter name=" ← "0 analogueoutput0=(f) analogueoutput1=(f) analogueoutput2=(f) analogueoutput3=(f)" For activation of "readAnalogueOuputs" ← "0 motortorque0=(f) motortorque1=(f) motortorque2=(f) motortorque3=(f)" For activation of "getMotorTorque" ← "0 controllertostring=" For activation of "toString" ← "0 readcontrollerfile=" For activation of "readControllerFile" ← "0 readmodelfile=" For activation of "readModelFile" ← "0 controllerparameters=" For activation of "readModelFile" ← "0 release=[0|1]" For activation of "getBrakes" ← "0 dx=(f) dy=(f) dz=(f)" For activation of "getTcpParameters" ← "40 Not permitted." (login privilege is too low) ← "50 Internal error." ← "83 Data or name&value are needed!!" 000.100.520 Robot controller - Programming Guide 20/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 Example: CONTROLLER cmd=setParameter name=offset value=0.005 See also: --- 000.100.520 Robot controller - Programming Guide 21/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.3 Robot module commands GETSTATE [frameID] [toolID] Syntax: Function: Parameters: Feedback: current GETSTATE [] [] Returns the robot's current "status". FrameID numerical value referencing the identifier of the index (frame) concerned ToolID numerical value referencing the identifier of the tool concerned Return of the shape: "0 current=(s) desired=(s) motionstate=(s) outofworkspace=(0|1)frameid=(i) framescalex=(f)framescaley=(f) framescalez=(f) toolid=(i) x=(f) y=(f) z=(f) rz=(f) q0=(f)q1=(f) q2=(f) q3=(f) xdes=(f) ydes=(f) zdes=(f) rzdes=(f) tasklistsize=(i)taskliststate=(i) currenttaskid=(i) pasttaskid=(i) slowspeed=(0|1) brake=(0|1) digitalinput=(bbbbb…) digitaloutput=(bbbbb…) axissmooth=(bbbb) axiscompliant=(bbbb) errorcode=(i) errormessage=(s) prgstate=(s) prgname=(s)" Number of the current state, i.e.: -2 -1 Estop Error 0 Off 1 2 3 Homing On Idle See Table 6-1 for more details on the robot state machine desired motionstate Number of the desired state. Number of the robot's motion state, i.e.: -1 TrajError. Trajectory Error 0 Target position reached 1 Movement in progress. The next movement required if a "blend" is desired has not yet been defined. 2 Moving. Two movements defined (blend) 3 Moving. Blending See Table 6-2 for more details outofworkspace Two possible values [0 | 1] 0: The robot is in its workspace 1: The robot is outside its workspace. See also Table 6-3 for more details 000.100.520 Robot controller - Programming Guide 22/49 Robot controller - Asyril SA Programming Guide Robot text commands frameId frameScaleX frameScaleY frameScaleZ toolId x, y, z, rz q0, q1, q2, q3 xdes, ydes, zdes, rzdes taskListsize, taskListstate, currentTaskId, pastTaskId © Copyright Asyril S.A. Version: B1 ID of the frame in which the x,y,z coordinates are expressed Scale factor of the frame queried for each direction (x, y and z) ID of the tool in which the coordinates are expressed Current position of the robot in the index given by frameId and toolid Current angular position of the motors [rad] Last target position taskListSize: Total size (number of elements) taskListState: State of the task list manager. The state may take the following values. -1 0 Error Done 1 Working See Table 6-5 and Table 6-6 for more details. currentTaskId: ID of the current task pastTaskId: ID of the last task done slowspeed brake digitalInput, digitalOutput Two possible values: 0 : slow speed deactivated 1: slow speed activated State of the motor brakes. Encoded on a word of four digits [0|1], each of which can have a value of 0 or 1. Example: "0000" all brakes are deactivated State of digital inputs/outputs. Encoded on a word formed by a sequence of digits [0|1] equal in size to the number of inputs or outputs defined. e.g. "00010010" if the number of outputs is 8 and if outputs 4 and 6 are activated. errorCode: Number of the robot's current error. errorCode, errorMessage 0 No error 1 Position monitoring error 2 Current monitoring error 3 Homing error 4 Non-specific internal error 5 Security digital input in the "low" state errorMessage: Current error message. See Table 6-4 for more details. 000.100.520 Robot controller - Programming Guide 23/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 prgState: Execution state of the current ARL program. May take the following values: prgState, prgName -1 Program interrupted by an error 0 Program stopped 1 Program stopping 2 Program running 3 Program suspending 4 Program suspended See Table 6-7 for more details. prgName: Name of the current program. 000.100.520 Example: "GetState frameId=11" See also: Table 6-1: robot state lists Robot controller - Programming Guide 24/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 SETSTATE state Syntax: Function: Parameters: Feedback: SETSTATE This command requires the robot's current state to be changed. state character string defining the desired state: ON, OFF or IDLE or number of the corresponding state. See table 5-1 ← "0" ← "30 Wrong state. Cannot set the robot in state " ← "40 Not permitted" Example: "SetState idle" equivalent to "SetState 3" See also: Table 6-1: robot state lists 000.100.520 Robot controller - Programming Guide 25/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 MOVETO frameID toolID Syntax: MOVETO [x=(f)] [y=(f)] [z=(f)] [rz=(f)] [speedfactor(f)] [accfactor(f)] [decfactor(f)] [jerkfactor(f)] [blend=(f)] [actioncode=(f)] [actioncode2=(f)] [pointid=(i)] [toolid=(i)] [frameid=(i)] [additive=(i)] [limitworkspace=(i)] [append=(i)] [log=(i)] [taskid=(l)] [rztarget=(i)] [rzfactor=(f)] Function: Parameters: 000.100.520 This command moves the robot according to the coordinates specified in the chosen index, with the chosen tool and applying the chosen dynamic parameters. x x coordinate for the target position in the index given by the argument World index if frameid is omitted. y y coordinate for the target position in the index given by the argument World index if frameid is omitted. z z coordinate for the target position in the index given by the argument World index if frameid is omitted. rz rz coordinate (angle of 4th axis) of the target position speedfactor speed factor [0..1]. Defined in relation to the max. speed ("speedMax" param.) defined in the ".controller" file.Default value = 0.1. accfactor acceleration factor [0..1]. Defined in relation to the max. acceleration factor ("accmax" param.) defined in the ".controller" file. Default value = 1.0. not applicable to the DesktopDelta robot decfactor deceleration factor [0..1] The factor 1.0 corresponds to the max. deceleration ("decmax" param.) defined in the ".controller" file Default value = 1.0. not applicable to the DesktopDelta robot jerkfactor jerk factor [0..1]. The factor 1.0 corresponds to the max. jerk ("jerkmax" param.) defined in the ".controller" file Default value = 1.0. not applicable to the DesktopDelta robot blend Blend in [m] actioncode Action code actioncode2 Action code no. 2. Only valid for the DesktopDelta robot with the additional io board option. pointid Point ID toolID ID of tool concerned frameID ID of index (frame) concerned additive possible values 0 or 1. If = 1 the target position (x,y,z,rz) given in the argument is relative to the last target position, i.e. added to the last target position. limitworkspa ce Possible values 0 or 1. If = 0 the target position of the movement is not checked to determine whether it is included in the robot's workspace. This check takes place before the movement starts. Default value = 1 (active) Robot controller - Programming Guide 26/49 Robot controller - Asyril SA Programming Guide Robot text commands Feedback: Example: © Copyright Asyril S.A. Version: B1 append Possible values 0 or 1. Defines whether the movement should be added to the movement list in order to be executed in the future, or whether it should ignore the movement list and be executed as a priority. (in this case, the movement list is reset) Default value = 0 taskid Defines a movement ID number. [-2 …+2 -1] rztarget Defines whether the uncoupled movement of the 4th axis (rz) should be synchronised on the target for this x,y,z movement Possible values 0 or 1: default value = 1. Only valid for the DesktopDelta robot with optional 4th uncoupled axis. rzfactor Dynamic "speed" factor of the 4th axis. Defined as a ratio of the travel times defined by the "maximum" dynamic parameters vmax and accmax. Possible values [0..1] default value = 1.0 (max. speed) Only valid for the DesktopDelta robot with optional 4th uncoupled axis. 64 64 ← "0" ← "30 The robot must be in state 'idle' to accept motion commands." ← "32 The brakes have to be release to accept motion commands." ← "33 Out of workspace" ← "40 Not permitted" ← "60 Wrong ID for tool." ← "60 Tool doesn't exist." ← "60 Wrong ID for point." ← "60 Point doesn't exist." ← "60 Wrong ID for frame." ← "60 Frame doesn't exist." ← "60 Wrong value for speedfactor." ← "60 Wrong value for accfactor." ← "60 Wrong value for decfactor." ← "60 Wrong value for jerkfactor." ← "60 Wrong value for rzfactor." ← "60 Wrong value for blend. Range [0...1]." ← "60 Exception occurs by transformation. " ← "80 Move aborted. Cannot omit position parameter like x or y or z with a frame of type MESH" MoveTo x=0.010 y=0.010 z=0.050 See also: 000.100.520 Robot controller - Programming Guide 27/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 STOP [append] Syntax: Function: Parameters: Feedback: Example: STOP [append=(i)] stops the movement in progress. append Determines whether or not the command is executed sequentially. If append = 1, the command is added to the task list and will be executed in the order defined by the list. If append = 0, the command is executed immediately and the task list is reset. Optional argument. Default value = 0 ← "0" ← "30 Wrong state" ← "40 Not permitted" stop See also: WAIT duration [append] Syntax: Function: Parameters: Feedback: Example: WAIT duration=(f) [append=(i)] Initiates a wait whose duration is determined by the argument: Unit: [s] duration waiting time append Determines whether or not the command is executed sequentially. If append = 1, the command is added to the task list and will be executed in the order defined by the list. If append = 0, the command is executed immediately and the task list is reset. Optional argument. Default value = 0 ← "0" ← "30 Wrong state" ← "40 Not permitted" "Wait duration=3.0" Initiates a wait of 3 seconds See also: 000.100.520 Robot controller - Programming Guide 28/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 SETSLOWSPEED slowspeed Syntax: Function: Parameters: Feedback: Example: SETSLOWSPEED slowspeed=(i) activates or deactivates the robot's slow speed mode slowspeed sets the robot to slow or fast speed [0/1] ← "0" ← "40 Not permitted" SetSlowSpeed slowspeed=1 Activates the robot's slow speed See also: LOADPOINTS fileid Syntax: Function: Parameters: LOADPOINTS Requests loading of a collection of robot positions. These positions are saved and can be accessed using a keyword from the ARL script language. fileid Name of point file This is the xml file with the ".points" extension The "all" value allows all existing files with the ".points" extension to be loaded. Feedback: ← "0 returninfo=command launched" ← "1 argument fileid missing" Example: LOADPOINTS fileid=placePoints Finds and loads the "placePoints.points" file LOADPOINTS fileid=all Finds and loads all the existing ".points" files. See also: 000.100.520 Robot controller - Programming Guide 29/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 SETBRAKES release [force] Syntax: Function: SETBRAKES release=(i) [force=(i)] this command is used to release or apply the robot's brakes. NOTE: the three brakes are applied or released simultaneously Parameters: Feedback: Example: release [0/1] 0= activates the brakes, 1= releases the brakes If a brake activation request (release=0) is issued when the robot is in a state other than "OFF", a request to switch to the OFF state is automatically made. See "force" argument force [0/1] 1= activation of "forcing". Used to force activation or deactivation of the brakes without taking the robot's state into account. This option is used to force activation of the brakes, even when the robot is moving. ← "0" ← "40 Not permitted" SetBrakes release=1 Releases the robot's brakes See also: 000.100.520 Robot controller - Programming Guide 30/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 SETTCPPARAMETERS Syntax: Function: SETTCPPARAMETERS [dx=(f)] [dy=(f)] [dz=(f)] Used to modify the "Tool Center Point" This enables a tool offset from the robot's platform to be taken into account in the test for inclusion in the workspace NOTE: Only valid for the Pocket delta type robot Parameters: Feedback: dx Offset in [m] in direction x of the 'world' index dy Offset en [m] dans la direction y du repère 'world' dz Offset en [m] dans la direction z du repère 'world' ← "0" (command ok) ← "20 Invalid arguments." ← "31 Not permitted. Robot is moving." ← "33 Out of workspace." ← "40 Not permitted." (login privilege is too low) ← "41 No valid command for the robot type 'DesktopDelta'" Example: SETTCPPARAMETERS dx=0.005 dy=-0.005 dz=0.0 See also: 000.100.520 Robot controller - Programming Guide 31/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 WSFRAME cmd [data] [frameid] [type] Syntax: Function: Parameters: Feedback: WSFRAME cmd= [data=(s)] [frameid=(i)] this command enables a number of read and write operations in the "frames.xml" frame definition file. cmd Selection sub-command for action to be performed Possible values: (1) 'list' (2) 'loadData' (3) 'setFile' (4) 'readData' (5) 'readFile' (6) 'getFile' (7) 'save' (8) 'load' (9)'reLoad' (10) 'createVirtualFrame' (11) 'getFrameConfig' data XML encoded frame definition character string Valid for sub-commands (2) 'loadData' and (3) 'setFile' frameid frame identifier. Integer in the interval [0..99] Valid for sub-commands (10)"createVirtualFrame" and (11)"getFrameConfig" ← "0" ← "0 frameid= … frameid=" For activation of sub-command (5)"readFile" or (6)"getFile" ← "0 framedata=" For activation of sub-command (4)"readdata" ← "0 frameId= ptconfig<0>0=… ptconfig<3>3= parentframeid= xnorme= ynorme= xdistance= ydistance= type= ptcalib<0>0= … ptcalib<3>3=" For activation of sub-command (11)"getFrameConfig" ← "83 Frame data are needed!!" For sub-command (2)"loaddata" or (3)"setFile" if the "data" argument is missing ← "84 Error by getting frame data. " If sub-command (4)"readdata" has generated an exception. ← "84 Error by getting frame file. " If sub-command (5)"readFile" or (6)"getFile" has generated an exception. ← "85 Error by saving frame. " If sub-command (7)"save" has generated an exception ← "85 Error while reloading the frames. " If sub-command (9)"reload" has generated an exception ← "85 Error by loading frame. " If the activation of sub-command (8)"load" has generated an exception. 000.100.520 Robot controller - Programming Guide 32/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 ← "85 Error cannot reload the frames, the robot must be in the state OFF" For activation of sub-command (9)"reload" when the robot is not in the appropriate state. ← "88 Failed. " Si sub-command (2)"loaddata" or (3)"setFile" generates an exception. ← "89 Frame file saved!!!" If sub-command (3)"setFile" has finished correctly. ← "89 Frame data loaded!!!" If sub-command (2)"loaddata" has finished correctly. Example: WsFrame cmd=readData Returns the currently defined "frames.xml" file e.g. … … See also: 000.100.520 Robot controller - Programming Guide 33/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 WSPOINT cmd [pointid] [data] [xp] [yp] [zp] [rzp] Syntax: Function: Parameters: Feedback: WSPOINT cmd=[data=(s)] [xp=(f)] [yp=(f)] [zp=(f)] [rzp=(f)] this command enables a number of read and write operations in the "points.xml" point definition file. cmd Selection sub-command for action to be performed Possible values: (1) 'list' (2) 'loadData' (3) 'setFile' (4) 'readData' (5) 'readFile' (6) 'getFile' (7) 'save' (8) 'saveFile' (9)'reLoad' (10) 'load' (11) 'createVirtualPoint' (12) 'getPointConfig' pointid Point ID. Integer in the interval [0..99] Valid for sub-commands (11)"createVirtualPoint" and (12)"getPointConfig" data XML encoded point definition character string Valid for sub-commands (2) 'loadData' and (3) 'setFile' xp x coordinate for a point. Quantity without unit represented by a decimal number (floating-point). The unit will be indicated by the frame in which this point will be used. The same point may be used for movements in different frames. yp y coordinate for a point. Unit: see remark for "xp" param zp z coordinate for a point. Unit: see remark for "xp" param rzp rz coordinate (rotary axis) for a point. Unit: This is selected for the rotary axis. Unlike the other coordinates, does not depend on the frame used. ← "0" ← "0 pointID= … pointID=" Where pid(1)… pid(n) represents all of the defined point IDs. e.g. pointID=1 pointID=2 pointID=23 pointID=40 For activation of the sub-command (1)"list" ← "0 pointdata=" For activation of sub-command (4)"readData" ← "0 pointfile=" For activation of sub-commands (5)"readFile" and (6)"getFile" ← "0 pointid= xp= yp= zp= rzp=" For activation of sub-command (12)"getPointConfig" ← "1 Error while reloading the points. " If sub-command (9)"reload" has generated an exception. ← "40 Not permitted." ← "50 Internal error." If sub-command (11)"createVirtualPoint" has generated an exception. ← "83 Point data are needed!!" If the "data" argument is missing for the sub-commands (2)"loadData" and (3)"setFile" ← "84 Error by getting point file. " If one of the sub-commands (5)"readFile" or (6)"getFile" has generated an exception. 000.100.520 Robot controller - Programming Guide 34/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 ← "84 Error by getting point data. " If sub-command (4)"readData" has generated an exception. ← "85 Error can not reload the points, the robot must be in the state OFF" If sub-command (9)"reload" is activated when the robot is not in an authorised state. ← "85 Error by saving point." If the sub-commands (7)"save" or (8)"saveFile" have generated an exception. ← "85 Error by loading frame. " If the "load" sub-command has generated an exception. (the appearance of the term "frame" in this message is a typing error) ← "86 Point ID is needed." If the "pointId" argument is missing when sub-command (11)"createVirtualPoint" is activated ← "87 Invalid Point ID " For activation of sub-command (11)"createVirtualPoint" if the "pointId" argument does not correspond to an integer >0 ← "88 Failed. " If the activation of the "setFile" sub-command has generated an exception ← "88 xp is needed." If the "xp" argument is missing from sub-command (11)"createVirtualPoint" ← "88 yp is needed." If the "yp" argument is missing from sub-command (11)"createVirtualPoint" ← "88 zp is needed." If the "zp" argument is missing from sub-command (11)"createVirtualPoint" ← "88 rzp is needed." If the "rzp" argument is missing from sub-command (11)"createVirtualPoint" ← "89 Point file saved!!!" If sub-command (3)"setFile" has been activated normally. ← "89 Point data loaded!!!" If sub-command (2)"loadData" has been activated normally. Example: WsPoint cmd=list Returns: "0 pointId=0 pointId=1 pointId=2…." See also: 000.100.520 Robot controller - Programming Guide 35/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 WSTOOL cmd [toolid] [data] [dxt] [dyt] [dzt] [drzt] Syntax: Function: Parameters: Feedback: WSTOOL cmd=[data=(s)] [dxt=(f)] [dyt=(f)] [dzt=(f)] [drzt=(f)] this command enables a number of read and write operations in the "tools.xml" tool definition file. cmd Selection sub-command for action to be performed Possible values: (1)'list' (2)'loadData' (3)'setFile' (4)'readData' (5)'readFile' (6)'getFile' (7)'save' (8)'saveFile' (9)'reLoad' (10)'load' (11)'createVirtualTool' (12)'getToolConfig' toolid Tool ID. Integer in the interval [0..99] Valid for sub-commands (11)"createVirtualTool" and (12)"getToolConfig" data XML encoded tool definition character string Valid for sub-commands (2) 'loadData' and (3) 'setFile' dxt Tool x coordinate. Quantity without unit represented by a decimal number (floating-point). The unit will be indicated by the frame in which this tool will be used. The same tool may be used for movements in different frames. dyt Tool y coordinate. Unit: See remark for "dxt" argument dzt Tool z coordinate. Unit: See remark for "dxt" argument drzt Tool rz coordinate. Unit: This is selected for the rotary axis. Unlike the other coordinates, does not depend on the frame used. ← "0" ← "0 toolID= … toolID =" Where tid(1)… tid(n) represents all of the defined tool IDs. Ex. toolID=1 toolID=2 toolID=23 toolID=40 For activation of the sub-command (1)"list" ← "0 toolid= dxt= dyt= dzt= drzt=" For activation of sub-command (12)"getToolConfig" ← "1 Unknown command." If the "cmd" argument contains an unrecognised keyword. "40 Not permitted." ←"83 Tool data are needed!!" If the "data" argument is missing for the sub-commands (2)"loadData" or (3)"setFile" ←"88 Failed. " If the activation of sub-commands (2)"loadData" or (3)"setFile" have generated an exception. ← "89 Tool file saved!!!" If sub-command (3)"setFile" has run normally. ← "89 Tool data loaded!!!" If sub-command (2)"loadData" has run normally. ← "0 tooldata=" If sub-command (4)"readData" has run normally 000.100.520 Robot controller - Programming Guide 36/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 ← "84 Error by getting tool data." If sub-command (4)"readData" has generated an exception. ← "0 toolfile=" If sub-commands (5)"readFile" or (6)"getFile" have run normally. ← "84 Error by getting tool file. " If one of the sub-commands (5)"readFile" or (6)"getFile" has generated an exception. ← "85 Error by saving tool. " If one of the sub-commands (7)"save" or (8)"saveFile" has generated an exception. ← "1 Error while reloading the tools. " If sub-command (9)"reload" has generated an exception ← "85 Error can not reload the tools, the robot must be in the state OFF" For activation of sub-command (9)"reload" if the robot is not in the appropriate state. ← "85 Error by loading frame. " If the activation of sub-command (10)"load" has generated an exception. ← "85 Error by loading frame. " If sub-command (10)"load" has generated an exception. (the appearance of the term "frame" in this message is a typing error) ← "86 Tool ID is needed." For activation of sub-command "createVirtualTool" if the "toolid" argument is missing. ← "86 Tool id needed." For activation of sub-commands (11)"createVirtualTool" and (12)"getToolConfig" if the "toolid" argument is missing. ← "87 Invalid Tool ID" For activation of sub-command (11)"createVirtualTool" if the "toolId" argument does not correspond to an integer >0. ← " 88 dxt is needed." For activation of sub-command (11) "createVirtualTool" if the "dxt" argument is missing. ← " 88 dyt is needed." For activation of sub-command (11)"createVirtualTool" if the "dyt" argument is missing. ← " 88 dzt is needed." For activation of sub-command (11)"createVirtualTool" if the "dzt" argument is missing. ← " 88 drzt is needed." For activation of sub-command (11)"createVirtualTool" if the "drzt" argument is missing. ← "50 Internal error. " For activation of sub-commands (11)"createVirtualTool" or (12)"getToolConfig" if an exception is generated. 000.100.520 Robot controller - Programming Guide 37/49 Robot controller - Asyril SA Programming Guide Robot text commands Example: © Copyright Asyril S.A. Version: B1 WsTool cmd=list "0 toolID=0 toolID=1 toolID=3 toolID=25" If the tools with IDs {0,1,3,25} are defined See also: 000.100.520 Robot controller - Programming Guide 38/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.4 Input/output commands SETDIGITALOUTPUT channel value [duration] [append] Syntax: Function: Parameters: SETDIGITALOUTPUT channel=(i) value=(i) [duration=(f)] [append=(i)] this command is used to write on a digital output. channel Indicates the output number value Desired output state [0/1] duration Duration of output reversal [s] Only valid for the pocketDelta robot append Feedback: Example: Determines whether or not the command is executed sequentially. If append = 1, the command is added to the task list and will be executed in the order defined by the list. If append = 0 the command is executed immediately. Optional argument. Default value = 0 ← "0" ← "40 Not permitted" SETDIGITALOUTPUT channel=1 value=1 See also: WAITDIGITALINPUT channel value timeout [append] Syntax: Function: Parameters: Feedback: Example: WAITDIGITALINPUT channel=(i) value=(i) timeout=(f) [append=(i)] this command inserts a waiting task in the state of an input in the task list. channel Indicates the input number value Expected input state [0/1] timeout Maximum waiting time. [s] append Determines whether or not the command is executed sequentially. If append = 1, the command is added to the task list and will be executed in the order defined by the list. If append = 0 the command is executed immediately. Optional argument. Default value = 0 ← "0" ← "30 Wrong state" ← "40 Not permitted" WAITDIGITALINPUT channel=1 value=1 timeout=10 Waits for input no. 1 to be activated, but no longer than 10 seconds (timeout) See also: 000.100.520 Robot controller - Programming Guide 39/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.5 ARL interpreter commands PRG cmd [prgname] [prgdata] Syntax: Function: Parameters: Feedback: PRG cmd=[prgname=(s)] [prgdata=(s)] This command is used to access the functions of the ARL script interpreter and compiler. (program compilation, execution, etc.) cmd Selection sub-command for action to be performed Possible values: (1)'autoexec' (2)'getPrgList' (3)'compile' (4)'execute' (5)'stop' (6)'getOutput' (7)'getLog' (8)'readFile' (9)'writeFile' (10)'deleteFile' prgname Program name for the sub-commands (3)compile (4)execute (8)readFile (9)writeFile (10)deleteFile prgdata Program text for sub-command (9)writeFile ← "0" ← "0 " For activation of sub-command (6)getOutput ← "0 No output." For activation of sub-command (6)getOutput if the error output string is empty. ← "0 " For activation of sub-command (7)getLog ← "0 prgdata=" For activation of sub-command (8)readFile ← "0 prg= …. prg= prgActive=" For activation of sub-command (2) getPrgList. ← "0 prg= …. prg= prgactive=" For sub-command (2)getPrgList ← "1 Unknown command." If the sub-command for the "cmd" argument is not recognised. ← "40 Not permitted." ← "50 Internal error." For sub-commands (8)readFile (9)writeFile and (10)deleteFile if an exception occurs during an operation to access the file concerned. ← "83 " For activation of sub-command (3)compile if an exception is generated during compilation. ← "83 A program file is needed!!" For activation of sub-commands (3)compile, (4)execute and (8)readFile if the "prgname" argument is missing. ← "83 No program compiled" For sub-command (4)execute if the program to be executed is not compiled. 000.100.520 Robot controller - Programming Guide 40/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 ← "83 Program data are needed!!" For sub-command (9)writeFile if the "prgData" argument is missing. Example: "PRG cmd=execute prgname=myProgram" ← "0" If the program execution starts See also: 000.100.520 Robot controller - Programming Guide 41/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.6 Process commands The "process" module is an optional function used to manage "machine logic" (operating states, door management, indicator lights, etc.) from the robot controller. It can be activated by the "process.arc" configuration file. The process itself is modular and comprises a "control module" which corresponds to the robot's peripheral systems, such as the IO Wago system or an external vision system. Some of these modules have their own dedicated commands. The command below constitutes an entry point to all of the functions relating to the process. PROCESS cmd [programid] Syntax: Function: Parameters: PROCESS cmd=(s) [programid=(s)] this command enables the robot's "process" module to be addressed. cmd Selection sub-command for action to be performed Possible values: (1)'start' (2)'stop' (3)'getstates' (4)'loadarlprograms' (5)'updatearldata' (6)'clearalarm' (7)'clear' (8)'pause' (9)'getarlvalue' (10)'modulecmd' (11)'changecontext' programid Program name for the following sub-commands: (1)Start, (4)LoadArlPrograms 000.100.520 and (5)updatearldata start - If the "programid" argument is defined, starts its execution. - if the "programid" argument is not defined, and the OMAC state machine is activated, the effect depends on the current OMAC state: - STOPPED or COMPLETE: sends the OMAC "Reset" command. - IDLE: sends the OMAC "Start" command - HELD: sends the OMAC "Un-Hold" command - SUSPENDED: sends the OMAC "Un-Suspend" command - ABORTED: generates a process exception with the message: "ProcessController->cmdStart State=Aborted: Can not start : A clear must be done before starting" -(other OMAC states): no action Stop - If the OMAC machine is deactivated it interrupts the execution of the current program. - If the OMAC machine is activated, the OMAC "Stop" command is sent. Exception for states where a stop is not defined, i.e. states: -STOPPED, STOPPING, ABORTING, ABORTED getStates Gets a set of states from the process controller. See detailed format of the response below. Robot controller - Programming Guide 42/49 Robot controller - Asyril SA Programming Guide Robot text commands Feedback: © Copyright Asyril S.A. Version: B1 loadarlprograms Compiles and saves the ARL program given by the "programid" argument. The corresponding ARL file is ".arl", which must be located in the AsyrilData/Recipes/Current/arl directory If programId="all" the command results in the compilation of all the existing ARL programs. updatearldata Reloads the data (dynamic variable values) associated with the program given by the "programid" argument clearalarm Resetting of the "alarmstate" flag returned by the "getStates" command. (see below for the return of this command) clear Corresponds to the OMAC "Clear" signal. Used to exit the "Aborted" state. Only authorised from the OMAC "Aborted" state. pause Corresponds to the OMAC "Hold" signal. Used to switch to the "Holding" state. Only authorised from the OMAC "Execute" state. getarlvalue Used to find the value of an ARL variable via its name. e.g. getARlVarValue name=count modulecmd Used to redirect a command to a specific module by addressing it by its name. e.g. ModuleCmd cmd= ….. ← "0" ← "0 returninfo=succeed controllerstate=0 processstate= alarmstate= prgState=" For activation of sub-command (3)"getStates" ← "1 argument programid missing" For activation of sub-command (4)loadArlPrograms if the "programId" argument is missing. ← "1 returninfo= Program: programid cannot start: current program is not stopped" ← "2 returninfo= Program: programid is not found" Example: This example starts execution of the "demoprocess" program: → "Process cmd=start programid=demoprocess" ← "0" See also: 000.100.520 Robot controller - Programming Guide 43/49 Robot controller - Asyril SA Programming Guide Robot text commands © Copyright Asyril S.A. Version: B1 7.7 IOWAGO module commands The optional IoWago module corresponds to an input/output system of WAGO 753. This module is optional and must be configured and connected before use. READ name Syntax: Function: Parameters: Feedback: Example: READ name=(s) this command is used to read the input (digital or analogue) indicated by its name. Name Input name ← "true" ← "false" "Process ModuleCmd name=IoModule cmd=Read name=input1" See also: WRITE name value Syntax: Function: Parameters: Feedback: Example: WRITE name=(s) value=(s) this command is used to read the input (digital or analogue) indicated by its name. Name Input name Value Output value. Can have "true" or "false" value ← "0 returninfo=succeed" "Process ModuleCmd value=true" name=IoModule cmd=Write name=output1 See also: 000.100.520 Robot controller - Programming Guide 44/49 Robot controller - Asyril SA Programming Guide Technical Support © Copyright Asyril S.A. Version: B1 8 Technical Support 8.1.1 For a better service … Have you read the FAQ and the check-list and still not found an answer your questions? Before contacting us, please note down the following information concerning your product: - Serial number and product key for your equipment - Software version(s) used - Error message, alarm, or visual signals displayed by the interface. 8.1.2 Contact You can find extensive information on our website: www.asyril.com You can also contact our Customer Service department: [email protected] +41 26 653 71 90 000.100.520 Robot controller - Programming Guide 45/49 Robot controller - Asyril SA Programming Guide Alphabetical index © Copyright Asyril S.A. Version: B1 Alphabetical index C CONTROLLER ............................. 20 E EXIT ........................................... 19 G GETSTATE .................................. 22 GETVERSION ............................. 16 H HELP .......................................... 17 I IP .............................................. 19 000.100.520 L S LOADPOINT ............................... 29 SETBRAKES ................................ 30 LOG ............................................ 18 SETDIGITALOUTPUT.................. 39 LOGIN ........................................ 16 SETSLOWSPEED ........................ 29 LOGOUT ..................................... 17 SETSTATE .................................. 25 SETTCPPARAMETERS ................ 31 M MOVETO .................................... 26 P PRG ............................................ 40 PROCESS .................................... 42 R READ .......................................... 44 Robot controller - Programming Guide STOP .......................................... 28 SYSTEM ..................................... 18 W WAIT ......................................... 28 WAITDIGITALINPUT .................. 39 WRITE........................................ 44 WSFRAME ................................. 32 WSPOINT .................................. 34 WSTOOL .................................... 36 46/49 Robot controller - Asyril SA Programming Guide Thematic index © Copyright Asyril S.A. Version: B1 Thematic index SETTCPPARAMETERS ......................................... 31 CONTROLLER WSFRAME ................................................................ 32 WSPOINT .................................................................. 34 GETVERSION ........................................................... 16 WSTOOL ................................................................... 36 LOGIN ......................................................................... 16 LOGOUT .................................................................... 17 HELP ........................................................................... 17 LOG ............................................................................. 18 SYSTEM ..................................................................... 18 INPUT/OUTPUT MODULE IP.................................................................................. 19 SETDIGITALOUTPUT ............................................. 39 EXIT............................................................................. 19 WAITDIGITALINPUT ............................................... 39 CONFIGURATION ARL INTERPRETER CONTROLLER .......................................................... 20 ROBOT MODULE PRG ............................................................................ 40 PROCESS GETSTATE ................................................................ 22 PROCESS ................................................................. 42 SETSTATE ................................................................. 25 MOVETO .................................................................... 26 STOP........................................................................... 28 WAIT ........................................................................... 28 IO WAGO MODULE SETSLOWSPEED .................................................... 29 LOADPOINT .............................................................. 29 READ ......................................................................... 44 SETBRAKES ............................................................. 30 WRITE ........................................................................ 44 000.100.520 Robot controller - Programming Guide 47/49 Robot controller - Asyril SA Programming Guide Thematic index © Copyright Asyril S.A. Version: B1 Revision table Rev. Date Author A 27.03.2012 SiA Initial version B 21.08.2014 ZuM Complete instructions B1 09.08.2016 DaM Document and products names updated 000.100.520 Comments Robot controller - Programming Guide 48/49 This document is the property of Asyril S.A.; it may not be reproduced, modified or communicated, in whole or in part, without our prior written authorisation. Asyril S.A. reserves the right to modify any information contained in this document for reasons related to product improvements without prior notice Asyril SA z.i. le vivier 22 Ch-1690 Villaz-St-Pierre Switzerland Tel. +41 26 653 71 90 Fax +41 26 653 71 91 [email protected] www.asyril.com