È possibile accedere al registro dati speciale in cui sono memorizzati i codici di controllo del contatore veloce e dell'uscita ad impulsi con la variabile di sistema sys_wHscOrPulseControlCode. (La variabile di sistema sys_wHscOrPulseControlCode corrisponde al registro dati speciale DT90052.)
Operazioni eseguite dal codice di controllo dell'uscita ad impulsi:
Per decelerare il moto durante l'avvicinamento alla posizione di home, si deve stabilire un ingresso near home e mettere il bit 4 del registro dati speciali nel quale è memorizzato il codice di controllo per l'uscita degli impulsi (sys_wHscOrPulseControlCode) prima su TRUE e poi di nuovo su FALSE. Il bit near home viene mantenuto. Per poter impostare l'ingresso near home una seconda volta durante un Home Return (ritorno alla posizione iniziale), impostate questo bit su FALSE subito dopo averlo impostato su TRUE.
L'uscita ad impulsi si arresta impostando il bit 3 del registro contenente il codice di controllo dell'uscita impulsi (sys_wHscOrPulseControlCode) su TRUE. La possibilità di uno stop uscita impulsi dovrebbe essere prevista in ogni programma facente che utilizza istruzioni per l'uscita ad impulsi. Per proseguire l'uscita ad impulsi reimpostare il bit 3 su FALSE.
Uscita ad impulsi
Valore corrente
1
Quando il bit 1 del codice di controllo è impostato su TRUE, il conteggio è proibito e il valore corrente mantiene il suo valore attuale. Il conteggio prosegue quando il bit 1 viene resettato su FALSE.
Uscita ad impulsi
Valore corrente
Bit 0 del codice di controllo dell'uscita impulsi (reset software)
Quando il bit 0 del codice di controllo è impostato su TRUE, viene eseguito un reset software del valore corrente di conteggio che viene posto a 0. Il valore corrente resta al valore 0 finché il bit 0 non viene resettato su FALSE.
Per disattivare l'esecuzione di un'istruzione di uscita ad impulsi, impostare il bit 2 del registro dati contenente il codice di controllo dell'uscita impulsi (sys_wHscOrPulseControlCode) su TRUE. Il flag di controllo dell'uscita ad impulsi passerà allora a FALSE. Per riabilitare l'esecuzione dell'istruzione, riportare il bit 2 a FALSE.
I bit 0–15 del codice di controllo vengono allocati in gruppi di quattro. L'impostazione dei bit in ciascun gruppo è rappresentata da un numero esadecimale (p.es. 00020000 0000 1001 = 16#2009).
Gruppo |
(1) |
Numero di canale (canale n: 16#n) |
|
Gruppo |
0 (fisso) |
||
Gruppo |
(2) |
Ingresso near home (bit 4) |
|
0: FALSE |
1: TRUE |
||
Gruppo |
(3) |
Uscita ad impulsi (bit 3) |
|
0: continua |
1: stop |
||
(4) |
0 (bit 2, fisso) |
||
(5) |
Conta (bit 1) |
||
0: permetti |
1: proibisci |
||
(6) |
Resetta valore corrente su 0 (bit 0) |
||
0: no |
1: sì |
Esempio: 16#2009
Gruppo |
Valore |
Descrizione |
|
---|---|---|---|
|
2 |
Numero di canale: 2 |
|
|
0 |
(fisso) |
|
|
0 |
Ingresso near home: FALSE |
|
|
9 |
9 esadec. corrisponde a 1001 binario |
|
Uscita ad impulsi: stop (bit 3) |
1 |
||
(bit 2, fisso) |
0 |
||
Conta: permetti (bit 1) |
0 |
||
Resetta valore corrente su 0: sì (bit 0) |
1 |
Gruppo |
(1) |
Numero di canale (canale n: 16#n) |
|
Gruppo |
(2) |
1 (fisso) |
|
Gruppo |
(3) |
Ingresso near home (bit 4) (vedere la nota) |
|
0: FALSE |
1: TRUE |
||
Gruppo |
(4) |
Uscita ad impulsi (bit 3) |
|
0: continua |
1: stop |
||
(5) |
Conta (bit 1) |
||
0: permetti |
1: proibisci |
||
(6) |
Resetta valore corrente su 0 (bit 0) |
||
0: no |
1: sì |
Esempio: 16#2109
Gruppo |
Valore |
Descrizione |
|
---|---|---|---|
|
2 |
Numero di canale: 2 |
|
|
1 |
(fisso) |
|
|
0 |
Ingresso near home: FALSE |
|
|
9 |
9 esadec. corrisponde a 1001 binario |
|
Uscita ad impulsi: stop (bit 3) |
1 |
||
(bit 2 fisso) |
0 |
||
Conta: permetti (bit 1) |
0 |
||
Resetta valore corrente su 0: sì (bit 0) |
1 |
I bit 0–15 del codice di controllo vengono allocati in gruppi di quattro. L'impostazione dei bit in ciascun gruppo è rappresentata da un numero esadecimale (p.es. 00020001 0000 1001 = 16#2109).
Gruppo |
(1) |
Numero di canale (canale n: 16#n) |
|
Gruppo |
1 (fisso) |
||
Gruppo |
(2) |
Richiesta inizio controllo di posizione |
|
0: disabilitato |
1: abilitato |
||
(3) |
Richiesta stop decelerato |
||
0: disabilitato |
1: abilitato |
||
(4) |
Ingresso near home (bit 4) (vedere la nota) |
||
0: FALSE |
1: TRUE |
||
Gruppo |
(5) |
Uscita ad impulsi (bit 3) |
|
0: continua |
1: stop |
||
(6) |
Cancella funzioni controllo uscita ad impulsi in esecuzione (bit 2) |
||
0: continua |
1: stop |
||
(7) |
Conta (bit 1) |
||
0: permetti |
1: proibisci |
||
(8) |
Resetta valore corrente su 0 (bit 0) |
||
0: no |
1: sì |
Esempio: 16#2109
Gruppo |
Valore |
Descrizione |
|
---|---|---|---|
|
2 |
Numero di canale: 2 |
|
|
1 |
(fisso) |
|
|
0 |
Richiesta inizio controllo di posizione: disabilitata |
|
Richiesta stop decelerato: disabilitata |
|||
Ingresso near home: FALSE |
|||
|
9 |
9 esadec. corrisponde a 1001 binario |
|
Uscita ad impulsi: stop (bit 3) |
1 |
||
Cancella funzioni controllo uscita ad impulsi in esecuzione (bit 2) |
0 |
||
Conta: permetti (bit 1) |
0 |
||
Resetta valore corrente su 0: sì (bit 0) |
1 |
I bit 0–15 del codice di controllo vengono allocati in gruppi di quattro e ciascun gruppo contiene le impostazioni per un canale. L'impostazione dei bit in ciascun gruppo è rappresentata da un numero esadecimale (p.es. 0000 0000 1001 0000 = 16#90).
Gruppo |
|
|
Canale |
1 |
0 |
0: continua
1: stop
0: FALSE
1: TRUE
0: permetti
1: proibisci
0: no
1: sì
Esempio: 16#90
Gruppo |
Valore |
Descrizione |
|
---|---|---|---|
|
9 |
Numero di canale: 1 9 esadec. corrisponde a 1001 binario |
|
Uscita ad impulsi: stop (bit 3) |
1 |
||
Ingresso near home: FALSE (bit 2) |
0 |
||
Conta: permetti (bit 1) |
0 |
||
Resetta valore corrente su 0: sì (bit 0) |
1 |
||
|
0 |
– |
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
bEnableNearHome: BOOL:=FALSE;
END_VAR
VAR CONSTANT
PLS_CH2_ENABLE_NEAR_HOME: WORD:=16#2010;
(*Enables near home input for channel 2*)
PLS_CH2_CONTINUE: WORD:=16#2000;
(*Disables near home input for channel 2
and starts deceleration*)
END_VAR
L’ingresso near home è abilitato per il canale 2 durante le operazioni di Home.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,PLS_CH2_ENABLE_NEAR_HOME,20,2,22,4,);
B(B_VARIN,,PLS_CH2_CONTINUE,20,6,22,8,);
B(B_F,E_MOVE!,Instance,22,0,28,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,2,30,4,);
B(B_F,E_MOVE!,Instance,22,4,28,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,6,30,8,);
B(B_CONTACT,,bEnableNearHome,4,1,6,3,R);
L(7,2,7,6);
L(1,2,4,2);
L(6,2,22,2);
L(7,6,22,6);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if DF(bEnableNearHome) then
PLS_CH2_ENABLE_NEAR_HOME:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU.La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
Per il canale 0 viene effettuato uno stop uscita impulsi dell'uscita ad impulsi.
if DF(bStopPulseOutput) then
PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
L'esecuzione di uno stop uscita impulsi può avere per conseguenza che il valore corrente all'uscita del PLC sia diverso dal valore corrente all'ingresso del motore. Per tale motivo, dopo che l'uscita ad impulsi ha effettuato lo stop, si deve eseguire un Home.