background image

54

 

 

Programming manual for Meca500 (for firmware 9.2.x) 

TCP/IP COMMUNICATION

2.5. Responses and messages

The Meca500 sends responses and messages over its control port when it encounters an error, when it 

receives a request command or certain motion commands, and when its status changes. All responses 

from the Meca500 consist of an ASCII string in the following format:

[4-digit code][text message OR comma-separated return values]

The four-digit code indicates the type of response:

[1000] to [1999]: Error message due to a command;
[2000] to [2999]: Response to a command, or pose and joint set feedback;
[3000] to [3999]: Status update message or general error.

The second part of a command error message [1xxx] or a status update message [3xxx] will always be 

a description text. The second part of a command response [2xxx] may be a description text or a set of 

comma-separated return values, depending on the command.
All text descriptions are intended to communicate information to the user and are subject to change 

without notice. For example, the description "Homing failed" may eventually be replaced by “Homing has 

failed.” Therefore, you must rely only on the four-digit code of such messages. Any change in the codes 

or in the format of the comma-separated return values will always be documented in the firmware 

upgrade manual. Finally, return values are either integers or IEEE-754 floating-point numbers with up to 

nine decimal places.

2.5.1  Command error messages

When the Meca500 encounters an error while executing a command, it goes into error mode. See 

Section 

2.6.1

 for details on how to manage these errors.

Table 1

 lists all command error messages.

COMMAND ERROR MESSAGES

Message

Explanation

[1000][Command buffer is full.]

Maximum number of queued commands reached. Retry by 

sending commands at a slower rate.

[1001][Empty command or command 

unrecognized. - Command: '...']

Unknown or empty command.

[1002][Syntax error, symbol missing. - 

Command: '...']

A parenthesis or a comma has been omitted.

[1003][Argument error. - Command: '...']

Wrong number of arguments or invalid input (e.g., the 

argument is out of range).

[1005][The robot is not activated.]

The robot must be activated.

[1006][The robot is not homed.]

The robot must be homed.

[1007][Joint over limit (... is not in range [...,...] 

for joint ...). - Command: '...'.]

The robot cannot execute the 

MoveJoints

 or 

MoveJointsRel

 

command because at least one of its joints is either already or 

will become outside the user-defined limits.

[1010][Linear move is blocked because a 

joint would rotate by more than 180deg. - 

Command: '...']

The linear motion cannot be executed because it requires a 

reorientation of 180° of the end-effector, and there may be 

two possible paths.

Summary of Contents for Meca500 R3

Page 1: ...MECA500 R3 R4 PROGRAMMING MANUAL For Firmware Version 9 2 x Document Revision 1 November 2 2022 ...

Page 2: ...ommitment by Mecademic This manual will be periodically reviewed and revised While every effort has been made to ensure accuracy in this publication no responsibility can be accepted for errors or omissions Data may change as well as legislation and you are strongly advised to obtain copies of the most recently issued regulations standards and guidelines This document is not intended to form the b...

Page 3: ...1 3 1 Homing 11 1 3 2 Recovery mode 12 1 3 3 Blending 12 1 3 4 Position and velocity modes 13 2 TCP IP COMMUNICATION 15 2 1 Motion commands 15 2 1 1 Delay t 16 2 1 2 GripperOpen GripperClose 16 2 1 3 MoveGripper d 16 2 1 4 MoveJoints θ1 θ2 θ3 θ4 θ5 θ6 17 2 1 5 MoveJointsRel Δθ1 Δθ2 Δθ3 Δθ4 Δθ5 Δθ6 17 2 1 6 MoveJointsVel θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 18 2 1 7 MoveLin x y z α β γ 18 2 1 8 MoveLinRelTrf x ...

Page 4: ... 2 7 EnableProfinet e 29 2 2 8 GetExtToolFwVersion 29 2 2 9 GetFwVersion 29 2 2 10 GetModelJointLimits n 30 2 2 11 GetProductType 30 2 2 12 GetRobotName 30 2 2 13 GetRobotSerial 30 2 2 14 Home 30 2 2 15 LogTrace s 31 2 2 16 LogUserCommands e1 e2 31 2 2 17 PauseMotion 31 2 2 18 ResetError 31 2 2 19 ResetPStop 32 2 2 20 ResumeMotion 32 2 2 21 SetCtrlPortMonitoring e 32 2 2 22 SetEob e 33 2 2 23 SetE...

Page 5: ...3 12 GetGripperVel 42 2 3 13 GetJointAcc 42 2 3 14 GetJointLimits n 42 2 3 15 GetJointLimitsCfg 43 2 3 16 GetJointVel 43 2 3 17 GetMonitoringInterval 43 2 3 18 GetNetworkOptions 43 2 3 19 GetRealTimeMonitoring 44 2 3 20 GetTorqueLimits 44 2 3 21 GetTorqueLimitsCfg 44 2 3 22 GetTrf 44 2 3 23 GetVelTimeout 44 2 3 24 GetWrf 44 2 4 Real time data request commands 45 2 4 1 GetCmdPendingCount 46 2 4 2 G...

Page 6: ... messages 59 2 5 4 Monitoring port messages 60 2 6 Management of errors and hardware stops 62 2 6 1 Errors detected by the robot 62 2 6 2 P Stop 2 62 2 6 3 E Stop and P Stop 1 62 3 COMMUNICATING OVER CYCLIC PROTOCOLS 63 3 1 Cyclic data 63 3 2 Types of robot commands 63 3 2 1 Status change commands 63 3 2 2 Triggered actions 63 3 2 3 Motion commands 64 3 3 Sending motion commands 64 3 3 1 Command I...

