background image

Danaher Motion 

06/2005 

Table of Contents 

M-SS-005-03 Rev 

iii 

3.6.4.

 

S

TARTING 

P

OSITION

......................................................................................... 63

 

3.6.5.

 

BASIC M

OVES 

A

UTO 

S

ETUP 

P

ROGRAM

.......................................................... 63

 

3.6.6.

 

U

SER 

U

NITS

...................................................................................................... 64

 

3.6.7.

 

P

OSITION 

U

NITS

............................................................................................... 64

 

3.6.8.

 

V

ELOCITY 

U

NITS

.............................................................................................. 65

 

3.6.9.

 

A

CCELERATION 

U

NITS

..................................................................................... 65

 

3.6.10.

 

J

ERK 

U

NITS

....................................................................................................... 66

 

3. 7

 

ACCELERATION PROFILE ............................................................................................. 66

 

3. 8

 

POSITION AND VELOCITY ............................................................................................. 67

 

3. 9

 

LIMITS ............................................................................................................................... 69

 

3.9.1.

 

P

OSITION 

L

IMITS

.............................................................................................. 70

 

3.9.2.

 

A

XIS 

V

ELOCITY 

L

IMITS

.................................................................................... 73

 

3. 10

 

VELOCITY, ACCELERATION AND JERK RATE PARAMETERS .................................. 73

 

3. 11

 

VERIFY SETTINGS............................................................................................................ 74

 

3.11.1.

 

E

NABLING

......................................................................................................... 74

 

3.11.2.

 

M

OTION 

F

LAGS

................................................................................................ 74

 

3.11.3.

 

M

OVE

................................................................................................................ 74

 

3. 12

 

SERCOS ............................................................................................................................. 75

 

3.12.1.

 

C

OMMUNICATION 

P

HASES

............................................................................... 76

 

3.12.2.

 

T

ELEGRAMS

...................................................................................................... 76

 

3.12.3.

 

T

ELEGRAM 

T

YPES

............................................................................................ 77

 

3.12.4.

 

C

YCLIC VS

. N

ON

-C

YCLIC 

C

OMMUNICATION

................................................... 78

 

3.12.5.

 

IDN

S

................................................................................................................. 78

 

3.12.6.

 

P

OSITION AND 

V

ELOCITY 

C

OMMANDS

............................................................ 79

 

3.12.7.

 

SERCOS S

UPPORT

........................................................................................... 79

 

3. 13

 

LOOPS ............................................................................................................................... 81

 

3.13.1.

 

S

TANDARD 

P

OSITION 

L

OOP

.............................................................................. 82

 

3.13.2.

 

D

UAL

-

FEEDBACK 

P

OSITION 

L

OOP

................................................................... 82

 

3.13.3.

 

V

ELOCITY 

L

OOP

............................................................................................... 83

 

3. 14

 

SIMULATED AXES............................................................................................................ 83

 

4.

 

SINGLE-AXIS MOTION......................................................................................................... 85

 

4. 1

 

MOTION GENERATOR .................................................................................................... 85

 

4.1.1.

 

M

OTION 

C

ONDITIONS

....................................................................................... 85

 

4.1.2.

 

M

OTION 

B

UFFERING

......................................................................................... 87

 

4.1.3.

 

O

VERRIDE VERSUS 

P

ERMANENT

...................................................................... 87

 

4.1.4.

 

A

CCELERATION 

P

ROFILE

.................................................................................. 88

 

4.1.5.

 

J

OG

.................................................................................................................... 88

 

4.1.6.

 

S

TOP

................................................................................................................. 89

 

4.1.7.

 

P

ROCEED

........................................................................................................... 89

 

Summary of Contents for Servostar M-SS-005-03

Page 1: ...KOLLMORGEN www DanaherMotion com SERVOSTAR MC M SS 005 03 Revision E Firmware Version 5 0 0...

Page 2: ...but not limited to implied warranties of merchantability and fitness for a particular purpose It is the responsibility of the product user to determine the suitability of this product for a specific a...

Page 3: ...8 2 BASIC MOVES DEVELOPMENT STUDIO 11 2 1 COMMUNICATION 11 2 2 MC BASIC 11 2 2 1 INSTRUCTIONS 12 2 2 2 TYPE 12 2 2 3 CONSTANTS AND VARIABLES 14 2 2 4 DATA TYPES 16 2 2 5 SYSTEM ELEMENTS 19 2 2 6 UNIT...

Page 4: ...E 49 3 2 TASKS 49 3 2 1 GENERAL PURPOSE TASKS 49 3 2 2 CONFIGURATION TASK 51 3 2 3 AUTOEXEC TASK 51 3 3 PROGRAM DECLARATIONS 52 3 3 1 ARRAYS 53 3 4 MULTI TASKING 55 3 4 1 LOADING THE PROGRAM 57 3 4 2...

Page 5: ...ERIFY SETTINGS 74 3 11 1 ENABLING 74 3 11 2 MOTION FLAGS 74 3 11 3 MOVE 74 3 12 SERCOS 75 3 12 1 COMMUNICATION PHASES 76 3 12 2 TELEGRAMS 76 3 12 3 TELEGRAM TYPES 77 3 12 4 CYCLIC VS NON CYCLIC COMMUN...

Page 6: ...AL MOVES 107 5 3 CAMMING 108 5 3 1 KEY FEATURES 108 5 3 2 GEARRATIO 109 5 3 3 INCREMENTAL MOVES 109 5 3 4 CAM TABLES 109 5 3 5 CAM CYCLES 111 5 3 6 CREATE CAM TABLES 113 5 3 7 OPERATING CAMS 115 5 4 S...

