Both sides previous revision Previous revision Next revision | Previous revision |
en:software:devices:oopos2 [2017/01/16 17:18] – [5.9.2. Esempio] qem103 | en:software:devices:oopos2 [2020/07/13 14:58] (current) – qem103 |
---|
| |
| |
===== - Introduction ===== | ====== - Introduction ====== |
| |
* The OOPOS2 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 OOPOS2 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. |
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. | 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. |
| |
=== - Modo 0: loading presets with moving procedure === | === - 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.\\ Axis speed should be low enough to allow the acquisition of the input.^ | ^:info:^The zero pulse enable input has a hardware filter which delays the acquisition and so influence the precision of the loading.\\ Axis speed should be low enough to allow the acquisition of the input.^ |
... | ... |
</code> | </code> |
non assicura che il valore di posit sia di 800, come ci si aspetterebbe da due sottrazioni consecutive, | 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: |
mentre è possibile che sia di 900 per la sovrapposizione dei due comandi. La scrittura | |
diventa quindi: | |
<code QCL> | <code QCL> |
Asse:posit = 1000 | Axisposit = 1000 |
Asse:delta = - 100 | Axis:delta = - 100 |
DELCNT Asse | DELCNT Axis |
WAIT Asse:st_init | WAIT Axis:st_init |
DELCNT Asse | DELCNT Axis |
WAIT Asse:st_init | WAIT Axis:st_init |
... | ... |
</code> | </code> |
| |
=== - Comandi REGON e REGOFF === | === - REGON and REGOFF commands === |
Con lutilizzo del device OOPOS2 le uscite di movimento sono ad uso esclusivo del device; pertanto | |
non possono essere utilizzate da altri device o dallapplicativo.\\ | |
Il comando di //REGOFF// permette di mettere a disposizione tali risorse, disabilitandone laggiornamento | |
da parte del device OOPOS2. Questa condizione, verificata con lo stato //st_regoff// = 1, | |
pone il device in uno stato di attesa in cui comunque continua ad aggiornare la posizione dellasse | |
(conteggio acquisito).\\ | |
Il comando di //REGON// ripristina le normali condizioni riassegnando al device laggiornamento | |
delle uscite. | |
<WRAP center round info 60%> | |
Per evitare conflitti e malfunzionamenti, | |
deve necessariamente | |
essere attivo un | |
solo device per ogni gruppo | |
di uscite di movimento. | |
</WRAP> | |
| |
Nelle applicazioni in cui non è necessario movimentare contemporaneamente più assi luso dei | 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.\\ |
comandi //REGON/REGOFF// permette di utilizzare sempre le stesse uscite di movimento risparmiando | 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).\\ |
risorse hardware. | The //REGON// command restores normal conditions giving the device updating outputs.\\ |
| |
==== - Movimentazione ==== | ^:info:^To avoid conflicts and malfunctions, must necessarily be active one device for each group of outputs of movement.^ |
| |
Le procedure fin qui descritte hanno permesso di completare le fasi di definizione delle risorse | 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. |
hardware necessarie al device, di verifica dei collegamenti elettrici, di impostazione dei parametri | |
fondamentali del device.\\ | |
Ora é possibile eseguire una semplice movimentazione dellasse. | |
* Spostare lasse in una posizione tale per cui possa compiere un determinato spazio senza incontrare i finecorsa di quota massima. | |
* Azzerare il conteggio (parametro //posit// = 0). | |
* Impostare la quota di posizionamento (parametro //setpos//).\\ ''Asse:setpos = quota di posizionamento'' (in Um compresa tra minpos e maxpos). | |
* Start posizionamento (comando di START).\\ ''START Asse'' | |
* Per interrompere il posizionamento utilizzare il comando di //STOP//. | |
| |
| ==== - Moving ==== |
| |
===== - Funzioni speciali ===== | 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 = positioning quota'' (in Um between minpos and maxpos). |
| * tart positioning (//START// command).\\ ''START Axis'' |
| * To stop the positioning use the //STOP// command. |
| ===== - Special functions ===== |
| |
==== - Sistema di posizionamento QPS (QEM Positioning System) ==== | ==== - QPS Positioning system (QEM POSITIONING SYSTEM) ==== |
| |
<WRAP center round info 60%> | ^: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.^ |
Questo sistema consente, se | |
la risoluzione del trasduttore | |
lo permette, di aggiustare | |
e verificare il posizionamento | |
di tipo On/Off con | |
una risoluzione 10 volte superiore | |
a quella impostata | |
nel parametro //cntratio//. | |
</WRAP> | |
| |
Lintroduzione dei parametri relativi alle inerzie (//iner01 ÷ iner16//), alle tolleranze (//tolp// e //toln//) | 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.\\ |
ed allo spessore utensile (//tool//), viene proposta con una cifra in più, in modo da poter introdurre | For a good operation of the QPS system, the //cntratio// parameter 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.\\ |
il dato con una precisione 10 volte maggiore.\\ | The QPS system is also introduced in the reading of the data described above. |
Per un buon funzionamento del sistema QPS, il parametro //cntratio// deve essere inferiore a 40000; | |
se il coefficiente moltiplicativo è compreso tra 40001 e 399999 linfluenza dellultima cifra | |
diminuirà gradatamente fino a cessare completamente quando tale coefficiente è pari a 400000. | |
Il sistema QPS viene introdotto anche in fase di lettura dei dati sopradescritti. | |
| |
=== - Esempi === | === - Examples === |
<WRAP center round info 60%> | |
Gli esempi sono riferiti ad | |
un sistema di | |
posizionamento con precisione | |
del millimetro. | |
</WRAP> | |
| |
* Se una quota di posizionamento pari a 10 millimetri viene normalmente inserita con il numero 10, per introdurre lo stesso valore di tolleranza (quindi con il QPS), sarà necessario introdurre il valore 100. | ^:info:^The examples are based on a system of positioning with millimetre precision.^ |
* Una fascia di tolleranza pari a 10 millimetri verrà visualizzata con il numero 100. | |
| |
| * 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. |
| |
===== - Tabella comandi e parametri ===== | |
| |
==== - Simbologia adottata ==== | |
| |
Il **nome** del parametro, stato o comando viene riportato alla sinistra della tabella. | ===== - Commands and parameters table ===== |
| |
| ==== - Symbols used ==== |
| |
| The parameter **name**, state or command are is shown on the left side of the table. |
| |
**R**\\ | **R**\\ |
Indica se il relativo parametro o stato è ritentivo (al momento dellinizializzazione del device mantiene lo stato precedentemente definito), oppure lo stato che assume al momento dellinizializzazione del device.\\ | 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.\\ |
Se il device non necessita di inizializzazione il campo R indica il valore che il parametro o stato assume allaccensione della scheda.\\ | 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 = Ritentivo\\ | R = Retentive\\ |
0 = Al momento dellinizializzazione del device il valore viene forzato a zero.\\ | 0 = Upon initialization of the device the value is forced to zero.\\ |
1 = Al momento dellinizializzazione del device il valore viene forzato a uno.\\ | 1 = Upon initialization of the device the value is forced to one.\\ |
- = Al momento dellinizializzazione del device viene presentato il valore significativo. | - = Upon initialization of the device is presented significant value. |
| |
**D**\\ | **D**\\ |
Indica la dimensione del parametro.\\ | Indicates the **size of the parameter**. |
F = Flag\\ | F = Flag\\ |
B = Byte\\ | B = Byte\\ |
S = Single Float\\ | S = Single Float\\ |
| |
=== - Condizioni === | === - Conditions === |
Vengono descritte tutte le **condizioni necessarie affinchè il parametro sia considerato corretto o perchè il comando venga accettato**.\\ | |
In alcuni casi vengono specificati dei valori limite per laccettazione del parametro: se vengono | Describes all the **conditions that must exist is considered correct or because the command is accepted.**\\ |
introdotti dei valori esterni ai limiti impostati, il dato viene comunque accettato; pertanto | 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.\\ |
devono essere previsti opportuni controlli dellapplicativo tali da garantire il corretto funzionamento.\\ | To execution of the command, all conditions must be met; otherwise the command is not sent. |
Per lesecuzione di un comando, tutte le relative condizioni devono necessariamente essere | |
soddisfatte; in caso contrario il comando non viene inviato. | |
| |
**A**\\ | **A**\\ |
Indica la **modalità di accesso**.\\ | Indicates the **access mode**.\\ |
R = Read (lettura).\\ | R = Read.\\ |
W = Write (scrittura).\\ | W = Write.\\ |
RW = Read / Write. | RW = Read / Write. |
| |
==== - Comandi ==== | ==== - Commands ==== |
| |
I comandi sono stati ordinati con priorità decrescente. Ad esempio, in caso di contemporaneità | The commands were ranked by decreasing priority. For example, in the case of contemporary //STOP// and //START// commands, is acquired first the//STOP// command. |
dei comandi //STOP// ed //START//, viene acquisito per primo il comando //STOP//. | |
| |
^Nome^Condizioni^Descrizione^ | ^ Name ^ Conditions ^ Description ^ |
|INIT|st_init = 0|**Initialization**\\ Comando di inizializzazione device.\\ Se il device non é inizializzato non vengono eseguiti i calcoli relativi all'asse e quindi rimane inattivo. All'accensione è possibile scaricare tutti i parametri in DPR; successivamente, con comando INIT l'asse verrà inizialiazzato, eseguendo i calcoli una sola volta.\\ Attiva lo stato //st_init//.| | | 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. | |
|START|st_init = 1\\ st_regoff = 0\\ st_still = 1|**Start**\\ Comanda il posizionamento alla quota setpos e velocitá //setvel//.| | | START | st_init = 1\\ st_regoff = 0\\ st_still = 1 | **Start**\\ Controls the positioning to setpos quota and //setvel// speed. | |
|STOP|st_init = 1\\ st_regoff = 0\\ st_emrg = 0|**Stop**\\ Interrompe l'eventuale posizionamento in corso dell'asse. La fermata dell'asse avviene seguendo la rampa di decelerazione in uso. L'asse rimane in reazione di spazio.| | | STOP | st_init = 1\\ st_regoff = 0\\ st_emrg = 0 | **Stop**\\ Stops the current axis positioning. The stop of the axis follows the deceleration ramp in use. The axis remains in reaction to space. | |
|CNTLOCK|st_init = 1|**Counter lock**\\ Blocca l'acquisizione del conteggio asse anche se il trasduttore continua ad inviare i segnali. In questa fase l'eventuale spostamento dell'asse non viene rilevato. Disabilita il caricamento della quota di preset sul conteggio.\\ Attiva lo stato //st_cntlock//| | | 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**\\ Sblocca il conteggio dell'asse.\\ Viene ripresa la lettura dei segnali inviati dal trasduttore e l'aggiornamento del conteggio.\\ Disattiva lo stato //st_cntlock//.| | | 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**\\ Consente di invertire le fasi del trasduttore all'interno della scheda.\\ Viene quindi invertito il senso del conteggio (incremento/decremento).\\ Attiva lo stato //st_cntrev//.| | | 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. | |
|CNTREV|st_init = 1\\ st_still = 1|**Counter reverse**\\ Consente di invertire le fasi del trasduttore all'interno della scheda.\\ Viene quindi invertito il senso del conteggio (incremento/decremento).\\ Attiva lo stato //st_cntrev//.| | | PRESET | st_init = 1\\ st_regoff = 0 | **Preset**\\ Start search preset axis. Start search procedure with modes set with //prsmode// 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 | |
|PRESET|st_init = 1\\ st_regoff = 0|**Preset**\\ Start ricerca preset asse.\\ Viene dato inizio alla procedura di ricerca di preset con le modalità impostate con i parametri prsmode e prsdir. Se la ricerca di preset è già in esecuzione, il comando esegue l'inversione del senso di ricerca.\\ Attiva lo stato st_prson e disattiva lo stato //st_prsok//.| | | MANSFW | st_init = 1\\ st_regoff = 0\\ posit < maxpos | **Manual slow forward**\\ Manual slow positioning forward.\\ Activates the forward and slowdown outputs. | |
|MANSFW|st_init = 1\\ st_regoff = 0\\ posit < maxpos|**Manual slow forward**\\ Posizionamento manuale avanti lento. Vengono eccitate le uscite di avanti e di rallentamento.| | | MANSBW | st_init = 1\\ st_regoff = 0\\ posit > minpos | **Manual slow backward**\\ Manual slow positioning backward.\\ Activates the backward and slowdown outputs. | |
|MANSBW|st_init = 1\\ st_regoff = 0\\ posit > minpos|**Manual slow backward**\\ Posizionamento manuale indietro lento. Vengono eccitate le uscite di indietro e di rallentamento.| | | MANFFW | st_init = 1\\ st_regoff = 0\\ posit < maxpos | **Manual forward**\\ Manual positioning forward.\\ Activates the forward output. | |
|MANFFW|st_init = 1\\ st_regoff = 0\\ posit < maxpos|**Manual forward**\\ Posizionamento manuale avanti. Viene eccitata l'uscita di avanti.| | | MANFBW | st_init = 1\\ st_regoff = 0\\ posit > minpos | **Manual backward**\\ Manual positioning backward.\\ Activates the backward output. | |
|MANFBW|st_init = 1\\ st_regoff = 0\\ posit > minpos|**Manual backward**\\ Posizionamento manuale indietro. Viene eccitata l'uscita di indietro.| | | REGON | st_init = 1 | **Regulation ON**\\ Enable adjustment and updating of movement outputs, and all the movement commands.\\ Disable the //st_regoff// state. | |
|REGON|st_init = 1|**Regulation ON**\\ Abilita la regolazione e l'aggiornamento delle uscite di movimento, nonché tutti i comandi di movimento.\\ Disattiva lo stato //st_regoff//.| | | 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. | |
|REGOFF|st_init = 1|**Regulation OFF**\\ Disabilita la regolazione e l'aggiornamento delle uscite di movimento, nonché tutti i comandi di movimento. Solamente l'uscita di freno continua ad essere aggiornata.\\ Attiva lo stato //st_regoff//.| | | 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. | |
|DELCNT|st_init = 1\\ st_still = 0|**Delta counter**\\ Questo comando viene accettato solamente se l'asse è fermo; il conteggio (posizione dell'asse) viene modificato sommandogli algebricamente il valore specificato nella variabile delta.| | |
| |
==== - Parametri ==== | ==== - Parameters ==== |
| |
^Nome^D^R^A^Condizioni^Descrizione^ | ^ Name ^ D ^ R ^ A ^ Conditions ^ Description ^ |
|cntratio|L|R|R-W|Nessuna|**Counter ratio**\\ Definisce per quanto vanno moltiplicati gli impulsi del trasduttore in modo che l'acquisizione degli spostamenti venga espressa nell'unità di misura desiderata.\\ Impostando 100000 la variazione del conteggio è di 1 bit per impulso trasduttore.\\ Range valido: 347 ÷ 400000| | | cntratio | L | R | R-W | No | **Counter ratio**\\ Defines how the transducer pulses must be multiplied so that the acquisition of movements is expressed in the unit of measure desired.\\ If setting 100000, the count variation is 1 bit for pulse transducer.\\ Valid range: 347 ÷ 400000 | |
|posit|L|R|R-W|st_init = ON|**Actual position**\\ È il valore della posizione istantanea dell'asse in unità di misura definite dal parametro cntratio. Valore espresso in unità di misura (Um).\\ Range valido: -999999 ÷ 999999| | | posit | L | R | R-W | st_init = ON | **Actual position**\\ Is the value of the instantaneous position of the axis in units defined by the cntratio parameter. Value expressed in units of measurement (Um).\\ Valid range: -999999 ÷ 999999 | |
|minpos|L|R|R-W|Nessuna|**Minimum position**\\ Definisce la minima quota raggiungibile dall'asse; il valore impostato è da considerarsi anche come limite minimo per l'introduzione delle quote di lavoro. Valore espresso in unità di misura (Um).\\ Range valido: -999999 ÷ 999999| | | minpos | L | R | R-W | No | **Minimum position**\\ Defines the minimum quota to reach from the axis; the set value is considered as the lower limit for the introduction of quotas work. Value expressed in units of measurement (Um).\\ Valid range: -999999 ÷ 999999 | |
|maxpos|L|R|R-W|Nessuna|**Maximum position**\\ Definisce la massima quota raggiungibile dall'asse; il valore impostato è da considerarsi anche come limite massimo per l'introduzione delle quote di lavoro. Valore espresso in unità di misura (Um).\\ Range valido: -999999 ÷ 999999| | | maxpos | L | R | R-W | No | **Maximum position**\\ Defines the maximum quota reached by the axis; the set value is to be considered also as an upper limit for the introduction of quotas of work. Value expressed in units of measurement (Um).\\ Valid range: -999999 ÷ 999999 | |
|slowpos|W|R|R-W|Nessuna|**Slow position**\\ È la distanza dalla quota di posizionamento alla quale viene eccitata l'uscita di rallentamento per concludere il posizionamento alla velocità lenta. Valore espresso in unità di misura (Um).\\ Range valido: 0 ÷ 9999| | | slowpos | W | R | R-W | No | **Slow position**\\ Is the distance from the positioning quota which is axtivates the slowdown output. Value expressed in units of measurement (Um).\\ Valid range: 0 ÷ 9999 | |
|tollp|W|R|R-W|Nessuna|**Positive tolerance**\\ È il limite di tolleranza positivo consentito al posizionamento (massimo errore per eccesso). Viene espresso in Um/10 (QPS).\\ Range valido: 0 ÷ 9999| | | tollp | W | R | R-W | No | **Positive tolerance**\\ Is the positive tolerance limit allowed to positioning (maximum error for excess). It is expressed as Um/10 (QPS).\\ Valid range: 0 ÷ 9999 | |
|tolln|W|R|R-W|Nessuna|**Negative tolerance**\\ È il limite di tolleranza negativo consentito al posizionamento (massimo errore per difetto). Viene espresso in Um/10 (QPS).\\ Range valido: 0 ÷ 9999| | | tolln | W | R | R-W | No | **Negative tolerance**\\ Is the negative tolerance limit allowed to positioning (maximum error by defect). It is expressed as Um/10 (QPS).\\ Valid range: 0 ÷ 9999 | |
|tinv|W|R|R-W|Nessuna|**Direction inversion delay**\\ Viene utilizzato per evitare stress meccanici dovuti a troppo rapide inversioni del senso di movimento. Il valore introdotto è espresso in centesimi di secondo.\\ Range valido: 0 ÷ 999| | | tinv | W | R | R-W | No | **Direction inversion delay**\\ Is used to avoid mechanical stress caused by too rapid direction changes movement. The input value is expressed in hundredths of a second.\\ Valid range: 0 ÷ 999 | |
|slowdly|W|R|R-W|Nessuna|**Slow delay**\\ Quando il posizionamento entra nella fascia di rallentamento, l'uscita di movimento viene disattivata per un tempo determinato dal parametro slowpos. L'uscita di rallentamento viene attivata con tempo slowpos/2 prima dell'uscita di movimento. Viene espresso in centesimi di secondo (s/100).\\ Range valido: 0 ÷ 999| | | slowdly | W | R | R-W | No | **Slow delay**\\ When positioning enters in the deceleration range, the output is disabled for a time determined by the slowpos parameter. The output of slowdown is activated with time slowpos/2 before the release of movement. It's expressed in hundredths of a second (s/100).\\ Valid range: 0 ÷ 999 | |
|tbrake|W|R|R-W|Nessuna|**Brake time**\\ È il tempo che intercorre, allo start posizionamento, tra lo sblocco del freno (in funzione del parametro breaktype) e l'attivazione delle uscite di movimento. Viene espresso in centesimi di secondo (s/100).\\ Range valido: 0 ÷ 999| | | tbrake | W | R | R-W | No | **Brake time**\\ Is the time elapsing, to start positioning, between the brake release (depending on the breaktype parameter) and the activation of outputs of movement. It's expressed in hundredths of a second (s/100).\\ Valid range: 0 ÷ 999 | |
|overpos|W|R|R-W|Nessuna|**Over position**\\ Oltrequota per il recupero giochi e/o delta minimo di posizionamento. Se impostato a zero non viene eseguito il recupero giochi. Valore espresso in unità di misura (Um).\\ Range valido: 0 ÷ 9999| | | overpos | W | R | R-W | No | **Over position**\\ Overquota for backlash recovery and/or minimum delta of positioning. If set to zero does not run the backlasch recovery. Value expressed in units of measurement (Um).\\ Valid range: 0 ÷ 9999 | |
|bklashmode|B|R|R-W|Nessuna|**Backslash mode**\\ Seleziona il tipo di recupero giochi:\\ **0**=posizionamento senza recupero giochi.\\ **1**=posizionamento con recupero giochi avanti.\\ **2**=posizionamento con recupero giochi indietro.\\ **3**=posizionamento con recupero giochi avanti senza rallentamento.\\ **4**=posizionamento con recupero giochi indietro senza rallentamento.\\ Se il parametro è fuori dai limiti ammessi, utilizza per default il modo 0.| | | bklashmode | B | R | R-W | No | **Backslash mode**\\ Select the backlash type:\\ **0**=positioning without backlash recovery.\\ **1**=positioning with forward backlash recovery.\\ **2**=positioning with backward backlash recovery.\\ **3**=positioning with forward backlash recovery without slowdown.\\ **4**=positioning with backward backlash recovery without slowdown.\\ If the parameter is out o allowedf limits, uses by default the mode 0. | |
|ninert|B|R|R-W|Nessuna|**Inertia number**\\ È il numero di fasce d'inerzia in cui si vuole suddividere l'asse. Se viene impostato il valore zero, si considera una sola fascia.\\ Range valido: 1 ÷ 8| | | ninert | B | R | R-W | No | **Inertia number**\\ Is the number of the inertia bands in which dividing the axis. If you set the value zero, considering a single band.\\ Valid range: 1 ÷ 8 | |
|maxiner|W|R|R-W|Nessuna|**Maximum inertia**\\ È il massimo valore di variazione dell'inerzia dopo ogni posizionamento. Se il valore calcolato supera tale parametro, viene segnalato con l'attivazione dello stato st_erin. Se il valore viene posto a zero, il controllo è inibito. Viene espresso in Um/10 (QPS).\\ Range valido: 0 ÷ 9999| | | maxiner | W | R | R-W | No | **Maximum inertia**\\ Is the maximum value change of inertia after each placement. If the calculated value exceeds this parameter, is indicated by the st_erin state. If the value is set to zero, the control is inhibited. It's expressed in Um/10 (QPS).\\ Valid range: 0 ÷ 9999 | |
|toldly|W|R|R-W|Nessuna|**Tolerance delay**\\ Definisce il tempo che intercorre tra l'arrivo dell'asse nella fascia di tolleranza e la relativa segnalazione di stato. Il valore introdotto è espresso in centesimi di secondo.\\ Range valido: 0 ÷ 9999| | | toldly | W | R | R-W | No | **Tolerance delay**\\ Defines the time between the arrival of the axis in the tolerance range and the status report. The input value is expressed in hundredths of a second.\\ Valid range: 0 ÷ 9999 | |
|inertmode|B|R|R-W|Nessuna|**Inertia mode selection**\\ Indica il tipo di ricalcolo inerzia eseguito dal device al termine del posizionamento:\\ **0**=ricalcolo inerzie disabilitato.\\ **1** = ricalcolo inerzie eseguito solo se il posizionamento si conclude fuori tolleranza.\\ **2**=ricalcolo inerzie eseguito ad ogni posizionamento.| | | inertmode | B | R | R-W | No | **Inertia mode selection**\\ Indicates the type of inertia recalculation performed 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 executing at each positioning. | |
|tool|L|R|R-W|Nessuna|**Tool thickness**\\ É il valore dello spessore utensile. Questo valore, espresso in Um/10 (QPS), viene sommato alla quota di posizionamento setpos quando viene comandato START. La quota finale dell'asse sarà quindi data da: setpos + tool\\ Range valido: -999999 ÷ 999999| | | tool | L | R | R-W | No | **Tool thickness**\\ Is the thickness value tool. This value, expressed in Um/10 (QPS), is added to the placement quota setpos when it's commanded START. The final quota of the axis will be then given by: setpos + tool\\ Valid range: -999999 ÷ 999999 | |
|setpos|L|R|R-W|Nessuna|**Setted position**\\ É la quota di posizionamento impostata. Essa viene posta in esecuzione dal comando START. Se essa viene cambiata durante il posizionamento, l'asse si posziona comunque alla quota precedente.\\ Valore espresso in unità di misura (Um).\\ Range valido: -999999 ÷ 999999| | | setpos | L | R | R-W | No | **Setted position**\\ Is the set quota of positioning. It's running from the START command. If it is changed during the placement, the axis is positioned at the previous quota.\\ Value expressed in units of measurement (Um).\\ Valid range: -999999 ÷ 999999 | |
|iner01÷iner16|W|R|R-W|Nessuna|**Inertia 01 ÷ 16 value**\\ Sono le 16 memorie dei valori di inerzia. Se il parametro dobiner è 0, verranno utilizzate dal device solamente le prime otto (iner01 ÷ iner08).\\ Viene espresso in Um/10 (QPS).| | | iner01÷iner16 | W | R | R-W | No | **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).\\ It's expressed in Um/10 (QPS). | |
|dobiner|B|R|R-W|Nessuna|**Double inertia**\\ Con questo parametro è possibile scegliere di ricalcolare un'inerzia unica per ogni fascia in cui è diviso l'asse oppure di averne due per ogni fascia: una per ogni direzione di arrivo dell'asse.\\ **0**=Memoria inerzia di fascia uguale per le due direzioni.\\ **1**=Memoria inerzia di fascia distinta per ogni direzione.| | | dobiner | B | R | R-W | No | **Double inertia**\\ With this parameter you can choose to recalculate a unique inertia for all that has divided the axis or get two for every band range: one for each direction of the axis.\\ **0**=Inertia memory band equal for two directions.\\ **1**=Inertia memory band distinct for two directions. | |
|enstol|B|R|R-W|Nessuna|**Enable start in tolerance**\\ Abilitazione start con asse in tolleranza:\\ **0** = START in tolleranza disabilitato. Al comando di START lo stato st_sttoll viene abilitato e l'asse rimane fermo.\\ **1** = START in tolleranza abilitato. Al comando di START l'asse esegue un riposizionamento alla quota in uso e lo stato st_sttoll viene disabilitato.| | | enstol | B | R | R-W | No | **Enable start in tolerance**\\ Enable start with axis in tolerance:\\ **0** = START in tolerance disabled. At the START command the st_sttoll state is enabled and the axis stay to still.\\ **1** = START in tolerance enabled. At the START command the axis execute a repositioning to the quota in use and the st_sttoll state is disabled. | |
|prsmode|B|R|R-W|Nessuna|**Preset mode**\\ Definisce il tipo di ricerca di preset:\\ **0** = Per la ricerca dell'abilitazione impulso di zero, l'asse inizia il movimento, incontra la camma di abilitazione, inverte la direzione ed in lento, sul fronte di discesa relativo al segnale di camma, carica la quota di preset.\\ **1** = Per la ricerca dell'abilitazione impulso di zero, l'asse inizia il movimento, incontra la camma di abilitazione, inverte la direzione ed in lento acquisisce il primo impulso di zero (dopo la disattivazione del segnale di camma).\\ **2** = Non viene attivata la procedura di ricerca preset con movimentazione dell'asse. Il conteggio viene aggiornato alla quota di preset all'attivazione dell'abilitazione impulso di zero.| | | prsmode | B | R | R-W | No | **Preset mode**\\ Defines the type of preset search:\\ **0** = For research enabling zero-pulse, the axis begins the movement, bump the enabling cam, reverses the direction and slow on falling edge on the cam signal, load the preset quota.\\ **1** = For research of enabling zero-pulse, the axis begins thr movement, bump the enabling cam, reverses the direction and slowly acquires the first zero-pulse (after disabling the cam signal).\\ **2** = Does not activate the search procedure presets with axis handling. The count is updated to the presets quota to the activation of the enabling zero-pulse. | |
|prspos|L|R|R-W|Nessuna|**Preset position**\\ Definisce il valore che viene caricato sul conteggio con la procedura di ricerca di preset.\\ Valore espresso in unità di misura (Um).\\ Range valido: minpos ÷ maxpos| | | prspos | L | R | R-W | No | **Preset position**\\ Defines the value that is loaded on the counting with the preset search procedure.\\ Value expressed in units of measurement (Um).\\ Valid range: minpos ÷ maxpos | |
|prsdir|B|R|R-W|Nessuna|**Preset search direction**\\ Definisce la direzione del movimento asse per la ricerca della camma di abilitazione impulso di zero.\\ **0**=L'asse esegue la ricerca in avanti, prima in rapido, poi in lento.\\ **1**=L'asse esegue la ricerca indietro, prima in rapido, poi in lento. **2**= L'asse esegue la ricerca in avanti sempre in lento.\\ **3**= L'asse esegue la ricerca indietro sempre in lento.| | | prsdir | B | R | R-W | No | **Preset search direction**\\ Defines the direction of movement of the cam research axis zero pulse enable.\\ **0**=The axis is looking forward, before rapidly, then in slow.\\ **1**=The axis is looking back, first in rapidly, then slowly. **2**= The axis is looking forward always slow.\\ **3**= The axis always searches backward in slow. | |
|actiner|B|R|R|Nessuna|**Actual inertia**\\ Indica la fascia di inerzia in uso.\\ Range valido: 0 ÷ 7| | | actiner | B | R | R | No | **Actual inertia**\\ Indicates the inertia range in use.\\ Valid range: 0 ÷ 7 | |
|delta|L|R|R-W|Nessuna|**Delta counter**\\ Variabile d'uso come operando dal comando DELCNT.\\ Valore espresso in unità di misura (Um).\\ Range valido: -999999 ÷ 999999| | | delta | L | R | R-W | No | **Delta counter**\\ Use variable as an operand from the DELCNT command.\\ Value expressed in units of measurement (Um).\\ Valid range: -999999 ÷ 999999 | |
|decpt|B|R|R-W|Nessuna|**Decimal point**\\ Definisce la precisione con la quale si intendono impostare le preselezioni e visualizzare i conteggi relativamente all'asse.\\ Range valido: 0 ÷ 3| | | decpt | B | R | R-W | No | **Decimal point**\\ Defines the accuracy with which you wish to set presets and view the counts in relation to axis.\\ Valid range: 0 ÷ 3 | |
|unitvel|B|R|R-W|Nessuna|**Velocity unit**\\ Definisce se l'unità di tempo della velocità è espressa in minuti o secondi.\\ **0** = Um/min\\ **1** = Um/sec| | | unitvel | B | R | R-W | No | **Velocity unit**\\ Defines if time unit of speed is expressed in minutes or seconds.\\ **0** = Um/min\\ **1** = Um/sec | |
|frq|L|-|R|Nessuna|**Actual frequency**\\ É il valore della frequenza istantanea dell'asse, considerando una fase dell'encoder. Valore espresso in Hz.| | | frq | L | - | R | No | **Actual frequency**\\ Is the value of the instantaneous frequency of the axis, considering a phase of the encoder. Value expressed in Hz. | |
|vel|L|-|R|Nessuna|**Actual velocity**\\ É il valore della velocitá istantanea dell'asse. Il valore viene espresso in Um/s o Um/min in base al parametro unitvel e dipende anche dal parametro decpt.| | | vel | L | - | R | No | **Actual velocity**\\ Is the value of the instantaneous speed of the axis. The value is expressed in Um/s or Um/min depending on the unitvel parameter and also depends on the decpt parameter. | |
|breaktype|B|R|R-W|Nessuna|**Brake type**\\ É il tipo di logica d'intervento dell'uscita freno.\\ **0** = L'uscita viene eccitata per la frenata.\\ **1** = L'uscita, normalmente eccitata, viene diseccitata per la frenata.\\ Lo stato st_brake segue lo stato elettrico dell'uscita.| | | breaktype | B | R | R-W | No | **Brake type**\\ It's the type of brake intervention logic output.\\ **0** = L'uscita viene eccitata per la frenata.\\ **1** = L'uscita, normalmente eccitata, viene diseccitata per la frenata.\\ Lo stato st_brake segue lo stato elettrico dell'uscita. | |
|breaktype|B|R|R-W|Nessuna|**Brake type**\\ É il tipo di logica d'intervento dell'uscita freno.\\ **0** = L'uscita viene eccitata per la frenata.\\ **1** = L'uscita, normalmente eccitata, viene diseccitata per la frenata.\\ Lo stato st_brake segue lo stato elettrico dell'uscita.| | | slowtype | B | R | R-W | No | **Slow type**\\ It's the calculation type of slowdown\\ **0**=fixed with slowpos parameter.\\ **1**=proportional to the speed.\\ **2**=proportional to the square of speed. | |
|slowtype|B|R|R-W|Nessuna|**Slow type**\\ É il tipo di calcolo del rallentamento\\ **0**=fisso con parametro slowpos.\\ **1**=proporzionale alla velocità rilevata.\\ **2**=proporzionale al quadrato della velocità rilevata.| | | maxvel | L | R | R-W | NO | **Maximum velocity**\\ Defines the maximum axis speed. The input value is per unit of time of the unitvel set speed. This parameter is used if slowtype = 0. | |
|maxvel|L|R|R-W|Nessuna|**Maximum velocity**\\ Definisce la massima velocità dell'asse. Il valore introdotto è nell'unità di tempo della velocità impostata unitvel. Questo parametro viene utilizzato se slowtype ? 0.| | | maxslow | W | R | R-W | No | **Maximum slowdown**\\ Is 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 units of measurement (Um).\\ Valid range: 0 ÷ 9999 | |
|maxslow|W|R|R-W|Nessuna|**Maximum slowdown**\\ É il valore di rallentamento calcolato alla massima velocità dell'asse definita dal parametro maxvel. Questo parametro viene utilizzato se slowtype ? 0.\\ Valore espresso in unità di misura (Um).\\ Range valido: 0 ÷ 9999| | | minslow | W | R | R-W | No | **Minimum slowdown**\\ Is the minimum value of slowdown which can be calculated.\\ This parameter is used if slowtype = 0.\\ Value expressed in units of measurement (Um).\\ Valid range: 0 ÷ 9999 | |
|minslow|W|R|R-W|Nessuna|**Minimum slowdown**\\ É il minimo valore di rallentamento che puó essere calcolato.\\ Questo parametro viene utilizzato se slowtype ?0.\\ Valore espresso in unità di misura (Um).\\ Range valido: 0 ÷ 9999| | | exeslow | W | - | R | No | **Execution slowdown**\\ If the slowtype parameter ¹ 0 indicates the value of deceleration calculated from the device depending on the speed of the axis.\\ Value expressed in units of measurement (Um). | |
|exeslow|W|-|R|Nessuna|**Execution slowdown**\\ Se il parametro slowtype ¹ 0 indica il valore di rallentamento calcolato dal device in funzione della velocità dell'asse.\\ Valore espresso in unità di misura (Um).| | |
| |
==== - Stati ==== | ==== - States ==== |
| |
^Nome^D^R^A^Condizioni^Descrizione^ | ^ Name ^ D ^ R ^ A ^ Conditions ^ Description ^ |
|st_init|F|-|R|Nessuna|**Initialization**\\ Segnalazione di device inizializzato.\\ **0** = Device non inizializzato.\\ **1** = Device inizializzato.| | | st_init | F | - | R | No | **Initialization**\\ Reporting of device initialized.\\ **0** = Device is not initialized.\\ **1** = Device initialized. | |
|st_cntlock|F|R|R|Nessuna|**Counter locked**\\ Segnalazione di conteggio asse bloccato.\\ **0** = Conteggio asse sbloccato.\\ **1** = Conteggio asse bloccato| | | st_cntlock | F | R | R | No | **Counter locked**\\ Counting signaling axis blocked.\\ **0** = Axis count unlocked.\\ **1** = Axis count blocked | |
|st_cntrev|F|R|R|Nessuna|**Counter reversed**\\ Segnalazione di conteggio asse invertito\\ **0** = Conteggio asse non invertito\\ **1** = Conteggio asse invertito.| | | st_cntrev | F | R | R | No | **Counter reversed**\\ Report of inverted axis count.\\ **0** = Axis count not inverted\\ **1** = Axis count inverted. | |
|st_movfwd|F|0|R|Nessuna|**Forward movement**\\ Segnala l'eccitazione dell'uscita di movimento avanti.\\ **0** = Uscita avanti non eccitata.\\ **1** = Eccitazione uscita avanti.| | | st_movfwd | F | 0 | R | No | **Forward movement**\\ Report activation of forward movement output.\\ **0** = Forward output not enabled.\\ **1** = Forward output enabled. | |
|st_movbwd|F|0|R|Nessuna|**Backward movement**\\ Segnala l'eccitazione dell'uscita di movimento indietro.\\ **0** = Uscita indietro non eccitata.\\ **1** = Eccitazione uscita indietro.| | | st_movbwd | F | 0 | R | No | **Backward movement**\\ Report activation of backward movement output.\\ **0** = Backward output not enabled.\\ **1** = Backward output enabled. | |
|st_movslow|F|0|R|Nessuna|**Slowdown movement**\\ Segnala l'eccitazione dell'uscita di rallentamento.\\ **0** = Uscita rallentamento non eccitata.\\ **1** = Eccitazione uscita rallentamento.| | | st_movslow | F | 0 | R | No | **Slowdown movement**\\ Report activation of slowdown output.\\ **0** = Slowdown output not enabled.\\ **1** = Slowdown output enabled. | |
|st_toll|F|0|R|Nessuna|**Tolerance**\\ Segnalazione di asse in tolleranza rispetto alla quota posta in esecuzione dal comando di START. La segnalazione di asse in tolleranza può essere ritardata tramite il parametro toldly.\\ **0** = Asse non in tolleranza.\\ **1** = Asse in tolleranza.| | | st_toll | F | 0 | R | No | **Tolerance**\\ Reporting of axis in tolerance in relation to the quota put running 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|0|R|Nessuna|**Brake**\\ Segnala l'eccitazione dell'uscita di freno (per l'attivazione di freni o di dispositivi di bloccaggio dell'asse).\\ **0** = Uscita freno non eccitata.\\ **1** = Eccitazione uscita freno.| | | st_brake | F | 0 | R | No | **Brake**\\ Reporting brake output signals (for activation of brakes or axis locking devices).\\ **0** = Brake output is not activated.\\ **1** = Brake output activated. | |
|st_movdir|F|0|R|Nessuna|**Backward direction**\\ Segnalazione della direzione del movimento.\\ **0** = Avanti\\ **1** = Indietro.| | | st_movdir | F | 0 | R | No | **Backward direction**\\ Indication of direction of movement.\\ **0** = Forward\\ **1** = Backward. | |
|st_still|F|1|R|Nessuna|**Still**\\ Segnalazione di asse fermo.\\ **0** = Asse in movimento.\\ **1** = Asse fermo.| | | st_still | F | 1 | R | No | **Still**\\ Reporting of still axis.\\ **0** = Axis moving.\\ **1** = Axis stopped. | |
|st_erin|F|0|R|Nessuna|**Inertia ricalculation error**\\ Segnala un errore di ricalcolo inerzia. L'indicazione si attiva se il ricalcolo dell'inerzia fornisce un valore maggiore del parametro maxiner.\\ **0** = Ricalcolo inerzia corretto.\\ **1** = Ricalcolo inerzia con valori maggiori di maxiner.| | | st_erin | F | 0 | R | No | **Inertia ricalculation error**\\ Report an error recalculating inertia. The indication is activate if the recalculation of the inertia provides a value greater than maxiner parameter.\\ **0** = Correct recalculation inertia.\\ **1** = Recalculating inertia with values greater than maxiner. | |
|st_sttoll|F|0|R|Nessuna|**Start in tolerance**\\ Attivo segnala, se il parametro enstol <sup>1</sup> 1, che é stato dato un comando di movimento e l'asse era giá in tolleranza sulla quota di traguardo. Lo stato rimane invariato fino al prossimo comando di movimento (START, MANSFW, MANFFW, MANSBW, MANFBW).\\ **0** = Start con asse fuori tolleranza.\\ **1** = Start con asse in tolleranza.| | | st_sttoll | F | 0 | R | No | **Start in tolerance**\\ If active reports (with enstol parameter <sup>1</sup> 1) that was given a movement command 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|0|R|Nessuna|**Preset ok**\\ Segnalazione di ricerca di preset asse conclusa correttamente.\\ **0** = Ricerca di preset non ancora conclusa o non eseguita.\\ **1** = Ricerca di preset conclusa correttamente.| | | st_prsok | F | 0 | R | No | **Preset ok**\\ Axis preset search reporting was successfully executed.\\ **0** = Search for preset not yet completed or not executed.\\ **1** = RPreset search was successfully executed. | |
|st_prson|F|0|R|Nessuna|**Preset**\\ Segnalazione di ricerca di preset asse in corso.\\ **0** = Ricerca di preset non in corso.\\ **1** = Ricerca di prest in corso.| | | st_prson | F | 0 | R | No | **Preset**\\ Reporting of preset research axis ongoing.\\ **0** = Preset search not in progress.\\ **1** = Preset search in progress. | |
|st_regoff|F|0|R|Nessuna|**Regulation off**\\ Segnala lo stato di disabilitazione delle uscite e dei comandi di posizionamento.\\ **0** = Uscite di movimento abilitate.\\ **1** = Uscite di movimento disabilitate.| | | st_regoff | F | 0 | R | No | **Regulation off**\\ Reports the status of disable outputs and positioning commands.\\ **0** = Outputs of movement enabled.\\ **1** = Outputs of movement disabled. | |
| |
| |
===== - Limitazioni ===== | ===== - Limitations ===== |
| |
Nessuna limitazione. | No limitation. |
| |
| |
===== - Esempio applicativo ===== | ===== - Application example ===== |
| |
==== - File di configurazione ==== | ==== - Configuration file ==== |
| |
<code QCL> | <code QCL> |
;************************************************************************************* | ;************************************************************************************* |
; Nome Modulo: Ex_Oopos.CNF Progetto: Ex_OOPOS2 | ; Module name: Ex_Oopos.CNF Project: Ex_OOPOS2 |
; Autore: QEM srl Data: 01/05/99 | ; Autor: QEM srl Date: 01/05/99 |
; Sistema: QMove1 / QCL3 Libreria: 1LIB3B04 | ; System: QMove1 / QCL3 Library: 1LIB3B04 |
; Funzionalità: Esempio gestione OOPOS2 Release: 0 | ; Functionality: Example of OOPOS2 management Release: 0 |
;-------------------------------------- Note ----------------------------------------- | ;-------------------------------------- Note ----------------------------------------- |
; [1] - Applicativo di esempio per utilizzo device OOPOS 2 | ; [1] - Sample application to use the OOPOS 2 device |
;************************************************************************************* | ;************************************************************************************* |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione Costanti | ; Constant definition |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
CONST | CONST |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione Variabili SYSTEM | ; Variable Definition SYSTEM |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
SYSTEM | SYSTEM |
slQuotaPos L ;Variabile per quota di posizionamento | slQuotaPos L ;Variable for placement quota |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione Variabili GLOBAL | ; Variable Definition GLOBAL |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
GLOBAL | GLOBAL |
gfMovMan F ;Flag segnalazione movimenti manuali in | gfMovMan F ;Flag signalling manual movements in |
;corso | ;progress |
gfMovAuto F ;Flag segnalazione movimenti automatici | gfMovAuto F ;Flag signalling automatic movements in |
;in corso | ;progress |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione Variabili TIMER | ; Variable Definition TIMER |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
TIMER | TIMER |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione DATAGROUP | ; Definition DATAGROUP |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
;DATAGROUP | ;DATAGROUP |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Configurazione Bus | ; Bus Configuration |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
BUS | BUS |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione Variabili INPUT | ; Variable Definition INPUT |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
INPUT | INPUT |
ifAvMan F 2.INP01 ;Ingresso di avanti manuale | ifAvMan F 2.INP01 ;Forward manual input |
ifInMan F 2.INP02 ;Ingresso di indietro manuale | ifInMan F 2.INP02 ;Backward manual input |
ifStart F 2.INP03 ;Ingresso di START asse | ifStart F 2.INP03 ;START axis input |
ifStop F 2.INP04 ;Ingresso di STOP asse | ifStop F 2.INP04 ;STOP axis input |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Definizione Variabili OUTPUT | ; Variable Definition OUTPUT |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
OUTPUT | OUTPUT |
ofToll F 2.OUT04 ;Uscita di tolleranza asse | ofToll F 2.OUT04 ;Output axis tolerance |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Dichiarazione device interni | ; Internal device declaration |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
INTDEVICE | INTDEVICE |
;Nome Tipo TCamp Contatore Inter AbilZero OutAva OutInd OutDir OutMov | ;Name Type TCamp Counter Inter AbilZero OutAva OutInd OutDir OutMov |
Asse OOPOS2 0004 2.CNT01 1 2.INP01 2.OUT01 2.OUT02 X.X X.X | Axis OOPOS2 0004 2.CNT01 1 2.INP01 2.OUT01 2.OUT02 X.X X.X |
| |
OutRal OutFre | OutRal OutFre |
</code> | </code> |
| |
==== - Gestione OOPOS2 ==== | ==== - OOPOS2 management ==== |
| |
<code QCL> | <code QCL> |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Nome File: TASK_00.MOD | ; File Name: TASK_00.MOD |
; Progetto: EX_OOPOS2 | ; Project: EX_OOPOS2 |
; Descrizione: Gestione Posizionamento | ; Description: Positioning Control |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Operazioni di Inizializzazione Asse | ; Initialization work Axis |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
Asse:cntratio = 100000 ;Risoluz.encoder = Spazio in 1 giro | Axis:cntratio = 100000 ;Encoder resolution = Space in 1 round |
;encoder(Um) / impulsi giro encoder | ;encoder(Um) / pulses round encoder |
Asse:maxpos = 999999 ;Quota massima | Axis:maxpos = 999999 ;Maximum quota |
Asse:minpos = -999999 ;Quota minima | Axis:minpos = -999999 ;Minimum quota |
Asse:slowpos = 100 ;Quota di rallentamento | Axis:slowpos = 100 ;Slowdown quota |
Asse:tollp = 10 ;Tolleranza positiva | Axis:tollp = 10 ;Positive tolerance |
Asse:tolln = 50 ;Tolleranza negativa | Axis:tolln = 50 ;Negative tolerance |
Asse:tinv = 50 ;Tempo di inversione | Axis:tinv = 50 ;Inversion time |
Asse:slowdly = 50 ;Tempo di rallentamento | Axis:slowdly = 50 ;Slowdown time |
Asse:tbrake = 30 ;Tempo di intervento freno | Axis:tbrake = 30 ;Brake reaction time |
Asse:overpos = 0 ;Oltrequota recupero giochi | Axis:overpos = 0 ;Overquota for backlash recovery |
Asse:bklashmode = 0 ;Tipo recupero giochi | Axis:bklashmode = 0 ;Backlash recovery type |
Asse:ninert = 1 ;Numero fasce di inerzia | Axis:ninert = 1 ;Inertia bands number |
Asse:maxiner = 100 ;Massima inerzia ricalcolata | Axis:maxiner = 100 ;Maximum inertia recalculated |
Asse:toldly = 50 ;Tempo ritardo segnalazione tolleranza | Axis:toldly = 50 ;Time delay tolerance reporting |
Asse:inertmode = 1 ;Tipo di ricalcolo inerzia | Axis:inertmode = 1 ;Recalculation inertia type |
Asse:tool = 0 ;Spessore lama | Axis:tool = 0 ;Blade thickness |
Asse:dobiner = 0 ;Abilitazione inerzie sdoppiate | Axis:dobiner = 0 ;Enabling split inertia |
;(avanti e indietro) | ;(forward and backward) |
Asse:enstol = 0 ;Abilitazione START con l'asse in | Axis:enstol = 0 ;Enable START with the axis |
;tolleranza | ;tolerance |
Asse:prsmode = 0 ;Tipo di ricerca di preset | Axis:prsmode = 0 ;Search type of presets |
Asse:prspos = 0 ;Quota di preset | Axis:prspos = 0 ;Preset quota |
Asse:prsdir = 0 ;Direzione della ricerca di preset | Axis:prsdir = 0 ;Preset search direction |
Asse:decpt = 1 ;Cifre decimali | Axis:decpt = 1 ;Decimal digits |
Asse:unitvel = 1 ;Unità di tempo della velocità | Axis:unitvel = 1 ;Time unit of speed |
Asse:breaktype = 0 ;Logica di intervento del freno | Axis:breaktype = 0 ;Brake intervention logic |
Asse:slowtype = 0 ;Tipo di calcolo rallentamento | Axis:slowtype = 0 ;Slowdown calculation type |
Asse:maxvel = 1000 ;Velocità massima | Axis:maxvel = 1000 ;Maximum speed |
Asse:maxslow = 8 ;Rallentamento calcolato massimo | Axis:maxslow = 8 ;Calculated maximum slowdown |
Asse:minslow = 80 ;Rallentamento calcolato minimo | Axis:minslow = 80 ;Calculated minimum slowdown |
INIT Asse ;Inizializza il device | INIT Axis ;Initializes the device |
WAIT Asse:st_init ;Attendi che il device sia inizializzato | WAIT Axis:st_init ;Wait until the device is initialized |
CNTUNLOCK Asse ;Sblocca conteggio | CNTUNLOCK Axis ;Unlock count |
WAIT NOT Asse:st_cntlock ;Attendi che il conteggio sia sbloccato | WAIT NOT Axis:st_cntlock ;Wait until the count is unlocked |
CNTDIR Asse ;Imposta il senso del conteggio | CNTDIR Axis ;Sets the direction of the count |
WAIT NOT Asse:st_cntrev ;Attendi che sia impostato il senso del | WAIT NOT Axis:st_cntrev ;Wait until it has the sense of |
;conteggio | ;count |
REGON Asse ;Abilita la regolazione | REGON Axis ;Enable the regulation |
WAIT NOT Asse:st_regoff ;Attendi l'abilitazione alla regolazione | WAIT NOT Axis:st_regoff ;Wait for enabling regulation |
IF (slQuotaPos EQ 0) ;Nel caso in cui la quota di posizionamento | IF (slQuotaPos EQ 0) ;In the event that the placement quota |
;dell'asse sia zero | ;of the axis is zero |
slQuotaPos = 2000 ;Imposta una quota di posizionamento | slQuotaPos = 2000 ;Sets a quota of positioning |
ENDIF | ENDIF |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Operazioni di Posizionamento | ; Positioning tasks |
; ------------------------------ variabili utilizzate ------------------------------- | ; --------------------------------- used variables ---------------------------------- |
; slQuotaPos: Variabile impostabile che rappresenta la quota di posizionamento dell'asse | ; slQuotaPos: Adjustable variable that represents the quota of axis positioning |
; -------------------------------- flag utilizzati ---------------------------------- | ; --------------------------------- used flags -------------------------------------- |
; gfMovMan: movimento manuale in corso | ; gfMovMan: Manual movement in progress |
; gfMovAuto: Movimento automatico in corso | ; gfMovAuto: Automatic movement in progress |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
MAIN: | MAIN: |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Gestione uscite | ; Managing outputs |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
ofToll = Asse:st_toll ;Imposto l'uscita di tolleranza come lo | ofToll = Axis:st_toll ;Sets out of tolerance as the |
;stato di tolleranza | ;tolerance state |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Gestione movimenti automatici | ; Managing automatic movements |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
IF ifStart ;Attende l'ingresso di START | IF ifStart ;Waits for the START input |
IF NOT gfMovMan ;Controlla che non ci siano movimenti | IF NOT gfMovMan ;Check that there are no movements |
;manuali | ;manuals |
IF Asse:st_still ;Controlla che l'asse sia fermo | IF Axis:st_still ;Check that the axis is still |
Asse:setpos = slQuotaPos ;Imposta la quota di posizionamento | Axis:setpos = slQuotaPos ;Sets the placement quota |
START Asse ;Esegue lo start dell'asse | START Axis ;Execute the start of axis |
gfMovAuto = 1 ;Segnala movimento automatico in corso | gfMovAuto = 1 ;Automatic movement in progress reports |
ENDIF | ENDIF |
ENDIF | ENDIF |
ENDIF | ENDIF |
IF ifStop ;Attende l'ingresso di STOP | IF ifStop ;Waits for the STOP input |
IF NOT Asse:st_still ;Controlla che l'asse NON sia fermo | IF NOT Axis:st_still ;Check that the axis ISN'T still |
STOP Asse ;Esegue lo stop dell'asse | STOP Axis ;Execute the stop of axis |
ENDIF | ENDIF |
ENDIF | ENDIF |
| |
IF gfMovAuto ;Controlla segnalazione movimento | IF gfMovAuto ;Controls automatic reporting |
;automatico in corso | ;in progress |
IF Asse:st_still ;Controlla che l'asse sia fermo | IF Axis:st_still ;Check that the axis is still |
gfMovAuto = 0 ;Resetta stato di movimento Automatico | gfMovAuto = 0 ;Reset status of Automatic movement |
ENDIF | ENDIF |
ENDIF | ENDIF |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Gestione movimenti manuali | ; Manual movements management |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
IF ifAvMan ;Attende l'ingresso di movimento manuale | IF ifAvMan ;Awaiting the input of manual operation |
IF NOT (gfMovAuto OR gfMovMan) ;Controlla che non ci siano movimenti | IF NOT (gfMovAuto OR gfMovMan) ;Check that there are no movements |
;autometici o manuali | ;automatics or manuals |
IF Asse:st_still ;Controlla che l'asse sia fermo | IF Axis:st_still ;Check that the axis is still |
MANFFW Asse ;Avanti asse in manuale | MANFFW Axis ;Forward axis in manual |
gfMovMan = 1 ;Segnala movimento manuale in corso | gfMovMan = 1 ;Manual movement in progress reports |
ENDIF | ENDIF |
ENDIF | ENDIF |
ENDIF | ENDIF |
IF ifInMan ;Attende l'ingresso di movimento manuale | IF ifInMan ;Awaiting the manual movement input |
IF NOT (gfMovAuto OR gfMovMan) ;Controlla che non ci siano movimenti | IF NOT (gfMovAuto OR gfMovMan) ;Check that there are no movements |
;autometici o manuali | ;automatics or manuals |
IF Asse:st_still ;Controlla che l'asse sia fermo | IF Axis:st_still ;Check that the axis is still |
MANFBW Asse ;Avanti asse in manuale | MANFBW Axis ;Forward axis in manual |
gfMovMan = 1 ;Segnala movimento manuale in corso | gfMovMan = 1 ;Manual movement in progress reports |
ENDIF | ENDIF |
ENDIF | ENDIF |
ENDIF | ENDIF |
IF gfMovMan ;Se l'asse si muove in manuale | IF gfMovMan ;If the axis moves in manual |
IF NOT (ifAvMan OR ifInMan) ;Se gli ingressi di avanti e indietro | IF NOT (ifAvMan OR ifInMan) ;If the forward and backward inputs |
;manuale sono OFF | ;manual is OFF |
STOP Asse ;Ferma l'asse | STOP Axis ;Stop the axis |
gfMovMan = 0 ;Togli la segnalazione di asse in | gfMovMan = 0 ;Remove the reporting of axis |
;movimento manuale | ;in manuale movement |
ENDIF | ENDIF |
ENDIF | ENDIF |
| |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
; Operazioni finali | ; Final operations |
;------------------------------------------------------------------------------------- | ;------------------------------------------------------------------------------------- |
WAIT 1 | WAIT 1 |