Page 7: ...4 2 12 WRF 80 4 2 13 TRF 80 4 2 14 Robot timestamp 81 4 2 15 Dynamic data 81 4 2 16 Communication mode SDO 83 4 3 PDO Mapping 83 5 ETHERNET IP COMMUNICATION 85 5 1 Connection types 85 5 2 EDS file 85 5 3 Forward open exclusivity 85 5 4 Enabling Ethernet IP 85 5 5 Output tag assembly 85 5 5 1 Robot control tag 86 5 5 2 MoveID tag 86 5 5 3 Motion control tag 87 5 5 4 Motion command group of tags 87 ...

Page 8: ...namic data 94 6 PROFINET COMMUNICATION 95 6 1 PROFINET conformance class 95 6 1 1 PROFINET limitations on the Meca500 robot 95 6 2 Connection types 95 6 2 1 Limitations when daisy chaining robots 95 6 2 2 PROFINET protocol over your Ethernet network 95 6 3 Enabling PROFINET 96 6 4 Exclusivity of AR 96 6 5 GSDML file 97 6 5 1 Meca500 modules and sub modules 97 6 6 Cyclic data 97 6 7 Alarms 97 7 GLO...

Page 9: ...yclic communication protocols EtherCAT EtherNet IP and PROFINET are also available and described in this manual However even if you do not intend to use the TCP IP protocol it is necessary to read the chapter that describes its text based commands Reading the Meca500 User Manual and understanding the robot s operating principles is a prerequisite to reading this Programming Manual Symbol definitio...

Page 10: ......

Page 11: ...seconds s except for timestamps 1 1 2 Joint numbering The joints of the Meca500 are numbered in ascending order starting from the base as shown in Figure 1a 1 2 3 4 5 6 a robot with all joints numbered and at zero degrees b robot s flange with joint 6 at zero degrees Figure 1 Robot s joint numbering and zero degree joint positions 1 1 3 Reference frames We use right handed Cartesian coordinate sys...

Page 12: ...FRF It can be defined with respect to the FRF with the SetTrf command TCP tool center point Origin of the TRF Not to be confused with the Transmission Control Protocol acronym which is also used in this document Figure 2 Reference frames for the Meca500 1 1 4 Pose and Euler angles Some Meca500 commands accept pose position and orientation of one reference frame with respect to another as an input ...

Page 13: ... of the end effector alone does not unequivocally define the required joint angles see Section 1 2 1 1 1 5 Joint angles and joint 6 turn configuration The angle associated with joint i i 1 2 6 θi will be referred to as joint angle i Since joint 6 can rotate more than one revolution you should think of the joint angle as a motor angle rather than as the angle between two consecutive robot links A j...

Page 14: ...he TRF with respect to the WRF Figure 4 and many more joint sets since if θ6 is a solution then θ6 n360 where n is an integer is also a solution Each of these solutions is associated with one of eight robot posture configurations defined by three parameters cs ce and cw Each of these parameters corresponds to a specific geometric condition on the robot posture see Figure 5 cs shoulder configuratio...

Page 15: ...sired turn configuration ct an integer in the range 100 defined by the SetConfTurn command The turn is therefore the last inverse kinematics configuration parameter Both the turn configuration and the set of robot posture configuration parameters are needed to pinpoint the solution to the robot inverse kinematics i e to pinpoint the joint set corresponding to the desired pose However there are maj...

Page 16: ...and the three types of singularities Though it is possible to calculate the optimal the shortest move from current robot position inverse kinematic solution commands SetAutoConf and SetAutoConfTurn we highly recommend that you always specify the desired values for the configurations parameters with the commands SetConf and SetConfTurn for every Cartesian coordinates motion command i e MovePose and...

Page 17: ...ions work MovePose 1 2 Notes 1 SetConf cs ce cw disables AutoConf while SetAutoConf 1 disables the desired posture setting When SetAutoConf 0 is executed the new desired posture configuration will be the one corresponding to the current robot position 2 SetConfTurn ct disables AutoConfTurn while SetAutoConfTurn 1 disables the desired turn setting When SetAutoConfTurn 0 is executed the new desired ...

Page 18: ...sitions are the same as the desired configurations and will stop if desired configuration parameter has to change When automatic configuration selection is enabled a MoveLin command may lead to changing the posture if passing through a wrist or shoulder singularity or turn configuration along the path Finally note that there is currently no way of specifying only one of the posture configuration p...

Page 19: ...e 5f It occurs when the arm is fully stretched i e when the wrist center is in one plane with the axes of joints 2 and 3 In the Meca500 this singularity occurs when θ3 arctan 60 19 72 43 You will run into this singularity when you try to reach poses that are too far from the robot base The third type of singularity is called a shoulder singularity Figure 5h It occurs when the center of the robot s...

Page 20: ...ot will execute the MoveLin command but when it reaches configuration Z2 joint 4 will rotate 180 and joint 6 will rotate 180 at the same time while the end effector will remain stationary After that the robot will continue its linear motion and reach the robot position D2 which corresponds to the same pose as D1 In contrast since shoulder singularities are much less frequent yet much more complex ...

Page 21: ... angles This motion is the essential part of a procedure called homing During homing all joints rotate simultaneously Joints 1 2 and 3 each rotate 3 6 joints 4 and 5 rotate 7 2 each and joint 6 rotates 12 Then all joints rotate back to their initial angles The whole sequence lasts three seconds Make sure there is nothing that restricts these joint movements or the homing process will fail Homing w...

Page 22: ...manner either the robot is moved to its end effector to a certain pose using a Cartesian space command or its joints moved to a specified joint set using a joint space command When the target is a joint set you have no control over the path that the robot s end effector will follow When the target is a pose you can let the robot choose the path or require the TCP to follow a linear path If the rob...

Page 23: ... the velocity mode Velocity mode is designed for advanced applications such as force control dynamic path corrections or telemanipulation for example the jogging feature in Meca500 s web interface is implemented using velocity mode commands Controlling the robot in velocity mode requires one of the three velocity mode motion commands MoveJointsVel MoveLinVelTrf or MoveLinVelWrf Note that the effec...

