Referencia de la Biblioteca Estándar de ZPLC
ZPLC proporciona un conjunto completo de bloques de función estándar (FBs) y funciones que cumplen con IEC 61131-3. Estos están disponibles en todos los editores (ST, IL, LD, FBD, SFC).
A continuación se muestra la referencia exhaustiva a todas las funciones estándar disponibles en el runtime de ZPLC.
1. Timers (Temporizadores)
TON (Temporizador On-Delay)
Retrasa un flanco de subida. La salida Q se vuelve TRUE solo después de que IN haya sido TRUE durante la duración de PT.
- Entradas:
IN(BOOL): Condición de disparo.PT(TIME): Tiempo preestablecido (duración a esperar).
- Salidas:
Q(BOOL): High siINha sido alto continuamente durantePT.ET(TIME): Tiempo transcurrido desde queINse puso en alto.
TOF (Temporizador Off-Delay)
Conserva un estado alto durante un tiempo después de un flanco de bajada. Q sigue a IN a TRUE inmediatamente, pero retrasa su paso a FALSE hasta que haya transcurrido PT.
- Entradas:
IN(BOOL): Condición de disparo.PT(TIME): Tiempo preestablecido (duración a mantener en alto).
- Salidas:
Q(BOOL): Verdadero mientrasINsea verdadero, más el tiempoPTdespués de queINse vuelva falso.ET(TIME): Tiempo transcurrido desde queINse puso en bajo.
TP (Temporizador de Pulso)
Genera un pulso de duración fija, sin importar cuánto tiempo permanezca alta la entrada.
- Entradas:
IN(BOOL): Condición de disparo (el flanco de subida inicia el pulso).PT(TIME): Tiempo de pulso.
- Salidas:
Q(BOOL): Lanza un pulso verdadero durante el tiempoPTen el flanco de subida deIN.ET(TIME): Tiempo transcurrido desde que inició el pulso.
2. Contadores
CTU (Contador Ascendente)
Incrementa un valor con cada flanco de subida de la entrada.
- Entradas:
CU(BOOL): Disparo de conteo ascendente (flanco de subida).R(BOOL): Entrada de Reset; cuando es TRUE,CVse reinicia a 0.PV(INT): Valor de Preselección (Preset).
- Salidas:
Q(BOOL): TRUE siCV >= PV.CV(INT): Valor actual del contador.
CTD (Contador Descendente)
Decrementa un valor con cada flanco de subida de la entrada.
- Entradas:
CD(BOOL): Disparo de conteo descendente (flanco de subida).LD(BOOL): Load; cuando es TRUE,CVse establece enPV.PV(INT): Valor inicial.
- Salidas:
Q(BOOL): TRUE siCV <= 0.CV(INT): Valor actual del contador.
CTUD (Contador Ascendente/Descendente)
Combina características de CTU y CTD.
- Entradas:
CU(BOOL): Disparo ascendente.CD(BOOL): Disparo descendente.R(BOOL): Reset a 0.LD(BOOL): CargarPVenCV.PV(INT): Valor preestablecido.
- Salidas:
QU(BOOL): TRUE siCV >= PV.QD(BOOL): TRUE siCV <= 0.CV(INT): Valor actual del contador.
3. Elementos Biestables (Flip-Flops)
RS (Flip-Flop Dominante Reset)
- Entradas:
S(BOOL, Set),R1(BOOL, Reset). - Salidas:
Q1(BOOL). - Comportamiento: Enclava
Q1a TRUE cuandoSes TRUE. ReiniciaQ1a FALSE cuandoR1es TRUE. Si tantoScomoR1son TRUE, la salida es FALSE (gana el Reset).
SR (Flip-Flop Dominante Set)
- Entradas:
S1(BOOL, Set),R(BOOL, Reset). - Salidas:
Q1(BOOL). - Comportamiento: Enclava
Q1a TRUE cuandoS1es TRUE. ReiniciaQ1a FALSE cuandoRes TRUE. Si tantoS1comoRson TRUE, la salida es TRUE (gana el Set).
4. Detección de Flancos
R_TRIG (Detector de Flanco de Subida)
- Entradas:
CLK(BOOL). - Salidas:
Q(BOOL). - Comportamiento:
Qes TRUE durante un solo ciclo de ejecución cuandoCLKtransiciona de FALSE a TRUE.
F_TRIG (Detector de Flanco de Bajada)
- Entradas:
CLK(BOOL). - Salidas:
Q(BOOL). - Comportamiento:
Qes TRUE durante un solo ciclo de ejecución cuandoCLKtransiciona de TRUE a FALSE.
5. Funciones Matemáticas
Operadores Aritméticos
- ADD(IN1, IN2): Retorna
IN1 + IN2. Soporta ANY_NUM (INT, REAL). - SUB(IN1, IN2): Retorna
IN1 - IN2. Soporta ANY_NUM. - MUL(IN1, IN2): Retorna
IN1 * IN2. Soporta ANY_NUM. - DIV(IN1, IN2): Retorna
IN1 / IN2. Soporta ANY_NUM. - MOD(IN1, IN2): Retorna el residuo entero de
IN1 / IN2. Soporta ANY_INT.
Matemáticas Avanzadas
ABS
- Entradas:
IN(ANY_NUM). - Salidas: (ANY_NUM) Valor absoluto de IN.
SQRT
- Entradas:
IN(REAL). - Salidas: (REAL) Raíz cuadrada de IN.
SIN / COS / TAN
- Entradas:
IN(REAL). - Salidas: (REAL) Seno, Coseno o Tangente de IN (en radianes).
6. Funciones de Selección
MAX
- Entradas:
IN1(ANY_NUM),IN2(ANY_NUM). - Salidas: (ANY_NUM) El mayor de los dos.
MIN
- Entradas:
IN1(ANY_NUM),IN2(ANY_NUM). - Salidas: (ANY_NUM) El menor de los dos.
LIMIT
- Entradas:
MN(ANY_NUM, mínimo),IN(ANY_NUM, entrada),MX(ANY_NUM, máximo). - Salidas: (ANY_NUM) Retorna
MNsiIN < MN, retornaMXsiIN > MX, en otro caso retornaIN.
SEL
- Entradas:
G(BOOL, condición),IN0(ANY, retorna si G es FALSE),IN1(ANY, retorna si G es TRUE). - Salidas: (ANY)
IN0oIN1.
MUX
- Entradas:
K(INT, selector),IN0,IN1,...(ANY). - Salidas: (ANY) Retorna
INk.
7. Funciones de Bits
Operadores Lógicos
- AND(IN1, IN2): AND Bit a bit. Soporta ANY_BIT (BYTE, WORD, DWORD).
- OR(IN1, IN2): OR Bit a bit.
- XOR(IN1, IN2): OR Exclusivo Bit a bit.
- NOT(IN): Inversión.
Rotación y Desplazamiento
SHL
- Entradas:
IN(ANY_BIT),N(INT, número de bits). - Salidas: (ANY_BIT)
INdesplazado a la izquierda.
SHR
- Entradas:
IN(ANY_BIT),N(INT). - Salidas: (ANY_BIT)
INdesplazado a la derecha.
ROL
- Entradas:
IN(ANY_BIT),N(INT). - Salidas: (ANY_BIT) Valor rotado a la izquierda.
ROR
- Entradas:
IN(ANY_BIT),N(INT). - Salidas: (ANY_BIT) Valor rotado a la derecha.
8. Funciones de Cadenas (Strings)
- LEN(s): Retorna la longitud actual (INT).
- CONCAT(s1, s2): Adjunta
s2as1. - COPY(src, dst): Copia
srcadst. - CLEAR(s): Vacía la cadena a longitud 0.
- LEFT(s, n): Mantiene solo los
ncaracteres izquierdos des. - RIGHT(s, n): Mantiene solo los
ncaracteres derechos des. - MID(s, pos, n): Extrae
ncaracteres iniciando en la posición (1-based)pos. - FIND(s1, s2): Retorna la posición de
s2ens1, o 0 si no se encuentra. - INSERT(s1, s2, pos): Inserta
s2ens1enpos. - DELETE(s, pos, n): Elimina
ncaracteres desenpos. - REPLACE(s1, s2, pos, n): Sobrescribe con
s2losncaracteres ens1en la posiciónpos. - STRCMP(s1, s2): Comparación léxica (-1, 0, 1).
9. Conversiones de Tipos
- REAL_TO_INT(IN) / INT_TO_REAL(IN)
- BOOL_TO_INT(IN) / INT_TO_BOOL(IN)
- TIME_TO_DINT(IN) / DINT_TO_TIME(IN)
10. Funciones del Sistema
UPTIME
- Entradas: Ninguna.
- Salidas: (UDINT / TIME) Uptime del hardware en milisegundos.
CYCLE_TIME
- Entradas: Ninguna.
- Salidas: (UDINT / TIME) Duración del último ciclo de escaneo del PLC en ms.
WATCHDOG_RESET
- Entradas: Ninguna.
- Salidas: (BOOL)
TRUEsi se reseteó con éxito el watchdog de hardware de forma explícita.