Difference between revisions of "Remote Variable Access"
m |
m (fixed link) |
||
Line 3: | Line 3: | ||
=CRI Ethernet Interface= | =CRI Ethernet Interface= | ||
− | Main article and documentation: [[ | + | Main article and documentation: [[CRI Ethernet Interface|CRI Ethernet Interface]] |
Variables must be declared and defined in the running robot program in order to be accessed. That means the store command must have been called in the robot program before the variable value can be read or set using the CRI. | Variables must be declared and defined in the running robot program in order to be accessed. That means the store command must have been called in the robot program before the variable value can be read or set using the CRI. |
Revision as of 14:20, 25 January 2021
Variables are usually read and changed within a robot program. In case variables need to be set by a remote control either the CRI interface or the camera interface can be used, depending on the version of CPRog/iRC and TinyCtrl.
CRI Ethernet Interface
Main article and documentation: CRI Ethernet Interface
Variables must be declared and defined in the running robot program in order to be accessed. That means the store command must have been called in the robot program before the variable value can be read or set using the CRI.
The CRI commands to read variables are supported in CPRog/iRC V902-11-007 and TinyCtrl V980-11-085 and newer:
- GetNrVariable
- GetPosVariable
The CRI commands to change variables are supported in CPRog/iRC V902-11-011 and TinyCtrl V980-11-088 and newer:
- SetVariableSingle
- SetVariablePosCart
- SetVariablePosJoint
Please refer to the CRI documentation on how to use these commands.
Camera interface
The camera interface may be used to change variables if your version of CPRog/iRC or TinyCtrl does not support the SetVariable CRI commands. This interface is supported in CPRog/iRC V902-11-007 and TinyCtrl V980-11-085 and newer.
In order to use the camera interface you will need to program a TCP socket that simulates a IFM O2D camera by regularly sending values in the format specified below. CPRog/iRC or TinyCtrl then needs to be set up to connect to that socket and query the camera interface in the robot program.
Protocol
Create a TCP socket at a port of your choice (eg. 50010) that regularly sends messages in the following format:
0000start<status>#<ignored>#<ignored>#<model class>#<x coord>#<y coord>#<rotation>#<ignored>stop
<status> | PASS / FAIL, if FAIL the model class will be -1 and the coordinates will be ignored |
<ignored> | any number |
<model class> | integer |
<x coord> | x value (integer) + 320 |
<y coord> | y value (integer) + 240 |
<rotation> | A value (float) |
Interface configuration
Open the camera configuration (File -> Configure Interfaces -> Cameras), select IFM O2D and click Add Camera.
- Check the enabled box
- Set the IP address and port of your TCP socket
- Set ScaleX and ScaleY to 1 or lower if you need more precision
- Set Origin to (0, 0, 0)
- Set Look to (0, 0, 1)
- Set Up to (1, 0, 0)
Then save your project with the button below. TinyCtrl must be connected to update its configuration.
Query values in robot program
In order to read the values in the robot program the Camera command must be used. The x, y and A values will be written into the target position variable and the model class will be written to the model class number variable. If you need x, y, z coordinates you may use the Math-Set command to copy the A value to the z element.