Page 7: ...TTLING TIME 132 6 10 2 START MOVES 132 6 10 3 CHAIN MOVES 133 6 10 4 MULTI STEP MOVES 133 6 10 5 SYNCHRONIZE MULTIPLE AXES 134 6 10 6 CLEAR A PENDING MOVE 135 6 11 VELOCITY OVERRIDE 135 7 COMPENSATION...

Page 8: ...TERESIS 152 10 3 6 ENABLE AND DISABLE 152 10 3 7 PLS OUTPUT STATE 153 10 3 8 SET UP 153 10 4 EXTERNAL ENCODERS 154 10 5 PC104 155 10 5 1 CONFIGURING PC104 CARDS 155 10 5 2 INSTALLATION 155 10 5 3 COMM...

Page 9: ...80 ROBOT CONFIGURATIONS 181 POINTS 181 DECLARATION 182 VARIABLES 182 CONSTANT POINTS 182 VECTORS 183 PROPERTIES 183 POINT DIMENSION 183 POINT ASSIGNMENT 184 SINGLE COORDINATE POINT ASSIGNMENT 184 POIN...

Page 10: ...Table of Contents 06 2005 Danaher Motion viii Rev E M SS 005 03 MOVING FRAME 191 TRACKING PROCESS 192 CUSTOMER SUPPORT 194...

Page 11: ...le in the SERVOSTAR MC Related manuals SERVOSTAR MC Installation Manual SERVOSTAR MC BASIC Moves Development Studio Manual SERVOSTAR SC MC API Reference Manual SERVOSTAR MC InstallationManual The SERV...

Page 12: ...perating system For additional information concerning communications configuration refer to the SERVOSTAR MC Installation Manual All implementation models of the SERVOSTAR MC are functionally equivale...

Page 13: ...ides hardware for six I O points three digital inputs one digital output a 14 bit analog input and a 12 bit analog output An auxiliary encoder can also be connected to any SERVOSTAR drive If you need...

Page 14: ...s and multiple elements e g axes that operate independently of one another Also because the API supports multiple applications communicating concurrently you can write one or more applications that ha...

Page 15: ...ample Switches 6 8 are OFF All others are ON sys dipswitch bin 0b10100000 1 8 1 1 WITH HOST When DIPswitch 8 is ON the MC can communicate with the host via serial port This mode of communication requi...

Page 16: ...ect to BASIC Moves and one or more intelligent I O devices The MC supports both client and server roles for TCP IP communications The TCP IP client connects to a remote system which waits for a connec...

Page 17: ...ed by the DHCP server If your network does not support DHCP the controller tries to get the address from the DHCP server and times out after few minutes During that time communication with the control...

Page 18: ...e port are not allowed ACCEPT blocks the execution of the calling task until a connection is established To unblock the task waiting in ACCEPT close the corresponding socket with CLOSE In addition kil...

Page 19: ...alue LOC 1 0 STRING_VAR INPUT 10 1 len STRING_VAR 0 1 8 3 2 SEND DATA PRINT and PRINTUSING send data over the serial port Both commands use the same formatting as PRINT and PRINTUSING NOTE PRINT and P...

Page 20: ...SHARED X 10 AS LONG X 1 0x10 X 2 0 X 3 0x10 PRINT 1 CHR X 1 CHR X 2 CHR X 3 The output is the following stream of bytes 0x10 0x0 0x10 When the received data contains a NULL character read the data fro...

Page 21: ...1 COMMUNICATION Communicating with a stand alone MC is not as automatic as is comunicating with a PCI or ISA plug in MC Assuming you have properly configured the communication method during installati...

Page 22: ...es may be written using either upper case or lower case letters The only exception is that when printing strings with the Print and PrintUsing commands upper and lower case characters can be specified...

Page 23: ...language in which many tasks can run concurrently Generally tasks run independently of each other However tasks can control each other using inter task control instructions One task can start idle or...

Page 24: ...d than A1 Motion 1 although the effect is identical 2 2 3 1 1 Literal Constants Table ABORT 4 NEGATIVE 1 ABOVE 2 NEXTMOTION or NMOT 2 BELOW 1 NOFLIP 1 CAM 2 NOOVERLAP 0 CAPTURING 16 NOTELEVEL 3 CLEARM...

Page 25: ...ftware Other scopes are more restrictive limiting access of variables to certain sections of code MC BASIC supports three scopes global task and local Task variables can be read from or written to any...

Page 26: ...int motor coordinates 1 79769313486223157 E 308 for each coordinate Location A set of 2 10 double precision floating point cartesian coordinates 1 79769313486223157 E 308 for each coordinate MC Basic...

Page 27: ...ments as many times as the user wishes Type Description Range Generic Axis An integer element identifier 0 before first assignment 1 to number of axes in system up to 32 Generic Group An integer eleme...

Page 28: ...arrays JOINTs and or LOCATIONs The total size of the MC Basic structure is limited The maximum number of each type of element is fixed Trying to define more structure elements than allowed results in...

Page 29: ...s name and the arrow sign For example structure_name element_name Structure elements are handled almost like regular variables Structure elements are printed assigned participate in mathematical oper...

Page 30: ...fine units of position velocity and acceleration independently In the next chapter we will discuss how to set up units 2 2 7 Expressions Expressions are combinations of operators and value returning e...

Page 31: ...es sense if the negation is executed first The tables that follow list different types of operators The entries in the tables are listed in order of precedence the higher in the table the higher the o...

Page 32: ...is performed Common shared D as double D 1 D 1 1 In the example above the sign is taken as a relational operator i e Is D 1 The relation is True or 1 D 2 1 2 0 In the example above the sign is taken...