Page 24: ... s s s s s s MoveLinVelTrf mm s mm s mm s s s s MoveLinVelWrf mm s mm s mm s s s s MoveLin mm mm mm MoveLinRelTrf mm mm mm MoveLinRelWrf mm mm mm MoveJoints MoveJointsRel MovePose mm mm mm SetVelTimeout s SetJointAcc Cartesian space Joint space Position mode Velocity mode Figure 11 Settings that influence the robot motion in position and velocity modes ...

Page 25: ...ertain parameter values are persistants they have manufacturer s default values but the changes you make to these are written on an SD drive and persist even if you power off the robot 2 1 Motion commands Motion commands are used to construct a trajectory for the robot When the Meca500 receives a motion command it places it in a motion queue The command will be run once all preceding commands have...

Page 26: ...tion command and will be executed only after the preceding motion command has been completed However if a robot motion command is sent after either command the robot will start executing the motion command without waiting for the gripper to finish its action You must therefore send a Delay command after these commands 2 1 3 MoveGripper d The MEGP 25E and MEGP 25LS grippers are equipped with increm...

Page 27: ...nts θ1 θ2 θ3 θ4 θ5 θ6 This command makes the robot simultaneously rotate all Its joints to the specified joint set The robot takes a linear path in the joint space but nonlinear in the Cartesian space Therefore the TCP trajectory is not easily predictable Figure 12 Finally with MoveJoints the robot can cross singularities without any problem Arguments θi the admissible angle of joint i i 1 2 6 in ...

Page 28: ... bear in mind that the MoveJointsVel command unlike position mode motion commands generates no motion errors when a joint limit is reached The robot simply stops slightly before the limit 2 1 7 MoveLin x y z α β γ This command makes the robot move its end effector so that its TRF ends up at a desired pose with respect to the WRF while the TCP moves along a linear path in Cartesian space as illustr...

Page 29: ...Lin command if the complete motion cannot be performed it will not even start and an error will be generated Arguments x y z the position coordinates in mm α β γ the Euler angles in degrees 2 1 9 MoveLinRelWrf x y z α β γ This command is similar to the MoveLinRelTrf command but instead of defining the desired pose with respect to the current pose of the TRF it is defined with respect to a referenc...

Page 30: ...is sent and of course unless a PauseMotion command is sent or some motion limit is encountered Also bear in mind that this command unlike position mode motion commands generates no motion errors when a joint limit including the desired turn configuration or a singularity that cannot be crossed is reached The robot simply stops before the limit 2 1 12 MovePose x y z α β γ This command makes the rob...

Page 31: ...he robot receives the command SetConf 2 1 14 SetAutoConfTurn e This command enables or disables the automatic turn selection for joint 6 Section 1 2 1 and Section 1 2 2 It affects the MovePose command and all MoveLin commands When the automatic turn selection is enabled and a MovePose command is executed joint 6 will always take the shortest path and rotate no more than 180 In the case of a MoveLi...

Page 32: ...elocity limit ranging from 0 001 s to 300 s Default values The default end effector angular velocity limit is 45 s The actual angular velocity may be slower than requested in some parts of the linear move near singularities for example in order to keep joint velocities within their physical limits 2 1 18 SetCartLinVel v This command limits the Cartesian linear velocity of the robot TRF with respec...

Page 33: ...sture configuration The posture configuration can be automatically selected when executing a MovePose or MoveLin command by using the SetAutoConf command Using SetConf automatically disables the automatic posture configuration selection Arguments cs shoulder configuration parameter either 1 or 1 ce elbow configuration parameter either 1 or 1 cw wrist configuration parameter either 1 or 1 Default v...

Page 34: ...y default the grip force limit is 50 2 1 23 SetGripperRange dclosed dopen This command sets the closed and open states of the gripper and is used mainly to redefine the actions of the GripperClose and GripperOpen commands respectively The SetGripperRange command is useful for the MEGP 25LS gripper If for example you are manipulating parts that require fingers opening between 10 mm and 20 mm but th...

Page 35: ...50 Default values The default joint acceleration limit is 100 Note that the argument of this command is exceptionally limited to 150 This is because in firmware 8 a scaling was applied so that if this argument is kept at 100 most joint space movements are feasible even at full payload More precisely if you are upgrading from firmware 7 and you want to keep the same joint accelerations you need to ...

Page 36: ... queue and not necessarily executed immediately Arguments pi percentage of the maximum allowable torque that can be applied at joint i where i 1 2 6 ranging from 0 001 to 100 Default values By default all six torque thresholds are set to 100 2 1 28 SetTorqueLimitsCfg s m This command sets the robot behavior when a joint torque exceeds the threshold set by the SetTorqueLimits command It also sets t...

Page 37: ...and sets the timeout after a velocity mode motion command MoveJointsVel MoveLinVelTrf or MoveLinVelWrf after which all joint speeds will be set to zero unless another velocity mode motion command is received The SetVelTimeout command should be regarded simply as a safety precaution Arguments t desired time interval in seconds ranging from 0 001 s to 1 s Default values By default the velocity mode ...

Page 38: ...ing the robot or its surroundings Simulation mode can be activated and deactivated with the ActivateSim and DeactivateSim commands this command can only be executed when the robot is deactivated Responses 2045 The simulation mode is enabled 2046 The simulation mode is disabled 2 2 3 ClearMotion This command stops the robot movement in the same fashion as the PauseMotion command i e by decelerating...

Page 39: ...o be controlled by a PROFINET controller Please note that enabling PROFINET also enables LLDP packets forwarding between the two Ethernet ports of the robot Arguments e enable 1 or disable 0 PROFINET Default values PROFINET is disabled when the robot is shipped from Mecademic Changes in this setting have a persistent effect remain even after a powering the robot off 2 2 8 GetExtToolFwVersion This ...

