Skip to main content

Tango device server for ISARA and ISARA2 sample changers.

Project description

Tango device server for Irelec Isara sample changer robot

This repository implements a Tango device server for controlling an Irelec Isara sample changer robot.

This Tango device server supports the Isara1 and Isara2 models of the Irelec sample changer robots (where Isara1 is the unofficial name for the robot model at BioMAX). The device server automatically detects the model on the start-up. The aim of this implementation to provide same Tango API for both Isara1 and Isara2 systems as much as possible. However, the available Tango attributes and commands are different, as not all features are available on both Isara1 and Isara2 sample changes.

Tango device server API

Properties

The Tango device is configured using properties below.

property mandatory default purpose
host yes n/a network address of the ISARA device
operate_port no 10000 TCP port number of the process control socket
monitor_port no 1000 TCP port number of the status feedback socket

Note that the process control socket is also referred as Socket 1 and status feedback socket as Socket 2 in Irelec documentation.

When this Tango device is used for Isara1 robot, it's soak position coordinates must be configured. Use the following soak position configuration properties.

property mandatory default purpose
soak_pose_rx no 0.0 Reference RX orientation in soaking pose (°)
soak_pose_ry no 0.0 Reference RY orientation in soaking pose (°)
soak_pose_rz no 0.0 Reference RZ orientation in soaking pose (°)
soak_pose_x no 0.0 Reference X position in soaking pose (mm)
soak_pose_y no 0.0 Reference Y position in soaking pose (mm)
soak_pose_z no 0.0 Reference Z position in soaking pose (mm)

Note that Isara2 does not need soak configuration. The soak_* configuration properties will be ignored.

Attributes

Following attributes are available on both Isara1 and Isara2 systems:

attribute description
Barcode last datamatrix read value
CurrentNumberOfSoaking soaking phases number for grippers that need to be cooled
FaultStatus is system in fault or stop mode
LN2Regulation is LN2 regulation running
Message last information message from PLC
Path currently running path's name
PathRunning is path running
PathSafe arm is parked
PlateNumberOnTool number of the plate mounted on the tool
PoseRX Rx orientation coordinate of current cartesian pose (°)
PoseRY Ry orientation coordinate of current cartesian pose (°)
PoseRZ Rz orientation coordinate of current cartesian pose (°)
PoseX X position coordinate of current cartesian pose (mm)
PoseY Y position coordinate of current cartesian pose (mm)
PoseZ Z position coordinate of current cartesian pose (mm)
PositionName robot arm's current position name
Powered is robot arm powered on
PuckNumberOnDiff* puck number of the sample mounted on diffractometer
PuckNumberOnTool* puck number of the sample mounted on jaw A tool
PuckNumberOnToolB* puck number of the sample mounted on jaw B tool
RemoteMode is remote operating mode enabled
SampleDetectedOnGonio is a sample currently detected on the gonio
SampleNumberOnDiff* number of the sample mounted on diffractometer
SampleNumberOnTool* number of the sample on jaw A tool
SampleNumberOnToolB* number of the sample on jaw B tool
SampleOnDiff sample mounted on diffractometer, puck and pin numbers
SampleOnToolA sample on jaw A tool, puck and pin numbers
SampleOnToolB sample on jaw B tool, puck and pin numbers
SpeedRatio current robot arm speed ratio (%)
Tool tool name

* - deprecated attributes, they are slated for removal in the future

Following attributes are available only on Isara2 model:

attribute description
BinaryAlarms binary alarms flags
CryoVisionData puck and sample presence info from cryo-vision controller
GripperDrying is gripper drying in progress
HeatingCablesOn are heating cables turned ON
LN2Level LN2 current level in the Dewar (%)
PathPause is path paused
PlateNumberOnDiff number of the plate mounted on the diffractometer

Following attributes are available only on Isara1 model:

attribute description
GonioX goniometer position (X)
GonioY goniometer position (Y)
GonioZ goniometer position (Z)

Commands

Isara1

Command Description
GetPlate Get plate from the goniometer and place it back on its support.
GetPutPlate Get plate currently on goniometer and put a new plate.
PutPlate Take plate from support and put it on the goniometer.

For the Tango commands SpeedUp and SpeedDown on Isara1 the command remotespeedon is called beforehand and remotespeedoff afterwards.

For the Tango commands Soak and Back on Isara1 if the current position is estimated to be the soaking position then the command raises an exception and is not forwarded to the robot. Indeed Isara1 has an issue where it makes an horizontal move even if the gripper is still in the dewar which causes a collision.

Tests

To run tests, install this package with optional tests dependencies. For example, when using pip:

$ pip install --editable .[tests]

Run tests with:

$ pytest

Emulation

This package contains code that can emulate network API of Isara1 and Isara2 robots. This emulation is used by the tests described above. The emulator can also be run as a stand-alone process, which can be helpful when developing the tango device code.

To start the emulator use IsaraEmulator command. This command is provided by this package, when installed with for example pip utility. To start emulator, use:

$ IsaraEmulator --enable-logging ISARA2 2222 3333

This will start Isara2 API emulation. The process control socket will be emulated on port 2222. The status feedback socket will be emulated on port 3333. Use IsaraEmulator --help to get description of all available options and features.

For more information on the emulator, see the isara/emulator/readme.md file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tangods_isara-5.0.0.tar.gz (51.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tangods_isara-5.0.0-py3-none-any.whl (49.1 kB view details)

Uploaded Python 3

File details

Details for the file tangods_isara-5.0.0.tar.gz.

File metadata

  • Download URL: tangods_isara-5.0.0.tar.gz
  • Upload date:
  • Size: 51.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for tangods_isara-5.0.0.tar.gz
Algorithm Hash digest
SHA256 c78b04c3c0b8ef90f48eba9dce037db1abcc57b9d88df98444327be5f767fc97
MD5 6cbac5d15908d48d58a34b02a1bd65bc
BLAKE2b-256 d44c9b5fdb018d4fbad7e890d6bbe3d78364864805577af1ff896a096f2592a6

See more details on using hashes here.

File details

Details for the file tangods_isara-5.0.0-py3-none-any.whl.

File metadata

  • Download URL: tangods_isara-5.0.0-py3-none-any.whl
  • Upload date:
  • Size: 49.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for tangods_isara-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5791be19c9ead012b902a692397e49b65a1eb63a31356a9af50f43ac8c0980b
MD5 1c76bcb4e09148b2889ff9f58ab462f6
BLAKE2b-256 7b1e5566fb3a6e66a098ba253c08e0adf8f61c663eaf8478c73c5cbf1c62fe50

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page