Page 33: ...luding examples refer to the SERVOSTAR MC Reference Manual Abs x Returns the absolute value of X Acos x Returns the arc cosine of X X is assumed to be in radians Asin x Returns the arc sine of X X is...

Page 34: ...o lowercase LEFT S X Returns the specified number X of characters from the left hand side of the string S LEN S Returns the length of the string S LTRIM S Returns the right hand part of a string S aft...

Page 35: ...of that group PlsList Returns a list of the PLS names defined in the system If wildcards are used the query returns the correct existing PLS data ProgramPassword Sets the file password and toggles th...

Page 36: ...es the scope of the effect of an error occurring in task context When the value of System ErrorHandlerMode is one the default value the error will affect the entire system by stopping all motion idlin...

Page 37: ...e messages ON or OFF System Time Queries or sets the current time of day Hours minutes and seconds are each specified using two digits The MC uses 24 hour clock notation Time is entered as a character...

Page 38: ...ord 5000 VCruise 3000 PEMax 10 PESettle 0 01 Move 100 End With 2 2 12 Printing MC BASIC provides unformatted and formatted printing using the PRINT and PRINTUSING commands For detailed information on...

Page 39: ...you have allocated it overruns the space PrintU Overrun 1000000 Takes 7 spaces for 1 000 000 even though PrintU allocates only 2 For printing of double type expressions formatted printing also enable...

Page 40: ...Sys DoubleFormat 1 2 2 13 Flow Control Flow control is the group of instructions that control the sequence of execution of all other instructions For detailed information on any of the flow control co...

Page 41: ...o be executed if none of the above conditions are met End Select where SelectExpression is a Long Double or String expression in Case To if Expression4 Expression5 the case is never true no error is f...

Page 42: ...1000 Print Axis 2 Velocity Feedback still under 1000 End While End Program Using the While or Do Loop the CPU repeatedly executes the While block even if the block is empty This is sometimes a proble...

Page 43: ...n a program block you cannot GoTo a label outside that block Avoid GoTo wherever possible History has shown that excessive use of GoTo makes programs harder to understand and debug Use the other progr...

Page 44: ...ed End Try An example of a Try block designed to catch errors in the loading process of Task1 Prg Try Load Task1 Prg Catch 4033 File does not exist Print Task not found Catch 6007 Task must be killed...

Page 45: ...rator Error_Number statements to be executed Catch Error_Number1 To Error_Number2 statements to be executed Catch Else statements to be executed End OnSystemError An example of an OnSystemError block...

Page 46: ...ubroutine are used within the code of the subroutine The declaration line for the subroutine SUB name is used to declare names and types of the parameters to pass Parameters are passed either by refer...

Page 47: ...for by value long and double parameters SUB MySub RefPar as long byval ValPar as double END SUB CALL MySub LongVar String type mismatch in second parameter CALL MySub LongVar wrong number of paramete...

Page 48: ...of parameters in parameters and returned value types causes an error during program loading Automatic type casting applies only for long and double returned values and by value parameters For example...

Page 49: ...nd functions of the library public_sub can be used in any user task program file another library file importing the library However the same library can be imported by multiple tasks simultaneously A...

Page 50: ...he scope of the library A global library cannot be unloaded if there are task files PRG loaded in memory To unload a global library all Prg files must first be unloaded If a global library file is unl...

Page 51: ...meter passed by value has the BYVAL prefix A parameter passed by reference has no prefix Prototypes do not include parameter names A C function prototype with no parameters is written with empty paren...

Page 52: ...of PROTO PRO No Parametrs import_c CFUNC_LV As Long import_c CFUNC_DV As Double import_c CFUNC_SV As String import_c CFUNC_VV A Single By Value Parameter import_c CFUNC_LL ByVal As Long As Long import...

Page 53: ...n close fd A Single By Value Parameter int CFUNC_LL int L L L 1 return L double CFUNC_DD double D D D 2 2 return D char CFUNC_SS char S strcpy S SS return S A Single By Reference Parameter int CFUNC_L...

Page 54: ...elay semTake msgQGet msqQSend IO operation etc this may interfere with killing the user task When an object module is loaded several times without unloading all its instances are kept in the RAM while...

Page 55: ...ased by SEMAPHOREGIVE and taken consumed by SEMAPHORETAKE It is possible to specify a time out of up to 5000 ms SEMAPHORETAKE acquires a semaphore and returns before timeout or does not acquire a sema...

Page 56: ...red syncSemaphore as semaphore defined in config prg common shared globalA as long defined in config prg Program While 1 If SemTake syncSemaphore 5000 1 Then Print A is globalA End if End While End pr...

Page 57: ...gher support IP over DPRAM NewStdOut type is 1 3 or 4 2 9 FILE OPERATIONS Input and output whether to or from files are supported on Flash and RAM devices The files are accessed either in serial or ra...

Page 58: ...rogram dim pos as long dim d1 as double dim s1 as string create file for writing Open test prg mode w as 1 print 1 1 2345 close 1 append to existing file Open test prg mode a as 1 print 1 PI close 1 r...

Page 59: ...keep project files in the Flash and it is not aware of logical coupling of files and programs 3 1 PROJECT STRUCTURE Project files include tasks and cam tables Each project can contain three types of...

Page 60: ...ed by the task allowing your program to automatically respond to error conditions and where possible gracefully recover and restart the machine There is at most one OnError section for each task and i...

Page 61: ...g figure The configuration task can contain a program Axes can be renamed here 3 2 3 AutoExec Task The AutoExec task AutoExec Prg is executed once on power up just after the Configuration Task Use Aut...

Page 62: ...rameters to pass Parameters are passed either by reference or by value ByVal The default method is to pass parameters by reference Arrays are passed only by reference When you pass a variable whether...

Page 63: ...tails 3 3 1 Arrays Arrays can only be passed by reference If a user tries to pass a whole array by value the translator gives an error Array syntax is SUB name p_1 as type_1 p_n as type_n local variab...

Page 64: ...Flash disk and you can retrieve it or delete it In order to use a library file in a program the library must first be loaded into memory LOAD MyLibrary lib To unload the library enter UNLOAD MyLibrary...

Page 65: ...ue assign the value you want to return to a virtual variable with the same name as the function somewhere in the code of the function You do not declare the variable but the function uses it to obtain...

Page 66: ...lit control of an axis or group across tasks You can put control for multiple axes in one task Ideally you should use multiple tasks for machines where different sections operate more or less independ...

Page 67: ...ources it can use In fact no task of a lower priority receives any resources until all tasks of higher priority relinquish them Most systems have one main task that runs at a medium priority and perha...

Page 68: ...e idled and cannot respond to an axis motion Tasks can be idled explicitly by other tasks but cannot idel itself This command is issued from a task or the terminal window The syntax of IdleTask is Idl...

Page 69: ...d information on these commands refer to the SERVOSTAR MC Reference Manual A task terminates when it is finished executing If a task starts with NUMBEROFLOOPS greater than zero the task executes the s...

Page 70: ...an event occurs it interrupts its parent task and runs to completion The rules are valid for a single process that is the parent task and its events while events of the respective tasks in the system...

Page 71: ...e for each task Name IOEvent Owner Task1 Edge 1 Status 1 Scan 1 Priority 5 Action Stop where edge 1 indicates the event is armed that is the condition is false so that the condition becoming true will...

Page 72: ...fined by the MC These properties are used in the calculation of position and velocity commands monitoring limits and stores configuration data for the axis The MC sends commands to the drive and the d...

Page 73: ...rence Manual for more information 3 6 4 Starting Position Before we get started here you must Install and tune drives Follow the process for installing and tuning all drives according to the SERVOSTAR...

Page 74: ...VELOCITYFACTOR ACCELERATIONFACTOR are only assigned positive values and DIRECTION determines their sign DIRECTION can take one of two values 1 for forward direction or 1 for reverse direction MC unit...

Page 75: ...minute divide by 60000 A1 VelocityFactor A1 PositionFactor 60000 for position units min If you want rpm you must calculate the number of counts per revolution and then divide that by 60000 to convert...

Page 76: ...se constant velocity cruise phase and deceleration phase Time based Acceleration Deceleration is the motion interface in which the duration of the acceleration deceleration phases during the movement...

Page 77: ...is is in motion the true position error does not equal the instaneous commanded position minus the instantaneous feedback position because there is a time delay of two SERCOS cycle times 2 ms from whe...

Page 78: ...where the motor turns continuously in one direction it is important to take advantage of all available accuracy in the MC This is because inaccuracy is accumulated over many revolutions of the motor F...

Page 79: ...ot be monitored for rollover Also external position units are not in effect The MC provides the external velocity through the axis VELOCITYEXTERNAL or axis VEXT This variable contains the accumulated...

Page 80: ...cked in the motion generator If you command a position move beyond the position limits an error is generated and the move does not start Second they are checked each SERCOS update cycle generally 2 or...

Page 81: ...it to a few revolutions of the motor or a few inches or centimeters for linear systems This way if the tuning is unstable the system is less likely to cause a problem Setting PEMAX to a very large num...

Page 82: ...constant acceleration The automatic design user gain 1000 gives good results Fine tune this value by applying trapezoidal trajectory and find the user gain that yields the minimum following error dur...

Page 83: ...city units and is only set from the terminal window or in the configuration file Config Prg It is checked at the beginning of each move For example A1 VelocityMax 5000 Two limits control acceleration...

Page 84: ...amplifier You do this with MC command Sercos Phase 4 The code to do this is normally generated in the BASIC Moves auto setup program which runs each time you start a new project A decimal point at the...

Page 85: ...electromagnetic noise is greatly reduced The controller is electrically isolated from drives and feedback devices as well as from limit switches and other I O wired through the drives Most grounding a...

Page 86: ...ve been passed through the ring phase 0 is complete In phase 1 the master sends the Master Data Telegram MDT Each drive is addressed individually and each drive responds with an Amplifier Telegram AT...

Page 87: ...uses only Telegram Types 5 and 7 for data communication Normally the relies on the SERCOS telegram type 5 In Telegram Type 5 position and velocity feedback are transmitted by the drive in the AT cycl...

Page 88: ...Ns are from 1 to 32767 although only several hundred are used to date and manufacturer IDNs are numbered from 32768 to 65535 If you are using a SERVOSTAR drive you normally use only a few IDNs for spe...

Page 89: ...position DIP switch on top of the drive and set the switches according to the following Baud rate Sercos Baudrate Drive Switch 6 2 MBits sec 2 Off 4 MBits sec 4 On Sercos Baudrate for SERCON 816 The...

Page 90: ...cation phase 1 The scan value indicates the highest drive address for which to scan For example if the value is set to 5 the ring is scanned for drives at addresses up to 5 Sercos scan 0 Do not scan t...

Page 91: ...nd If For more information about states of this property refer to the SERVOSTAR MC Reference Manual Use MOTIONLINK to configure and operate the SERVOSTAR drive The parameters are stored in the drive b...

Page 92: ...edback position loop forms a compromise uses the load sensor for position feedback accuracy is critical and uses the motor sensor for velocity feedback low compliance required This is the dual feedbac...