Page 40: ...ses DHCP Responses 2095 s s string containing the robot s name 2 2 13 GetRobotSerial This command returns the serial number of the robot for robots manufactured recently For all other robots the serial number can only be found on the back of the robot s base Responses 2083 robot s serial number 2 2 14 Home This command starts the robot and MEGP 25 gripper homing process Section 1 3 1 While homing ...

Page 41: ...robot TCP will stop somewhere along the linear path If you want to know where exactly did the robot stop you can use the GetRtCartPos or GetRtJointPos commands Strictly speaking the PauseMotion command pauses the robot motion the rest of the trajectory is not deleted and can be resumed with the ResumeMotion command The PauseMotion command is useful if you develop your own HMI and need to implement...

Page 42: ... stop after deceleration unless an error occurred after the PauseMotion or the robot was deactivated and then reactivated It is not possible to pause the motion along a trajectory have the end effector move away then have it come back and finally resume the trajectory Motion commands sent while the robot is paused will be placed in the queue This command must also be sent after the ClearMotion com...

Page 43: ...SetCartAcc and SetJointAcc commands If blending is enabled even only partially then there would be no end of movement message between two consecutive Cartesian space commands MoveLin MoveLinRelTrf MoveLinRelWrf or two consecutive joint space commands MoveJoints MovePose Arguments e enable 1 or disable 0 the end of movement message Default values By default the end of movement message is disabled R...

Page 44: ...les the user defined limits set by the SetJointLimits command It can only be executed while the robot is deactivated If the user defined limits are disabled the default joint limits become active However user defined limits remain in memory and can be re enabled even after a power down Example one of the wrist joints has been inadvertently rotated outside its activated user defined limits preventi...

Page 45: ...e Start Stop button not when starting a program using the StartProgram command Arguments e enable 1 or disable 0 the loop execution Default values By default looping is disabled Responses 1022 Robot was not saving the program This command does not generate an immediate response It is only when saving a program that a message indicates whether loop execution was enabled or disabled However if the c...

Page 46: ... for the response of the GetRtGripperForce command 2322 or GripperPos for the response of the GetRtGripperPos command 2323 or GripperVel for the response of the GetRtGripperVel command All to enable all of the above responses Default values After a power up none of the above messages are enabled Responses 2117 n1 n2 n1 n2 a list of response codes The SetRealTimeMonitoring command does not have a c...

Page 47: ...the robot was not homed before enabling the recovery mode the robot movements will be less accurate The same applies for the movements of the Mecademic grippers if such a gripper was installed on the robot In addition you would not be able to use the MoveGripper command but can still use the GripperOpen and GripperClose commands If the robot was already homed when the recovery mode was enabled the...

Page 48: ...ain in the robot internal memory even after disconnecting the power Saving a new program with the same argument overwrites the existing program The robot records all commands sent between the StartSaving and StopSaving commands The robot will execute but not record Get commands GetBlending GetRtCartPos etc If the robot receives a change of state command BrakesOn Home PauseMotion SetEom etc while r...

Page 49: ...ernet based protocols see Section 4 Enabling EtherCAT will disable all other communication protocols TCP IP EtherNet IP PROFINET The web portal is NOT accessible while in EtherCAT mode There are two ways to disable EtherCAT and thus re enable another communication protocols 1 Use the appropriate EtherCAT command Section 4 1 3 2 Perform a network configuration reset press and hold the power button ...

Page 50: ...rder For every Get command in this section there is a corresponding Set command 2 3 1 GetAutoConf This command returns the state of the automatic posture configuration selection which can be affected by SetAutoConf and SetConf commands Responses 2028 e e enabled 1 or disabled 0 2 3 2 GetAutoConfTurn This command returns the state of the automatic turn configuration selection which can be affected ...

Page 51: ...r MoveLin command in the motion queue This is either the posture configuration explicitly specified with the SetConf command or the one that was automatically assigned when the SetAutoConf 0 command was executed Responses 2029 cs ce cw cs shoulder configuration parameter either 1 or 1 ce elbow configuration parameter either 1 or 1 cw wrist configuration parameter either 1 or 1 if automatic posture...

Page 52: ...g or defined with the GetGripperRange command Responses 2162 dclosed dopen dclosed fingers opening that should correspond to closed state in mm dopen fingers opening that should correspond to open state in mm 2 3 12 GetGripperVel This command returns the percentage of maximum finger velocity for the Mecademic grippers This percentage is set by the SetGripperVel command Responses 2159 p p percentag...

Page 53: ...l This command returns the desired joint velocity reduction factor set with the SetJointVel command Responses 2152 p p percentage of maximum joint velocities 2 3 17 GetMonitoringInterval This command returns the time interval at which real time feedback from the robot is sent from the robot over TCP port 10001 Responses 2116 t t time interval in seconds 2 3 18 GetNetworkOptions This command return...

Page 54: ...or is set with the SetTorqueLimitsCfg command Responses 2160 s m s an integer defining the torque limit event severity see SetJointLimitsCfg m an integer defining the detection mode see SetTorqueLimitsCfg 2 3 22 GetTrf This command returns the current definition of the TRF with respect to the FRF set with the SetTrf command Responses 2014 x y z α β γ x y z the coordinates of the origin of the TRF ...

Page 55: ...ts GetRtJointVel returns the current joint velocities as calculated from the real time joint encoder measurements GetRtCartVel returns the current Cartesian velocity as calculated from the real time joint encoder measurements GetRtConf returns the current posture configuration as calculated from the real time joint encoder measurements GetRtConfTurn returns current turn configuration as calculated...

Page 56: ...e currently in the motion queue Responses 2080 n Note that the robot will compile several 25 commands in advance These compiled commands are not included in this count though they may not yet have started executing 2 4 2 GetJoints This deprecated command returns the current target joint set Use GetRtTargetJointPos instead Responses 2026 θ1 θ2 θ3 θ4 θ5 θ6 θi the angle of joint i in degrees i 1 2 6 ...

