Both sides previous revision Previous revision Next revision | Previous revision |
en:software:devices:oopos2 [2017/01/17 17:36] – [7.4. Stati] 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. |
| |
^ Name ^ D ^ R ^ A ^ Conditions ^ Description ^ | ^ 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 |