Конфигуратор ПЛК с точки зрения программы это все го лишь способ организации переменных в нашем случае. Мы вправе его вообще не использовать и выполнить операции объявления вручную:
Ключевое слово AT
Если вы хотите поместить переменную по определенному адресу, то нужно объявить ее с ключевым словом AT. Преимущество такого объявления состоит в том, что можно дать значащее имя любому адресу и изменять значение по этому адресу где угодно (например, в разделе объявлений).
Заметьте, что переменная, описывающая вход, не доступна для записи. Кроме того, объявление AT допустимо лишь для глобальных и локальных переменных, но не для входных или выходных переменных POU.
Пример:
xCounterHeat7 AT %QX0.0: BOOL;
wLightcabinetImpulse AT %IW2: WORD;
download AT %MX2.2: BOOL;
Адреса
Прямое указание адреса дает способ непосредственного обращения к конкретной области памяти. Прямой адрес образуется из префикса "%", префиксов области памяти и размера, одного или нескольких целых чисел, разделенных точкой.
Префиксы области памяти:
|
I |
Входы |
|
Q |
Выходы |
|
M |
Память данных |
Префиксы размера:
|
X |
Один бит |
|
None |
Один бит |
|
B |
Байт (8 бит) |
|
W |
Слово (16 бит) |
|
D |
Двойное слово (32 бит) |
Примеры:
|
%QX7.5 and %Q7.5 |
бит 7.5 в области выходов |
|
%IW215 |
215е слово в области входов |
|
%QB7 |
байт 7 в области выходов |
|
%MD48 |
двойное слово в позиции памяти 48 |
|
%IW2.5.7.1 |
зависит от конфигурации PLC |
Является ли последний указанный адрес значимым, будет определяться конкретной конфигурацией PLC.
При этом компилятор не может проверить выход за край имиджа. Это дает возможность объявить избыточное количество слов и просто не обращаться к несуществующем в текущем имидже.
Для ограничений я предложил не заморачиваться а задать значение переменных выше описанных мной где должно храниться количество модулей всех типов.