Page 57: ...the TRF with respect to the WRF as calculated from the current joint set read by the joint encoders In also returns a timestamp Responses 2211 t x y z α β γ t timestamp in microseconds x y z the coordinates of the origin of the TRF with respect to the WRF in mm α β γ the Euler angles representing the orientation of the TRF with respect to the WRF in degrees 2 4 7 GetRtCartVel This command returns ...

Page 58: ...ter as calculated from the real time data coming from the joint encoder of joint 6 In addition the GetRtConfTurn command returns a timestamp Response 2219 t ct t timestamp in microseconds ct turn configuration parameter an integer between 100 and 100 2 4 10 GetRtExtToolStatus This command returns the general status of the external tool connected to the I O port of the Meca500 preceded with a times...

Page 59: ... part is automatically aligned For example you can measure the diameter of a cylindrical vial once you lift the vial Even in such perfect conditions you can still obtain measurement errors of as much as 0 5 mm 2 4 13 GetRtGripperState This command returns the current state of the Mecademic grippers connected to the I O port of the Meca500 preceded with a timestamp Responses 2320 t hp dr gc go t ti...

Page 60: ... joint torques Responses 2213 t τ1 τ2 τ3 τ4 τ5 τ6 t timestamp in microseconds τi the torque of joint i as a signed percentage of the maximum allowable torque i 1 2 6 2 4 17 GetRtJointVel This command returns the current joint velocities as calculated by differentiating the data coming from the joint encoders Responses 2212 t θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 t timestamp in microseconds θ i the rate of chang...

Page 61: ...current target joint set Responses 2208 t cs ce cw t timestamp in microseconds cs shoulder configuration parameter either 1 or 1 ce elbow configuration parameter either 1 or 1 cw wrist configuration parameter either 1 or 1 at the corresponding singularity we return 0 but display the text n a in the web interface 2 4 21 GetRtTargetConfTurn This command returns the turn configuration parameters calc...

Page 62: ...e GetTrf command but the response code is different and a timestamp precedes the pose data Responses 2229 t x y z α β γ t timestamp in microseconds x y z the coordinates of the origin of the TRF with respect to the FRF in mm α β γ the Euler angles representing the orientation of the TRF with respect to the FRF in degrees 2 4 26 GetRtValveState This command returns the current state of the MPM500 p...

Page 63: ...or state 0 for absence of error 1 for presence of error oh overheat 0 if there is no overheat 1 if the gripper is in overheat 2 4 29 GetStatusRobot This command returns the status of the robot Responses 2007 as hs sm es pm eob eom as activation state 1 if robot is activated 0 otherwise hs homing state 1 if homing already performed 0 otherwise sm simulation mode 1 if simulation mode is enabled 0 ot...

Page 64: ...ormat of the comma separated return values will always be documented in the firmware upgrade manual Finally return values are either integers or IEEE 754 floating point numbers with up to nine decimal places 2 5 1 Command error messages When the Meca500 encounters an error while executing a command it goes into error mode See Section 2 6 1 for details on how to manage these errors Table 1 lists al...

Page 65: ...or offline mode Command The command cannot be executed in the offline program 1024 Mastering needed Command Somehow mastering was lost Contact Mecademic 1025 Impossible to reset the error Please power cycle the robot Turn off the robot then turn it back on in order to reset the error 1026 Deactivation needed to execute the command Command The robot must be deactivated in order to execute this comm...

Page 66: ...set BrakesOn 2013 x y z α β γ GetWrf 2014 x y z α β γ GetTrf 2026 θ1 θ2 θ3 θ4 θ5 θ6 GetJoints 2027 x y z α β γ GetPose 2028 e GetAutoConf 2029 cs ce cw GetConf 2031 e GetAutoConfTurn 2036 ct GetConfTurn 2042 Motion paused PauseMotion 2043 Motion resumed ResumeMotion 2044 The motion was cleared ClearMotion 2045 The simulation mode is enabled ActivateSim 2046 The simulation mode is disabled Deactiva...

Page 67: ...roductType 2090 n θn min θn max GetJointLimits 2092 n SetJointLimits 2093 User defined joint limits enabled 2093 User defined joint limits disabled SetJointLimitsCfg 2094 e GetJointLimitsCfg 2095 s GetRobotName 2096 Monitoring on control port enabled disabled SetCtrlPortMonitoring 2097 n SyncCmdQueue 2116 t GetMonitoringInterval 2117 n1 n2 GetRealTimeMonitoring SetRealTimeMonitoring 2119 n1 n2 n3 ...

Page 68: ... 2212 t θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 GetRtJointVel 2213 t τ1 τ2 τ3 τ4 τ5 τ6 GetRtJointTorq 2214 t x y z ωx ωy ωz GetRtCartVel 2218 t cs ce cw GetRtConf 2219 t ct GetRtConfTurn 2220 t n ax ay az GetRtAccelerometer 2228 t x y z α β γ GetRtWrf 2229 t x y z α β γ GetRtTrf 2300 t simType phyType ℎs es oℎ GetRtExtToolStatus 2310 t v1 v1 GetRtValveState 2320 t hp dr gc go GetRtGripperState 2321 t p GetRtGripp...

Page 69: ...startup procedure Contact our technical support team if restarting the Meca500 did not resolve the issue 3012 End of block No motion command in queue and robot joints do not move 3013 End of offline program The offline program has finished 3014 Problem with saved program save a new program There was a problem saving the program 3016 Ignoring command while in offline mode A non motion command was s...

