Para acceder al registro especial de datos que almacena el código de control del contador de alta velocidad y la salida de pulsos utilizar la variable del sistema sys_wHscOrPulseControlCode. (La variable del sistema sys_wHscOrPulseControlCode se corresponde con el registro especial de datos DT90052.)
Operaciones que se realizan por medio del código de control de la salida de pulsos:
Para decelerar el movimiento cerca de la posición de origen, seleccionar una entrada de proximidad al origen y cambiar el bit 4 del registro de datos especial que almacena el código de control (sys_wHscOrPulseControlCode) a TRUE y de nuevo a FALSE. El bit de proximidad al origen es de retención. Poner este bit a FALSE justo después de ponerlo a TRUE para poder activar la entrada de proximidad al origen durante la vuelta al origen.
Poniendo a 3 el bit sys_wHscOrPulseControlCode del registro de datos que almacena el código de control (TRUE) se detendrá la salida de pulsos. Debería existir la posibilidad de forzar una parada en cualquier programa que utilice instrucciones de salida de pulsos. Poner el bit 3 a FALSE para continuar con la salida de pulsos.
Salida de pulsos
Valor actual
1
Cuando el bit 1 del código de control se pone a TRUE, se inhabilita el contaje y el valor actual mantiene su valor. El contaje continúa cuando el bit 1 se pone a FALSE.
Salida de pulsos
Valor actual
Bit 0 del código de control de la salida de pulsos (reset por software)
Cuando se pone a TRUE el bit 0 del código de control del contador de alta velocidad, se realiza un reset por software y el valor actual se pone a 0. El valor actual se mantiene a 0 hasta que el bit 0 se pone a FALSE.
Para cancelar la ejecución de una instrucción de salida de pulsos, poner el bit 2 del registro de datos que almacena el código de control (sys_wHscOrPulseControlCode) a TRUE. La bandera de control de la salida de pulsos pasará a FALSE. Para habilitar la ejecución de esta instrucción, poner el bit 2 a FALSE.
Los bits del 0–15 del código de control se distribuyen en grupos de cuatro. El valor del bit en cada grupo, se representada por un número hexadecimal (por ejemplo 00020000 0000 1001 = 16#2009).
Grupo |
1) |
Número de canal (canal n: 16#n) |
|
Grupo |
0 (fijo) |
||
Grupo |
2) |
Entrada de proximidad al origen (bit 4) |
|
0: FALSE |
1: TRUE |
||
Grupo |
3) |
Salida de pulsos (bit 3) |
|
0: continuar |
1: detener |
||
4) |
0 (bit 2, fijo) |
||
5) |
Contaje (bit 1) |
||
0: permitir |
1: prohibir |
||
6) |
Resetear el valor actual. Poner a 0 (bit 0) |
||
0: no |
1: si |
Ejemplo: 16#2009
Grupo |
Valor |
Descripción |
|
---|---|---|---|
|
2 |
Número de canal: 2 |
|
|
0 |
(fijo) |
|
|
0 |
Entrada de proximidad al origen: FALSE |
|
|
9 |
9 Hex corresponde a 1001 binario |
|
Salida de pulsos: stop (bit 3) |
1 |
||
(bit 2, fijo) |
0 |
||
Contaje: permitir (bit 1) |
0 |
||
Resetear el valor actual. Poner a 0: si (bit 0) |
1 |
Grupo |
1) |
Número de canal (canal n: 16#n) |
|
Grupo |
2) |
1 (fijo) |
|
Grupo |
3) |
Entrada de proximidad al origen (bit 4) (ver nota) |
|
0: FALSE |
1: TRUE |
||
Grupo |
4) |
Salida de pulsos (bit 3) |
|
0: continuar |
1: detener |
||
5) |
Contaje (bit 1) |
||
0: permitir |
1: prohibir |
||
6) |
Resetear el valor actual. Poner a 0 (bit 0) |
||
0: no |
1: si |
Ejemplo: 16#2109
Grupo |
Valor |
Descripción |
|
---|---|---|---|
|
2 |
Número de canal: 2 |
|
|
1 |
(fijo) |
|
|
0 |
Entrada de proximidad al origen: FALSE |
|
|
9 |
9 Hex corresponde a 1001 binario |
|
Salida de pulsos: stop (bit 3) |
1 |
||
(Bit 2, fijo) |
0 |
||
Contaje: permitir (bit 1) |
0 |
||
Resetear el valor actual. Poner a 0: si (bit 0) |
1 |
Los bits del 0–15 del código de control se distribuyen en grupos de cuatro. El valor del bit en cada grupo, se representada por un número hexadecimal (por ejemplo 00020001 0000 1001 = 16#2109).
Grupo |
1) |
Número de canal (canal n: 16#n) |
|
Grupo |
1 (fijo) |
||
Grupo |
2) |
Petición de inicio del control de posición |
|
0: deshabilitada |
1: habilitado |
||
3) |
Petición de parada decelerada |
||
0: deshabilitada |
1: habilitado |
||
4) |
Entrada de proximidad al origen (bit 4) (ver nota) |
||
0: FALSE |
1: TRUE |
||
Grupo |
5) |
Salida de pulsos (bit 3) |
|
0: continuar |
1: detener |
||
6) |
Cancelar el control de la salida de pulsos (bit 2) |
||
0: continuar |
1: detener |
||
7) |
Contaje (bit 1) |
||
0: permitir |
1: prohibir |
||
8) |
Resetear el valor actual. Poner a 0 (bit 0) |
||
0: no |
1: si |
Ejemplo: 16#2109
Grupo |
Valor |
Descripción |
|
---|---|---|---|
|
2 |
Número de canal: 2 |
|
|
1 |
(fijo) |
|
|
0 |
Inicio del control de posición: deshabilitado |
|
Parada decelerada:deshabilitada |
|||
Entrada de proximidad al origen: FALSE |
|||
|
9 |
9 Hex corresponde a 1001 binario |
|
Salida de pulsos: stop (bit 3) |
1 |
||
Cancelar el control de la salida de pulsos (bit 2) |
0 |
||
Contaje: permitir (bit 1) |
0 |
||
Resetear el valor actual. Poner a 0: si (bit 0) |
1 |
Los bits del 0 al 15 del código de control se distribuyen en grupos de cuatro, cada grupo contiene la configuración de un canal. El valor del bit en cada grupo, se representada por un número hexadecimal (por ejemplo 0000 0000 1001 0000 = 16#90).
Grupo |
|
|
Canal |
1 |
0 |
0: continuar
1: detener
0: FALSE
1: TRUE
0: permitir
1: prohibir
0: no
1: si
Ejemplo: 16#90
Grupo |
Valor |
Descripción |
|
---|---|---|---|
|
9 |
Número de canal: 1 9 Hex corresponde a 1001 binario |
|
Salida de pulsos: stop (bit 3) |
1 |
||
Entrada de proximidad al origen: FALSE (bit 2) |
0 |
||
Contaje: permitir (bit 1) |
0 |
||
Resetear el valor actual. Poner a 0: si (bit 0) |
1 |
||
|
0 |
– |
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
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
La entrada de proximidad al origen se habilita para el canal 2 durante las operaciones de vuelta al origen.
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;
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU.Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
Se fuerza una parada de la salida de pulsos para el canal 0.
if DF(bStopPulseOutput) then
PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
Forzar una parada puede producir un valor actual diferente para el lado del PLC del valor en la entrada del motor. Por lo tanto, se debe realizar una vuelta al origen después de detener la salida de pulsos.