Page 93: ...lated axis during Sercos Phase 0 or before SERCOS configuration takes place in CONFIG PRG or AUTOEXEC PRG To set up a simulated axis set the axis property SIMULATED to ON A1 Simulated ON This step is...

Page 94: ...AC to VFAC 1000 such as meters per second 2 Most axis properties do work with simulated axes including Position properties command feedback final Velocity properties command feedback cruise maximum Ac...

Page 95: ...time Additional indeterminate delays may result from the servo system dependent on drive tuning and kinetics of the mechanical system 4 1 MOTION GENERATOR The basis of all motion in the MC is the mot...

Page 96: ...nd HALTRESTART These signals are normally ON These signals are provided to comply with SERCOS They are seldom used in MC programs If you do turn either of these off you will need to turn them back on...

Page 97: ...o GENERATORCOMPLETED the buffered profile starts immediately after the current profile is complete If STARTTYPE is set to INPOSITION the buffered profile starts after the current profile is complete a...

Page 98: ...on the machine by smoothing motion There are two types of acceleration profiles sinus curve profile and trapezoidal profile In the sinus profile the acceleration is smoothly increased while in the tr...

Page 99: ...ability to restore the stopped movements Only the current motion command is stopped the commands coming after are generated STOPTYPE defaults to IMMED If STOPTYPE ENDMOTION the current move is comple...

Page 100: ...m the task that stopped motion Motion cannot be commanded from the task that stopped motion 4 When STOP is issued from the terminal window for a command given from the terminal window the motion is st...

Page 101: ...TE defaults to FALSE You can change ABSOLUTE at any time although the effect does not take place until you issue the next MOVE 4 1 8 2 SETTLING TIME The MC actively watches to see if axes are settled...

Page 102: ...s within the PESETTLE range for the time specified by TSETTLE the axis ISSETTLED flag is TRUE 1 Otherwise it is FALSE 0 4 1 8 3 POINT TO POINT MOVES When the motion buffer is empty point to point move...

Page 103: ...MMEDIATE eliminates the 5 SERCOS cycles delay by doing pre calculation online rather than offline in the motion manager SUPERIMMEDIATE is constant equal to 5 The numbers of SUPERIMMEDIATE changes at a...

Page 104: ...end speed other than zero Non Zero End Moves To do this use axis VELOCITYFINAL VELOCITYFINAL must be specified on the same line as MOVE For example A1 VelocityCruise 2000 Move A1 100 VelocityFinal 10...

Page 105: ...s generated You must use STARTTYPE GCOM when chaining a non zero end point move to another move You cannot use STARTTYPE IMMED or SIMM because the new move immediately overwrites the old move You cann...

Page 106: ...nted to change the cruise velocity without changing the end position you would write CutAxis StartType IMMED Move CutAxis 150 Sleep 3000 Move CutAxis 150 VCruise 1500 You can change the final position...

Page 107: ...es independently This command incurs a minimum system delay of 2 SERCOS cycle times but the delay may be greater depending on the number of moves synchronized together and the total load of the system...

Page 108: ...pendent of the others If you use SYSTEM VORD and axis VORD simultaneously the axis speed is reduced by the product of both override properties as shown below System VOrd 66 Reduce entire system to 2 3...

Page 109: ...imity switch on the axis for the indication of the hard home reference position NOTE This home position switch is placed on one end of the axis inside the mechanical end of the travel limits of the ax...

Page 110: ...to the proper position feedback for the home position as the axis travels through the home switch transition or go home back to the switch after the first switch transition for the minimization of any...

Page 111: ...the profile comes to rest a fixed distance after the mark position where the package can be cut There are numerous variations of this type of application The key element is that the end position of th...

Page 112: ...p 1 End While SyncStart MainAxis Start the axis up by disable End Program This program moves MainAxis 100 units when DIN 1 transitions high Motion on MainAxis starts as soon after the transition of DI...

Page 113: ...the host An external profiler path can be designed and fed to the MC point by point The controller functions only as a pipe and is not responsible for the correctness of the applied profiler No syste...

Page 114: ...ration mode status variable is described below SYSTEM PIPEMODE Bits offset Position 1 Position and Velocity 2 0 1 Operation mode of drive1 Operation mode of drive1 2 3 Operation mode of drive2 Operati...

Page 115: ...g or camming This eliminates the lag caused by the position error in the master axis The negative side is the slave is following the command rather than the actual position Many times the master sourc...

Page 116: ...g gearing during an absolute or relative move generates an error An error is also generated if an attempt is made to enable gearing during camming Incremental moves are allowed when gearing is enabled...

Page 117: ...gearing is turned off immediately and the velocity commanded from gearing ramps to zero at axis DECELERATIONMAX However the termination of the incremental move profile and subsequent launch of JOG is...

Page 118: ...e is a list of point pairs which map the master position to the slave position The output of the cam table provides the slave axis position The operation of camming looks like 5 3 1 Key Features The M...

Page 119: ...a negative number Its value is changeable during camming but it has to be done carefully to avoid a position jump in the slave value due to large differences between the old and new value 5 3 3 Incre...

Page 120: ...d slave positions when the cam table is enabled The operation of the table above is identical to the table below where the point pairs are adjusted to allow the first point to change from 10 20 to 0 0...

Page 121: ...the master and slave is adjusted by the MC The cam master position is adjusted for the difference between the master position at the starting and ending points If the cam table has net motion each sub...

Page 122: ...When CAMCYCLE reaches CYCLE the axis transitions to the next cam if there is one Similarly when the master is running backward and CAMCYCLE reaches 0 the cycle transitions to the previous cam if ther...