Page 70: ... PORT MESSAGES Message Description 2007 as hs sm es pm eob eom Response from the GetStatusRobot command only when the data changes and at connection but can be sent several times during a monitoring interval 2026 θ1 θ2 θ3 θ4 θ5 θ6 Joint set 2027 x y z α β γ Pose of the TRF with respect to the WRF 2049 Recovery mode enabled The recovery mode becomes enabled 2050 Recovery mode disabled The recovery ...

Page 71: ...he messages listed above are not sent in the order shown this message is always last Table 4 Monitoring port messages By default these feedback messages are sent every 15 ms The time interval between subsequent feedback messages can be configured using the SetMonitoringInterval command Note that multiple ASCII messages are separated by a single null character and that there are no blank spaces in ...

Page 72: ...t is still activated and homed the command will be ignored and the message 3032 1 will be sent again by the robot If the P Stop 2 signal is removed and another motion command is sent the command will be ignored and the message 3032 2 will be sent Finally to reset the P Stop 2 you must remove the P Stop 2 signal and then send the command ResetPStop The robot will respond with the message 3032 0 2 6...

Page 73: ...s of commands can be sent to the robot using cyclic data 3 2 1 Status change commands Some cyclic data fields bits directly control robot status PauseMotion ClearMotion SimMode RecoveryMode BrakesControl A change in the cyclic value of these fields will cause the corresponding status change on the robot The corresponding status bit in the cyclic data from the robot will then confirm when robot sta...

Page 74: ...commands i e commands that are added to the motion queue The SetPoint is a bit that enables or disables the robot s reception of motion commands from the cyclic data When this bit is cleared the robot ignores the MotionCommandID and the MoveID fields The MoveID field determines if commands are cyclic MoveID is 0 or non cyclic MoveID is not 0 one new command being queued every time the MoveID value...

Page 75: ...et to 1 The following sequence must be followed Initially at application startup clear both the MoveID and SetPoint fields To start moving the robot set MotionCommandID to the ID corresponding to the desired velocity mode command enter the desired values for the command six arguments set SetPoint to 1 To change the velocity at any time at every cycle if needed simply change the six arguments of th...

Page 76: ...and specified in MotionCommandID to the motion queue SetPoint Bool state Has to be set to 1 for motion commands to be sent to the robot PauseMotion Bool state Puts the robot in pause without clearing the commands in the queue Motion is resumed once both the Pause Motion and ClearMotion bits are reset to 0 ClearMotion Bool action state Clears the motion queue and puts the robot in pause Motion is r...

Page 77: ...use in seconds 7 SetBlending argument 1 is the percentage of blending from 0 or 100 8 SetJointVel argument 1 is the percentage of maximum joint velocities from 0 001 to 100 9 SetJointAcc argument 1 is the percentage of maximum joint accelerations from 0 001 to 150 10 SetCartAngVel argument 1 is the Cartesian angular velocity limit from 0 001 to 300 measured in s 11 SetCartLinVel argument 1 is the ...

Page 78: ...tionCommandID numbers 3 4 4 Host time Table 9 lists the fields that allow the host to set robot s date time HOST TIME FIELDS Field Type Description HostTime Integer Current time in seconds since epoch i e since 00 00 00 UTC January 1 1970 If non zero the robot will update its own time to this value same as SetRtc This is useful for robot logs to contain meaningful time the robot forgets time every...

Page 79: ...ID 1 Integer Dynamic data type for index 1 see Table 12 DynamicDataTypeID 2 Integer Dynamic data type for index 2 see Table 12 DynamicDataTypeID 3 Integer Dynamic data type for index 3 see Table 12 DynamicDataTypeID 4 Integer Dynamic data type for index 4 see Table 12 Table 11 Dynamic data configuration fields DYNAMIC DATA TYPE ID ID Description 0 Automatic Robot will automatically choose dynamic ...

Page 80: ... θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 Unit is s Same as GetRtTargetJointVel 33 Target real time joint torque not implemented yet Values joint 1 torque joint 2 torque joint 6 torque Unit is percent Same as GetRtTargetJointTorq 34 Target real time Cartesian velocity TRF with respect to WRF Values x y z ωx ωy ωz Units are mm s or s Same as GetRtTargetCartVel 40 Actual real time joint position based on hardware en...

Page 81: ... the robot is being activated homed or deactivated Activated Bool Indicates whether the motors are on powered Home Bool Indicates whether the robot is homed and ready to receive motion commands SimActivated Bool Indicates whether the robot simulation mode is activated BrakesEngaged Bool Indicates whether the brakes are engaged RecoveryMode Bool Indicates whether the robot recovery mode is activate...

Page 82: ...Bool Indicates whether a joint torque is exceeding the corresponding user defined torque limit PStop2Resettabe Bool Indicates whether the P Stop 2 is removed but is not reset yet OfflineProgramID Integer ID of the offline program currently running 0 if none Table 14 Motion status ROBOT TIMESTAMP Field Type Description RobotTimestamp seconds part Integer Robot s monotonic timestamp seconds based on...

Page 83: ...AT The default communication protocol of the robot is the Ethernet TCP IP protocol The latter is the protocol needed for jogging the robot through its web interface To switch to the EtherCAT communication protocol you must send the SwitchToEtherCAT command via the TCP IP protocol from an external client e g from a PC using a Web browser As soon as the robot receives this command the Ethernet TCP I...

Page 84: ... and their fields The current section simply defines how these objects are mapped to EtherCAT cyclic Process Data Object PDO There are also two EtherCAT specific Service Data Objects SDO presented in the last two subsections In the tables of this section SI stands for subindex and O code for Object code 4 2 1 Robot control This object controls the robot s initialization and simulation Table 18 des...

Page 85: ...ct is a pair of indices The first index is the ID number indicating the motion command while the second index has six subindices corresponding to the arguments of the motion command as described in Table 20 See Section 3 3 and Section 3 4 for detailed explanations MOVEMENT OBJECT INDICES Index SI O code Type Name Default Min Max Access PDO 7305h Variable UDINT MotionCommandID 0 0 100 RO 1602h 1 73...

Page 86: ...Type Name Default Min Max Access PDO 7410h Record BrakesControl RO none 1 Variable BOOL EnableBrakes Control 0 0 1 RW 1611h 1 2 Variable BOOL EngageBrakes 0 0 1 RW 1611h 2 Table 21 Brakes control object 4 2 6 Dynamic data configuration This objects are used to choose which dynamic data type the robot will return The following four tables describe the object s indices See Table 12 DYNAMIC DATA CONF...

Page 87: ...ble UDINT DynamicData TypeID 0 0 53 RW 1623h 1 Table 25 Dynamic data configuration object 4 4 2 7 Robot status The structure of the robot status object is described in Table 26 See Table 13 for detailed explanations ROBOT STATUS OBJECT INDICES Index SI O code Type Name Default Min Max Access PDO 6010h Record RobotStatus RO none 2 Variable BOOL Busy n a 0 1 RO 1A00h 2 3 Variable BOOL Activated n a ...

Page 88: ... 1A01h 9 10 Variable BOOL ExcessiveTorque n a 0 1 RO 1A01h 10 10 Variable UINT 10 unused bits n a 0 0 RO n a 4 Variable UINT OfflineProgramID n a 0 500 RO 1A01h 4 Table 27 Motion status object 4 2 9 Target joint set The structure of the real time target joint set object is described below The data is the same as that returned by TCP IP command GetRtTargetJointPos TARGET JOINT SET OBJECT INDICES In...

Page 89: ... 4 REAL Euler angle α n a 3 4E38 3 4E38 RO 1A03h 4 5 REAL Euler angle β n a 3 4E38 3 4E38 RO 1A03h 5 6 REAL Euler angle γ n a 3 4E38 3 4E38 RO 1A03h 6 Table 29 Target end effector pose object 4 2 11 Target configuration The structure of the real time target configuration object is described in Table 30 The data is the same as that returned by the combination of the TCP IP commands GetRtTargetConf ...

Page 90: ... 3 4E38 RO 1A09h 4 5 REAL Euler angle β n a 3 4E38 3 4E38 RO 1A09h 5 6 REAL Euler angle γ n a 3 4E38 3 4E38 RO 1A09h 6 Table 31 WRF object 4 2 13 TRF The structure of the real time TRF object is described in Table 32 The data is the same as that returned by TCP IP command GetRtTrf TRF OBJECT INDICES Index SI O code Type Name Default Min Max Access PDO 6051h Array TRF RO none 1 REAL Coordinate x n ...

Page 91: ... UDINT DynamicDataUpdate n a 0 232 1 RO 1A10h 3 Table 33 Robot timestamp object 4 2 15 Dynamic data The structure of the dynamic data objects are described in the following four tables See Table 11 for detailed explanations DYNAMIC DATA 1 OBJECT INDICES Index SI O code Type Name Default Min Max Access PDO 6070h Array DynamicData RO none 1 UDINT DynamicDataType n a 0 53 RO 1A20h 1 2 REAL Value 1 n ...

Page 92: ...ccess PDO 6072h Array DynamicData RO none 1 UDINT DynamicData TypeID n a 0 53 RO 1A22h 1 2 REAL Value 1 n a RO 1A22h 2 3 REAL Value 2 n a RO 1A22h 3 4 REAL Value 3 n a RO 1A22h 4 5 REAL Value 4 n a RO 1A22h 5 6 REAL Value 5 n a RO 1A22h 6 7 REAL Value 6 n a RO 1A22h 7 depending on the value of 1A22h 1 refer to Table 11 Table 36 Dynamic data object 3 DYNAMIC DATA 4 OBJECT INDICES Index SI O code Ty...

Page 93: ...e PDOs are used to transfer data via cyclic communications in real time PDOs can be reception PDOs RxPDOs which receive data from the EtherCAT master the PLC or the industrial PC or transmission PDOs TxPDOs which send the current value from the slave the Meca500 to the EtherCAT master In the previous section we listed the PDOs object dictionary PDO assignment is summarized in the next two tables R...

Page 94: ...Table 28 1A03h 6031h TargetEndEffectorPose Optional See Table 29 1A08h 6046h TargetConfiguration Optional See Table 30 1A09h 6050h WRF Optional See Table 31 1A0Ah 6051h TRF Optional See Table 32 1A10h 6060h RobotTimestamp Optional See Table 33 1A20h 6070h DynamicData 1 Optional See Table 34 1A21h 6071h DynamicData 2 Optional See Table 35 1A22h 6072h DynamicData 3 Optional See Table 36 1A23h 6073h ...

Page 95: ...only one controlling connection at the time either a TCP IP connection or through an EtherNet IP forward open request If already being controlled the robot will refuse a forward open request with status error 0x106 Ownership Conflict in EtherNet IP It will refuse a TCP IP connection with error 3001 However the web interface can still be used in monitoring mode 5 4 Enabling Ethernet IP To enable th...

Page 96: ...7 UDINT DynamicDataConfiguration 1 See Table 49 48 51 UDINT DynamicDataConfiguration 2 See Table 49 52 45 UDINT DynamicDataConfiguration 3 See Table 49 46 59 UDINT DynamicDataConfiguration 4 See Table 49 Table 41 Output tag assembly 5 5 1 Robot control tag This tag controls the robot s initialization and simulation Table 42 describes the tag s bits See Table 5 for detailed explanations CONTROL TAG...

Page 97: ... the motion command see Table 8 The motion command argument tags contain the arguments of the motion command Table 46 See Section 3 3 and Section 3 4 for detailed explanations MOTION COMMANDS Bytes Data Type Name Possible values 8 11 UDINT MotionCommandID 0 1 2 see Table 7 Table 45 Motion command tag MOTION COMMAND TAGS Bytes Data Type Name 12 15 Real Motion command argument 1 16 19 Real Motion co...

