Saltar al contenido principal

Biblioteca Estándar

La fuente release-facing autoritativa para la biblioteca estándar de lenguajes es el registro de stdlib del compilador en packages/zplc-compiler/src/compiler/stdlib/index.ts.

Ese registro es lo que usa el IDE/compilador para resolver funciones y bloques integrados.

Categorías de alto valor

CategoríaFuenteEjemplos
Temporizadoresstdlib/timers.tsTON, TOF, TP
Contadoresstdlib/counters.tsCTU, CTD, CTUD
Biestables y triggersstdlib/bistables.tsR_TRIG, F_TRIG, RS, SR
Buffers de sistemastdlib/system.tsFIFO, LIFO
Stringsstdlib/strings.tsLEN, CONCAT, LEFT, RIGHT, MID, FIND, INSERT, DELETE, REPLACE, STRCMP
Matemática y lógicastdlib/math.ts, stdlib/functions.ts, stdlib/bitwise.tsABS, SQRT, LIMIT, SEL, MUX, SHL, SHR
Helpers de procesostdlib/process.tsHYSTERESIS, DEADBAND, PID_Compact, NORM_X, SCALE_X
FBs de comunicaciónstdlib/communication.tsMB_READ_HREG, MB_WRITE_COIL, MQTT_CONNECT, MQTT_PUBLISH, MQTT_SUBSCRIBE

Temporizadores y contadores

Los temporizadores y contadores no son solo nombres: los archivos stdlib definen sus layouts de memoria y el codegen que usa el compilador.

Ejemplos:

  • temporizadores: TON, TOF, TP
  • contadores: CTU, CTD, CTUD

Funciones de string

La superficie actual de strings en stdlib/strings.ts incluye:

FunciónDescripciónEjemplo
LEN(STR)devuelve la longitudLEN('ABC') -> 3
LEFT(STR, N)primeros N caracteresLEFT('HELLO', 2) -> 'HE'
RIGHT(STR, N)últimos N caracteresRIGHT('HELLO', 2) -> 'LO'
MID(STR, L, P)L caracteres desde PMID('HELLO', 2, 2) -> 'EL'
CONCAT(S1, S2)concatena dos stringsCONCAT('A', 'B') -> 'AB'
INSERT(S1, S2, P)inserta S2 en S1INSERT('AB', 'X', 1) -> 'AXB'
DELETE(S1, L, P)elimina L caracteres desde PDELETE('HELLO', 2, 2) -> 'HLO'
REPLACE(S1, S2, L, P)reemplaza caracteres
FIND(S1, S2)busca S2 dentro de S1FIND('HELLO', 'L') -> 3

Funciones utilitarias adicionales del mismo archivo:

  • COPY
  • CLEAR
  • STRCMP
  • EQ_STRING
  • NE_STRING

Matemática, lógica y selección

Ejemplos registrados hoy:

  • aritmética y conversión: ABS, ABSF, NEG, NEGF, MOD, SQRT, EXPT, INT_TO_REAL, REAL_TO_INT
  • trigonometría y logs: SIN, COS, TAN, ASIN, ACOS, ATAN, ATAN2, LN, LOG, EXP
  • helpers de selección: MAX, MIN, LIMIT, SEL, MUX
  • helpers bitwise: ROL, ROR, SHL, SHR, AND_WORD, OR_WORD, XOR_WORD, NOT_WORD

Bloques de función de comunicación

Los bloques de comunicación también forman parte de la stdlib del compilador.

El repo actual registra bloques como:

  • Modbus: MB_READ_HREG, MB_WRITE_HREG, MB_READ_COIL, MB_WRITE_COIL
  • MQTT: MQTT_CONNECT, MQTT_PUBLISH, MQTT_SUBSCRIBE
  • wrappers cloud: AZURE_C2D_RECV, AZURE_DPS_PROV, AZURE_EG_PUB, AWS_FLEET_PROV, SPB_REBIRTH

Para los detalles del contrato runtime y los límites del release, seguí con:

Regla práctica

Si una función o bloque no está registrado en la stdlib del compilador ni justificado por el contrato runtime, no debería documentarse como capacidad firme de v1.5.