robot controller - asyril · 3 configuring the robot 3.1 robot configuration files four files are...

49
Robot controller Programming Guide Document Asyril_ROBOT_Programming_Guide_EN 000.100.520 Version B1 Date 09.08.2016

Upload: others

Post on 10-Aug-2020

26 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robot controller - Asyril · 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

Robot controller

Programming Guide

Document Asyril_ROBOT_Programming_Guide_EN

000.100.520

Version B1 Date 09.08.2016

Page 2: Robot controller - Asyril · 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

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

Page 3: Robot controller - Asyril · 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

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)

Page 4: Robot controller - Asyril · 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

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

Page 5: Robot controller - Asyril · 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

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.

Page 6: Robot controller - Asyril · 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

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.

Page 7: Robot controller - Asyril · 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

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

Page 8: Robot controller - Asyril · 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

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.

Page 9: Robot controller - Asyril · 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

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

Page 10: Robot controller - Asyril · 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

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

Page 11: Robot controller - Asyril · 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

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

Page 12: Robot controller - Asyril · 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

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)

Page 13: Robot controller - Asyril · 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

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"

Page 14: Robot controller - Asyril · 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

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)

Page 15: Robot controller - Asyril · 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

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

Page 16: Robot controller - Asyril · 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

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

Page 17: Robot controller - Asyril · 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

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:

Page 18: Robot controller - Asyril · 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

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: -

Page 19: Robot controller - Asyril · 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

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: -

Page 20: Robot controller - Asyril · 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

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!!"

Page 21: Robot controller - Asyril · 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

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: ---

Page 22: Robot controller - Asyril · 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

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

Page 23: Robot controller - Asyril · 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

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.

Page 24: Robot controller - Asyril · 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

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

Page 25: Robot controller - Asyril · 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

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

Page 26: Robot controller - Asyril · 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

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)

Page 27: Robot controller - Asyril · 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

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:

Page 28: Robot controller - Asyril · 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

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:

Page 29: Robot controller - Asyril · 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

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:

Page 30: Robot controller - Asyril · 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

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:

Page 31: Robot controller - Asyril · 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

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:

Page 32: Robot controller - Asyril · 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

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.

Page 33: Robot controller - Asyril · 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

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:

Page 34: Robot controller - Asyril · 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

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.

Page 35: Robot controller - Asyril · 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

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:

Page 36: Robot controller - Asyril · 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

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

Page 37: Robot controller - Asyril · 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

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.

Page 38: Robot controller - Asyril · 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

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:

Page 39: Robot controller - Asyril · 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

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:

Page 40: Robot controller - Asyril · 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

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.

Page 41: Robot controller - Asyril · 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

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:

Page 42: Robot controller - Asyril · 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

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.

Page 43: Robot controller - Asyril · 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

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:

Page 44: Robot controller - Asyril · 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

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:

Page 45: Robot controller - Asyril · 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

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:

[email protected]

+41 26 653 71 90

Page 46: Robot controller - Asyril · 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

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

Page 47: Robot controller - Asyril · 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

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

Page 48: Robot controller - Asyril · 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

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

Page 49: Robot controller - Asyril · 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

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