Page 123: ...on There are two types of cam tables static and dynamic Static tables are built and stored in flash disk to be used later while dynamic tables are built at run time You should choose a type based on y...

Page 124: ...project BASIC Moves converts it to a cam table and stores it in the MC When building a cam table using MC BASIC first globally allocate cam storage Use Common Shared var as Cam Common Shared CAM1 as C...

Page 125: ...is in use or if the task that it is attached to is loaded 5 3 6 2 DYNAMIC TABLES Cam tables can be calculated dynamically This allows you to build a cam profile based on events that occur during opera...

Page 126: ...veData 5 100 This is similar to building a static cam table The difference is that this cam table is never stored to or loaded from flash Step 3 Initialize Other Elements Initialize other elements of...

Page 127: ...ocity of the axis is decelerated to zero at the rate set by axis DECELERATIONMAX If JOG command is issued camming on that axis is disabled immediately and the cam profile ramps to zero at the rate axi...

Page 128: ...current index within the current cam table For example if there are 100 points in the table and the cam is half complete CAMINDEX 50 cam MASTERDATA is used with CAMINDEX to provide the value of the m...

Page 129: ...itor physical axes for machine control by slaving a simulated axis to a physical axis and monitoring the position and or velocity of the simulated axis For example if you slave a non rotary simulated...

Page 130: ...PseudoAxis 100 This indirectly turns gearing off End OnEvent OnEvent Vel_Above_Min PseudoAxis Vcmd 100 PseudoAxis Slave Gear End OnEvent Attach PseudoAxis EventOn Vel_Below_Min EventOn Vel_Above_Min W...

Page 131: ...axes may be part of one group It is necessary to set VELOCITYFACTOR ACCELERATIONFACTOR and JERKFACTOR for the group As a first approximation set group VFAC 1 1000 set AFAC VFAC 1000 and set JFAC AFAC...

Page 132: ...on final In each case the quantities in the vector are equivalent to the individual axis properties For example you can set POSITIONFINAL as part of a MOVE Move MyGroup 5 5 6 5 This sets PFINAL of the...

Page 133: ...ample exiting position error of every axis is monitored each SERCOS cycle 6 6 3 Position Position limits are imposed solely by the axes and are checked at the beginning of every movement If one of the...

Page 134: ...ONMAX is the upper limit for deceleration in MC acceleration units The actual executing acceleration and deceleration are limited also according to the group s axes limitations The maximum allowed axe...

Page 135: ...only be done once A1 Name xAxis A2 Name yAxis Common Shared xyTable as Group AxisName xAxis AxisName yAxis 6 9 1 Attach Task and Axis Before a task can send motion commands to a group the group must b...

Page 136: ...DIN 1 OFF System Motion OFF End OnEvent End Program 6 9 4 STOP STOP stops group motion in the motion buffer In the command you must specify the group Stop GroupA Normally STOP is set to stop motion i...

Page 137: ...POSITIONFEEDBACK and PFINAL are group size vectors Second the profile including ACCELERATION and DECELERATION applies to all axes in the group For example MyGroup VCruise 2000 Move MyGroup 100 100 mo...

Page 138: ...ement but not helical Circle xyTable CirclePoint 10 20 10 TargetPoint 100 200 20 circleplane xy In the above example the circle is implemented in the XY plane along with the incremental change of the...

Page 139: ...se wait for settling End While Begin Pattern xyTable StartType GCOM Move smoothly from one move to the next xyTable Absolute FALSE Incremental moves Move xyTable 0 4 Circle xyTable Angle 90 CircleCent...

Page 140: ..._normal1 cos I2 1 rot_start2 sin I2 rot_normal2 6 9 9 1 SUPERPOSITION Superposition blends motions at any point of time starting from the initial point of the movement up to the target This blending m...

Page 141: ...s case blending occurs according to the second movement Throughout the whole blending process sine acceleration or velocity trapeze profiles are used However mixing profile types is not allowed In the...

Page 142: ...d with the group TIMESETTLE or group TSETTLE given in milliseconds If the position error exceeds PESETTLE during this time the timer is reset If position error is within PESETTLE s range for the time...

Page 143: ...normally want STARTTYPE INPOS This forces the motion generator to wait for the position error to become small before starting the next move If the position profile starts on the second move too soon t...

Page 144: ...g the second move This move command cancels the current move For example issuing a move without changing the velocity MyGroup StartType IMMED Move MyGroup 150 400 Sleep 3000 Move MyGroup 150 800 As a...

Page 145: ...EAR has no effect once the move is executing In this case you stop the move as you would a non synchronized move 6 11 VELOCITY OVERRIDE The MC provides the ability to speed up or slow down all motion...

Page 146: ...tial position of Scara is Scara PFb Scara is moved through its generic representative Gen_Group Move Gen_Group 300 500 40 0 absolute 1 Sleep 200 Final position of Robot is Scara PFb Detach Gen_Group S...

Page 147: ...2 kn where k1 through kn are the number of correction points defined for the axes A1 through An respectively The source positions in source axis position units must be equally spaced and monotonously...

Page 148: ...ed for any of the axes in the table correction 0 A jump may occur Correction values are assumed very small and will not cause a large jump in the target axis VOSPD and PEMAX are affected by the correc...

Page 149: ...Activate After defining the correction table turn it ON OFF with COMPACTIVE Before activating a check is performed to insure that the table is valid the points are evenly spaced and increasing After v...

Page 150: ...ion 1 9 Setting max for the X Comp1 minposition 2 1 1 Setting min for the Y Comp1 maxposition 2 2 Setting max for the Y Comp1 minposition 3 3 Setting min for the Z Comp1 maxposition 3 3 12 Setting max...

