en:software:devices:oopos3

This translation is older than the original page and might be outdated. See what has changed.

DEVICE OOPOS3

1. Introduction

The OOPOS3 device can control the location of an axis moved basically from digital controls of forward, backward and slow; the location of the axis is acquired via a bi-directional transducer.
The movement commands can be sent directly to the motor in AC via contactors, or be sent to an inverter.
The OOPOS3 device includes all functions necessary for the implementation of ON/OFF placements, in addition to special functions such as automatic recalculation of inertia, the mechanical backlash recovery management, managing the slowdown is proportional to the speed and a complete search of presets to synchronize the actual position of the axis with the internal value of the device.

In the configuration file (.CNF), the BUS section must be declared so that you have the hardware resources required for the implementation of the OOPOS3 device.
There must be at least a bi-directional meter. The device can also use an interrupt input and a line for preset search functions.
In the INTDEVICE section of the .CNF file must be add the following definition:

:info:It is necessary that each definition are present on the same line. In case you do not want to assign a resource, for example OutFre, You must always enter in the appropriate field the string X.X.
;---------------------------------
; Internal device declaration
;---------------------------------
INTDEVICE
<device name> OOPOS3 TCamp IQCTL ILine IAZero OutAva OutInd OutDir OutMov OutRal OutFre

where:

<device name>The name assigned to the device.
OOPOS3Keyword that identifies the on/off positioner device.
TCampSampling time device (1÷255 ms).
IQCTLBidirectional incremental counter address.
ILineInterrupt line dedicated to the zero pulse.
IAZeroInput to enable the capture of zero-pulse.
OutAvaAddress of output used as forward output.
OutIndAddress of output used as backward output.
OutDirAddress of output used as direction output.
OutMovAddress of output used as motion output.
OutRalAddress of output used as slowdown output.
OutFreAddress of output used as brake output.

1.1.1.1 Example

;--------------------------------
; Internal device declaration
;--------------------------------
INTDEVICE
Axis OOPOS3 0004 2.CNT01 1 2.IN01 2.OUT01 2.OUT02 X.X X.X 2.OUT3 X.X

The digital outputs for managing the placement are enable/disable depending on the position of the axis (counter), appropriately controlled by the device depending on the parameterization.
The ON/OFF positioning can executed in both directions (forward/backward) with the possibility of retrieving games, for deletion of any mechanical backlash.

1.2.1.1 Retrieving backlash

The accuracy with which was built the mechanics is critical to the outcome of the placements. It is impossible to find, on the placements, the precision of the motion of bodies if the moving parts have loose backlash of the tenth. Also on placements of vertical axes very heavy (for example a press or vertical cutter), the inertia of movement upwards is less than the inertia of movement down.
In these and other situations implementation of recovery backlash in positioning significantly improves accuracy.

:info:The positioning is always concluded in the same direction. For example, whereas placements with recovery forward backlash (see Picture 1), for both forward and reverse positioning, the movement of the axle ends always moving from left to right (forward).
Picture 1: positioning diagram with recovery backlash.

In the Picture 2 Describes the various stages of a ON/OFF placement forward without the implementation of recovery backlash.
The excitement of moving outputs (in this casa the forward output) moving the axis; increasing the count acquired and the appropriate device parameters involve the activation of several resignations to motion management, up to the end of placement and the activation of tolerance output (positioning report concluded correctly).

Picture 2: forward positioning without the recovery backlash.

1.2.2.1 Initial conditions

  • The axis is stopped (st_still = 1).
  • The count is reset to zero (posit = 0).
  • All outputs are disable (with the exception of brake output).
  • You have set both the share placement (setpos) that the slowdown quota (slowpos).

1.2.2.2 Phase 1

  • The OOPOS3 device receives the command of START positioning.
  • Brake output disabled (st_brake = 0).
  • The advance brake output timer is set to the value defined in the tbrake parameter.

1.2.2.3 Phase 2

  • Terminates the advance brake output timer.
  • It's enabled the forward output (st_movfwd = 1).
  • The axis begins the movement (vel) and the counter (posit) increases.
  • After an acceleration ramp (defined from mechanical inertia or in any acceleration values set in the inverter), axis speed is constant.

1.2.2.4 Phase 3

  • Positioning reaches the deceleration range (setpos - slowpos).
  • The forward output is disable (st_movfwd = 0).
  • The slowdown timer is set to the value defined by the parameter slowdly.
  • When the timer of slowdown is half the value set, activates the slowdown output (st_movslow = 1): This is to avoid problems with special switches-mechanical devices.

1.2.2.5 Phase 4

  • Ends the slowdown timer.
  • Is enabled the forward output (st_movfwd = 1).
  • The axis moving with slow speed.

1.2.2.6 Phase 5

  • The brake output is enable (st_brake = 1).
  • The placement reached the inertial range (setpos - iner[ninert]).
  • The forward (st_movfwd = 0) and slowdown (st_movslow = 0) outputs are disabled.
  • The delay timer tolerance is set to the toldly value and start counting.
  • The axis keeps moving because of its inertia (variable according to its weight, speed, friction).

1.2.2.7 Phase 6

  • The axis stops.
  • It is important that the axle ends the movement before the end of the timer to delay tolerance.

1.2.2.8 Phase 7

  • Terminates the delay tolerance timer.
  • If enabled, runs the recalculation of inertia.
  • If the placement ends in tolerance, is enable the out of tolerance (st_toll =1).

In the Picture 3 describes the various stages of a ON/OFF forward placement with the implementation of recovery backlash in backward direction.
The activation of (forward / backward) outputs moving the axis; the increasing of the count acquired and the appropriate device parameters involve the activation of other outputs to the motion management, up to the end of placement and activation of the output of tolerance (positioning report concluded correctly).

Picture 3: forward positioning with backward recovery backlash.

1.2.3.1 Premise

For complete understanding of this description you should have read the previous paragraph (FORWARD POSITIONING WITHOUT RECOVERY BACKLASH).

1.2.3.2 Initial conditions

  • The axis moves at the speed of positioning.
  • Count greater than zero.
  • All disable outputs except the forward output.

1.2.3.3 Phase 1

  • The count reaches the deceleration range for recovery overquota backlash (setpos + overpos - slowpos).
  • The forward output is disabled (st_movfwd = 0).
  • The slowdown is set to the value of the slowdly parameter.

