Opérateur : espace de noms de bibliothèque
Syntaxe: <library namespace>.<library POU identifier>
Exemple: LIB_A.FB_A
Un identifiant de bloc de bibliothèque est ajouté à l'espace de nom de la bibliothèque (sous forme de préfixe séparé par un point) pour un accès unique et qualifié au module de bibliothèque. L'espace de noms correspond généralement au nom de la bibliothèque.
Une bibliothèque est incluse dans un projet et contient les FB_A
PU. Cependant, le bloc fonctionnel portant le même nom est déjà disponible localement dans le projet. Identifiez le POU de la bibliothèque comme LIB_A.FB_A
afin d'accéder au POU de la bibliothèque, et non au bloc fonction local.
var1 := FB_A(in := 12); // Call of the project function FB_A var2 := LIB_A.FB_A(in := 22); // Call of the library function FB_A
Vous pouvez définir un autre identifiant pour l'espace de noms. Pour ce faire, spécifiez un espace de noms dans les informations du projet (développeurs de bibliothèque : lors de la création d'un projet de bibliothèque). Vous pouvez également spécifier un espace de noms spécifique pour une bibliothèque dans le gestionnaire de bibliothèques dans le Propriétés boîte de dialogue (développeurs d'applications : lors de la création d'une application).
Pour plus d'informations, consultez : Utilisation des bibliothèques
Opérateur (#) pour un accès direct
L'opérateur est une extension de la norme CEI 61131-3.
Il est possible que les composants locaux d'un bloc fonctionnel remplacent les POU de bibliothèque portant le même nom, ce qui entraîne une ambiguïté. Par conséquent, l'accès avec la convention d'espace de noms habituelle n'est pas possible. Ensuite, il est utile d'utiliser le #
l'opérateur de forcer l'accès direct.
Vous pouvez utiliser la syntaxe suivante pour forcer l'accès direct :
Syntaxe: <namespace> # <library POU path>
TYPE Struct1 : STRUCT Standard : Struct2; END_STRUCT END_TYPE
TYPE Struct2 : STRUCT Concat : DINT; END_STRUCT END_TYPE
{attribute 'qualified_only'} VAR_GLOBAL Standard : Struct2; END_VAR
PROGRAM PLC_PRG VAR test : _3S_License#Standard#TON; str : STRING; END_VAR // access to global variable _3S_License.Standard.CONCAT := 123; // with hashtag access, the library is explicitly addressed str := _3S_License.Standard#CONCAT('test1', '3444'); str := Standard#CONCAT('test1', '3444'); str := _3S_License#Standard#CONCAT('test1', '3444'); str := _3S_License.Standard#CONCAT('test1', '3444'); str := CONCAT('test1', Standard#CONCAT('3444', '444')); str := CONCAT('test1', _3S_License.Standard#CONCAT('3444', '444')); str := CONCAT('test1', _3S_License#Standard#CONCAT('3444', '444')); str := Standard#CONCAT('test1', Standard#CONCAT('3444', '444')); str := Standard#CONCAT('test1', _3S_License.Standard#CONCAT('3444', '444')); str := Standard#CONCAT('test1', _3S_License#Standard#CONCAT('3444', '444')); str := Standard#CONCAT('test1', _3S_License#Standard#CONCAT('asdf', 'fdas'));