Обзор
Многие команды LAD работают с одним или несколькими адресами (операндами). Этот операнд задает константу или место, где команда находит переменную, с которой она выполняет логическую операцию. Это место может быть битом, байтом, словом или двойным словом. Возможными операндами, например, являются:
- константа, значение таймера или счетчика или цепочка символов ASCII
- бит в слове состояния программируемого логического контроллера
- блок данных и ячейка памяти внутри области блока данных
Вы можете применять непосредственную адресацию (задание константы в качестве операнда) или прямую адресацию (задание переменной в качестве операнда).
![]() |
IN1- является непосредственной адресацией. IN2- прямая адресация |
Форматы констант для непосредственной адресации вы можете посмотреть здесь
Виды адресов
Адрес команды LAD может указывать на один из следующих объектов:
- бит, состояние сигнала которого должно быть опрошено
- бит, которому присваивается состояние сигнала цепи логических операций
- бит, которому присваивается результат логической операции (RLO)
- бит, который должен быть установлен или сброшен
- число, указывающее счетчик, который должен быть увеличен или уменьшен
- число, указывающее, какой таймер должен быть использован
- бит памяти (меркер) фронта, сохраняющий предыдущий результат логической операции (RLO)
- бит памяти (меркер) фронта, сохраняющий предыдущее состояние сигнала другого операнда
- байт, слово или двойное слово, содержащее значение, с которым должен работать элемент и блок LAD байт, слово или двойное слово, содержащее значение, с которым должен работать элемент и блок LAD.
- номер блока данных (DB или DI), который должен быть открыт или создан
- номер подлежащей вызову функции (FC), системной функции (SFC), функционального блока (FB) или системного функционального блока (SFB)
- метка, на которую нужно перейти
Идентификаторы адресов
Переменные, используемые в качестве адресов, состоят из идентификатора адреса и адреса внутри области памяти, заданной в идентификатором адреса. Идентификатор адреса может принадлежать к одному из следующих двух видов:
- Идентификатор адреса, указывающий следующее:
- Область памяти, в которой команда находит значение (объект данных), с которым необходимо выполнить операцию (например, I для области памяти входов образа процесса)
- Размер объекта данных, с которым команда должна выполнитьоперацию (например, B для байта, W для слова и D для двойного слова)
- Идентификатор адреса, указывающий область памяти, но не размер объекта данных в этой области (например, идентификатор, указывающий область Т для таймера, C для счетчика, DB или DI для блока данных, плюс номер таймера, счетчика или блока данных).
Указатели
Указатель – это элемент, распознающий местоположение переменной ariable. Указатель содержит адрес вместо значения. При назначении фактического параметра параметрическому типу «pointer [указатель]» вы указываете адрес в памяти. STEP 7 дает возможность вводить указатель или в формате указателя, или просто как адрес (например, М 50.0). Далее следует пример формата указателя для обращения к данным, начинающимся с M 50.0: P#M50.0
Работа со словом или двойным словом как с объектом данных
Если вы работаете с командой, идентификатор адреса которой задает область памяти вашего программируемого логического контроллера, и с объектом данных, который по своему размеру является словом или двойным словом, то вы должны принять во внимание, что на адрес памяти всегда ссылаются как на байтовый адрес. Этот байтовый адрес является самым малым номером байта или номером старшего байта. Например, адрес в операторе, показанном на рисунке ниже, ссылается на четыре последовательных байта в области памяти M, начиная с байта 10 (MB10) и вплоть до байта 13 (MB13).
![]() |
Здесь присутствуют объекты следующих размеров. Двойное слово: двойное слово памяти MD10 Слово: слова памяти MW10, MW11 и MW12 Байт: байты памяти MB10, MB11, MB12 и MB13 |
Если вы используете абсолютные адреса размером в слово или двойное слово, то убедитесь, что вы избежали таких назначений байтов, при которых они перекрываются.
<--Предыдущая статья | Следующая статья--> |