1.2.3.4 Phase 2

  • Terminates the timer advance unlock brake.
  • It's enabled the forward output (st_movfwd = 1).

1.2.3.5 Phase 3

  • Terminates the slowdown timer.
  • It's enabled the forward output (st_movfwd = 1).
  • The axis moves at low speed.

1.2.3.6 Phase 4

  • Positioning reaches the inertial range (setpos + overpos + iner[ninert]).
  • The forward (st_movfwd = 0) and slodown (st_movslow = 0) outputs is disabled.
  • The reverse timer is set to the value of tinv.

1.2.3.7 Phase 5

  • Terminates the reverse timer.
  • The placement resumes in the backward direction.

1.2.3.8 Phases 6÷8

  • Normal positioning phases as described above.

The OOPOS3 device needs some necessary hardware resources, as a bidirectional counter input (CNTxx) and the digital outputs.

The following procedure is used to test the counter input.

  • Initialize the device axis with the INIT command.
INIT Axis
  • Checking the st_init state activation.
WAIT Axis:st_init
  • Enter the resolution of the transducer to 1.
Axis:measure = 1000
Axis:pulse = 4000
  • Reset the value of posit parameter.
Axis:posit = 0
  • Move forward one complete revolution axis turning the encoder: verify that the value of the variable Axis:posit It is good and matches the number of pulses/Rev encoder.
  • If the value of Axis:posit is negative, swap the phases of the encoder or give a CNTREV.
  • If the value of Axis:posit remains to zero, check the electrical connections or the st_cntlock flag.
:info:Before moving the axis, check the proper operation of emergency equipment and protection.

The following procedure is used to verify the operation of the digital outputs of forward, backward and slowdown moving the axis with the manual commands of the device.
To continue, verify that the Axis device is initialized and with the correct encoder resolution.

  • Set the maximum value the software limits of the device in order to enable its movement. Insert the 999999 value in the maxpos parameter and the -999999 in the minpos parameter.
Axis:maxpos = 999999
Axis:minpos = -999999
  • Give the MANFFW command to active only the forward output.
MANFFW Axis
  • To verify the correct execution of the command, check that the st_still state is to 0 and st_movfwd is to 1:
WAIT NOT Axis:st_still AND Axis:st_movfwd
  • Check that the axis moves forward and that the count showed in Axis:posit it increments, then stop the movement with the STOP command.
STOP Axis
  • If the forward output, for example is correspondent to the 2.OUT01 resource, don't enable, check the electrical connection.
  • Dare il comando MANFBW per eccitare la sola uscita d'Indietro.
MANFBW Axis
  • To verify the correct execution of the command, check that the st_still state is to 0 and st_movbwd is to 1:
WAIT NOT Axis:st_still AND Axis:st_movbwd
  • Check that the axis moves Back and that the count showed in Axis:posit it decreases, then stop the movement with the STOP command.
STOP Axis
  • If the backward output, for example corrispondent at the 2.OUT02 resource, does not turn on, check the electrical connection.
  • Give the MANSFW command to enable the forward and slowdown outputs.
MANSFW Axis
  • To verify the correct execution of the command, check that the st_still state is to 0, st_movfwd is to 1 and st_movslow is to 1:
WAIT NOT Axis:st_still AND Axis:st_movfwd AND Axis:st_movslow
  • Check that the axis moving forward at the lower speed than the previous and the showed counter in Axis:posit it increments, then stop the movement with the STOP command.
STOP Axis
  • If the slowdown output, for example corrispondent at the 2.OUT03 resource, does not turn on, check the electrical connection.

The OOPOS3 device acquires the position of via bidirectional transmitter signals; these signals are used by an internal counter. In general, this counter does not express, directly the position of the axis in the unit of measure required by the application. The device does not have within it the cntratio parameter, but let the installer can work with unfinished encoder resolutions by setting the data as space covered in a round encoder (measure) and number of pulses/Rev encoder (pulse). The relationship between measure and pulse is the encoder resolution and must have values between 1 and 0.000935.

1.2.7.1 Definitions:

1) The measure parameter is inserted in units without decimal points (for example 100.0 mm are inserted 1000 tenths of a millimeter). 2) The pulse parameter is inserted in bits encoder x 4 (for example if used an encoder with 1024 pulses/Rev, is inserted 4096, If the measure parameter is calculated on an encoder turn).

1.2.7.2 Example:

You have to control a rotating table that have the accuracy of 0,1° with an encoder with 1024 pulses/Rev mounted directly; you will set the following values:
Axis:measure = 3600
Axis:pulse = 4096
Axis:decpt = 1

For execute the positioning to 14.6 degrees you need to enter:
Axis:setpos = 146

To run properly the OOPOS3 device, it's must enter a few basic parameters.

  • Determining software limits to be introduced in the parameters maxpos e minpos.
Axis:minpos = xxx (xxx = minimum axis value expressed in Um).
Axis:maxpos = yyy (yyy = maximum axis value expressed in Um).
  • If using a two speed system, set the required space to the axis to switch from high speed to slow speed at the enabled of slowdown output; insert the data in the slowpos parameter.
Axis:slowpos = zzz (zzz = slow axis value expressed in Um).
  • Set the motion output disable time when the axis enters in the deceleration range so the slowing output activation does not cause electrical failure; insert the data in the slowdly parameter.
Axis:slowdly = ttt (ttt = deceleration time expressed in s/100).
  • Set the tolerance limits to be obtained when placing in the tollp and tolln parameters. As a first approach, introducing the higher values at precisions requests.
Axis:tollp = tpx (tpx = positive tolerance value expressed in Um/10).
Axis:tolln = tnx (tpn = negative tolerance value expressed in Um/10).
  • Set the reverse time axis in tinv parameter.
Axis:tinv = inversion time expressed in s/100
  • Consider a single inertia range for all axis; set the ninert parameter to “1”.
Axis:ninert = 1
  • Enable recalculation of inertia when the placement ends out of tolerance; set the inertmode parameter to “1”.
Axis:inertmode = 1
  • Set the time delay tolerance, considering the time it takes for the axis to decelerate to a stop; set the toldly parameter.
Axis:toldly = tdly (tdly = activation time delay tolerance expressed in ms).

1.2.9.1 Introduction

