Como extensión a los operadores de IEC, existen varias opciones para evitar la ambigüedad al acceder a las variables o módulos si el nombre de la variable o módulo se utiliza varias veces dentro del ámbito de un proyecto.
Pueden utilizarse los siguientes operadores de ámbito:
ooperador de ámbito global
onombre de lista de variables globales
onombre de enumeración
oespacio de nombres de la biblioteca
ooperador de nodo global
Una ruta de instancia que comienza con un punto (.) abre un ámbito global (espacio de nombre) Así pues, si existe una variable local con el mismo nombre <varname> que una variable global, .<varname> hará referencia a la variable global.
Nombre de lista de variables globales
Puede utilizar el nombre de una lista de variables globales como espacio de nombre para las variables comprendidas en dicha lista. Así, es posible declarar variables con nombres idénticos en diferentes listas de variables globales y, anteponiendo <global variable list name>. al nombre de la variable, es posible acceder a la deseada.
Sintaxis
<global variable list name>.<variable>
Ejemplo
Las listas de variables globales globlist1 y globlist2 contienen, cada una, una variable denominada varx. En la línea siguiente, varx de globlist2 se copia a varx en globlist1:
globlist1.varx := globlist2.varx;
Si un nombre de variable declarado en más de una lista de variables global es referenciado sin que el nombre de lista de variables globales preceda al operador, aparecerá un mensaje.
Espacio de nombres de la biblioteca
Puede añadir el espacio de nombres de la biblioteca a una POU como un prefijo separado por un punto para que el acceso a la POU sea exclusivo. De forma predeterminada, el namespace de una biblioteca es idéntico al nombre de la biblioteca.
Ejemplo: LIB_A.FB_A
Sintaxis
<espacio de nombres de la biblioteca>.<POU de la biblioteca>
Ejemplo
Si una biblioteca incluida en un proyecto contiene la POU FB_A y existe también una POU FB_A definida localmente en el proyecto, podrá asignar el nombre LIB_A.FB_A al bloque de funciones de la biblioteca para diferenciarlo de la POU.
var1 := FB_A(in := 12); // Call of the project function block FB_A
var2 := LIB_A.FB_A(in := 22); // Call of the library function block FB_A
Puede definir otro nombre para el espacio de nombres en Información del proyecto al crear un proyecto de biblioteca en Información del proyecto (de forma predeterminada, en el menú Proyecto) o bien más tarde en el cuadro de diálogo Propiedades de una biblioteca incluida en el Administrador de bibliotecas.
Puede utilizar la denominación de tipo de una enumeración para evitar la ambigüedad al acceder a una constante de enumeración. De este modo, es posible utilizar la misma constante en enumeraciones diferentes.
El nombre de enumeración debe preceder al nombre de la constante, y estar separado de este por un punto (.).
Sintaxis
<nombre enumeración>.<nombre constante>
Ejemplo
La constante Blue es un componente de la enumeración Colors al mismo tiempo que de la enumeración Feelings.
color := Colors.Blue; // Access to enum value Blue in type Colors
feeling := Feelings.Blue; // Access to enum value Blue in type Feelings
Para acceder a las variables declaradas en GVL o POU del nodo Global del árbol Aplicaciones, añádales delante el operador "__POOL.".