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 © Copyright Asyril S.A.
Introduction Version: B1
000.100.520 Robot controller - Programming Guide 2/49
Table of contents
1 INTRODUCTION .............................................................................................................................................. 3
1.1 GENERAL INFORMATION ........................................................................................................................... 3
2 ROBOT CONTROLLER ARCHITECTURE ...................................................................................................... 4
3 CONFIGURING THE ROBOT .......................................................................................................................... 5
3.1 ROBOT CONFIGURATION FILES ................................................................................................................ 5
4 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
5 SYNTAX ........................................................................................................................................................... 8
5.1 GENERAL INFORMATION ........................................................................................................................... 8
5.1.1 Command syntax .......................................................................................................................... 8
5.1.2 Response syntax .......................................................................................................................... 9
6 MOVEMENT AND TRAJECTORY ................................................................................................................. 10
6.1 ROBOT STATE MACHINE ......................................................................................................................... 10
6.2 HOMING MODES FOR POCKETDELTA ROBOT ......................................................................................... 13
7 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
8 TECHNICAL SUPPORT................................................................................................................................. 45
8.1.1 For a better service … ............................................................................................................... 45
8.1.2 Contact ......................................................................................................................................... 45
ALPHABETICAL INDEX ........................................................................................................................................ 46
THEMATIC INDEX ................................................................................................................................................. 47
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Introduction Version: B1
000.100.520 Robot controller - Programming Guide 3/49
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)
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot controller architecture Version: B1
000.100.520 Robot controller - Programming Guide 4/49
2 Robot controller architecture
http server tcp server
Task Manager / task list
Hardware
Command interpreter
Process module Robot module
Workspace / Frames
State Machine
Path planner Robot RT IO
OMAC State Machine
ARL-Interpreter
tcp client http client
Control modules
Fig 1. Robot controller architecture
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Configuring the robot Version: B1
000.100.520 Robot controller - Programming Guide 5/49
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 <serialNumber>.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 <serialNumber>.controller file (extension ".controller")
defines all the control setting parameters. (PID, dynamic parameters, various synchro
options, etc. )
3) The <serialNumber>.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.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Communication with the robot Version: B1
000.100.520 Robot controller - Programming Guide 6/49
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.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Communication with the robot Version: B1
000.100.520 Robot controller - Programming Guide 7/49
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.
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
GetState
0 p0=v0 … pN=vNPolling
Thread TCP serverTCPClient1
TCPClient2
cmd
0 p0=v0 … pN=vN
Process
Text Protocol
Master application PocketDelta Robot
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Syntax Version: B1
000.100.520 Robot controller - Programming Guide 8/49
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.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Syntax Version: B1
000.100.520 Robot controller - Programming Guide 9/49
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
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
response from the robot, as shown in
Figure 5-1.
Figure 5-1: immediate response to any command
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'
DEMAND
ANSWER
MoveTO x=0.010 y=0.010 z=0.03 speedfactor=0.1CRLFMoveTO x=0.010 y=0.010 z=0.03 speedfactor=0.1CRLF
0CRLF30 Wrong state
0CRLF30 Wrong state
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Movement and trajectory Version: B1
000.100.520 Robot controller - Programming Guide 10/49
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
-2 STATE_EMERGENCY_PRESSED
The robot is in the "emergency stop"
state.
Release the emergency stop button to
switch to the "off" state.
-1 STATE_ERROR
The robot is in the "error" state.
Confirm and clear the error by
switching to the "off" state.
0 STATE_OFF
The robot is in the "off" state.
In order to issue a movement
instruction, select the "idle" state
1 STATE_HOMING
The robot is in the "homing" state.
When homing is complete, the state
automatically switches to "on" then
"idle".
2 STATE_ON The robot is in the "on" state.
The following logic state is "idle".
3 STATE_IDLE The robot is in the "idle" state.
The robot is ready to move.
Table 6-1: robot state lists
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Movement and trajectory Version: B1
000.100.520 Robot controller - Programming Guide 11/49
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
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Movement and trajectory Version: B1
000.100.520 Robot controller - Programming Guide 12/49
taskstate 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
state
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
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)
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Movement and trajectory Version: B1
000.100.520 Robot controller - Programming Guide 13/49
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
mode
corresponding name details
0 HOMING_NORMAL - 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"
1 HOMING_NORMAL_ONLY_ONCE
- 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 - 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"
3 HOMING_WITHOUT_SENSORS_ONLY_ONCE
- successive homing of the three motors: searching for first motor
index found after the external signal.
- only one homing at each activation
4 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 - Asyril SA
Programming Guide © Copyright Asyril S.A.
Movement and trajectory Version: B1
000.100.520 Robot controller - Programming Guide 14/49
5 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 - no homing
10 HOMING_ALL_TOGETHER - 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"
11 HOMING_ALL_TOGETHER_ONLY_ONCE
- 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)
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 15/49
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
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 16/49
7.1 Controller commands
GETVERSION
Syntax: GETVERSION
Function: Displays the label for the software version installed on the robot
Parameters: none
Feedback: ← "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: LOGIN user=(s) passwd=(s) [timeout=(f)]
Function: Open a session with a user name and password.
Parameters: user User name
passwd Password
timeout Optional. Timeout for the session in [s]. Default value 120[s]
Feedback: ← "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: Login user=admin passwd=secret timeout=300
See also: Logout
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 17/49
LOGOUT
Syntax: LOGOUT
Function: Exit the current session
Parameters: none
Feedback: ← "0"
Example: LOGOUT
See also: LOGIN
HELP
Syntax: HELP [command=(s)] [listdetailed=(i)]
Function: list all of the existing commands or display help for a specific command.
Parameters: command Name of specific command
listdetailed Print help for all commands in a file called "TextCMD.txt"
Feedback: ← "0" (Command OK)
← "10 cannot give help on <cmdName> Unknown command"
← "40 Not permitted." (login privilege is too low)
Example: HELP command=MoveTo
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 18/49
LOG
Syntax: LOG cmd=(s) [filename=(s)]
Function: Used to manage the controller's "log" functions
Parameters: 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
Feedback: ← "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: *SYSTEM* cmd=(s) [arg1=(s)] [arg2=(s)]
Function: Used to send a system command.
*NOTE*:
Command for Asyril internal use only. Otherwise, normal robot behaviour
cannot be guaranteed.
Parameters: cmd System command
arg1 First optional argument
arg2 Second optional argument
Feedback: ← "0 <command response>"
← "1 <command error>"
Example: -
See also: -
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 19/49
IP
Syntax: IP cmd=(s) [parameter=(s)] [value=(s)]
Function: Used to display or modify the robot's IP address
NOTE:
Only valid for the pocket delta type robot
Parameters: 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
Feedback: ← "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: *EXIT*
Function: Exit the controller application immediately
*NOTE*:
Command for Asyril internal use only. Otherwise, normal robot
behaviour cannot be guaranteed.
Parameters: none
Feedback: ← "0" (command ok)
← "40 Not permitted." (login privilege is too low)
Example: EXIT
See also: -
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 20/49
7.2 Configuration commands
CONTROLLER
Syntax: CONTROLLER cmd=(s) [name=(s)] [idx=(i)] [value=(s)] [data=(s)]
Function: Access to read and modify the controller's low-level parameters.
NOTE:
This "low-level" system is reserved for internal use by Asyril.
Parameters: 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)' sub-commands
idx Index for "vector" type parameter values
value
Parameter value for 'getParameter(s)' and 'setParameter(s)' sub-commands
data
XML data for 'setParameter[s]' sub-commands Supports percent encoding
Feedback: ← "0" (command ok)
← "0 <paramName>=<param value>"
For activation of "getParameter name=<paramName>"
← "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=<toStringCmdResult>"
For activation of "toString"
← "0 readcontrollerfile=<xmlFileAsString>"
For activation of "readControllerFile"
← "0 readmodelfile=<xmlFileAsString>"
For activation of "readModelFile"
← "0 controllerparameters=<xmlFileAsString>"
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!!"
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 21/49
Example: CONTROLLER cmd=setParameter name=offset value=0.005
See also: ---
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 22/49
7.3 Robot module commands
GETSTATE [frameID] [toolID]
Syntax: GETSTATE [<FrameID=(i)>] [<ToolID=(i)>]
Function: Returns the robot's current "status".
Parameters: FrameID numerical value referencing the identifier of the index (frame) concerned
ToolID numerical value referencing the identifier of the tool concerned
Feedback: 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)"
current Number of the current state, i.e.:
-2 -1 0 1 2 3
Estop Error Off Homing On Idle
See Table 6-1 for more details on the robot state machine
desired Number of the desired state.
motionstate 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
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 23/49
frameId ID of the frame in which the x,y,z coordinates are expressed
frameScaleX frameScaleY frameScaleZ
Scale factor of the frame queried for each direction (x, y and z)
toolId ID of the tool in which the coordinates are expressed
x, y, z, rz Current position of the robot in the index given by frameId and toolid
q0, q1, q2, q3 Current angular position of the motors [rad]
xdes, ydes, zdes, rzdes
Last target position
taskListsize, taskListstate,
currentTaskId,
pastTaskId
taskListSize: Total size (number of elements)
taskListState: State of the task list manager.
The state may take the following values.
-1 0 1
Error Done 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 Two possible values: 0 : slow speed deactivated 1: slow speed activated
brake 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
digitalInput,
digitalOutput
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,
errorMessage
errorCode: Number of the robot's current error.
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.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 24/49
prgState,
prgName
prgState: Execution state of the current ARL program.
May take the following values:
-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.
Example: "GetState frameId=11"
See also: Table 6-1: robot state lists
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 25/49
SETSTATE state
Syntax: SETSTATE <state=(s)/(i) >
Function: This command requires the robot's current state to be changed.
Parameters: state character string defining the desired state: ON, OFF or IDLE
or number of the corresponding state. See table 5-1
Feedback: ← "0"
← "30 Wrong state. Cannot set the robot in state <state>"
← "40 Not permitted"
Example: "SetState idle" equivalent to "SetState 3"
See also: Table 6-1: robot state lists
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 26/49
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: This command moves the robot according to the coordinates specified in the chosen
index, with the chosen tool and applying the chosen dynamic parameters.
Parameters: x x coordinate for the target position in the index given by the <frameId> argument World index if frameid is omitted.
y y coordinate for the target position in the index given by the <frameId> argument World index if frameid is omitted.
z z coordinate for the target position in the index given by the <frameId> 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.
limitworkspace
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 - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 27/49
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. [-264…+2
64-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.
Feedback: ← "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 <toolid> doesn't exist."
← "60 Wrong ID for point."
← "60 Point <pointid> doesn't exist."
← "60 Wrong ID for frame."
← "60 Frame <frameid> 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. <exception message>"
← "80 Move aborted. Cannot omit position parameter like x or y
or z with a frame of type MESH"
Example: MoveTo x=0.010 y=0.010 z=0.050
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 28/49
STOP [append]
Syntax: STOP [append=(i)]
Function: stops the movement in progress.
Parameters: 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
Feedback: ← "0"
← "30 Wrong state"
← "40 Not permitted"
Example: stop
See also:
WAIT duration [append]
Syntax: WAIT duration=(f) [append=(i)]
Function: Initiates a wait whose duration is determined by the <duration> argument: Unit: [s]
Parameters: 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
Feedback: ← "0"
← "30 Wrong state"
← "40 Not permitted"
Example: "Wait duration=3.0"
Initiates a wait of 3 seconds
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 29/49
SETSLOWSPEED slowspeed
Syntax: SETSLOWSPEED slowspeed=(i)
Function: activates or deactivates the robot's slow speed mode
Parameters: slowspeed sets the robot to slow or fast speed [0/1]
Feedback: ← "0"
← "40 Not permitted"
Example: SetSlowSpeed slowspeed=1
Activates the robot's slow speed
See also:
LOADPOINTS fileid
Syntax: LOADPOINTS
Function: Requests loading of a collection of robot positions.
These positions are saved and can be accessed using a keyword from the ARL script
language.
Parameters: 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:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 30/49
SETBRAKES release [force]
Syntax: SETBRAKES release=(i) [force=(i)]
Function: this command is used to release or apply the robot's brakes.
NOTE:
the three brakes are applied or released simultaneously
Parameters: 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.
Feedback: ← "0"
← "40 Not permitted"
Example: SetBrakes release=1
Releases the robot's brakes
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 31/49
SETTCPPARAMETERS
Syntax: SETTCPPARAMETERS [dx=(f)] [dy=(f)] [dz=(f)]
Function: 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: 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'
Feedback: ← "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:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 32/49
WSFRAME cmd [data] [frameid] [type]
Syntax: WSFRAME cmd=<cmdKeyword> [data=(s)] [frameid=(i)]
Function: this command enables a number of read and write operations in the "frames.xml"
frame definition file.
Parameters: 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"
Feedback: ← "0"
← "0 frameid=<fid(1)> … frameid=<fid(n)"
Where fid(1)… fid(n) represents all of the defined frame IDs.
e.g. frameid=1 frameid=2 frameid=23 frameid=40
For sub-command (1)"list"
← "0 framefile=<xmlFrameData>"
For activation of sub-command (5)"readFile" or (6)"getFile"
← "0 framedata=<xmlFrameData>"
For activation of sub-command (4)"readdata"
← "0 frameId=<id> ptconfig<0>0=<value>… ptconfig<3>3=<value>
parentframeid=<id> xnorme=<value> ynorme=<value>
xdistance=<value> ydistance=<value> type=<value>
ptcalib<0>0=<value> … ptcalib<3>3=<value>"
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. <Exception message>"
If sub-command (4)"readdata" has generated an exception.
← "84 Error by getting frame file. <Exception message>"
If sub-command (5)"readFile" or (6)"getFile" has generated an
exception.
← "85 Error by saving frame. <Exception message>"
If sub-command (7)"save" has generated an exception
← "85 Error while reloading the frames. <Exception message>"
If sub-command (9)"reload" has generated an exception
← "85 Error by loading frame. <Exception message>"
If the activation of sub-command (8)"load" has generated an
exception.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 33/49
← "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. <Exception message>"
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. <frame>
<ptconfig id='0'x='-0.005'y='0.028'z='0.007' rz='0.000'/>
…
<ptcalib id='0' x='0' y='0' z='0' rz='0'/>
…
</frame> …
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 34/49
WSPOINT cmd [pointid] [data] [xp] [yp] [zp] [rzp]
Syntax: WSPOINT cmd=<cmdKeyword>[data=(s)] [xp=(f)] [yp=(f)] [zp=(f)] [rzp=(f)]
Function: this command enables a number of read and write operations in the "points.xml" point
definition file.
Parameters: 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.
Feedback: ← "0"
← "0 pointID=<pid(1)> … pointID=<pid(n)>"
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=<dataXml>"
For activation of sub-command (4)"readData"
← "0 pointfile=<XmlPointFile>"
For activation of sub-commands (5)"readFile" and (6)"getFile"
← "0 pointid=<id> xp=<value> yp=<value> zp=<value> rzp=<value>"
For activation of sub-command (12)"getPointConfig"
← "1 Error while reloading the points. <ExceptionMessage>"
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. <ExceptionMessage>"
If one of the sub-commands (5)"readFile" or (6)"getFile" has
generated an exception.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 35/49
← "84 Error by getting point data. <ExceptionMessage>"
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.<ExceptionMessage>"
If the sub-commands (7)"save" or (8)"saveFile" have generated
an exception.
← "85 Error by loading frame. <ExceptionMessage>"
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 <id>"
For activation of sub-command (11)"createVirtualPoint" if the
"pointId" argument does not correspond to an integer >0
← "88 Failed. <ExceptionMessage>"
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:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 36/49
WSTOOL cmd [toolid] [data] [dxt] [dyt] [dzt] [drzt]
Syntax: WSTOOL cmd=<cmdKeyword>[data=(s)] [dxt=(f)] [dyt=(f)] [dzt=(f)] [drzt=(f)]
Function: this command enables a number of read and write operations in the "tools.xml" tool
definition file.
Parameters: 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.
Feedback: ← "0"
← "0 toolID=<tid(1)> … toolID =<tid(n)>"
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=<id> dxt=<value> dyt=<value> dzt=<value>
drzt=<value>"
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. <ExceptionMessage>"
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=<xmlData>"
If sub-command (4)"readData" has run normally
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 37/49
← "84 Error by getting tool data.<ExceptionMessage>"
If sub-command (4)"readData" has generated an exception.
← "0 toolfile=<xmlData>"
If sub-commands (5)"readFile" or (6)"getFile" have run
normally.
← "84 Error by getting tool file. <ExceptionMessage>"
If one of the sub-commands (5)"readFile" or (6)"getFile" has
generated an exception.
← "85 Error by saving tool. <ExceptionMessage>"
If one of the sub-commands (7)"save" or (8)"saveFile" has
generated an exception.
← "1 Error while reloading the tools. <ExceptionMessage>"
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. <ExceptionMessage>"
If the activation of sub-command (10)"load" has generated an
exception.
← "85 Error by loading frame. <ExceptionMessage>"
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. <ExceptionMessage>"
For activation of sub-commands (11)"createVirtualTool" or
(12)"getToolConfig" if an exception is generated.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 38/49
Example: 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:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 39/49
7.4 Input/output commands
SETDIGITALOUTPUT channel value [duration] [append]
Syntax: SETDIGITALOUTPUT channel=(i) value=(i) [duration=(f)] [append=(i)]
Function: this command is used to write on a digital output.
Parameters: channel Indicates the output number
value Desired output state [0/1]
duration Duration of output reversal [s]
Only valid for the pocketDelta robot
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
Feedback: ← "0"
← "40 Not permitted"
Example: SETDIGITALOUTPUT channel=1 value=1
See also:
WAITDIGITALINPUT channel value timeout [append]
Syntax: WAITDIGITALINPUT channel=(i) value=(i) timeout=(f) [append=(i)]
Function: this command inserts a waiting task in the state of an input in the task list.
Parameters: 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
Feedback: ← "0"
← "30 Wrong state"
← "40 Not permitted"
Example: WAITDIGITALINPUT channel=1 value=1 timeout=10
Waits for input no. 1 to be activated, but no longer than 10 seconds (timeout)
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 40/49
7.5 ARL interpreter commands
PRG cmd [prgname] [prgdata]
Syntax: PRG cmd=<cmdKeyword>[prgname=(s)] [prgdata=(s)]
Function: This command is used to access the functions of the ARL script interpreter and
compiler. (program compilation, execution, etc.)
Parameters: 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
Feedback: ← "0"
← "0 <prgErrOutput>"
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 <prgLogOutput>"
For activation of sub-command (7)getLog
← "0 prgdata=<ProgramText>"
For activation of sub-command (8)readFile
← "0 prg=<prgName1> …. prg=<prgName(n)>
prgActive=<prgActiveName>"
For activation of sub-command (2) getPrgList.
← "0 prg=<prgName1> …. prg=<prgName(n)>
prgactive=<prgActiveName>"
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 <ExceptionMessage>"
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.
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 41/49
← "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:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 42/49
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: PROCESS cmd=(s) [programid=(s)]
Function: this command enables the robot's "process" module to be addressed.
Parameters: 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 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 - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 43/49
loadarlprograms Compiles and saves the ARL program given by
the "programid" argument. The corresponding
ARL file is "<programid>.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=<moduleCmd> …..
Feedback: ← "0"
← "0 returninfo=succeed controllerstate=0
processstate=<OMAC_STATE_STRING> alarmstate=<true|false>
prgState=<PRG_STATE_STRING>"
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:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Robot text commands Version: B1
000.100.520 Robot controller - Programming Guide 44/49
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: READ name=(s)
Function: this command is used to read the input (digital or analogue) indicated by its name.
Parameters: Name Input name
Feedback: ← "true"
← "false"
Example: "Process ModuleCmd name=IoModule cmd=Read name=input1"
See also:
WRITE name value
Syntax: WRITE name=(s) value=(s)
Function: this command is used to read the input (digital or analogue) indicated by its name.
Parameters: Name Input name
Value Output value. Can have "true" or "false" value
Feedback: ← "0 returninfo=succeed"
Example: "Process ModuleCmd name=IoModule cmd=Write name=output1
value=true"
See also:
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Technical Support Version: B1
000.100.520 Robot controller - Programming Guide 45/49
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:
+41 26 653 71 90
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Alphabetical index Version: B1
000.100.520 Robot controller - Programming Guide 46/49
Alphabetical index
C
CONTROLLER ............................. 20
E
EXIT ........................................... 19
G
GETSTATE .................................. 22
GETVERSION ............................. 16
H
HELP .......................................... 17
I
IP .............................................. 19
L
LOADPOINT ............................... 29
LOG ............................................ 18
LOGIN ........................................ 16
LOGOUT ..................................... 17
M
MOVETO .................................... 26
P
PRG ............................................ 40
PROCESS .................................... 42
R
READ .......................................... 44
S
SETBRAKES ................................ 30
SETDIGITALOUTPUT .................. 39
SETSLOWSPEED ........................ 29
SETSTATE .................................. 25
SETTCPPARAMETERS ................ 31
STOP .......................................... 28
SYSTEM ..................................... 18
W
WAIT ......................................... 28
WAITDIGITALINPUT .................. 39
WRITE ........................................ 44
WSFRAME ................................. 32
WSPOINT .................................. 34
WSTOOL .................................... 36
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Thematic index Version: B1
000.100.520 Robot controller - Programming Guide 47/49
Thematic index
CONTROLLER
GETVERSION ........................................................... 16
LOGIN ......................................................................... 16
LOGOUT .................................................................... 17
HELP ........................................................................... 17
LOG ............................................................................. 18
SYSTEM ..................................................................... 18
IP .................................................................................. 19
EXIT............................................................................. 19
CONFIGURATION
CONTROLLER .......................................................... 20
ROBOT MODULE
GETSTATE ................................................................ 22
SETSTATE ................................................................. 25
MOVETO .................................................................... 26
STOP ........................................................................... 28
WAIT ........................................................................... 28
SETSLOWSPEED .................................................... 29
LOADPOINT .............................................................. 29
SETBRAKES ............................................................. 30
SETTCPPARAMETERS ......................................... 31
WSFRAME ................................................................ 32
WSPOINT .................................................................. 34
WSTOOL ................................................................... 36
INPUT/OUTPUT MODULE
SETDIGITALOUTPUT ............................................. 39
WAITDIGITALINPUT ............................................... 39
ARL INTERPRETER
PRG ............................................................................ 40
PROCESS
PROCESS ................................................................. 42
IO WAGO MODULE
READ ......................................................................... 44
WRITE ........................................................................ 44
Robot controller - Asyril SA
Programming Guide © Copyright Asyril S.A.
Thematic index Version: B1
000.100.520 Robot controller - Programming Guide 48/49
Revision table
Rev. Date Author Comments
A 27.03.2012 SiA Initial version
B 21.08.2014 ZuM Complete instructions
B1 09.08.2016 DaM Document and products names updated
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
www.asyril.com