In the ON/OFF placements the space of slowdown should be long enough to bring the axis at the slow speed (of end placement), which enter the inertial range and conclude your placement in tolerance. It is essential that the speed at the time of entry in the inertial range is always equal, so that inertia is repetitive and continuous recalculations are avoided that would cause an inaccuracy in positioning.

Slowdown quota is too long: This allows the axis to end positioning by moving the slow speed, but is maintained for too much space, extending considerably the time of positioning.

Slowdown quota is too short: the axis approaches at the quota with a speed too high to allow the mechanical rapid stop; the succession of the system compromises the placement, stopping the axle out of the tolerance range set.

In some cases the OOPOS3 device must manage the axis where positioning speed is variable. For this reason the OOPOS3 device has a system of automatic calculation of the slowdown quotaq, so the speed of end placement and the inertia value are repetitive, regardless of the speed of the axis.
The OOPOS3 device has two methods (selected by the slowtype parameter), to calculate the slowdown:

  • With slowtype = 1, the slowdown is calculated proportionately to the positioning speed.
  • With slowtype = 2, the slowdown is calculated according to the square of the positioning speed.

1.2.9.2 Setting of the speed variable

To calculate the slowdown value you need setting to acquire the axis speed.
The unit of speed is in function of the following variables:

  • unitvel
  • decpt

1.2.9.3 Unitvel parameter

Defines if the speed values are expressed in Um at the minute (unitvel = 0) or in Um at the second (unitvel = 1).

1.2.9.4 Decpt parameter

Whether to set 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:

  • with decpt = 0 in mm/s
  • with decpt = 1 in cm/s
  • with decpt = 2 in dm/s
  • with decpt = 3 in m/s

1.2.9.5 Maximum speed calculating

Theoretical method
You have to apply the formula:
Speed = Frequency * ….
Pratical method
It's based on the speed reading detected by the device in the vel parameter giving the drive a known voltage. If driving permits, provide the maximum working voltage axis and then read the value in the vel parameter; if you provided a lower voltage, the maximum speed will be proportional to the voltage supplied.

Enter the value of the maximum speed detected in maxvel parameter.

1.2.9.6 Proportional to the speed slowdown

The device calculates the slowdown based on the formula:
Slowdown = (Maximum slowdown x Speed)/Maximum speed

:info:The calculation of the slowdown, as evidenced by the chart, one of the two maxslow or minslow limits cannot exceed.

Where:
Maximum slowdown = corresponds to the maxslow variable.
Minimum slowdown = corresponds to the minslow variable.
Calculated slowdown = corresponds to the exeslow variable.
Maximum speed = corresponds to the maxvel variable.
Instantaneous speed = corresponds to the vel variable.

1.2.9.7 Proportional slowdown to the square of the speed

The device auto-calculates the slowdown based on the formula:
Slowdown = (Maximum slowdown x Speed2)/Maximum speed

Where:
Maximum slowdown = corresponds to the maxslow variable.
Minimum slowdown = corresponds to the minslow variable.
Calculated slowdown = corresponds to the exeslow variable.
Maximim speed = corresponds to the maxvel variable.
Instantaneous speed = corresponds to the vel variable.

The values of inertia can be introduced directly by the operator or automatically calculated from the device; the mode is chosen with setting the inertmode parameter.
The device manage the subdivision of the axis path (between the minpos and maxpos) in more same bands; the number of bands is defined by the ninert parameter. This way you can have inertia as a function of the band within which concludes the positioning.

By setting the dobiner = 0 parameter, the device manage a unique inertia value independently of direction of movement (forward or backward).
By setting the dobiner = 1 parameter, the device manage two inertia values for each band, one for the forward direction and another for the backward direction. This mode is applicable, for example, when you move the vertical axis.
For storing inertia, are used the iner01÷ iner08 parameters (in the event that dobiner = 0) or the iner01÷ iner16 parameters (if dobiner = 1):

dobiner = 0 dobiner = 1
iner01 Inertia 1 band Forward intertia 1 band
iner02 Inertia 2 band Backward intertia 1 band
iner03 Inertia 3 band Forward intertia 2 band
iner04 Inertia 4 band Backward intertia 2 band
iner05 Inertia 5 band Forward intertia 3 band
iner06 Inertia 6 band Backward intertia 3 band
iner07 Inertia 7 band Forward intertia 4 band
iner08 Inertia 8 band Backward intertia 4 band
iner09 n.u. Forward intertia 5 band
iner10 n.u. Backward intertia 5 band
iner11 n.u. Forward intertia 6 band
iner12 n.u. Backward intertia 6 band
iner13 n.u. Forward intertia 7 band
iner14 n.u. Backward intertia 7 band
iner15 n.u. Forward intertia 8 band
iner16 n.u. Backward intertia 8 band

By definition, the forward inertia is used only forward in movements (forward output enabled) while, the backward inertia, is used only for backward movements (backward output enabled).

The calculation of inertias about the various bands can be done automatically by the device; at the end of each placement, the device quantify the value of inertia for use in subsequent placements that will end in the same band.
You can define a set of customizations related to automatic recalculation of inertia.

1.2.11.1 Inertmode

With the setting of this parameter is used to define when the device execute the recalculating of inertia; there are two methods:

  • The recalculation is executed only if the placement ends outside the tolerance range.
  • The recalculation is executed at the end of each placement, although it ended in or out of the tolerance range.

1.2.11.2 Toldly

Automatic recalculation of inertia is executed by OOPOS3 device when ended the activation delay tolerance (toldly), at the end of which the axis is considered definitely in stop.

1.2.11.3 Maxiner

If the value of the inertia recalculated diverges beyond a certain value from inertia in use, you can have an alert (st_erin = 1 state); this alert may in any case be disabled.

The preset searchb is a procedure to synchronize the value of the posit parameter with the actual position of the axis. Consists to load a value in the counter (previously stored) at the time of acquisition of transducer zero pulse; you can execute the preset search with a transducer without the zero pulse, but you need an input (cam or sensor) by 'enabling zero-pulse transducer'.

Formerly to the preset search the counter acquired can have any value and the axis can be located anywhere. For execute the upload of preset quota, the axis you must direct to the “enabling zero-pulse transducer” input.
The initial direction of motion is defined by prsdir parameter:
prsdir = 0 the axis will start getting forward.
prsdir = 1 the axis will start getting backward.

