DEVICE JOINT
1. Introduction
The internal device JOINT is achieved to manage multiple axes (max. 3) in linear interpolation connected. The interpolation is done through tiny movements determined by programmed points.
You can also move the axes individually and execute the homing procedure. The placement of axes runs under a P.I.D. reaction control that guarantees the accuracy by reducing the tracking error.
1.1 Device declaration
In the configuration unit, the BUS section must be declared so that you have the hardware resources necessary for the use of the JOINT device.
There must be at least a bi-directional counter and an analog output implemented with 16-bit resolution DAC. The device can also use a digital input and a digital input for interruption for homing operation.
In the INTDEVICE section of the configuration unit must be add the following definition:
;--------------------------------- ; Internal device declaration ;--------------------------------- INTDEVICE .. <device_name> JOINT TCamp NAxis Buffer IContX IntLX IAZeroX IoutAX IContY IntLY IAZeroY IoutAY IContZ IntLZ IAZeroZ IoutAZ IOut1 IOut2 IOut3 IOut4
Where:
<device_name> | the name assigned to the device |
JOINT | keyword that identifies the device, |
TCamp | sample time device (1÷255 ms) |
NAxis | number of axes enabled to the interpolation (2÷3) Note: the number of axes is going to affect both the performance and on the amount of memory used |
Buffer | step number available in the buffer (3÷30000) |
Axis X | |
---|---|
IContX | bidirectional counter input (to prevent the device uses this resource enter the X.X characters) |
IntLX | number of digital input for dedicated encoder zero pulse break during the research phase of presets. (to prevent the device uses this resource enter the X character) |
IAZeroX | enable input for transducer zero pulse acquisition during homing research phase (to prevent the device uses this resource enter the X.X characters) |
IoutAX | hardware address of the analog output (to prevent the device uses this resource enter the X.X characters) |
Axis Y | |
IContY | bidirectional counter input (to prevent the device uses this resource enter the X.X characters) |
IntLY | number of digital input for dedicated encoder zero pulse break during the research phase of presets. (to prevent the device uses this resource enter the X character) |
IAZeroY | enable input for transducer zero pulse acquisition during homing research phase (to prevent the device uses this resource enter the X.X characters) |
IoutAY | hardware address of the analog output (to prevent the device uses this resource enter the X.X characters) |
Axis Z | |
IContZ | bidirectional counter input (to prevent the device uses this resource enter the X.X characters) |
IntLZ | number of digital input for dedicated encoder zero pulse break during the research phase of presets. (to prevent the device uses this resource enter the X character) |
IAZeroZ | enable input for transducer zero pulse acquisition during homing research phase (to prevent the device uses this resource enter the X.X characters) |
IoutAZ | hardware address of the analog output (to prevent the device uses this resource enter the X.X characters) |
Digital outputs | |
IOut1 | hardware address of the digital output OUT1 |
IOut2 | hardware address of the digital output OUT2 |
IOut3 | hardware address of the digital output OUT3 |
IOut4 | hardware address of the digital output OUT4 |
Attention: It is necessary that each definition are present on the same line. In case you do not want to assign a resource, such as IAZeroX, you must enter in the appropriate field the X.X string |
---|
1.2 Operation
The JOINT device adds to the capabilities of analog positioner EANPOS (see see the documentation for more details) the possibility to make a movement interpolated axes (max. 3). By this we mean that you get a chance, using the axes, to execute a movement from one point in space (3 dimensions) to another along a line (not necessarily straight line) or a preset path.
Moreover, the device can calculate a fillet between two lines with different slopes according to some programmable modes.
1.2.1 PID regulator
The device includes a trajectory-generating function (also called velocity profile). This generates a piece of information that is appropriately converted to a proportional voltage signal via the analog output to operate the motor and therefore the axis connected to bring it to the desired position.
If the motor system was ideal would follow perfectly the velocity profile created and you would bring to the position given by the integral of the velocity profile. Actually this doesn't happen and you need to top it all with a chain of feedback. The transducer that detects the position of the axis is typically digital, typically an encoder (we'll call it always bi-directional meter).
The information provided by the transducer is used to make a comparison between the current position and the theoretical position. This comparison allows to know the current error and the PID controller can use this information to modify the output and get the error condition zero. The regulator used implements four types of actions. The block diagram of the regulator is as follows:
The output PID + FF controller is a value between -32768 and 32767. This is used by the analogue output to generate the adjusting voltage. Typically the analogue output is implemented by a DAC device that converts the digital information in a tension between -10 Volt and +10 Volt. For every action the regulator calculates a coefficient inside to ensure that the value generated has a significant for the analog output. |
---|
1.2.1.1 Proportional action
This control action establishes a relationship of direct proportionality between the tracking error (follerr) and the output value to the controller. The parameter proportional gain pgain (user-settable) defines the degree of proportional controller; It is expressed in milliseconds for which to set a gain of 0.5 you should enter the value 500.
The rule establishing the output value (propreg) is: with unitarian gain (pgain), the control output will be maximum when the tracking error is equal to the space that is executing the axis at the maximum speed in a sampling time of the device. It is important to note that due to the rule that you just described, there is a link between the proportional and the sampling time of the device. Also note that when the error is null even proportional control output is nothing.
1.2.1.2 Integral action
The integral controller of PID controller calculates the integral of position error on a time interval user-settable with integt parameter (expressed in ms). The output signal is updated in a particular way: whenever the supplement from an output value that is added to the value that is on the register, then it will continue to increase or decrease (depending on the sign of the error). The output value is calculated as follows: with unit proportional gain, the integration time (integt) is the time it takes for the output (intreg) reaches the proportional output value (propreg). From this last statement shows that the integral action is related to the proportional controller.
1.2.1.3 Derivative action
The derivative action “anticipates” the system behavior of the system being monitored. The output produced is proportional to the change of the input signal (that is the position error). The magnitude of the derivative effect is adjustable via the parameter time derivative derivt. Computing the derivative action is based on the following convention: the derivative time is the time it takes for error constant variation, the derivative output (derreg parameter) reaches a value equal to the proportional output. As for the integral action shows that even for the derivative action is there a link with the proportional action. More higher the time of derivation of error and more faster the transient error recovery system. It is evident that the derivative action may never be used alone because in the presence of constant mistakes its effect would be null.
In summary: the proportional action has the effect of increasing the rate of reaction of the system, it also reduces, but does not completely eliminate, the error. The integral action leads to clear the error, but lengthens the transitional times. Derivative control increases the stability of the system, reducing overshoot and reducing transitional times.
1.2.1.4 Feed-forward action
In addition to the PID controller There is also then feed-forward actio: It generates an output proportional to the value of theoretical speed determined by the trajectory generator (as you can tell from the name doesn't exploit any tracking error feedback). Its function is to reduce the system response time by providing a release already nearby to that which provides the speed profile. The contribution of this action is adjustable via the feedfw parameter: This parameter is expressed as a portion of millesimal theoretical speed (so to introduce, for example, 98.5% it's necessary set the 985 value).
1.2.2 Homing (or preset) function description
This chapter describes the method by which the device searches the home position (also called zero axis or mark point). There are various ways to do this research and these use different movements and hardware resources.
Homing function must be properly configured before it is used. In particular the prsmode parameter defines the way in which the device searches the home position. This parameter also defines the hardware resources necessary to search and how to move. You must then configure the search speed. Typically an high speed (expressed from the prsvel parameter) is used to search for the activation of the enable input and a lower speed (expressed from the sprsvel parameter) is used to search the home position. Can be derived from the zero of the bi-directional counter or from the disable of the enable digital input.
We illustrate now the various ways to search for the location of home:
1.2.2.1 Mode 0, without zero input of bi-directional counter
This mode involves the movement of axis and only enabling digital input. To the deactivation of the digital input the location of the axis takes the value in the prspos parameter. You later disable the st_prson state and enable the st_prsok state to report the end of search. This state remains active until launching a new search procedure.
In the picture it was shown the function pirnciple highlighting the differences in the case of opposite directions of motion.
1.2.2.2 Mode 1, with zero input of bi-directional counter
This mode involves the movement of the axis and the additional use of the bidirectional counter zero. To the deactivated of the enable digital input is enable the reading of the first enable of the zero input and on this signal the position of the axis takes the value in the prspos parameter. You later disable the st_prson status and is active the st_prsok state to signal the end of search. This state remains active until launching a new search procedure.
In the picture is shown the operating principle of highlighting the differences in the case of opposite directions of motion
1.2.2.3 Mode 2, homing in current position
This mode does not provide for the moving of the axis and uses only the enabling digital input. If the input is activated, the position of the axis takes the value in the prspos parameter.
• When you set the search speed of the zero (sprsvel parameter) we must consider that the mode 0 the input has a hardware filter that delays the acquisition and so this delay affects the accuracy of the loading. In mode 1 instead acquiring execute on digital input for interruption and the speed of the movement is not determinative. But we must ensure that the operating time of the zero-pulse is sufficient to be acquired from the input. To know the times of acquisition of digital inputs and the minimum time zero pulse signal refer to the technical documentation of the used cards. • If during the first movement of research of the enable input (executed at the prsvel speed) is given again the PRESET command, the direction of movement is inverted. • After loading the homing offset in the current position, automatically commanded a placement at the homing offset quota. |
---|
When moving home positioning the maxpos and minpos software limits aren't enabled. |
---|
The PRESET and RSPRSOK commands manage the homing function. The first must be used to initiate a search of the home position or to reverse the direction of research during the first movement at prsvel speed. The second command should be used instead to clear the st_prsok state. This state can be used by the application to know if a homing function has been completed successfully. The RSPRSOK command it can be used in the case that intervening events that invalidate the current position value (for example a break of the bi-directional counter, manual introduction of a value in the current position). The application (that monitorize the st_prsok state) will require a new homing search.
The st_prson state should be used to determine if the function is active homing. The st_still state cannot be used because the movement is composed of multiple placements and this state would indicate stationary axis at the end of each movement.
See the states chart:
The prspos parameter should be used to express the distance between home and the location where the homing function. If they match then the parameter should be set to zero. See a chart:
1.2.3 Delta current position
Normally the posit and encoder parameters represent the absolute position of the axis. There are some applications where these parameters must represent a relative information. These can be for example circular axes (posit must express an angular size) or a valve controller to the respective quotas. To make posit information relating you must edit its value; Although there is the possibility of writing to that parameter, the operation is not recommended for two reasons:
-
because the actual position of the axis is always influenced by tracking error
-
because the current location can be one of the many intermediate positions between a unit of measure and the subsequent
To do this there is the DELCNT command that allows you to change the posit a value that can be set with delcnt parameter.
For example, suppose you have configured pulse and measure so that the location is expressed in tenths of a degree. If posit expresses the angular position and we want this is always between zero and 360 degrees we should add the following code:
IF Axis:posit GE 3600 Axis:delcnt = -3600 DELCNT Axis ENDIF
It is wrong to use the following code:
IF Axis:posit GE 3600 Axis:posit = Axis:posit - 3600 ENDIF
For the conditions of execution of the command, see the decriptions.
The DELCNT command function is assured even in the event that a unit of measure is not expressible in a finite number of impulses. For example with the measure = 1000 and pulse = 1024 parameters, the value 3600 in the preceding example corresponds to 3686.4 pulses. Thanks to a sophisticated algorithm inside the device fails to consider the fractional part of this value and through internal batteries it becomes part of the information used to change the posit valuee.
1.2.3.1 Example:
For example, the following setting: pulse = 10, measure = 1. For example the reading of the position of the axis is 2 and you are at point A. You want to add to the position posit two units of measure.
With instructions:
Axis:posit = Axis:posit + 2
the axis takes the new position B.
With instructions:
Axis:delta = 2 DELCNT Axis
C position is reached.
Note that if you change it directly the posit without using the delta function (as in the first example) an error is introduced.
Se si devono inviare comandi DELCNT in successione, è conveniente calcolare la grandezza da sommare ed inviare una sola volta il comando. Se ciò non fosse possibile bisogna prestare attenzione a non inviare comandi successivi senza interporre una istruzione di lettura su parametro device. Esempio:Axis:delta = 3 DELCNT Axis WAIT Axis:delta Axis:delta = 40 DELCNT Axis |
---|
1.2.4 Smooth interpolation
The device allows a positioning by connecting pairs of points with fees and making the connection by changing the slope of the first line to reach the slope of the second line. Doing it this way you will calculate a curve that join without being hard moved and trajectories of two lines. An example is shown in picture.
The device in this situation generates two trajectories that will merge together between a line and the other. To obtain a greater homogeneity of the resulting movement was chosen to keep the acceleration and deceleration time equal to each axis, programmable with a single variable. Otherwise it could happen that the resulting trajectory is what you want.
If the coordinates exceed maximum and minimum dimensions set as the limit of the axes, the system will position itself on these limits.
If you make the connections so you get circular figures, It is good to set mxlrvelASSE variables equal to prevent various interpolation between the limits of speed mxlrvel of any axes.
Note: What has been described is also valid for three-axis movement.
1.2.4.1 Interpolation speed change
When positioning you can vary the speed of interpolation without affecting the location to get to. This operation can lead to an increase or a decrease in the speed of each axis: If an axis reaches its maximum limit, then the overall speed of interpolation may not exceed.
The change of speed is not said to occur immediately, but only when all conditions are met.
Also the acceleration/deceleration time of the interpolation (tacci) is subject to the limits imposed by the various axes: It must be equal to or greater than the maximum acceleration and deceleration time of all axes.
1.2.4.2 Using of passcodes interpolation
The device, When enable make a movement interpolation using the STARTPRG command, uses the program Buffer containing axes coordinates for points that need to be connected.
The introduction of quotas can occur both in absolute or incremental forms, compared to the previous position (setposAXIS), depending on the choice of the prgmode parameter.
For each program step is also a code variable whose values are between 0 and 65536.
The meaning of the variable code is shown in the following table:
Value | Description | |||||
---|---|---|---|---|---|---|
0 | No operation | |||||
1÷1000 | Speed override (expressed in tenths of percentage points setveli) | |||||
2000÷6999 | Performs a shutdown of positioning (using a deceleration ramp) then waits for an interval of time (in milliseconds) equal to the value of the code - 2000 field, then resumes the placement with an acceleration toward the next point. | |||||
10000÷100015 | Shows the status of the OUT1, OUT2, OUT3, OUT4 outputs The resulting value of subtracting 10000 to the code variable is a value between 0 and 15 indicating the status of 4 outputs as to the following diagram: |
|||||
OUT4 | OUT3 | OUT2 | OUT1 | code- 10000 | code | |
0 | 0 | 0 | 0 | 0 | 10000 | |
0 | 0 | 0 | 1 | 1 | 10001 | |
0 | 0 | 1 | 0 | 2 | 10002 | |
0 | 0 | 1 | 1 | 3 | 10003 | |
0 | 1 | 0 | 0 | 4 | 10004 | |
0 | 1 | 0 | 1 | 5 | 10005 | |
0 | 1 | 1 | 0 | 6 | 10006 | |
0 | 1 | 1 | 1 | 7 | 10007 | |
1 | 0 | 0 | 0 | 8 | 10008 | |
1 | 0 | 0 | 1 | 9 | 10009 | |
1 | 0 | 1 | 0 | 10 | 10010 | |
1 | 0 | 1 | 1 | 11 | 10011 | |
1 | 1 | 0 | 0 | 12 | 10012 | |
1 | 1 | 0 | 1 | 13 | 10013 | |
1 | 1 | 1 | 0 | 14 | 10014 | |
1 | 1 | 1 | 1 | 15 | 10015 |
1.2.4.3 Conditions for the execution of an interpolation
For start interpolation, use the STARTI or STARTPRG commands, requires that the following conditions are met by departure:
-
the unitvelASSE and decptAXIS parameters to interpolate axes must be equal
-
the axes should not be in an emergency: st_emrgAXIS = 0
-
the axes must be in stop: st_stillAXIS = 1
-
the axes not be in calibration: st_calAXIS = 0
-
the axes should not be looking for homing: st_prsonAXIS = 0
1.3 Parameters table
Name | Dimensions | Default value | Access type | Unit of measure | Valid range | Write conditions | Description | |
---|---|---|---|---|---|---|---|---|
prgmode | Byte | Retentive | RW | - | 0÷1 | st_ipolar=0 | How to setup program quotas Defines how to setup program memory: 0: the quotas are expressed as absolute value, 1: dimensions are referred to as incremental value. |
|
maxveli | Long | 0 | R | Uv | 0÷999999 | - | Maximum speed in interpolation Defines the maximum speed of interpolation in the speed unit set. The value is calculated automatically depending on the maximum speeds of the X, Y and Z axes. |
|
tacci | Word | Retentive | RW | hundredths of a second | 0÷999 | st_ipolar=0 | Acceleration and deceleration time in interpolation Defines the time taken by the interpolated axis to move when stationary to maximum speed and from the maximum speed to zero (condizione di asse fermo). Is only used when interpolated movements. |
|
setveli | Long | Retentive | RW | Uv | 1÷maxveli | - | Setting the interpolation speed Defines the interpolation speed and can be changed during the interpolation. This value should not exceed maxvelx or maxvely or maxvelz. If during calculations a component exceeds the maximum re-calculable value (mxrlvelx or mxrlvely or mxrlvelz), interpolation speed reduction it's executed in order to meet this requirement. |
|
minspINT | Long | 0 | R | Um | - | - | Minimum space in constant speed interpolation (integer part) Indicates the minimum space and can be networked in interpolation, this value is calculated as a function of speed (setveli) and the acceleration and deceleration time (tacci) of the interpolation. The value is expressed in the minspINT variable (integer part) and minspFRAC (fractional part). |
|
minspFRAC | Word | 0 | R | - | - | - | Minimum space in constant speed interpolation (fractional part) Represents the fractional part of the minspINT parameter, is expressed as the fractional part * 65535. |
|
mxrlvelx | Long | Retentive | RW | Uv | 0÷maxvelx | st_ipolar = 0 | Maximum speed X axis for movements with interpolation In the case of movements with interpolation defines the maximum speed from the X axis. In case the axis speed exceeds this value is subject to a reduction in the rate of reported easing st_rvel state activation. |
|
mxrlvely | Long | Retentive | RW | Uv | 0÷maxvelx | st_ipolar = 0 | Maximum speed Y axis for movements with interpolation In the case of movements with interpolation defines the maximum speed from the Y axis. |
|
mxrlvelz | Long | Retentive | RW | Uv | 0÷maxvelx | st_ipolar = 0 | Maximum speed Z axis for movements with interpolation In the case of movements with interpolation defines the maximum speed from the Z axis. |
|
stepbeg | Word | 0 | RW | - | 0÷30000 | - | Step number of start interpolation program Indicates the number of step which will begin easing the program with the STARTPRG command. If set to 0, the device will loop continuously from 1 to stepend. By changing from 0 to 1 the value during the interpolation, it will end when stepexe will reach stepend. |
|
stepend | Word | 0 | RW | - | 1÷30000 | - | Step number of end interpolation program Indicates the number of step that will end the easing programme started with the STARTPRG command. |
|
stepexe | Word | 0 | R | - | 1÷30000 | - | Step number in execution of interpolation program Indicates the number of the step executiong during the interpolation started with the STARTPRG command. |
|
stepin | Word | 0 | RW | - | 1÷30000 | - | Step number to memorize Indicates the number of the step to be stored with the WRITESTEP command or read with the READSTEP command. |
|
stepout | Word | 0 | RW | - | 1÷30000 | - | Outcome of reading or writing step procedure When the execution of the WRITESTEP or READSTEP commands was successful stepout will have the same value as stepin. |
|
stepnum | Word | 0 | RW | - | 1÷4 | - | Number of steps considered by READSTEP or WRITESTEP Indicates the number of steps that are read or written by the READSTEP or WRITESTEP commands. |
|
codexI | Long | 0 | RW | - | 0÷10015 | - | Code X axis for the step I Indicates the X axis coordinate in read or write step number I (I = 1÷8). |
|
codeyI | Long | 0 | RW | - | 0÷10015 | - | Code Y axis for the step I Indicates the Y axis coordinate in read or write step number I (I = 1÷8). |
|
codezI | Long | 0 | RW | - | 0÷10015 | - | Code Z axis for the step I Indicates the Z axis coordinate in read or write step number I (I = 1÷8). |
|
codestpI | Word | 0 | RW | - | 0÷10015 | - | Code step I number Indicates the value for the code I number (I = 1÷8). If zero, the value is ignored. |
|
errcode | Byte | 0 | RW | - | 0÷100 | - | Error identification code Indicates the type of failure intervened in the system. When st_error = 1 is present on the errcode variable the type of failure intervened and in the errvalue variable an indication on the cause of the error. If the device goes wrong, to start cut you have to clear the st_error state through the RSERR command. The following table specifies the values from the errcode variable: |
|
Code | Description | |||||||
1 | Encountered an error in calculations during the interpolation. When this condition occurs, the interpolation is immediately interrupted. |
|||||||
errvalue | Byte | 0 | RW | - | 0÷100 | - | Identifying code of the cause of the error Through the errvalue variableYou can get more detailed information about the error reported. The following table specifies the values from the errvalue variable: |
|
Code | Description | |||||||
1 | This error is reported when for 5 consecutive steps moving the interpolation point proved 0. | |||||||
2 | An invalid operation has been requested. | |||||||
3 | During the calculating of the interpolation point movement was an overflow. | |||||||
10 | Exceeding maximum quota X axis. Placement quota calculated, is greater than the maximum quota set. | |||||||
11 | Exceeding maximum quota Y axis. Placement quota calculated, is greater than the maximum quota set. | |||||||
12 | Exceeding maximum quota Z axis. Placement quota calculated, is greater than the maximum quota set. | |||||||
13 | Exceeding minimum quota X axis. Calculated placement quota is less than the minimum amount set. | |||||||
14 | Exceeding minimum quota Y axis. Calculated placement quota is less than the minimum amount set. | |||||||
15 | Exceeding minimum quota Z axis. Calculated placement quota is less than the minimum amount set. | |||||||
wrncode | Byte | 0 | RW | - | 0÷100 | - | Identification code warning Indicates the type of warning in the system. The st_warning state indicates a minor event that guarantees the operation of the device. When st_warning is equal to 1, are present on the wrncode variable the type of warning intervened (see the table) and in the wrnvalue variable an indication as to the cause that caused the warning. To clear the st_warning state mustto send the RSWRN command. The following table specifies the values from the wrncode variable: |
|
Code | Description | |||||||
1 | Command not executed | |||||||
2 | You cannot perform writing parameter because it active the interpolation. | |||||||
16÷31 | Code related to X axis | |||||||
32÷47 | Code related to Y axis | |||||||
48÷63 | Code related to Z axis | |||||||
wrnvalue | Byte | 0 | RW | - | 0÷100 | - | Identification code of the cause of the warning By means of the wrnvalue variable you can get more detailed information about the error. |
1.3.1 X axis parameters
Name | Dimension | Default value | Access type | Unit of measure | Valid range | Write conditions | Description | |
---|---|---|---|---|---|---|---|---|
measurex | Long | Retentive | RW | Um | 1÷999999 | st_ipolar = 0, st_prsonx = 0, st_stillx = 1 | Reference measure for calculating the conversion factor between primary impulses and units for X axis Indicates the space, in unit of measure, covered by the X axis to obtain primary pulses set in pulsex parameter. This parameter is used for calculate the conversion factor between primary pulses and units of measure. positx = encoderx * measurex / pulsex The relationship measurex/pulsex must be have a value between 0.00935 and 1. |
|
pulsex | Long | Retentive | RW | - | 1÷999999 | st_ipolar = 0, st_prsonx = 0, st_stillx = 1 | Number of pulses for calculating the conversion factor between primary pulses and units of measure for X axis Indicates the number of pulses that will generate the bidirectional transducer to get a movement of measurex. This parameter is used to calculate the conversion factor between primary pulses and units of measure. positx = encoderx * measurex / pulsex The relationship measurex/pulsex must be a value between 0.00935 and 1. |
|
decptx | Byte | Retentive | RW | - | 0÷3 | st_ipolar = 0, st_prsonx = 0, st_stillx = 1 | Choice of the unit of measurement of the speed of the X axis The speed unit depends on the unitvelx and decptx parameters. Through decptx determines whether setting the values of speed in multiples of the fundamental units Um. For example, if the fundamental unit of measure Um=mm, and unitvel=1 you get the speed indicator in the vel variable in: mm/s (with decpt = 0), cm/s (with decpt = 1), dm/s (with decpt = 2), m/s (with decpt = 3). |
|
unitvelx | Byte | Retentive | RW | - | 0÷1 | st_ipolar = 0, st_prsonx = 0, st_stillx = 1 | The time unit for the speed calculation Defines the speed unit: 0: Um/min, 1: Um/sec. |
|
maxposx | Long | Retentive | RW | Um | -999999÷999999 | st_stillx=1 | Maximum quota reached by the X axis Defines the maximum quota reached by the X axis: the set value is considered also as an upper limit for the introduction of quotas of program. |
|
minposx | Long | Retentive | RW | Um | -999999÷999999 | st_stillx=1 | Minimum quota reached by the X axis Defines the minimum quota reached by the X axis: the set value is considered also as the lower limit for the introduction of quotas of program. |
|
prsposx | Long | Retentive | RW | Um | minpos÷maxpos | st_stillx=1, st_prsonx=0 | Homing offset X axis Represents the homing offset that is the distance between the location of home and location where ends the homing function for X axis. |
|
maxvelx | Long | Retentive | RW | Uv | 0÷999999 | st_ipolar = 0, st_prsonx = 0, st_stillx = 1 | Maximum speed X axis Defines the maximum speed of the X axis, or that is the speed assumed when the output voltage is ± 10V. The input value is measured in the units that are set using the unitvelx parameter. |
|
prsvelx | Long | Retentive | RW | Uv | 0÷maxvelx | st_stillx=1, st_prsonx=0 | Speed for the search of the activation for X axis enable digital input Speed to search the digital input is activated by enabling. The input value is measured in the units that are set using the unitvel. parameter |
|
sprsvelx | Long | Retentive | RW | Uv | 0÷maxvelx | st_stillx=1, st_prsonx=0 | Speed used for the search the X axis home position Defines the speed used to search up the location of home. This can be given by the input of zero of the bi-directional counter or from the disable of enable digital input (depends on the value of the prsmodex parameter). The input value is measured in the units that are set using the unitvelx parameter. |
|
tollx | Long | Retentive | RW | Um | -999999÷999999 | - | X axis tolerance Define a tolerance band around the positioning quotas. When the placement ends within this band then is placed to 1 the st_tollx state. Is there a time of check to ensure that the axis has assumed a stable position within the range. This time is expressed by the toldlyx parameter. |
|
maxfollerrx | Long | Retentive | RW | Primary pulses | 0÷2147483648 | - | Maximum following error X for axis Defines the maximum acceptable deviation between the theoretical position and the current position of the X axis. It is used for the management of st_follerx. |
|
mxrlvelx | Long | Retentive | RW | Uv | 0÷maxvelx | - | Maximum speed X axis in interpolation In the case of placements with interpolation, defines the maximum speed reached by the X axis. |
|
rampmodex | Byte | Retentive | RW | - | 0÷1 | - | Choice between acceleration ramps and deceleration for the X axis Used when choosing between equal acceleration and deceleration ramps (usage of taccdecx parameter) or differentiated (usage of two taccx and tdecx parameters). 0: equal ramp, 1: differentiated ramps. Note: if st_stillx=1 the writing is always enabled, otherwise the value is processed only if the new acceleration and deceleration time can reach the pre-set quota. |
|
ramptypex | Byte | Retentive | RW | - | 0÷3 | st_stillx=1 | Ramp type X axis Defines the ramp type to execute for X axis: 0: trapezoidal acceleration and deceleration, 1: acceleration and deceleration of epicycloidal type, 2: trapezoidal acceleration and epicycloidal deceleration type, 3: epicycloidal acceleration and trapezoidal deceleration. Description of epicycloidal motion The epicycloidal motion (ramptypex=1) is used to move the axes without sudden variations of speed. The time of positioning of an axis moved by trapezoidal ramps will be less, but the mechanical wear increases. For comparison shows the difference of the time of acceleration in the two cases with constant maximum gradient acceleration (deceleration ramp behavior is the same). Epicycloidal movement has the ability to behave in different ways in the event of a reduction in profile (rtypex) and in the case of stop during the acceleration ramp (stoptx). |
|
taccdecx | Word | Retentive | RW | hundredths of a second | 0÷999 | st_ipolar = 0, st_prsonx = 0, st_stillx = 1 | Acceleration and deceleration time X axis Is the time it takes to go from speed 0 to maximum speed (maxvelx) and vice versa; the parameter is used if rampmodex = 0. Change ramp time in motion When positioning can be varied acceleration and deceleration times. For example, the device can start a placement with a long ramp and, reach the target speed, is changed the deceleration time and executed a speed change with a very long ramp. For special applications and with trapezoidal ramps, the time can be changed even during a speed change, in this case, the new time is used immediately. Writing to acceleration and deceleration parameters is always enabled but the new value will be used only if the generator profile can reach the location set. Otherwise, the new value will be put into execution to the next positioning. |
|
taccx | Word | Retentive | RW | hundredths of a second | 0÷999 | - | Acceleration time X axis Is the time to go from 0 speed to maximum speed. Is used when rampmodex=1. Moving ramp time change When positioning can be varied acceleration and deceleration times. For example, the device can start a placement with a very long ramp and, reach the target speed, is changed the deceleration time and execute a speed change gearbox with very long ramp ramp. For special applications and with trapezoidal ramps, the time can be changed even during a change in speed, in this case, the new time is used immediately. The writing to acceleration and deceleration parameters is always enabled but the new value will be used only if the generator listing can reach the location set. Otherwise, the new value will be put into execution the next positioning. |
|
tdecx | Word | Retentive | RW | hundredths of a second | 0÷999 | - | Deceleration time X axis Is the time to go from maximum speed to 0 speed. Is used when rampmodex=1. Moving ramp time change When positioning can be varied acceleration and deceleration times. For example, the device can start a placement with a very long ramp and, reach the target speed, is changed the deceleration time and execute a speed change gearbox with very long ramp ramp. For special applications and with trapezoidal ramps, the time can be changed even during a change in speed, in this case, the new time is used immediately. The writing to acceleration and deceleration parameters is always enabled but the new value will be used only if the generator listing can reach the location set. Otherwise, the new value will be put into execution the next positioning. |
|
rtypex | Byte | Retentive | RW | - | 0÷1 | ramptypex=1 | Profile reduction type X axis This parameter indicates the behavior of the profile generator in the case of positioning with epicycloidal ramps in conditions of not reached of the constant speed. The behavior is: 0: the acceleration and deceleration times remain those already calculated and is decreased proportionally speed, 1: acceleration, deceleration times and the speed are decreased. With the rtypex = 0 parameter extend considerably the time needed to placements small. If the parameter is set to 1 you have a short time in case of short placements, but keeping the constant gradient you will lose the benefits of using an epicycloidal ramp. |
|
stoptx | Byte | Retentive | RW | - | 0÷1 | ramptypex=1 | Stop mode X axis In case you are using epicycloidal ramps and we should curb the X axis during acceleration ramp with the STOPX command you can choose whether to complete the ramp or interrupt. This option will change the stoptx parameter: 0: the acceleration ramp is completed, and then it starts the deceleration ramp, 1: the acceleration ramp stops and start the deceleration ramp of epicycloidal type. |
|
tinvx | Word | Retentive | RW | hundredths of a second | 0÷999 | - | Late for reversing the direction of X axis Is a delay time introduced in the case of reversals of direction. Is used to avoid mechanical stress caused by too rapid reversals. |
|
toldlyx | Word | Retentive | RW | hundredths of a second | 0÷999 | - | Tolerance signalling delay X axis Defines the time between the arrival of the axis in the tolerance range and its status report (st_tollx). |
|
pgainx | Word | Retentive | RW | - | 0÷32767 | - | Proportional gain X axis Is the coefficient that allows you to change the amount of proportional in PID controller. Is placed in thousandths (therefore inserting 1000 the coefficient will be equal to 1). |
|
feedfwx | Word | Retentive | RW | - | 0÷32767 | - | Coefficient of feed forward X axis Is the percentage coefficient that, multiplied by the theoretical speed, raises the portion of feed forward control output. The value is entered in tenths (therefore inserting 1000 the percentage will be 100.0%). |
|
integtx | Word | Retentive | RW | milliseconds | 0÷32767 | - | Integration time of following error X axis Is the parameter that allows you to change the scale of the action integral PID controller PID. |
|
derivtx | Word | Retentive | RW | milliseconds | 0÷32767 | - | Time for calculation of derivative coefficient of the following error X axis Is the parameter that allows you to change the amount of derivative action in PID controller. |
|
prsmodex | Byte | Retentive | RW | - | 0÷2 | st_ipolar = 0, st_prsonx=0, st_stillx=1 | Search mode of home position X axis Select the search mode of the home position. Possible values are: 0: without zero input of bi-directional counter, 1: with zero input of bi-directional counter, 2: homing in current location without moving. |
|
prsdirx | Byte | Retentive | RW | - | 0÷1 | st_prsonx=0 | Direction of movement for seeking the home position X axis Defines the direction of the first movement when searching the home position: 0: forward direction, 1: backward direction. |
|
offsetx | Word | Retentive | RW | bit | -32768÷32767 | - | Analog output offset X axis Defines the value in bits of the correction concerning the analogue output to compensate for any drift in the system. |
|
setposx | Long | Retentive | RW | Um | minposx÷maxposx | - | Positioning quota X axis Defines the quota of positioning to achieve the setvelx speed. Setposx change in motion In some applications you are prompted to define the target quota during the placement, based on certain events. This means you can write in the setposx parameter even with ongoing positioning. Changing the quota is accepted only if the new location is accessible by the current direction of movement. In the case of using epicycloidal dimension change ramps is not accepted if st_decx=1 (if the axis is decelerating). |
|
setvelx | Long | Retentive | RW | Uv | 0÷maxvelx | - | X axis positioning speed Sets the value of the positioning speed. Setvelx change in motion When positioning the axis speed can be changed without affecting the location to reach. This operation can also be done in several places of the same positioning simply by changing the setvelx parameter. The speed change is always available except during the deceleration ramp reported by a specific state (st_decx = 1). Attention: the value is altered if you tell a homing with search function prsmodex = 0 or 1 |
|
voutx | Byte | 0 | RW | tenths of a Volt | -100÷100 | st_init=1, st_calx=1, st_emrgx = 0 | Output voltage X axis Typically indicates the voltage value provided by analog output, during the calibration phase can be modified to set a fixed value at exit. |
|
velx | Long | 0 | R | Uv | 0÷maxvelx | - | X axis speed Is the value of the instantaneous speed of X axis. The update is executed every 250 ms. The speed unit depends on the unitvelx and decptx parameters. |
|
frqx | Long | 0 | RW | Hz | - | - | Input signal frequency X axis It's the frequency value of the input signals on the bi-directional counter. The update is executed every 250 ms. |
|
posit | Long | Retentive | RW | Um | minpos÷maxpos | st_init=1 | Current position in units of measurement Is the value of the instantaneous position of the axis. positx = encoderx * measurex / pulsex Change current location in motion When positioning you can change the value of the current positx position. This function is usually used when a device must, under special conditions, continue a speed profile for a very long time, that exceeds the time axis takes to reach the quota limit (maxposx or minposx). |
|
encoderx | Long | Retentive | RW | Primary pulses | st_init=1 | - | Current position X axis in primary pulses Expresses the current position in the primary pulses. |
|
follerrx | Long | 0 | R | Primary pulses | - | - | X axis following error It's the instantaneous value of the following error. |
|
ffwdregx | Long | 0 | R | bit | - | - | Output value feed forward X axis It's the instantaneous value of the feed forward output in PID controller. |
|
propregx | Long | 0 | R | bit | - | - | Proportional output value X axis It's the instantaneous value of the proportional output in PID controller. |
|
intregx | Long | 0 | R | bit | - | - | Integral output value X axis It's the instantaneous value of the integral PID controller output. |
|
derregx | Long | 0 | R | bit | - | - | Derivative output value X axis Is the instantaneous value of the derivative in PID controller output. |
|
deltax | Long | 0 | RW | Um | -999999÷999999 | - | Variation of the current position of the X axis to use the DELCNT command Is the value that is added to your current position when a DELCNTX command is sent. |
|
errcodex | Byte | 0 | R | - | 0÷100 | - | Error identification code X axis Indicates the type of error intervened in the system. When st_errorx = 1 is present on the errcodex variable and the type of error intervened in the errvaluex variable is an indication of the cause of the error. If the device goes wrong, to start work you have to clear the st_errorx status through the RSERRX command. |
|
errvaluex | Byte | 0 | R | - | 0÷100 | - | Identifying code of the cause of the error X axis Indicates the cause of the error in the system. The code is valid only if st_error = 1. |
|
wrncodex | Byte | 0 | R | - | 0÷100 | - | Identification code warning X axis Indicates the type of warning in the system. The st_warningx state indicates a minor event that guarantees the operation of the device. When st_warningx is equal to 1, it's present on the wrncodex variable the type of warning intervened and in the wrnvaluex variable an indication as to the cause of the warning. To clear the st_warningx status must be send the RSWRNX command. |
|
wrnvaluex | Byte | 0 | R | - | 0÷100 | - | Identification code of the cause of the warning X axis Indicates the cause of the warning in the system. |
ATTENTION: The last letter of the name of the variable takes the value of the axis name.
1.3.2 Y axis parameters
See section X axis parameters
1.3.3 Z axis parameters
See section X axis parameters
1.4 States table
Name | Default value | Description |
---|---|---|
st_init | 0 | Initialization state Reporting of device initialized: 0: device is not initialized, 1: device initialized |
st_ipolar | 0 | Interpolation in progress status Interpolation in progress: 0: interpolation not in progress, 1: interpolation in progress |
st_rvel | 0 | State of speed reduction in interpolation When this flag is 1, indicates that there has been a reduction in speed of interpolation to retract the axis speed within the limits set by the mxrlvelASSE parameters. The state remains active at least for 200 msec. |
st_undsp | 0 | Segment in interpolation executed without reach the target speed When this flag is to 1, indicates that the segment was executed without reaching the set speed. |
st_error | 0 | There is an error Indicates the error state of the device, to recognize the type of error you must refer to errcode and errvalue variables: 0: error not present, 1: error present |
st_warning | 0 | There is a warning Indicates the warning state of the device, to recognize the type of warning you must refer to wrncode and wrnalue variables: 0: warning not present, 1: warning present |
st_out0X | 0 | Output OUT0X state Indicates the output status OUT0X (where X=1÷4): 0: disabled output, 1: activated output. |
1.4.1 X axis states
Name | Default value | Description |
---|---|---|
st_emrgx | 0 | Emergency X axis state Reporting of X axis in emergency: 0: X axis not in emergency, 1: X axis in emergency |
st_tollx | 0 | Tolerance X axis state Reporting of X axis in tolerance than the placement quota set. Signaling axis in tolerance may be delayed through toldlyx parameter 0: X axis not in tolerance, 1: X axis in tolerance |
st_prsokx | 0 | Outcome of the X axis homing function This state indicates whether the homing function for the X axis has been successfully concluded. The values are: 0: function not executed or not properly completed, 1: function executed and properly completed. |
st_stillx | 1 | State of X axis movement Reporting of X axis stopped: 0: axis moving, 1: axis stopped |
st_prsonx | 0 | Homing function X axis state Reporting of homing function X axis in progress: 0: function not in progress, 1: function in progress |
st_movdirx | 0 | Direction of X axis movement Indication of the direction of X axis movement: 0: forward, 1: backward Note: When the axis is stopped the status indicates the direction of the last entry executed. |
st_looponx | 0 | Space reaction X axis activation Reporting of X axis in space reaction: 0: axis not in space reaction, 1: axis in space reaction |
st_follerx | 0 | Following error X axis state Reportin of folowing error X axis state. This state when switching from 0 to 1, remains the same for a minimum of 500 ms. 0: axis not in following error, 1: axis in following error |
st_regoffx | 0 | Disabling update of X axis analog output State reporting if the upgrade of analog output is disabled 0: the calibration is enabled, 1: the calibration is disable. |
st_calx | 0 | Calibration status Reporting of device in the X axis calibration (the output voltage can be adjusted): 0: voltage generator disable, 1: voltage generator enable |
st_cntlockx | Retentive | Update X axis status position disabled Update reporting position X axis blocked: 0: update position enabled, 1: update position disabled |
st_cntrevx | Retentive | Flip X axis position update state Invert X axis location update report: 0: update position not reversed, 1: update position inverted |
st_accx | 0 | X axis acceleration state Reporting of X axis acceleration phase: 0: axis not in acceleration, 1: axis in acceleration |
st_decx | 0 | X axis deceleration state\\Reporting of X axis when slowing down: 0: axis does not decelerating, 1: axis decelerating |
st_vconstx | 0 | State of X axis constant speed Reports that the speed profile generator is performing a constant speed movement: 0: axis not in constant speed, 1: axis in constant speed |
st_intx | 0 | Activation of a digital input for X axis stopping Indicates the status of the digital input for interruption: 0: digital input for stopping off, 1: digital input for stopping on |
st_errorx | 0 | There is an X axis error Indicates the error status of the device, to recognize the type of error you must refer to errcodex to errvaluex variables: 0: error not present, 1: error present |
st_warningx | 0 | There is of a X axis warning Indicates the warning state of the device, to recognize the type of warning you must refer to wrncodex and wrnaluex variables: 0: warning not present, 1: warning present |
ATTENTION: The last letter of the name of the variable takes the value of the axis name.
1.4.2 Y axis states
See section X axis states
1.4.3 Z axis state
See section X axis states
1.5 Commands table
Name | Conditions | Description |
---|---|---|
INIT | st_init=0 | Device initialization Device initialization command. If the device is not initialized does not execute the calculations related to the axis and then sits is idle. Activates the st_init state. |
RSERR | - | Reset the error state Reset the st_error state. |
RSWRN | - | Reset the thw warning state Reset the st_warning state. |
READSTEP | - | Read the steps Allows the steps reading numstep starting from the selected step in stepin. Note: Memory steps is not retentive | | WRITESTEP | - | Write the steps Allows the steps writing numstep starting from the selected step in stepin. Note: Memory steps is not retentive |
STARTI | st_init = 1, st_ipolar = 0 | Start command of single interpolation Linearly interpolates quotas described in setposx, setposy and setposz depending on the number of axes that are enabled. Interpolation speed is setveli. |
STARTPRG | st_init = 1, st_ipolar = 0, 0⇐stepbeg<30000, 0<stepend<30000 | Start command of interpolations program Start positioning coordinates set by interpolation from step stepbeg (including) up to stepend (including). The speed interpolation is setveli. |
STOPI | st_init = 1, st_ipolar = 0 | Interruption interpolation Stops any ongoing interpolation position in progress. The stopped of the axis are made by deceleration ramp and axes remain in reaction to space. |
1.5.1 X axis commands
Name | Conditions | Description |
---|---|---|
EMRGX | st_init=1 | Emergency command Put in emergency the X axis interrupting, without the deceleration ramp, any ongoing positioning. It also disabled the reaction of axis space. As a result st_emrgx is set to 1, in this state it will not be possible to move the axis. |
RESUMEX | st_init=1, st_emrgx=1 | Recovery from X axis emergency condition Recovery from X axis emergency condition, space reaction is reenabled if disabled. The acquisition of the STARTX command, the axis resumes the placement. |
STARTX | st_init=1, st_regoffx=0, st_emrgx=0, st_stillx=1, st_ipolar=0, st_calx=0, st_prsonx=0 | Beginning of the X axis positioning Controls the position of the X axis to the quota setposx and speed setvelx, the placement will run following to the acceleration and deceleration ramps that were set using taccdecx parameter or through the taccx and tdecx parameters (in the case of differentiated ramps). The type of used ramp (trapezoid or epicycloid) is choosing throught the ramptypex psrameter. |
STOPX | st_init=1, st_regoffx=0, st_emrgx=0, st_stillx=0, st_ipolar=0 | Interruption of the X axis positioning Stops any ongoing X axis positioning. The axis stop take place following the programmed deceleration ramp tdecx. The axis remains in reaction to space. |
LOOPONX | st_init=1 | Enabling of the X axis space reaction Enables the X axis reaction space: accordingly st_looponx is set to 1 and the axis is moved using all the functions of the PID controller. The analog output sharpen every external action that attempts to move the axis from the reached position (drift, user, …). This action resets any following error (follerrx). |
LOOPOFFX | st_init=1 | Disabling the X axis space reaction Disables the X axis reaction space. The st_looponx state is set to 0: in this state the axis accept anyeay the axis movement commands. A placement executed without the raction loop is comparable to a positioning run without proportional gain (is not guaranteed to arrive in position). |
CNTLOCKX | st_init=1 | Disabling the X axis actual position update Disables the updating of the current position. In this situation the possible displacement of the axis is not detected. |
CNTUNLOCKX | st_init=1 | Enabling the X axis actual position update Enable current location updating. |
CNTREVX | st_init=1 | Reversal the X axis position update Reverses the sign of the update location. |
CNTDIRX | st_init=1 | Updating the X axis position not iverted Turn a possible reversal of position update; the st_cntrev state is set to 0. |
PRESETX | st_init=1, st_regoffx=0, st_emrgx=0, st_calx=0, st_ipolar=0 | Start X axis homing function X axis homing function start with the manner set. If the process is already running, the command execute the reverse search. activates the st_prsonx state and disable the st_prsokx state. |
CALONX | st_init=1, st_ipolar=0, st_prsonx=0, st_stillx=1 | Enable X axis calibration state The X axis analog outputis used as an analog voltage generator; in this case you cannot use it to execute a placement. The output value is settable with voutx parameter. |
CALOFFX | st_init=1, st_ipolar=0, st_prsonx=0, st_stillx=1, st_calx=1 | Disable the X axis calibration state The X axis analog output is not use as voltage generator, so it can be used for managing placements. |
MANFWX | st_init=1, st_regoffx=0, st_prsonx=0, st_stillx=1, st_calx=0, st_emrgx=0, st_ipolar=0, st_ovrmxpx=0 | Manual command of X axis forward movement (jog) Controls the manual forward positioning (towards maxposx) at the X axis set speed. If the current position exceeds maxposx, the axis will not move. |
MANBW | st_init=1, st_regoffx=0, st_prsonx=0, st_stillx=1, st_calx=0, st_emrgx=0, st_ipolar=0, st_undmnpx=0 | Manual command of X axis backward movement (jog) Controls the manual backward positioning (towards minposx) at the X axis set speed. If the current position is less minpoxs, the axis will not move. |
REGOFFX | st_init=1, st_stillx=1 | Disabling the X axis device intervention Disable X axis adjustment and updating of the analog output, and all movement commands. |
REGONX | st_init=1, st_regoffx=1 | Enabling the X axis device intervention X axis adjustment and updating of the analog output, and all movement commands. |
DELCNTX | st_initx=1, st_calx=0, st_prsonx=0 | Positx editing command a value equal to deltax The current position (positx) is modified by algebraically adding the value specified in the deltax variable. This command can be given, except in the case that, with the moving axis, the command would reverse the direction. NIn the case of using epicycolidal deceleration ramps you cannot give the command if st_decx=1. |
RSERRX | st_errorx=1 | Reset X axis error state Reset the st_errorx state. |
RSWRNX | st_warningx=1 | Reset the X axis warning state Reset the st_warningx state. |
RSPRSOKX | st_init=1, st_prsonx=0 | Reset the X axis homing OK state Reset the st_prsokx state. |
ATTENTION: The last letter of the name of the variable takes the value of the axis name.
1.5.2 Y axis commands
See section X axis commands.
1.5.3 Z axis commands
See section X axis commands.