Operador: ADR
El operador es una extensión del estándar IEC 61131-3.
ADR
devuelve la dirección de 32 bits (o 64 bits, si corresponde) de su argumento. Puede transferir esta dirección a las funciones del fabricante o asignarla a un puntero dentro del proyecto.
sintaxis
VAR <address name> : DWORD | LWORD | POINTER TO < basis data type> | __XWORD ; END_VAR <address name> := ADR( <variable name> );
FUNCTION_BLOCK FB_Adress VAR piAddress1: POINTER TO INT; iVar1 : INT := 5; lwAddress2 : LWORD; iVar2 : INT := 10; xwAddress3 : _XWORD; iVar3 : INT; END_VAR piAddress1 := ADR(iVar1); // piNumber is assigned to address of iVar1 lwAddress2 := ADR(iVar2); // works for 64 bit run time system xwAddress3 := ADR(iVar3); // works for 32 bit and 64 bit systems
Importante
En contraste con CoDeSys V2.3 puedes hacer eso ADR
-Usar operador con nombres de funciones, programas, bloques de funciones y métodos. ADR
reemplaza con eso INDEXOF
-Operador.
Cuando utilice punteros de función, tenga en cuenta lo siguiente: si bien puede pasar punteros de función a bibliotecas externas, no hay forma de pasar un puntero de función dentro de CODESYS ¡llamar! Para habilitar una llamada al sistema (sistema de tiempo de ejecución), debe configurar la propiedad del objeto correspondiente (pestaña Traducir) para el objeto de función.
Atención
Si aplica un cambio en línea, el contenido de las direcciones puede cambiar. Esto podría PUNTERO A
-Las variables apuntan a un área de memoria no válida. Para evitar problemas, debe asegurarse de que el valor de los punteros se actualice cada ciclo.
Atención
Pointer-TO
-Las variables de funciones y métodos no deben devolverse al autor de la llamada ni asignarse a variables globales.