:info:During the preset search the software the maxpos and minpos limits are disabled.

The preset search start is given from the PRESET command.
If during the preset search is given again the PRESET command, the direction of motion of the axis is reversed, preserving the operation of the preset search direction.
It should be noted that the presets quota (prspos) must always be between the minimum and maximum quotas and after the load of the preset quota, the axis is automatically positioned to the preset quota.

1.2.12.1 Mode 0: loading presets with moving procedure

:info:The zero pulse enable input has a hardware filter which delays the acquisition and so influence the precision of the loading.
:info:Axis speed should be low enough to allow the acquisition of the input.

The axis towards to the sensor connected to the enable input zero pulse with a normal placement speed. The st_prson state reports that the preset procedure is in progress. When, during the path, the axis bump into the enabling zero-pulse transducer input, reverses the direction and takes slow speed.
To the disabling of enabling zero-pulse transducer input is loaded the preset quota on the counter (posit parameter).
The axis stop, the st_prson state is disabled and the st_prsok state is aenabled to signal the end of search. This State remains active until the starting of a new presets procedure. When the system is power up this state is always to zero (Picture 1).

Picture 1: preset load using the only enabling cam.

1.2.12.2 Mode 1: preset load with moving procedure

The axis towards the sensor connected to input enabling zero-pulse with normal positioning speed. The st_prson state reports that the preset procedure is in progress. When, during the path, the axis mbump into the enabling zero pulse transducer input, reverses the direction and takes the slow speed.
To disable the zero pulse enable input is enabled the reading of the first zero-pulse provided by the transducer and at the time of the acquisition of this signal, is loaded the preset quota in the counter (posit parameter).
The axis stops, the st_prson state is disabled and the st_prsok state is enabled to signal the end of search. This state remains active until the starting of a new procedure of presets. When the system is power up this State is always zero (Picture 2).

Picture 2: loading presets using cam and zero pulse enable transducer.

1.2.12.3 Mode 2: loading with stopped axis

With this procedure the preset search is not enabled. The command to load the preset quota is provided by the activation of the zero pulse enable input and is enabled the st_prsok state.

  • If the input remains active the loading is continuous.
  • If the input is already active to the power on the first load is executed only after its disabled.

The device always shows the absolute position of the axis; to execute the incremental placements it is necessary to have a tool to subtract or add some value to the count (posit) without introducing errors. The change counter can be execute even with a direct writing to the new value in the posit parameter.
Wanting to steal 100 units of measure from the count you can:

Axis:posit = Axis:posit - 100

This operation introduces an error because it imposes the location “posit = -100”, when the axis could have an intermediate position between a unit of measurement and subsequent (example 100.3). This fraction (0.3) is lost and the repetition of these steps results in the accumulation of a considerable error.
The DELCNT command sum to the count an amount equal to the delta parameter without losing the fraction part of the position:

Axis:delta = -100
DELCNT Axis

The DELCNT command can be sent only with stationary axis (st_still=1)

1.2.13.1 Example

The reading of the position of the axis is of 2 units and is located at point A. To sum the count posit three units.
With instructions:

Axis:posit = Axis:posit + 2

the axis takes the new position B.
With instructions:

Axis:delta = 2
DELCNT Axis

It's reached the point C.

:info:The command can be sent only if the axis is stopped, condition of st_still = 1.
:info:The changing of the resolution value (cntratio) or write to the posit variable, causes the reset of the remnants of the conversion.

Note that with the first instructions the axis took a delta less than 3 units and then introduced an error.
If you need to send the succession of DELCNT commands, It is convenient to calculate the quantity to be summed and send at once the command; otherwise beware not to send subsequent commands without a read statement on device parameter.

Example:

Axis:delta = 3
DELCNT Axis
WAIT Axis:st_init
Axis:delta = 40
DELCNT Axis

A writing of the type:

Axis:posit = 1000
Axis:delta = - 100
DELCNT Axis
DELCNT Axis
...

Does not ensure that the posit value is 800, as you would expect from two consecutive subtraction, while it's possible is 900 for the overlap of the two commands. The writing becomes then:

Axis:posit = 1000
Axis:delta = - 100
DELCNT Axis
WAIT Axis:st_init
DELCNT Axis
WAIT Axis:st_init
...

1.2.13.2 REGON and REGOFF commands

With the OOPOS3 device address the movement outputs are for the exclusive use of the device; so they can't be used by other device or by the application.
The REGOFF command allows you to make available these resources, by disabling the update from the OOPOS3 device. This condition, verified by the st_regoff = 1 state, places the device in a pending state that still continues to update the position of the axis (acquired counting).
The REGON command restores normal conditions giving the device updating outputs.
In the applications that do not need to move the multiple axes, use of REGON/REGOFF controls allows you to use the same motion outputs saving hardware resources.

:info:To avoid conflicts and malfunctions, must necessarily be active one device for each group of outputs of movement.

The procedures described here were allowed to complete the steps necessary to device hardware resource definition, electrical verification, of fundamental device parameters setting.
Now you can run simple movement of the axis.

  • Move the axis in a position whereby it can fulfill a certain area without meeting the quota limit.
  • Reset the count (posit = 0 parameter).
  • Set the placement quota (setpos parameter).
Axis:setpos = placement quota (in Um between minpos and maxpos).
  • Start positioning (START command).
START Axis
  • To stop the positioning use the STOP commands.

The introduction of inertia parameters (iner01 ÷ iner16), the tolerances (tolp and toln) and thickness tool (tool), is proposed with an addition digit, so you can introduce the data with an accuracy 10 times greater.
For a good operation of the QPS system, encoder resolution should be less than 40000; if the multiplicative coefficient is between 40001 and 399999 the influence of the last digit will decrease gradually up to cease completely when this coefficient is equal to 400000.
The QPS system is also introduced in the reading of the data described above.

:info:This system allows, If the resolution of the transducer allows it, adjust and check the position of the On/Off type with a resolution 10 times greater than the set.

1.3.1.1 Example

  • If a placement fee equal to 10 mm is normally inserted with the number 10, to introduce the same tolerance value (then with the QPS), you must enter the value 100.
  • A tolerance of 10 mm will be displayed with the number 100.
:info:The examples are based on a system of positioning with millimetre precision.

The error presence in the device is reported by the st_error state.
When st_error is equal to 1, we find in the errcode variable the intervened error type (see table) and in the errvalue variable an indication on the cause of the error.
If the device goes in error, to start work you have to clear the st_error status with RSERR command.

The presence of a warning system camming is signaled by the st_warning state.
Being caused by a minor event and guaranteed in this situation the slave axis management, the slave axis continues the processing.
When st_warning is equal to 1, we find in the wrncode variable the type of warning intervened (see table) and in the wrnvalue variable an indication as to the cause the warning.

CodePriorityDescription
10Command not executed

To reset the st_warning state you must send the RSWRN command.

The parameter name, state or command are is shown on the left side of the table.

R
Indicates if the parameter or state is retentive (upon initialization of the device maintains the previously defined state), or the state assumes upon initialization of the device.
If the device does not need to initialize the “R” field indicates the value that the parameter or state take to the power up of the card.
R = Retentive
0 = Upon initialization of the device the value is forced to zero.
1 = Upon initialization of the device the value is forced to one.
- = Upon initialization of the device is presented significant value.

D
Indicates the size of the parameter.
F = Flag
B = Byte
W = Word
L = Long
S = Single Float

1.4.1.1 Conditions

Describes all the conditions that must exist is considered correct or because the command is accepted.
In some cases, limit values are specified for the acceptance of the parameter: If are introduced any values outside the limits set, the data is however accepted; therefore appropriate controls of the application must be provided to ensure the proper functioning.
To execution of the command, all conditions must be met; otherwise the command is not sent.

A
Indicates the access mode.
R = Read.
W = Write.
RW = Read / Write.

The available commands to manage the device are listed under the priority order descending. The device executes all commands received within the same sampling time starting from the one with the highest priority. For example if the device receives the same sampling time CNTUNLOCK and CNTLOCK commands, first execute the CNTLOCK command and then CNTUNLOCK leaving therefore the counter free to count.

Name Conditions Description
INIT st_init = 0 Initialization
Initializing device command. If the device is not initialized, does not execute the axis calculations and then sits idle. To power on you can download all parameters in DPR; subsequently, with the INIT command the axis will be initialized, executing the calculations only once.
Activates the st_init state.
STOP st_init = 1 Stop
Activates the outputs for controlling the motion axis toward the quota set.
START st_init = 1
st_still = 1
st_regoff = 0
Start
Activates the outputs in order to control the motion axis toward the quota set.
CNTLOCK st_init = 1 Counter lock
Blocks the acquisition of axis count even if the transducer continues to send signals. At this stage the possible displacement of the axis is not detected. Disables loading of presets quota on the count.
Activates the st_cntlock state.
CNTUNLOCK st_init = 1 Counter unlock
Unlock the axis count. Recovered read the signals sent by the transducer and the updating count.
Disable the st_cntlock state.
CNTREV st_init = 1 Counter reverse
Invert the phases of the transducer into the card.
It's reversed the direction of the count (increase/decrease.
Activates the st_cntrev state.
CNTDIR st_init = 1
st_regoff = 1
Counter direct
Counting the axis isn't reversed.
Disable the st_cntrev state.
PRESET st_init = 1
st_regoff = 0
Preset
Start search preset axis. Start search procedure with modes set withprsmode and prsdir parameters. If the preset search is already in execution, the command executes the reverse search.
Activates the st_prson state and disable the st_prsok state
MANSFW st_init = 1
st_regoff = 0
posit < maxpos
Manual slow forward
Manual slow positioning forward.
Activates the forward and slowdown outputs.
MANSBW st_init = 1
st_regoff = 0
posit > minpos
Manual slow backward
Manual slow positioning backward.
Activates the backward and slowdown outputs.
MANFFW st_init = 1
st_regoff = 0
posit < maxpos
Manual forward
Manual positioning forward.
Activates the forward output.
MANFBW st_init = 1
st_regoff = 0
posit > minpos
Manual backward
Manual positioning backward.
Activates the backward output.
REGON st_init = 1 Regulation ON
Enable adjustment and updating of movement outputs, and all the movement commands.
Disable the st_regoff state.
REGOFF st_init = 1 Regulation OFF
Disable adjustment and updating of movement outputs, and all the movement commands. Only the brake output continues to be updated.
Activates the st_regoff state.
DELCNT st_init = 1
st_still = 0
Delta counter
This command is accepted only if the axis is stopped; the counter (axis position) is modify by adding algebraically the value specified in the delta variable.
RSERR - Reset error
Reset the st_error state.
RSWRN - Reset warning
Reset the st_warning state.
RSPRSOK - Reset preset OK
Reset the st_prsok state
Name D R A Conditions Description
measure L R R-W - Measure (1 ÷ 999999)
Indicates the space in unit of measure, cover to get the encoder pulses * 4 set in the pulse parameter. This parameter is used to calculate the resolution with the formula:
Resolution = measure* 4 / pulse
The resolution must have a value between 0.00374 and 4.00000
pulse L R R-W - Pulse encoder (1÷ 999999)
Indicates the multilied pulses 4 provided by the slave encoder to get the space set in the measure parameter.
This parameter is used to calculate the resolution with the formula:
Resolution = measure* 4 / pulse,
The resolution must have a value between 0.00374 and 4.00000
st_camex = 0,
st_prson = 0.
posit L R R-W - Actual position (-999999 ÷ 999999)
Is the value of the instantaneous position of the axis in units defined by the measure and pulse parameters.
Value expressed in unit of measure (Um).
encoder L R R - Encoder
Is the value of the instantaneous position of the axis.
Value expressed in bit encoder * 4.
minpos L R R-W - Minimum position (-999999 ÷ 999999)
Defines the minimum quota reached by the axis; the set value is considered as the lower limit for the introduction of work quotas.
Note that in the case of using recovery backlash forward function (backlashmode = 1 and 3), the minimum stroke of the axis is equal to [minpos - overpos].
Value expressed in unit of measure (Um).
maxpos L R R-W - Maximum position (-999999 ÷ 999999)
Defines the maximum quota reached by the axis; the set value in considered as maximum limit for the introduction of work quotas.
Note that in the case of using recovery backlash backward function (backlashmode = 2 and 4), the maximum stroke of the axis is equal to [maxpos + overpos].
Value expressed in unit of measure (Um).
slowpos W R R-W - Slow position (0 ÷ 9999)
It's the distance from the placement quota which is activates the slowdown output to conclude the positioning at the slow speed.
Value expressed in unit of measure (Um).
tollp W R R-W - Positive tolerance (0 ÷ 9999)
It's the positive tolerance limit allowed positioning (maximum error for excess).
Value expressed in Um/10 (QPS).
tolln W R R-W - Negative tolerance (0 ÷ 9999)
It's the negative tolerance lomit allowed positioning (maximum error by defect).
Value expressed in Um/10 (QPS).
tinv W R R-W - Direction inversion delay (0 ÷ 999)
It's used to avoid mechanical stress caused by too rapid direction changes movement.
Input value is expressed in hundredths of a second.
slowdly W R R-W - Slow delay (0 ÷ 999)
When positioning enters the deceleration range, the output is disabled for a time determined by the slowpos parameter. The output of slowdown is enabled with time slowpos/2 before the movement output.
Value expressed in hundredths of a second (s/100).
tbrake W R R-W - Brake time
Is the amount of time, the start position, between the unlock brake (depending on the reaktype parameter) and the activation of outputs of movement. It is expressed in hundredths of a second (s/100).
Valid range: 0 ÷ 999
overpos W R R-W - Over position (0 ÷ 9999)
Overquota for backlash retrieving and/or minimum delta of positioning. If set to zero is not execute the backlash recovery.
Value exepressed in unit of measure (Um).
bklashmode B R R-W - Backslash mode
Select the backlash recovery type:
0 = positioning without the backlash recovery,
1 = positioning with forward recovery backlash,
2 = positioning with backward recovery backlash,
3 = positioning with forward recovery backlash without slowdown,
4 = positioning with backward recovery backlash without slowdown.
If the parameter is out of limits allowed, uses by default the 0 mode.
ninert B R R-W - Inertia number (1 ÷ 8)
It's the number of groups of inertia in which dividing the axis. If set to zero, it is considered a single band.
maxiner W R R-W - Maximum inertia (0 ÷ 9999)
It's the maximum value change of inertia after each placement.
If the calculated value exceeds this parameter, is reported with st_erin state activation.
If the value is set to zero, the control is disabled
Value expressed in Um/10 (QPS).
toldly W R R-W - Tolerance delay (0 ÷ 9999)
It's defines the activation time delay tolerance (expressed in ms) at the end of which the axis is considered definitely still.
inertmode B R R-W - Inertia mode selection
Indicates the type of inertia recalculation executed by the device at the end of the placement:
0 = recalculating inertias disabled,
1 = recalculating inertia only execute if the placement ends out of tolerance,
2 = recalculation inertia executed at each positioning.
tool L R R-W - Tool thickness (-999999 ÷ 999999)
Is the thickness value tool. This value, expressed in Um/10 (QPS), is added to the quota of positioning setpos when commanded START. The final quota of the axis will be then given by: setpos + tool.
setpos L R R-W - Setted position (-999999 ÷ 999999)
It's the set placement quota. It's running from the START command. If it is changed during the placement, the axis is positioned in each case to the previous installment. Value expressed in units of measurement (Um).
iner01 ÷ iner16 W R R-W - Inertia 01 ÷ 16 value
Are the 16 memories of inertia values. If the dobiner parameter is to 0, device only uses the first eight (iner01 ÷ iner08).
Value expressed in Um/10 (QPS).
dobiner B R R-W - Double inertia
With this parameter you can choose to recalculate a unique inertia for each band that has divided the axis or get two for every band: one for each direction of arrival of the axis.
0 = Memory band inertia equal for two directions,
1 = Memory band inertia separately for each direction.
enstol B R R-W - Enable start in tolerance
Enable start with axis in tolerance:
0 = START in tolerance disabled. At the START command, if the placement quota is out of tolerance, it execute the movement and the st_sttoll status is set to 0, otherwise the st_sttoll state is set to 1 and the axis stays still.“
1 = START in tolerance enabled. At the START command the axis execute a repositioning to the quota and the st_sttoll status is disabled.
prsmode B R R-W - Preset mode
Defines the type of preset search:
0 = For research enabling zero-pulse, the axis start movement, bump the cam by enabling, reverses the direction and with slow speed, on the falling edge on the cam signal, load the preset quota,
1 = For research enabling zero-pulse, the axis start movement, bump the cam by enabling, reverses the direction and with slow speed acquires the first zero-pulse (after disabling the cam signal),
2 = Preset search procedure is not enabled with axis moving. The count is updated to the presets quota to the activation of the enabling zero-pulse.
prspos L R R-W - Preset position (minpos ÷ maxpos)
Defines the value that is loaded on the counting with the preset search procedure. Value expressed in unit of measurement (Um).
prsdir B R R-W - Preset search direction
Defines the direction of axis movement of the cam research zero pulse enable.
0 = The axis is looking forward, first in fastly, then slowly.
1 = The axis is looking back, first in fastly, then slowly.
2 = The axis is looking forward always slow.
3 = The axis is looking backward always in slow.
actiner B R R - Actual inertia (0 ÷ 7)
Indicates the inertia range in use.
delta L R R-W - Delta counter (-999999 ÷ 999999)
Use variable as an operand from the DELCNT command.
Value expressed in units of measurement (Um).
decpt B R R-W - Decimal point (0 ÷ 3)
Defines the accuracy with which you wish to set presets and view the counts in relation to axis.
unitvel B R R-W - Velocity unit
Defines if time unit of speed is expressed in minutes or seconds.
0 = Um/min,
1 = Um/sec.
frq L - R - Actual frequency
It's the value of the instantaneous frequency of the axis, considering one phase of the encoder.
Value expressed in Hz.
vel L - R - Actual velocity
It's the value of the instantaneous speed of the axis. The value is expressed in Um/s or Um/min dependind to unitvel and decpt parameters.
breaktype B R R-W - Brake type
It's the type of brake intervention logic output.
0 = The output is activated for braking,
1 = The output, normally active, is disabled for braking.
The st_brake state follows the switching state of the output.
slowtype B R R-W - Slow type (0 ÷ 999999)
It's the calculation type of slowdown
0 = fixed with slowpos parameter,
1 = proportional to detected speed,
2 = proportional to the square of detected speed.
maxvel L R R-W - Maximum velocity
Defines the maximum axis speed. The input value is per unit of time of the set speed unitvel.
This parameter is used if slowtype ? 0.
maxslow W R R-W - Maximum slowdown (0 ÷ 9999)
It's the value of deceleration calculated at the maximum speed of the axis defined by the maxvel parameter. This parameter is used if slowtype ? 0.
Value expressed in unit of measurement (Um).
minslow W R R-W - Minimum slowdown (0 ÷ 9999)
It's the minimum value of slowdown which can be calculated. This parameter is used if slowtype ? 0. Value expressed in unit of measurement (Um).
exeslow W - R - Execution slowdown
If the parameter slowtype ? 0, indicates the value of deceleration calculated from the device depending on the speed of the axis. Value expressed in unit of measurement (Um).
errcode B 0 R - Error code (0 ÷ 100)
Indicates the type of error in the system. The code is valid only if st_error = 1 (See dedicated section).
errvalue B 0 R - Error value (0 ÷ 100)
Indicates the cause of the error in the system.
The code is valid only if st_error = 1 (See dedicated section).
wrncode B 0 R - Warning code (0 ÷ 100)
Indicates the type of warning in the system.
The code is valid only if st_warning = 1 (See dedicated section).
wrnvalue B 0 R - Warning value (0 ÷ 100)
Indicates the cause of the warning in the system. The code is valid only if st_warning = 1 (See dedicated section).
st_init F - R - Initialization
Reporting of initialized device.
0 = Device is not initialized,
1 = Device initialized.
st_cntlock F R R - Counter locked
Counting signaling axis stuck.
0 = Axis count unlocked,
1 = Axis count locked.
st_cntrev F R R - Counter reversed
Inverted axis count report
0 = Axis count not inverted,
1 = Axis count inverted.
st_movfwd F - R - Forward movement
Report activation of forward movement output.
0 = Forward output disable,
1 = Forward output enable.
st_movbwd F - R - Backward movement
Report activation of backward movement output.
0 = Backward output disable,
1 = Backward output enable.
st_movslow F - R - Slowdown movement
Report activation of slodown output.
0 = Slowdown output disable,
1 = Slowdown output enable.
st_toll F - R - Tolerance
Reporting of axis in tolerance in relation to the quota put executing from the START command. Signaling axis in tolerance may be delayed through toldly parameter.
0 = Axis not in tolerance,
1 = Axis in tolerance.
st_brake F - R - Brake
Brake output signals (for activation of brakes or shaft locking devices).
0 = Braking output disable,
1 = Braking output enable.
st_movdir F - R - Backward direction
Indication of direction of movement.
0 = Forward,
1 = Backward.
st_still F 1 R - Still
Signalling of still axis.
0 = Axis moving,
1 = Axis still.
st_erin F - R - Inertia ricalculation error
Report an error of inertia recalculation. The indication is enabled if the recalculation of the inertia provides a value greater than maxiner.
0 = Correct recalculation inertia,
1 = Recalculating inertia with values greater than maxiner.
st_sttoll F - R - Start in tolerance
Active reports, if the parameter enstol = 0, he was given a command of movement and the axis was already in tolerance quota of finish line. The state remains unchanged until the next movement command (START, MANSFW, MANFFW, MANSBW, MANFBW).
0 = Start with axis out of tolerance,
1 = Start with axis in tolerance.
st_prsok F - R - Preset ok
Axis preset search reporting was successfully executed.
0 = Search for preset not yet completed or not executed,
1 = Preset search was successfully executed.
st_prson F - R - Preset
Reporting preset search axis in progress.
0 = Preset search not in progress,
1 = Preset search in progress.
st_regoff F 1 R - Regulation off
Reports the status of disable positioning commands and outputs.
0 = Movement aoutput enabled,
1 = Movement aoutput disabled.
st_error F - R - Status of device error
Indicates the error status in the device.
To decode the error you must reference the errcode and errvalue variables.
0 = Error not present,
1 = Error present,
To power on by default is set to zero.
st_warning F - R - Status of device warning
Indicates the warning state in the device. To decode the warning you must reference the wrncode and wrnvalue variables.
0 = Warning not present,
1 = Warning present,
To power on by default is set to zero.
st_int F - R - Status of interrupt line
Indicates the status of the interrupt line
0 = Interrupt input off,
1 = Interrupt input on.
To power on by default is set to zero.