Page 151: ...nd and its effects do not harm other slaves connected to the same master Directly disconnection of the slave SLAVE OFF automatically stops PHASER 8 1 1 Profiler PHASER is a type of MOVE so all the com...

Page 152: ...mmand The value reached at the end of stopping is the maximum offset that is added instead of the original offset value The maximum offset value is queried with MAXIMUMOFFSET see the SERVOSTAR MC Refe...

Page 153: ...plied in any system independently of how many axes or groups are defined For example switching on an output when an axis reaches its target While A1 IsMoving 0 Sleep 1 End While Sys Dout 1 1 9 1 ELEME...

Page 154: ...nment If an unassigned generic element is used an error is returned Common Shared Gen_Axis As Generic Axis Gen_Axis ElementID 0 Gen_Axis VMax Error 3005 Nonexistent group or axis Module Motion Through...

Page 155: ...and bitwise operators cannot be applied on generic elements Generic elements cannot be used as conditions in flow control statements and event definitions Generic elements cannot be recorded Generic e...

Page 156: ...passed by reference to functions and subroutines Here the argument is generic Sub AxesListSetUp AxList As Generic Axis Dim i as long For i 1 To Sys NumberAxes AxList i PFac 0x8000 AxList i VFac AxLis...

Page 157: ...Function Then write a general loop Dim A As Generic Axis For Index 1 to Sys NumberAxes A AxisByIndex Index Call AxisSetUp A Next The generic element returning function itself cannot be used as an arg...

Page 158: ...ments With Gen_Axis PFac 0x8000 VFac PFac 1000 AFac VFac 1000 JFac AFac 1000 End With WITH can be used on assigned and unassigned generic elements These generic elements can be assigned and or re assi...

Page 159: ...of I O where it can be read from and written to as blocks in the MC s dual port RAM Virtual inputs are delivered from the host over DPRAM where virtual outputs are stored in the DPRAM and retrieved by...

Page 160: ...t when an axis position reaches any of the defined positions of the PLS Some of the features of a PLS are Multiple position specifications Multiple PLSs per axis PLS pattern repetition Position hyster...

Page 161: ...S output with one switch position at 100 More switch positions can be added To have the PLS in the above example turn back off at 200 simply add a second position at 200 as shown below You can add any...

Page 162: ...current position so that when the axis reaches the first segment the output polarity is as indicated The default value for polarity is 0 10 3 5 Hysteresis The MC allows you to apply hysteresis around...

Page 163: ...ngle PLS position exists at 0 The initial output polarity is 1 PLSREPEAT is set to 0 The hysteresis is set to 0 These properties may be set explicitly as long as the PLS remains disabled You can check...

Page 164: ...u may need Change Polarity The default output state of a PLS is 0 Change this initial state by modifying PLSPOLARITY MyPLS PLSPolarity 1 The PLS must be disabled when changing this setting Query the N...

Page 165: ...nnections of PC104 but the subset is sufficient to accommodate nearly all PC104 I O cards Refer to the SERVOSTAR MC Installation Manual for more details concerning which pins are supported 10 5 1 Conf...

Page 166: ...to 0xCFFFF and 0xDA000 to 0xDFFFF For the PCI card the valid memory address range for POKE is 0xA0000 to 0xC7FFF and 0xDB000 to 0xDFFFF PEEKB transfers byte wide 8 bit data from the PC104 memory bus...

Page 167: ...sociated with a specific line of program code in the user defined task Examples include division by zero and out of range parameters in a MOVE command The task that caused the error is stopped Asynchr...

Page 168: ...ult system error action if OnError traps error Main program execution is stopped while the OnError block is executing and must be resumed if that is desired An example of this is shown later in this s...

Page 169: ...SYSTEMERROR OnSystemError traps and processes all errors in the system context It is the upper level of the hierarchical error processing structure formed by the combination of Try OnError and OnSyste...

Page 170: ...hDog is cycled indirectly through fast I O WDCYCLE directly resets the WatchDog but this is not recommended because it requires 15 to 20 ms per WatchDog cycle Given that WatchDog timers are often rese...

Page 171: ...cycles or 100 ms WDCycle MyVar You must cycle the Wdog once to begin While 1 1 Infinitely loop so event will be active Sleep 1e6 Use sleep to conserve CPU time End While End Program With this example...

Page 172: ...UEA may have Note and Error seventies 11 4 EXCEPTIONS 11 4 1 Declaration The application developer can declare an exception and supply the corresponding error message An exception may be declared on...

Page 173: ...haves like it is a regular predefined in firmware application error You are able to catch application exception with TRY Catch OnError or OnSystemError Exception assertion is possible with THROW THROW...

Page 174: ...ption is deleted or the defined task is killed For example MyError num 20007 MyError Msg My Error 11 4 6 Print Exceptions are printed and logged with timestamp task name and line number severity and o...

Page 175: ...0 Then Second If Then While I3 5 First While Print Print I3 I3 I3 I3 1 For I4 1 to I3 Step 2 First For statement Print I4 I4 For I5 I4 to 10 Second For statement Print I5 I5 Sleep 50 To slow task down...

Page 176: ...utine var_x var_y more code CALL MatrixMath array_z 1 1 rows columns more code End Program SUB OrdinarySubroutine param1 As Double ByVal param2 As Long REM pass param1 by Reference param2 by Value REM...

Page 177: ...AR MC INSTALLATION MANUAL FOR MORE INFORMATION rem rem TASK C Program Files KMTG Motion Suite BASIC Moves Projects Junk2 Junk2 prg rem AUTHOR Name of Author Here rem TIME Time of Creation Here rem PUR...

Page 178: ...program completed Sys Motion off Disable motion in system Sys En off Disable system rem Auto generated sample program end here Detach A1 Detach from axes End Program rem rem Sercos Set up Routine Auto...

Page 179: ...ase 0 then can only modify simulated property in phase 0 A1 Simulated off End If If Sercos Phase 4 then A1 enable on reenable axis End If End Sub SERCOS Setup Subroutine The following example modifies...

Page 180: ...IDN 15 WriteIDNValue Drive A1 Dadd IDN 15 Value 7 Rem Configure the AT for VFb PFb and PExt IDNs 40 51 53 WriteIDNValue Drive A1 Dadd IDN 16 Value 40 51 53 Rem Configure the MDT for VCmd PCmd IDNs 36...

Page 181: ...ne axis in motion and all the others are stopped Then the given value of the velocity is taken directly in the units for that axis For example having movement on the third axis of the SCARA robot the...

Page 182: ...robot and can be used without having a robot defined in the system When they are used in a connection with the robot or a group the world subtypes must be equal Internally points are stored as 10 dim...

Page 183: ...d by the motions of the first and second motors Typical examples of such applications are displaced motors of a robotic arm PUMA moving the robot arm via chains or belts Differential gearing on the la...

Page 184: ...everal axes of the group according to the given coupling matrix If the group has no coupling matrix defined the joint is a direct representation of the axis of the same ordinal number in the group as...

Page 185: ...l COMMON SHARED scara AS GROUP AxNm a1 AxNm a2 AxNm a3 AxNm a4 Model 4 This automatically defines a robot with a SCARA kinematics model Contrary to the regular groups that need only the axis to be ena...

Page 186: ...versa MOVES is used solely for groups from type robot and cannot be used in regular groups Straight line motion refers to motions that are straight lines in world space In groups with no robot model...

Page 187: ...MOVES as seen in joint space 42 4 6 5 0 5 4 58 62 66 70 7 4 7 8 82 40 50 60 70 80 90 100 X Y The following graph shows MOVES as seen in world space 3 00 2 0 0 10 0 0 1 00 2 0 0 3 00 5 00 5 20 5 40 5...

Page 188: ...JOINT target Cartesian Interpolation MOVES 400 400 0 0 MOVES 45 45 0 0 Joint Interpolation MOVE 400 400 0 0 MOVE 45 45 0 0 CONTOURING Contouring connects different motions by defining the final veloc...

Page 189: ...space possible that allows constant ACC DEC phases without exceeding joint values Acceleration and deceleration may differ and must be considered separately mostly in long distance moves where conditi...

Page 190: ...It is an internal value computed each time the robot is configured CONFIGGROUP Points given outside this radius are rejected with the error message Point Too Far The other limit is the small circle w...

Page 191: ...K determines the movement s target position It can be automatic 0 lefty 1 or righty 2 When a movement with a Cartesian target position is given the joint coordinates of the target position are selecte...

Page 192: ...leaf The variable leaf retains data related to the point variable including its context system program or local its offset taken from the symbol table and its type LOCATION or JOINT also taken from t...

Page 193: ...e joint or location and size Common Shared JointXYZ As Joint Of XYZ JointXYZ 1 5 2 8 3 Error type mismatch PRINT 20 6 7 23 8 43 2 0 Error type mismatch JointXYZ 2 6 Error size mismatch PRINT 20 6 7 23...

Page 194: ...Common shared P1 as location of XYZR declaration of a vector global P1 1 2 3 4 assign the whole vector P1 1 2 return a translation error P1 read the whole vector P1 2 read the second coordinate of th...

Page 195: ...e any other data type It subtracts each element of the first point with each element of the second point The result is a point 1 2 2 4 1 2 MULTIPLICATION The point multiplication operator is used like...

Page 196: ...1 P1 p1 End program Sub Sub1 X as joint of XYZR X 1 2 3 4 End Sub This program assigns P1 to 1 2 3 4 and prints 1 2 3 4 as output When a point is passed by reference or value you can only pass a point...

Page 197: ...oints deleting points Point As An Expression With the new point data type points properties can be stored as a point or can be compared as a point For example Dim A as Joint of XYZR A 1 2 3 4 A G1 Pcm...

Page 198: ...ype of an argument or a returned value must match function declaration Dim Shared ARG1 As Type_1 Dim Shared ARR_ARG 4 5 As Type_1 Dim Shared ARG2 As Type_2 FUNCTION MyStructFunc BYVAL Par1 AS Type_1 P...

Page 199: ...for querying a single element of a structure variable_name structure element For example Common shared s1 as X declaration of a default structure S1 Type 1 S1 Length 2 S1 Translation Error S1 Type Op...

Page 200: ...nts a coordinate system relative to the robot s world coordinate system Set a limited area in further text window on which the robot tracks This area is the operation region or the working frame Befor...

Page 201: ...om the downstream limit To correct this error add a direction flag to the trigger to indicate if the region limits are inverse The moving frame is divided into components For example an XY table track...

Page 202: ...robot s position and orientation coordinates are taken into account A system offers two different approach algorithms One is the absolute tracking algorithm and the other is the relative tracking alg...

Page 203: ...position to the object In this algorithm the two parameters are used differently FILTERFACTOR defines the threshold needed to end the approach phase and switch to the track phase As this parameter ge...

Page 204: ...ossible delivery Danaher Motion sales engineers are conveniently located to provide prompt attention to customer needs Call the nearest office for ordering and application information and assistance o...

Reviews: