Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Прямая адресация



Для создания прямо адресуемой переменной используется сле­дующее объявление:

имя переменной АТ% прямой адрес тип;

Прямой адрес начинается с буквы, определяющей область па­мяти:

Символ Область памяти
I Область входов
Q Область выходов
M Прямо адресуемая память

Далее следует символ, определяющий тип прямого адреса:

Символ Область памяти
нет Бит
X Бит _ ----- _ ----- —
В Байт
W Слово
D Двойное слово
L Длинное слово

Завершает прямой адрес число — составной иерархический ад­рес, поля которого разделены точкой. В простейшем случае испо­льзуется два поля адреса: номер элемента и номер бита.

В конце объявления, как и для автоматически размещаемых переменных, необходимо указать тип переменной. При указании адреса одного бита тип переменной может быть только BOOL.

В прямом адресе указывается именно номер элемента. Это ко­ренным образом отличается от физических адресов микропроцес­сора. Если прямой адрес определяет байт, то номер элемента - это номер байта. Если прямой адрес определяет слово, то номер элемента — это номер слова, и, естественно, один элемент зани­мает два байта. Так, следующие два объявления адресуют один и тот же байт:

a1 AT%QB5 BYTE;

a2 AT%QW2 WORD;

a1:=5;

a2.0:=8;

В каждой области памяти адресация элементов начинается с нуля. Физическое размещение прямо адресуемых областей в ОЗУ определяется конфигурацией контроллера. Очевидно, что сопо­ставление идентификаторов переменных прямым адресам является делом, требующим большой аккуратности. Поэтому для слож­ных модульных контроллеров применяются специальные фирменные конфигураторы, подключаемые к оболочке комплекса программирования и позволяющие графически «собрать» ПЛК и определить все необходимые интерфейсные переменные.

Входы ПЛК — это переменные с прямыми адресами в области I. Они доступны в прикладных программах только по чтению, Выходы Q - только по записи. Переменные в области М доступ­ны по записи и чтению.

В области памяти М размещают обычно переменные, которые нельзя однозначно отнести к входам или выходам. Это могут быть диагностические ресурсы модулей, параметры системы ис­полнения и т. д.

Прямые адреса можно использовать в программах непосредственно:

IF %IW4 > 1 THEN

(*3начение входа IW4*)

Тем не менее все же желательно компактно сосредоточить в проекте все аппаратно-зависимые моменты.

Обратите внимание, что прямая адресация позволяет разместить несколько разнотипных переменных в одной и той же памяти. Например, специально для быстрого обнуления 16-дискретных выходов (BOOL) можно использовать переменную типа WORD. Или, например, совместить переменную STRING и несколько пе­ременных типа BYTE, что даст возможность организовать форма­тирование вывода без применения строковых функций. Посколь­ку физическое распределение адресов известно на этапе трансля­ции, компилятор формирует максимально компактный код для таких объединений, чего не удается достичь при работе с элемен­тами массива, где требуется динамическая адресация.

Синтаксис прямых или МЭК адресов выглядит следующим образом:
каждый адрес начинается с символа %, с последующим префиксом области.
Префикс I указывает на область входов, Q - область выходов и M - область маркеров.
Далее следует идентификатор размера: X или ничего – один бит, B обозначает байт (8 бит), W - это 16 разрядное слово и D - это двойное слово (32 бита). Завершают адрес цифры, указывающие последовательные адреса в заданной области, начиная с 0.

Например:
%IW215 - это 216-тое слово в области входов.
%QX1.1 - это 2-й бит 2-го слова в области выходов.
%MD48 - это 49-е двойное слово в области маркеров.


Поразрядная адресация

В стандарте предусмотрена удобная форма работы с отдельны­ми битами переменных типа битовых строк — поразрядная адре­сация. Необходимый бит указывается через точку после иденти­фикатора. Аналогичным образом можно использовать отдельные биты прямо адресуемой памяти. Младшему биту соответствует нулевой номер. Поразрядная нумерация не должна превышать гра­ницы соответствующего типа числа.

VAR

a: WORD;

bStop AT %IX64.3: BOOL;





Дата публикования: 2015-04-10; Прочитано: 1473 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...