Page 98: ...Name Minimum Maximum DINT DynamicDataTypeID 0 53 Index vary on the four available dynamic data configuration tags see Table 41 Table 49 Dynamic data configuration tag 5 6 Input tag assembly The input tag assembly has an Instance of 100 with a size 252 byte array as detailed in Table 50 Please refer to Section 3 5 for a description of the objects and their fields The following subsections define ho...

Page 99: ...tEndEffectorPose β 60 63 REAL TargetEndEffectorPose γ 64 SINT TargetConfiguration cs shoulder See Table 60 65 SINT TargetConfiguration ce elbow 66 SINT TargetConfiguration cw wrist 67 SINT TargetConfiguration ct last joint turn 68 71 REAL WRF x See Table 61 72 75 REAL WRF y 76 79 REAL WRF z 80 83 REAL WRF α 84 87 REAL WRF β 88 91 REAL WRF γ 92 95 REAL TRF x See Table 62 96 99 REAL TRF y 100 103 RE...

Page 100: ...REAL DynamicData 2 value 4 188 191 REAL DynamicData 2 value 5 192 195 REAL DynamicData 2 value 6 196 199 UDINT DynamicData 3 type ID 200 203 REAL DynamicData 3 value 1 204 207 REAL DynamicData 3 value 2 208 211 REAL DynamicData 3 value 3 212 215 REAL DynamicData 3 value 4 216 219 REAL DynamicData 3 value 5 220 223 REAL DynamicData 3 value 6 224 227 UDINT DynamicData 4 type ID 228 231 REAL DynamicD...

Page 101: ...5 6 3 Checkpoint tag The structure of the checkpoint tag is described in Table 53 See Table 14 for detailed explanations CHECKPOINT TAG Bytes Data Type Name Minimum Maximum 4 7 UDINT Checkpoint 0 8 000 Table 53 Checkpoint tag 5 6 4 MoveID tag The structure of the MoveID tag is described in Table 54 See Table 14 for detailed explanations MOVEID TAG Bytes Data Type Name Minimum Maximum 8 9 REAL Move...

Page 102: ...Table 57 See Table 14 for details OFFLINE PROGRAM ID Bytes Data Type Name Minimum Maximum 14 15 UINT OfflineProgramID 1 500 Table 57 Offline program tag 5 6 8 Target joint set The structure of the target joint set tag is described in Table 58 The data is the same as that returned by TCP IP command GetRtTargetJointPos TARGET JOINT SET TAGS Bytes Data Type Name Minimum Maximum 16 19 REAL Target posi...

Page 103: ... IP commands GetRtTargetConf and GetRtTargetConfTurn TARGET CONFIGURATION TAGS Bytes Data Type Name Minimum Maximum 64 SINT cs shoulder 1 1 65 SINT ce elbow 1 1 66 SINT cw wrist 1 1 67 SINT ct last joint turn 100 100 Table 60 Robot target configuration tags 5 6 11 WRF The structure of WRF tag is described in Table 61 The data is the same as that returned by GetRtWrf WRF TAG ASSEMBLY Bytes Data Typ...

Page 104: ... Type Name 116 119 UDINT RobotTimestamp seconds part 120 123 UDINT RobotTimestamp microseconds part 124 127 UDINT DynamicDataUpdateCount 128 131 UDINT Reserved for future use 132 135 UDINT Reserved for future use 136 139 UDINT Reserved for future use Table 63 Robot timestamp tag assembly 5 6 14 Dynamic data The structure of the dynamic data tags are described below See Table 16 for detailed explan...

Page 105: ...OFINET you can connect several Meca500 robots the same as with TCP IP Either Ethernet port on the base of the robot can be used Meca500 robots can be either daisy chained together or connected in a star pattern 6 2 1 Limitations when daisy chaining robots Please note that the two Ethernet ports on the Meca500 robot act as an un managed Ethernet switch not as a PROFINET aware switch In fact this Et...

Page 106: ...T and the SwitchToEtherCAT command Also note that LLDP forwarding on the Meca500 robot is enabled only when PROFINET is enabled on the robot so it will not be possible to detect a Meca500 robot using LLDP until PROFINET is enabled on it 6 4 Exclusivity of AR On the Meca500 only one AR Application relationship can be established with the robot Only one PROFINET controller PCL can control a Meca500 ...

Page 107: ...ot 1 This module provides fixed cyclic data input and output used to control and monitor the Meca500 robot 6 6 Cyclic data Using cyclic data to control and monitor Meca500 robots with PROFINET is explained in Section 3 of this manual This cyclic data format is exactly the same with PROFINET EtherNet IP and EtherCAT protocols It is thus very easy to migrate a Meca500 controlling application on a co...

Page 108: ...other see Section 1 1 4 FRF Flange reference frame see Figure 2 Inverse kinematics The problem of finding all possible joint sets for a desired pose of the TRF with respect to the WRF see Section 1 2 1 Joint angle The angle associated with robot joint i i 1 2 6 denoted by θi and measured in degrees see Section 1 1 5 Joint position The set of all joint angles i e θ1 θ2 θ3 θ4 θ5 θ6 also referred to ...

Page 109: ...gement of the robot links Thus the joint sets θ1 θ2 θ3 θ4 θ5 θ6 and θ1 θ2 θ3 θ4 θ5 θ6 n360 where n is an integer correspond to the same robot posture see Section 1 1 6 Singularity A robot posture where the robot s end effector is blocked in some direction even if no joint is at a limit see Section 1 2 3 There are three types of singularities corresponding to conditions where each of the three post...

Page 110: ...Contact Us Mecademic 1300 St Patrick Street Montreal Quebec H3K 1A4 Canada 1 514 360 2205 1 833 557 6268 toll free in North America https support mecademic com Copyright 2015 2022 Mecademic ...

Reviews: