Блоки данных

Блоки данных DB0...DB255 предназначены для хранения переменных и/или констант. Блоки данных DB0...DB255 располагаются в области памяти программ в кассете пользователя.

Исходный (запрограммированный пользователем) блок данных DB0 находится в кассете пользователя. При запуске в режиме РАБОТА (Р2) исходный блок DB0 из кассеты пользователя копируется системной программой в оперативное запоминающее устройство в рабочую зону блока DB0, находящуюся в памяти данных контроллера. Все команды обращения к битам, байтам или словам блока данных работают с блоком DB0, расположенным в памяти данных контроллера. Блок данных DB0 может использоваться для хранения переменных контроллера без исходного программирования. В этом случае пользователь не программирует блок DB0, а работает в программе только с рабочей зоной блока DB0 в оперативной памяти.

К байтам и словам блоков данных DB1...DB255 можно обращаться только с помощью индексных команд и средств спецассемблера (в отличие от DB0). Блоки данных служат для хранения констант, уставок таймеров и счётчиков.

Размер каждого блока данных - величина переменная, определяется пользователем при его программировании и может составлять от 1 слова (2 байта) до 256 слов (512 байт).

Блоки данных могут быть трех типов:

- блок констант;

- блок переменных (без инициализации);

- блок переменных с инициализацией.

Содержимое блока констант вводится в системе программирования “ИНТЕРВЬЮ” при разработке программы. При пересылке в контроллер блок констант размещается в памяти программ, и изменение данных в блоке во время работы программы невозможно. Допустимы команды чтения, и не допустимы команды записи/модификации данных.

ВНИМАНИЕ! При использовании кассеты пользователя ОЗУ команда записи/модификации изменит значение константы в блоке данных, при этом нарушится контрольная сумма памяти пользователя, и при перезапуске контроллер перейдет в режим ДИАГНОСТИКА (Р4) со стиранием программы.

Блок переменных (без инициализации) создается в системе программирования “ИНТЕРВЬЮ” при разработке программы, но его содержимое не определяется. При пересылке в контроллер блок не занимает места в памяти программ. При старте программы в режиме Р2 под блок отводится заданный объем ОЗУ в памяти данных контроллера. Начальные значения слов такого блока равны нулю, кроме блоков DB250..DB255 (см. ниже). К словам такого блока применимы как команды чтения, так и команды записи/модификации данных.

Блок переменных с инициализацией создается в системе программирования “ИНТЕРВЬЮ” при разработке программы. При этом задается начальное содержимое слов всего блока или его части. При пересылке в контроллер содержимое заданной части размещается в памяти программ (как блок констант). Но при старте программы блок размещается в памяти данных (как блок переменных). Причем, инициализированной части блока присваиваются заданные значения, остальные слова данных обнуляются. При обращении к блоку команды работают с отображением блока в памяти данных контроллера, поэтому возможно использование как команд чтения, так и команд записи/модификации данных.

Общий объем блоков констант и блоков переменных с инициализацией ограничивается объемом используемой кассеты пользователя ОЗУ/ППЗУ.

Общий объем блоков переменных ограничивается объемом зоны в памяти данных контроллера, отведенной для блоков данных (30 Кб). Количество размещаемых в зоне блоков зависит от заданной длины каждого блока и может изменяться от 60 (при длине каждого блока 256 слов) до 256.

Во время работы программы в каждый момент времени возможен доступ к одному (активному) блоку данных. Активизация блока осуществляется командой A DBn. Действие этой команды распространяется до следующей команды активизации, расположенной в этом же командном блоке (OB, PB, FB) или до выхода из этого командного блока. При вызове вложенного командного блока в нем будет активным блок данных, являющийся активным в вызывающем блоке в момент вызова.

В начале скана программы в блоке OB1 активизирован блок данных DB0.

Некоторые блоки данных имеют особенности реализации, определяемые системной программой.

Блок данных DB0 всегда присутствует в контроллере, как блок переменных (без инициализации) размером 256 слов (512 байт). Пользователь не может запрограммировать DB0 как блок констант или изменить его размер. Можно запрограммировать DB0 как блок переменных с инициализацией, определив начальное содержимое всего блока или его части.

Блоки DB250...DB253 всегда присутствуют в контроллере как блоки переменных (без инициализации) размером 144 слова (288 байт) и содержат в себе буферы приема/передачи каналов связи (см. табл. 4.6). Начальное значение слов данных блоков DB250...DB253 не определено. Пользователь не может программировать, загружать в контроллер и стирать эти блоки.

Таблица 4.6: Буферы приема/передачи каналов связи.

Блок данных Содержимое
DB250 Буфер приёма канала связи с программатором “УПК”
DB251 Буфер передачи канала связи с программатором “УПК”
DB252 Буфер приёма канала пользователя “ЭВМ”
DB253 Буфер передачи канала пользователя “ЭВМ”
DB254, DB255 Зарезервировано

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: