RAMP
Gera rampa de valores de X0 a X1 em um período de tempo TR.
Bloco
RAMP
+-----+
RUN---| |---BUSY
| |
X0---| |---XOUT
| |
X1---| |
| |
TR---| |
+-----+
Parâmetros
Nome |
Classe |
Tipo |
Dim. |
V. Ini. |
Descrição |
RUN |
Entrada |
BOOL |
FALSE |
0 - track X0, 1 - ramp to/track X1 |
|
X0 |
Entrada |
REAL |
0.0 |
Input value |
|
X1 |
Entrada |
REAL |
0.0 |
Tracking value |
|
TR |
Entrada |
TIME |
T#0ms |
Ramp duration |
|
BUSY |
Saída |
BOOL |
FALSE |
BUSY = 1 during ramping period |
|
XOUT |
Saída |
REAL |
0.0 |
Output value |
Exemplo
Declaração de Variáveis
Nome |
Tipo |
Descrição |
|---|---|---|
RAMP_X0 |
REAL |
Valor inicial da rampa |
RAMP_X1 |
REAL |
Valor final da rampa |
RAMP_TR |
TIME |
Duração da rampa |
Código ST
(* ... *)
(* inicializa parametros para bloco RAMP *)
(* por exemplo rampa dos valores 0.0 a 100.0 em 30 seg. *)
RAMP_X0 := 0.0; (* parametro X0 *)
RAMP_X1 := 100.0; (* parametro X1 *)
RAMP_TR := T#30s; (* parametro TR *)
(* executa bloco RAMP *)
my_RAMP(
RUN := gl_RAMP_RUN, (* RUN *)
X0 := gl_RAMP_X0, (* X0 *)
X1 := gl_RAMP_X1, (* X1 *)
TR := gl_RAMP_TR (* TR *)
);
(* testa se finalizou a rampa *)
if (my_RAMP.BUSY) then
if (my_RAMP.XOUT < 50.0) then
(* ... *)
end_if;
else
(* ... *)
end_if;
(* ... *)