Il device COUNTER3 permette di acquisire un'informazione proveniente da un contatore bidirezionale. Le principali caratteristiche del device sono:
Per poter usufruire del device è necessario eseguirne la dichiarazione nell'apposita sezione INTDEVICE della unit di configurazione.
INTDEVICE <device name> COUNTER3 <TCamp> <ICont> <IdxA> <Out1> <Out2>
Dove:
Nome campo | Descrizione | Esempio | Note |
---|---|---|---|
<device name> | Nome assegnato al device. | Count | - |
COUNTER3 | Parola chiave che identifica il device contatore bidirezionale. | - | - |
<TCamp> | Tempo di campionamento device (1÷255 ms). | 4 | - |
<ICont> | Indirizzo contatore presente nella scheda. | 3.CNT01 | Inserendo il valore X.X il campo viene ignorato |
<IdxA> | Numero della linea di interrupt hardware per la cattura del conteggio | 1 | Inserendo il valore X il campo viene ignorato |
<Out1> | Indirizzo uscita 1 di comparazione | 3.OUT01 | Inserendo il valore X.X il campo viene ignorato |
<Out2> | Indirizzo uscita 2 di comparazione | 3.OUT02 | Inserendo il valore X.X il campo viene ignorato |
Esempio:
INTDEVICE Count COUNTER3 2 2.CNT02 3 2.OUT01 2.OUT02
Tutti i campi della dichiarazione sono obbligatori e devono essere presenti sulla stessa linea. Impostare “X.X” oppure “X” nel caso una risorsa non sia disponibile o non venga utilizzata. Disabilitare una risorsa significa disabilitare tutte le funzionalità del device che la utilizzano. |
---|
Lo schema a blocchi del device è presentato di seguito:
Il blocco “Factors” calcola i fattori di conversione di posizione e velocità. Il “position factor” (PF) è un coefficente per la conversione della posizione espressa con l'unità di misura del trasduttore nell'unità di misura della posizione(Um), e viceversa. Tipicamente l'unità di misura della posizione può essere ad esempio metri piuttosto che millimetri piuttosto che centesimi, mentre l'unità di misura del trasduttore, l'encoder, è sempre impulsi. I parametri che concorrono al calcolo del position factor sono pulse e measure ed è calcolato come rapporto tra questi due.
I comandi INTENBL e INTDSBL abilitano (st_intenbl=1) e disabilitano (st_intenbl=0) la linea di interrupt collegata allimpulso di zero del trasduttore o ad un altro sensore presente. Il valore del parametro capture definisce su quale fronte di tale impulso verrà congelato il conteggio istantaneo; il conteggio catturato viene posto nel parametro delta. Lo stato st_capture segnala che la cattura è avvenuta.
Il device mette a disposizione anche due comparatori che possono essere utilizzati per confrontare il valore corrente del parametro posit con due valori (setpoint1 e setpoint2) introdotto dall'utente. Di conseguenza i comparatori agiranno su due uscita digitali, andando rispettivamente ad attivarle o disattivarle quando le soglie introdotte verranno superate secondo diverse condizioni. Le uscite disponibili sono due (come si evince anche dalla dichiarazione del device e dallo schema) ed il livello di personalizzazione è molto elevato: si può scegliere per ogni comparatore quale uscita comandare, in base a quali condizioni. Il parametro mode1 (che controlla il comparatore 1) sceglie la politica di attivazione o disattivazione dell'uscita corrispondete rispettando determinate regole.
Nella figura sono esemplificate le diverse modalità di funzionamento:
Il device visualizza sempre la posizione assoluta dell'asse; il cambio di conteggio può essere eseguito anche con una scrittura diretta nel nuovo valore nel parametro posit.
Volendo sottrarre 100 unità di misura al conteggio è possibile:
Count.posit = Count.posit - 100
Questa operazione introduce un errore perché impone la posizione “posit = -100”, quando l'asse poteva avere una posizione intermedia tra una unità di misura e la successiva (es. 100.3). Questa frazione (0.3) viene persa ed il ripetersi di queste operazioni provocano l'accumularsi di un errore non trascurabile.
A tale scopo esiste invece il comando DELCNT che permette di modificare il posit di un valore impostabile tramite il parametro delta.
Per esempio supponiamo di aver configurato pulse e measure in modo che la posizione sia espressa in decimi di grado. Se posit esprime la posizione angolare e vogliamo che questa sia sempre compresa tra zero e 360 gradi dovremmo aggiungere il seguente codice:
IF Count.posit GE 3600 Count.delta = -3600 Count.DELCNT ENDIF
Per le condizioni di esecuzione del comando vedere la descrizione dello stesso.
Il funzionamento del comando DELCNT è assicurato anche nel caso in cui una unità di misura non sia esprimibile in un numero finito di impulsi primari. Per esempio con i parametri measure = 1000 e pulse = 1024, il valore 3600 dell'esempio precedente corrisponde a 3686,4 impulsi. Grazie ad un sofisticato algoritmo interno il device riesce a considerare la parte frazionaria di questo valore e tramite degli accumulatori interni essa diventa parte dell'informazione utilizzata per modificare il valore di posit.
Esempio:
si supponga la seguente impostazione: pulse = 10, measure = 1. Si supponga inoltre che la lettura della posizione dell'asse risulti essere 2 e si trovi nel punto A. Si vogliono sommare alla posizione posit due unità di misura.
Con le istruzioni:
Count.posit = Count.posit + 2
l'asse assume la nuova posizione B. Con le istruzioni:
Count.delta = 2 Count.DELCNT Asse
viene raggiunta la posizione C.
Si noti che se viene modificato direttamente posit senza utilizzare il comando DELCNT (come nel primo esempio) è introdotto un errore.
Se si devono inviare comandi DELCNT in successione, è conveniente calcolare la grandezza da sommare ed inviare una sola volta il comando. Se ciò non fosse possibile bisogna prestare attenzione a non inviare comandi successivi senza interporre una istruzione di lettura su parametro device. Esempio: Count.delta = 3 Count.DELCNT WAIT Count.delta Count.delta = 40 Count.DELCNT |
---|
La presenza di un errore nel device viene segnalato dallo stato st_error.
Quando st_error è uguale a 1, troviamo presente sulla variabile errcode il tipo di errore intervenuto (vedi tabella) e nella variabile errvalue una indicazione sulla causa dellerrore.
Se il device va in errore, per poter riprendere la lavorazione bisogna cancellare lo stato st_error attraverso il comando RSERR.
La presenza di un warning nel device viene segnalato dallo stato st_warning.
Quando st_warning è uguale a 1, troviamo presente sulla variabile wrncode il tipo di warning intervenuto (vedi tabella) e nella variabile wrnvalue una indicazione sulla causa che ha provocato il warning.
Codice | Priorità | Descrizione |
---|---|---|
1 | 0 | Comando non eseguito |
Per cancellare lo stato st_warning bisogna inviare il comando RSWRN.
Breve descrizione | Misura di riferimento per il calcolo del fattore di conversione tra impulsi primari ed unità di misura |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | Um |
Range valido | 1÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica lo spazio, in unità di misura, percorso dall'asse per ottenere gli impulsi primari impostati nel parametro pulse. Questo parametro è utilizzato per il calcolo del fattore di conversione tra impulsi primari ed unità di misura.
posit = encoder * measure / pulse
Il rapporto measure / pulse deve avere un valore compreso tra 0.00935 e 1.
Breve descrizione | Numero di impulsi primari per il calcolo del fattore di conversione tra impulsi primari e unità di misura |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 1÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica il numero di impulsi primari che genererà il trasduttore bidirezionale per ottenere un movimento pari a measure. Questo parametro è utilizzato per il calcolo del fattore di conversione tra impulsi primari ed unità di misura.
posit = encoder * measure / pulse
Il rapporto measure / pulse deve avere un valore compreso tra 0.00935 e 1.
Breve descrizione | Posizione attuale in unità di misura |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | Um |
Range valido | - |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
È il valore della posizione istantanea dell'asse in unità di misura.
posit = encoder * measure / pulse.
Breve descrizione | Posizione attuale in impulsi primari |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | Impulsi primari |
Range valido | - |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Esprime la posizione attuale in impulsi primari.
Breve descrizione | Variazione della posizione attuale per l'utilizzo del comando DELCNT |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | Um |
Range valido | -999999÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
È il valore che viene sommato alla posizione attuale quando viene inviato un comando DELCNT. Inoltre sul parametro delta viene memorizzata la posizione quando si utilizza l'acquisizione sull'attivazione di un ingresso digitale per interruzione.
Breve descrizione | Tipo di asse |
---|---|
Dimensione | Flag |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | -999999÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Permette di selezionare il tipo di asse con cui si sta lavorando:
Breve descrizione | Modalità di cattura della posizione su attivazione di un ingresso digitale per interruzione |
---|---|
Dimensione | Byte |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 0÷2 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Il parametro definisce il modo di cattura della posizione in impulsi primari sull'attivazione di un ingresso digitale per interruzione :
per interruzione dopo l'attivazione di st_intenbl;
Breve descrizione | Tempo di campionamento del frequenzimetro |
---|---|
Dimensione | Byte |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 0÷5 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Definisce il tempo di campionamento del frequenzimetro:
Il device, per il calcolo della frequenza dei segnali in ingresso al contatore bidirezionale (parametro frq), conta il numero di impulsi ricevuti in un intervallo di tempo definito tramite il parametro tbf e calcola un valore medio. Minore è il tempo di campionamento più veloce sarà l'aggiornamento del parametro frq, ma bisogna prestare attenzione a basse frequenze perché il tempo di campionamento non potrebbe essere sufficientemente lungo per raccogliere campioni.
Breve descrizione | Frequenza dei segnali di ingresso |
---|---|
Dimensione | Long |
Valore di default | 0 |
Tipo di accesso | Read |
Unità di misura | Hz |
Range valido | - |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
È il valore della frequenza dei segnali in ingresso al contatore bidirezionale. L'aggiornamento è eseguito con frequenza dettata dal tempo di campionamento scelto tramite il parametro tbf.
Breve descrizione | Modalità di comando dell'uscita indicata in selout1 da parte del comparatore |
---|---|
Dimensione | Byte |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 0÷6 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Con questo parametro si decidono le regole di attivazione e disattivazione dell'uscita indicata nel parametro selout1 da parte del comparatore.
Breve descrizione | Uscita comandata dal comparatore 1 |
---|---|
Dimensione | Byte |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 0÷1 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica quale uscita viene comandata dal comparatore 1:
Breve descrizione | Soglia di comparazione per il comparatore 1 |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | Um |
Range valido | -999999÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Definisce il setpoint (la soglia) con cui viene confrontato il valore istantaneo di posizione in impulsi primari. L'uscita modificata di conseguenza è quella indicata dal parametro selout1.
Breve descrizione | Tempo di ritardo di attivazione dell'uscita selout1 |
---|---|
Dimensione | Word |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | ms |
Range valido | -999999÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Relativamente all'uscita indicata da selout1, questo parametro definisce un intervallo di tempo che intercorre tra l'evento che comanda la commutazione dell'uscita e la commutazione vera e propria (in altre parole viene introdotto un ritardo alla attivazione o disattivazione dell'uscita digitale.)
Breve descrizione | Modalità di comando dell'uscita indicata in selout1 da parte del comparatore |
---|---|
Dimensione | Byte |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 0÷6 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Con questo parametro si decidono le regole di attivazione e disattivazione dell'uscita indicata nel parametro selout2 da parte del comparatore.
Breve descrizione | Uscita comandata dal comparatore 1 |
---|---|
Dimensione | Byte |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | - |
Range valido | 0÷1 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica quale uscita viene comandata dal comparatore 2:
Breve descrizione | Soglia di comparazione per il comparatore 1 |
---|---|
Dimensione | Long |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | Um |
Range valido | -999999÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Definisce il setpoint (la soglia) con cui viene confrontato il valore istantaneo di posizione in impulsi primari. L'uscita modificata di conseguenza è quella indicata dal parametro selout2.
Breve descrizione | Tempo di ritardo di attivazione dell'uscita selout1 |
---|---|
Dimensione | Word |
Valore di default | Ritentivo |
Tipo di accesso | Read - Write |
Unità di misura | ms |
Range valido | -999999÷999999 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Relativamente all'uscita indicata da selout2, questo parametro definisce un intervallo di tempo che intercorre tra l'evento che comanda la commutazione dell'uscita e la commutazione vera e propria (in altre parole viene introdotto un ritardo alla attivazione o disattivazione dell'uscita digitale.)
Breve descrizione | Codice di identificazione errore |
---|---|
Dimensione | Byte |
Valore di default | 0 |
Tipo di accesso | Read |
Unità di misura | - |
Range valido | 0÷100 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica il tipo di errore intervenuto nel sistema. Quando st_error = 1 si trova presente sulla variabile errcode il tipo di errore intervenuto e nella variabile errvalue una indicazione sulla causa dell'errore. Se il device va in errore, per riprendere la lavorazione bisogna cancellare lo stato st_error attraverso il comando RSERR.
Questo device non prevede alcun codice di errore.)
Breve descrizione | Codice di identificazione della causa dell'errore |
---|---|
Dimensione | Byte |
Valore di default | 0 |
Tipo di accesso | Read |
Unità di misura | - |
Range valido | 0÷100 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica la causa dell'errore intervenuto nel sistema. Il codice è valido solo se st_error = 1.)
Breve descrizione | Codice di identificazione warning |
---|---|
Dimensione | Byte |
Valore di default | 0 |
Tipo di accesso | Read |
Unità di misura | - |
Range valido | 0÷100 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica il tipo di warning intervenuto nel sistema. Lo stato st_warning indica un evento non grave che garantisce comunque il funzionamento del device. Quando st_warning è uguale a 1, troviamo presente nella variabile wrncode il tipo di warning intervenuto (vedi tabella) e nella variabile wrnvalue una indicazione sulla causa che ha provocato il warning. Per cancellare lo stato st_warning bisogna inviare il comando RSWRN.)
Codice | Priorità | Descrizione |
---|---|---|
1 | 0 | Comando non eseguito |
—-
Breve descrizione | Codice di identificazione della causa del warning |
---|---|
Dimensione | Byte |
Valore di default | 0 |
Tipo di accesso | Read |
Unità di misura | - |
Range valido | 0÷100 |
ID parametro | - |
Condizioni di scrittura | - |
Descrizione:
Indica la causa del warning intervenuto nel sistema.)
Breve descrizione | Stato di aggiornamento posizione disabilitato |
---|---|
Valore di default | Ritentivo |
ID stato | - |
Descrizione:
Segnalazione di aggiornamento posizione bloccato:
Breve descrizione | Stato di inversione aggiornamento posizione |
---|---|
Valore di default | Ritentivo |
ID stato | - |
Descrizione:
Segnalazione di aggiornamento posizione invertito:
Breve descrizione | Stato di attivazione dell'ingresso digitale per interruzione |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Segnala l'abilitazione alla cattura della posizione istantanea dell'ingresso digitale per interruzione; viene attivato dal comando INTENBL e disattivato dal comando INTDSBL o sul fronte di salita di st_capture.
Breve descrizione | Attivazione della cattura della posizione istantanea |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Viene attivato alla cattura della posizione istantanea, è resettato tramite il comando RSCAPTURE.
Breve descrizione | Stato dell'ingresso digitale per interruzione |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Indica lo stato dell'ingresso digitale per interruzione :
Breve descrizione | Stato della comparazione 1 |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Segnalazione di attivazione della comparazione 1:
Breve descrizione | Stato della comparazione 2 |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Segnalazione di attivazione della comparazione 2:
Breve descrizione | Presenza di un errore |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Indica lo stato di errore del device, per riconoscere il tipo di errore si deve far riferimento alle variabili errcode ed errvalue:
Breve descrizione | Presenza di un warning |
---|---|
Valore di default | 0 |
ID stato | - |
Descrizione:
Indica lo stato di warning del device, per riconoscere il tipo di warning si deve far riferimento alle variabili wrncode e wrnalue:
I comandi a disposizione per gestire il device sono qui elencati in ordine di piorità decrescente. Esistono due vie alternative per eseguire un comando: * Tramite i pannelli watches di QView * Con una istruzione QCL
Nel secondo caso l'esecuzione del programma QCL sarà bloccata fino al termine del comando stesso la cui durata è comunque compresa fra 0 e 2 tempi di campionamento.
Breve descrizione | Disabilita l'aggiornamento della posizione attuale |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Disabilita l'aggiornamento della posizione attuale. In questa situazione l'eventuale spostamento dell'asse non viene rilevato.
Breve descrizione | Abilita l'aggiornamento della posizione attuale |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Abilita l'aggiornamento della posizione attuale.
Breve descrizione | Inversione dell'aggiornamento posizione |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Consente di invertire il segno dell'aggiornamento posizione; lo stato st_cntrev è posto a 1.
Breve descrizione | Aggiornamento posizione non invertita |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Disabilita una eventuale inversione dell'aggiornamento posizione; lo stato st_cntrev è posto a zero.
Breve descrizione | Abilitazione della cattura della posizione istantanea su attivazione dell'ingresso digitale per interruzione |
---|---|
Condizione | capture>0 |
ID comando | - |
Descrizione:
Attiva la cattura della posizione attuale sulla attivazione dell'ingresso digitale per interruzione dedicata, il valore verrà memorizzato nel parametro delta. Attiva lo stato st_intenbl.
Breve descrizione | Disabilitazione della cattura della posizione attuale su attivazione dell'ingresso digitale per interruzione |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Disattiva la cattura della posizione attuale sulla attivazione dell'ingresso digitale per interruzione dedicata. Disattiva lo stato st_intenbl.
Breve descrizione | Disattivazione dello stato di cattura |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Disattiva lo stato di capture st_capture.
Breve descrizione | Comando di modifica di posit di un valore pari a delta |
---|---|
Condizione | st_intenbl=0 |
ID comando | - |
Descrizione:
La posizione dell'asse viene modificata sommandogli algebricamente il valore specificato nella variabile delta.
Breve descrizione | Attivazione della comparazione 1 |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Forza l'attivazione dello stato st_cmp1.
Breve descrizione | Reset della comparazione 1 |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Azzera lo stato st_cmp1.
Breve descrizione | Attivazione della comparazione 2 |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Forza l'attivazione dello stato st_cmp2.
Breve descrizione | Reset della comparazione 2 |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Azzera lo stato st_cmp2.
Breve descrizione | Reset dello stato di errore |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Azzera lo stato st_error.
Breve descrizione | Reset dello stato di warning |
---|---|
Condizione | - |
ID comando | - |
Descrizione:
Azzera lo stato st_warning.
Se vengono modificati i parametri measure o pulse successivamente allinvio del comando DELCNT, vengono azzerati i resti della conversione del delta spazio in impulsi.
Questo esempio è compilabile nell'ambiente QView 6.0 o superiori. |
---|
;************************************************************************************* ; COUNTER3 example ;************************************************************************************* ; Bus declaration BUS 1 1K31F 20 2 . . 3 1MG8F . 4 . ; Input declaration INPUT ifEnableZ F 3.INP01 ;Zero pulse capture enabling ifEnableComp F 3.INP03 ;Comparation enabling ; Output declaration OUTPUT out201 F 3.OUT01 ;Comparation output #1 out202 F 3.OUT02 ;Comparation output #2 ; Device declaration INTDEVICE Count COUNTER3 2 3.CNT01 1 3.OUT01 3.OUT02 END
SYSTEM slPrsPos L IN ;Quota di preset slSet1 L IN ;Setpoint 1 slSet2 L IN ;Setpoint 2 GLOBAL gfApp01 F gfApp02 F BEGIN ;------------------------------------------------------------------------------------- ; Initialization ;------------------------------------------------------------------------------------- Count.measure = 1000 ;measure per round Count.pulse = 1000 ;pulse per round Count.capture = 1 ;set capture on rise edge IF slSet1 EQ 0 slSet1 = 500 ;Default value ENDIF IF slSet2 EQ 0 slSet2 = 100 ;Default value ENDIF MAIN: IF ifEnableZ ;If the input is ON Count.INTENBL ;Zero pulse enabling ELSE Count.INTDSBL ;Zero pulse disabling ENDIF IF Count.st_capture ;When the count has captured Count.delta = -(Count.delta - slPrsPos) ;load delta Count.DELCNT ;Set the new position Count.RSCAPTURE ;Reset the capture ENDIF IF ifEnableComp ;When it is enabled IF NOT gfApp01 Count.mode1 = 5 ;Set Mode1 for comparation 1 Count.selout1 = 0 Count.setpoint1 = slSet1 Count.timer1 = 0 Count.mode2 = 6 ;Set Mode2 for comparation 2 Count.selout2 = 1 Count.setpoint2 = slSet2 Count.timer2 = 0 gfApp01 = 1 gfApp02 = 0 ENDIF ELSE ;When it is not enabled IF NOT gfApp02 Count.mode1 = 0 ;Comparation 1 disabled RESOUT out201 ;Reset output Count.selout1 = 0 Count.mode2 = 0 ;Comparation 1 disabled RESOUT out202 ;Reset output Count.selout2 = 1 gfApp01 = 0 gfApp02 = 1 ENDIF ENDIF WAIT 1 JUMP MAIN END