Operadores
Las funciones estándar integradas que representan un subconjunto de las funciones estándar IEC se denominan operadores. No se pueden crear funciones definidas por el usuario en la programación de seguridad.
Los operadores tienen la misma semántica que en CODESYS Estándar.
Se pueden conectar a ambos SAFExxx y Tipos de datos Estándar.
Inserción de operadores
Los operadores se insertan utilizando el Caja de inserción o Insertar cuadro vacío dominio.
Los operadores también se pueden agregar desde la caja de herramientas en el Caja de instrumento Vista. La caja de herramientas del Editor de FBD de seguridad contiene las siguientes categorías:
Operadores booleanos
Operadores matemáticos
Otros operadores
Asistente de entrada
En el Asistente de entrada se muestran las siguientes categorías para los operadores:
Operadores
Conversiones (no en el nivel básico)
Operadores extensibles
ANDORADD(sólo en el Nivel Extendido)MUL(sólo en el Nivel Extendido)MUX(sólo en el Nivel Extendido)
El EQ, LT, LE, GT, y GE Los operadores, que también son extensibles según IEC, sólo se pueden utilizar con dos entradas (como en el caso del estándar).
El Insertar entrada El comando agrega una entrada adicional a un cuadro de operador extensible.
Operadores en el Nivel Básico
AND(2 entradas)AND(3 entradas)OR(2 entradas)OR(3 entradas)
Todos los operandos de la OR debe ser SAFEBOOL.
Operadores en el nivel extendido
AND(2 entradas)AND(3 entradas)OR(2 entradas)OR(3 entradas)XORNOT
Importante
El uso descuidado de la XOR y NOT Los operadores pueden provocar la pérdida de la propiedad de seguridad de SAFExxx variables. El verificador de seguridad no genera ninguna advertencia para dichas construcciones.
El XOR y NOT Los operadores pueden negar la propiedad a prueba de fallos de un SAFExxx variable, de modo que la SAFE La variable pierde su propiedad de seguridad, es decir, se convierte en "no segura". Esto puede provocar un arranque involuntario de la planta.
Regla de programación: La SAFExxx salidas de NOT y XOR Se deben determinar. Posteriormente, se debe asegurar que estos NOT/XOR Las salidas no están conectadas a través de salidas (E/S).
ADD(2 entradas): AritméticaADDoperadorADD(3 entradas): Suma con tres entradasSUB:RestaMUL:MultiplicaciónDIV:DivisiónEQ:Comparación para la igualdadNE:Comparación por desigualdadLT: Comparación de "menor que"LE:Comparación de "menor que" o "igual a"GT: Comparación para "mayor que"GE:Comparación de "mayor que" o "igual a"
SELMUX
BOOL_TO_INTBOOL_TO_DINTBOOL_TO_TIMEBOOL_TO_WORDBYTE_TO_INTBYTE_TO_DINTBYTE_TO_TIMEBYTE_TO_WORDDINT_TO_BOOLDINT_TO_BYTEDINT_TO_INTDINT_TO_TIMEDINT_TO_WORDDINT_TO_DWORDDWORD_TO_DINTDWORD_TO_TIMEINT_TO_BOOLINT_TO_BYTEINT_TO_DINTINT_TO_DWORDINT_TO_TIMEINT_TO_WORDTIME_TO_BOOLTIME_TO_BYTETIME_TO_INTTIME_TO_DINTTIME_TO_WORDTIME_TO_DWORDWORD_TO_BOOLWORD_TO_BYTEWORD_TO_DINTWORD_TO_INTWORD_TO_TIMEWORD_TO_DWORD
Operadores con características de seguridad
En las siguientes secciones se describen las características de algunos operadores específicos de
Error de tiempo de ejecución en caso de que el operador exceda el rango en el nivel extendido
Error de tiempo de ejecución en caso de que el operador exceda el rango en el nivel extendido
Importante
Es responsabilidad de los desarrolladores diseñar la lógica del programa de tal manera que no se produzcan errores en tiempo de ejecución.
Reacciona a los siguientes sobrealcances con un error de tiempo de ejecución, como resultado de lo cual se detiene la aplicación y se genera una entrada de registro.
Nivel | Elemento del lenguaje | Error de tiempo de ejecución en caso de |
|---|---|---|
Extendido |
| División por 0 |
Extendido |
| Llamada con primera entrada con un valor negativo o con un valor N que sea mayor que el número de entradas menos 1. Ejemplo: |
Extendido |
| El valor de salida no está en el rango de valores del tipo de destino: al convertir entre dos
asimismo
|
Sugerencia
El comportamiento estándar de SEL/MUX (es decir, se selecciona el valor máximo si el valor de entrada es demasiado grande y se selecciona 0 si el valor de entrada es negativo) debe programarse en la aplicación de seguridad.
SEL:para k<0
SEL:para k>max, n...valor máximo
MUX para k<0
MUX para k>0