No limitation.

;*************************************************************************************
; Module Name: Ex_Oopos3.CNF                Project: Ex_OOPOS3
; Autor: QEM srl                            Data: 01/05/99
; System: QMove1 / QCL3                     Library: 1LIB4001
; Functionality: OOPOS3 Management example  Release: 0
;-------------------------------------- Note -----------------------------------------
; [1] - Sample application to use OOPOS 3 device
;*************************************************************************************
;-------------------------------------------------------------------------------------
; Constants definition
;-------------------------------------------------------------------------------------
CONST
;-------------------------------------------------------------------------------------
; SYSTEM variables definition
;-------------------------------------------------------------------------------------
SYSTEM
slQuotaPos L                         ;Variable for placement quota
;-------------------------------------------------------------------------------------
; GLOBAL variables definition
;-------------------------------------------------------------------------------------
GLOBAL
gfMovMan F                           ;Flag signaling ongoing manual
                                     ;movements
gfMovAuto F                          ;Flag signaling ongoing automatic
                                     ;movements
;-------------------------------------------------------------------------------------
; TIMER variables definition
;-------------------------------------------------------------------------------------
TIMER
;-------------------------------------------------------------------------------------
; DATAGROUP definition
;-------------------------------------------------------------------------------------
;DATAGROUP
 
;-------------------------------------------------------------------------------------
; Bus configuration
;-------------------------------------------------------------------------------------
BUS
1 1CPUD 02
2 1MIXA 00
3 .
4 .
;-------------------------------------------------------------------------------------
; INPUT variables definition
;-------------------------------------------------------------------------------------
INPUT
ifAvMan         F       2.INP01                  ;Manual forward input
ifInMan         F       2.INP02                  ;Manual backward input
ifStart         F       2.INP03                  ;START axis input
ifStop          F       2.INP04                  ;STOP axis input
;-------------------------------------------------------------------------------------
; OUTPUT variables definition
;-------------------------------------------------------------------------------------
OUTPUT
ofToll          F       2.OUT04                  ;Axis tolerance output
;-------------------------------------------------------------------------------------
; Internal device declaration
;-------------------------------------------------------------------------------------
INTDEVICE
;Name  Type    TCamp  Couter     Inter  AbilZero  OutAva   OutInd   OutDir  OutMov
Axis   OOPOS3  0004   2.CNT01    1      2.INP01   2.OUT01  2.OUT    02      X.X   X.X
 
