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