Use of "::" in IoMap.iom

Hello everyone,

when editing the i/o mapping for a recent project (opened IoMap.iom as text), i noticed that some process variables have a “::” in front of them and others don’t. I couldn’t find an answer to this in the Automation Help. Can anyone provide me some information on what they are used for?

Here is an example of the file, which currently only matches the “ModuleOk” channel to a variable for each module of the CPU:

VAR_CONFIG
	gBatterie AT %IB."PLC1".BatteryStatusCPU;
	MODUL1 AT %IX."X20CS1012_3003A1".ModuleOk;
	MODUL2 AT %IX."X20DI9371_3003DI01".ModuleOk;
	MODUL3 AT %IX."X20DI9371_3003DI02".ModuleOk;
	MODUL4 AT %IX."X20DI9371_3003DI03".ModuleOk;
	MODUL5 AT %IX."X20DI9371_3003DI04".ModuleOk;
	MODUL6 AT %IX."X20DI9371_3003DI05".ModuleOk;
	MODUL7 AT %IX."X20DI9371_3003DI06".ModuleOk;
	MODUL8 AT %IX."X20DI9371_3003DI07".ModuleOk; (*<- No "::" at the beginning of the line*)
	::MODUL13 AT %IX."X20DO9322_3003DO01".ModuleOk; (*<- "::" at the beginning of the line*)
	::MODUL14 AT %IX."X20DO9322_3003DO02".ModuleOk;
	::MODUL16 AT %IX."X20AT4222_3003AT01".ModuleOk;
	::MODUL17 AT %IX."X20AT4222_3003AT02".ModuleOk;
	::MODUL18 AT %IX."X20AT4222_3003AT03".ModuleOk;
	::MODUL21 AT %IX."X20AI4622_3003AI01".ModuleOk;
	::MODUL22 AT %IX."X20AI4622_3003AI02".ModuleOk;
	::MODUL23 AT %IX."X20AI4622_3003AI03".ModuleOk;
	::MODUL24 AT %IX."X20AO4622_3003AO01".ModuleOk;
	::MODUL25 AT %IX."X20AO4622_3003AO02".ModuleOk;
	::MODUL9 AT %IX."X20DI9371_3003DI08".ModuleOk;
	::MODUL10 AT %IX."X20DI9371_3003DI09".ModuleOk;
	::MODUL11 AT %IX."X20DI9371_3003DI10".ModuleOk;
	::MODUL12 AT %IX."X20DI9371_3003DI11".ModuleOk;
	::MODUL15 AT %IX."X20DO9322_3003DO03".ModuleOk;
	::MODUL19 AT %IX."X20AT4222_3003AT04".ModuleOk;
	::MODUL20 AT %IX."X20AT4222_3003AT05".ModuleOk;
	::MODUL26 AT %IX."X20AO4622_3003AO03".ModuleOk;
END_VAR

Thanks in advance!

See subject " Extension of the syntax for variable identifiers to specify the visibility of variables (scope):" at following link:
https://help.br-automation.com/#/en/4/libraries%2Fsys_lib%2Ffbks%2Fpv_xgetadr.html

For variables in application modules, the name of the application module must also be prefixed with delimiter “::”.

Hi,
When mapping a variable to a hardware input via the “…” symbol and the variable selector, AS adds the “::” to the variable. If you know the variable path yourself and you use Ctrl+Space for code completion AS does not add “::” to the variable mapping.
For the io-mapping both variants work just fine. We, for example, delete the “::” for the variable mapping. But I guess this is just a matter of taste ;-).

As mentioned above, if using application modules the path needs to be prefixed with the “::”.

Greetings
Patrick

1 Like