OutRal  OutFre
2.OUT03 X.X
END
;-------------------------------------------------------------------------------------
; File Name: TASK_00.MOD
; Project: EX_OOPOS3
; Description: Positioning Control
;-------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------
; Initialization axis operations
;-------------------------------------------------------------------------------------
Axis:measure = 10000                      ;Space 1 turn encoder(Um)
Axis:pulse = 4000                         ;pulses/Rev encoder
Axis:maxpos = 999999                      ;Maximum quota
Axis:minpos = -999999                     ;Minimum quota
Axis:slowpos = 100                        ;Slowdown quota
Axis:tollp = 10                           ;Positive tolerance
Axis:tolln = 50                           ;Negative tolerance
Axis:tinv = 50                            ;Inversion time
Axis:slowdly = 50                         ;Slowdown time
Axis:tbrake = 30                          ;Brake reaction time
Axis:overpos = 0                          ;Recovery backlash oltrequota
Axis:bklashmode = 0                       ;Recovery backlash type
Axis:ninert = 1                           ;Number of inertia bands
Axis:maxiner = 100                        ;Maximum recalculated inertia
Axis:toldly = 50                          ;Time delay tolerance reporting
Axis:inertmode = 1                        ;Recalculation inertia type
Axis:tool = 0                             ;Blade thickness
Axis:dobiner = 0                          ;Enabling split inertia
                                          ;(forward and backward)
Axis:enstol = 0                           ;Enable START with the axis in tolerance
Axis:prsmode = 0                          ;Preset search type
Axis:prspos = 0                           ;Preset quota
Axis:prsdir = 0                           ;Preset search direction
Axis:decpt = 1                            ;Decimal digits
Axis:unitvel = 1                          ;Time unit of speed
Axis:breaktype = 0                        ;Brake intervention logic
Axis:slowtype = 0                         ;Slowdown calculation type
Axis:maxvel = 1000                        ;Maximum speed
Axis:maxslow = 8                          ;Calculated maximum deceleration
Axis:minslow = 80                         ;Calculated minimum deceleration
INIT Axis                                 ;Initializes the device
WAIT Axis:st_init                         ;Wait until the device is initialized
CNTUNLOCK Axis                            ;Unlock count
WAIT NOT Axis:st_cntlock                  ;Wait until the count is unlocked
CNTDIR Axis                               ;Sets the direction of the count
WAIT NOT Axis:st_cntrev                   ;Wait until it sets the direction of
                                          ;count
REGON Axis                                ;Enable the setting
WAIT NOT Axis:st_regoff                   ;Wait for enabling regulation
IF (slQuotaPos EQ 0)                      ;In the event that the placement quota
                                          ;of the axis is zero
slQuotaPos = 2000                         ;Sets a quota of positioning
ENDIF
 
;-------------------------------------------------------------------------------------
; Positioning tasks
; --------------------------------- used variables ----------------------------------
; slQuotaPos: Adjustable variable that represents the quota of axis positioning
; ----------------------------------- used flag -------------------------------------
; gfMovMan: manual movement in progress
; gfMovAuto: automatic movement in progress
;-------------------------------------------------------------------------------------
MAIN:
;-------------------------------------------------------------------------------------
; Output management
;-------------------------------------------------------------------------------------
ofToll = Axis:st_toll                     ;Sets the out of tolerance as the
                                          ;tolerance state
;-------------------------------------------------------------------------------------
; Managing automatic movements
;-------------------------------------------------------------------------------------
IF ifStart                                ;Awaiting the START input
 IF NOT gfMovMan                          ;Check that there are no manual
                                          ;movements
   IF Axis:st_still                       ;Check that the axis is still
      Axis:setpos = slQuotaPos            ;Sets the positioning quota
      START Axis                          ;Execute the start of the axis
      gfMovAuto = 1                       ;Automatic movement in progress reports
   ENDIF
 ENDIF
ENDIF
 IF ifStop                                ;Waits for the STOP input
  IF NOT Axis:st_still                    ;Check that the axis isn't in stop
    STOP Axis                             ;Execute the stop of the axis
 ENDIF
ENDIF
 
IF gfMovAuto                              ;Check reporting automatic
                                          ;movement in progress
   IF Asse:st_still                       ;Check that the axis isn't in stop
    gfMovAuto = 0                         ;Reset the status of automatic movement
   ENDIF
ENDIF
 
;-------------------------------------------------------------------------------------
; Management manual movements
;-------------------------------------------------------------------------------------
IF ifAvMan                                ;Awaiting the manual operation input
  IF NOT (gfMovAuto OR gfMovMan)          ;Check that there are no movements
                                          ;automatic or manual
    IF Axis:st_still                      ;Check that the axis is still
      MANFFW Axis                         ;Forward axis in manual
      gfMovMan = 1                        ;Manual movement in progress reports
    ENDIF
  ENDIF
ENDIF
IF ifInMan                                ;Awaiting the entry of manual operation
  IF NOT (gfMovAuto OR gfMovMan)          ;Check that there are no movements
                                          ;automatic or manual
    IF Axis:st_still                      ;Check that the axis is still
      MANFBW Axis                         ;Forward axis in manual
      gfMovMan = 1                        ;Manual movement in progress reports
    ENDIF
  ENDIF
ENDIF
IF gfMovMan                               ;If the axis moves in manual
   IF NOT (ifAvMan OR ifInMan)            ;If the forward and backward inputs
                                          ;manual is OFF
   STOP Axis                              ;Stop the axis
   gfMovMan = 0                           ;Remove the reporting of axis
                                          ;manual movement
   ENDIF
ENDIF
;-------------------------------------------------------------------------------------
; Final operations
;-------------------------------------------------------------------------------------
  WAIT 1
  JUMP MAIN
END
  • Last modified: 2020/07/13 14:59