
- •Содержание
- •5. Элементы языка программирования 66
- •6. Библиотека стандартных функциональных блоков 77
- •Введение
- •Общие сведения
- •Программистская модель плк с300
- •Внешний вид контроллера
- •Модули ввода/вывода
- •Распределение памяти контроллера
- •Программистская модель контроллера.
- •Регистры и флаги
- •Области операндов контроллера
- •Отображение входов и выходов
- •Область данных
- •Область меток
- •Область таймеров
- •Область счётчиков
- •Область периферии
- •Область расширенной периферии
- •Структура и обработка технологических программ
- •Система команд лмк
- •Логические команды
- •Команды присвоения битных операндов
- •Команды опроса битных переменных
- •Команды переходов
- •Команды пересылки
- •Арифметические команды
- •Команды сравнения
- •Логические байтовые и словные команды
- •Байтовые и словные команды сдвига
- •Индексная адресация.
- •Счетчики
- •Команды обработки счётчиков
- •Последовательность программирования счётчика
- •Примеры программирования счётчика
- •U е 5.0 ;Если сработал фотоэлемент на входе e5.0
- •Формат слова уставки счётчика
- •Таймеры
- •Команды обработки таймеров
- •Последовательность программирования таймера
- •Примеры программирования таймера
- •Формат слова уставки таймера
- •Организационные команды
- •Команды вызова, активизации и завершения блоков
- •Команды блокировки, деблокировки, задания допустимой длительности скана
- •Команды структурирования текста
- •Команды обработки канала связи
- •Элементы языка программирования
- •Организационные блоки
- •Особенности прерывания циклической обработки блоками ob2...Ob18
- •Программные блоки
- •Функциональные блоки
- •Формат функциональных блоков
- •Особенности использования формальных параметров
- •Блоки данных
- •Формат и использование блока назначений nb0
- •Комментарии к программе
- •Комментарий к строке
- •Комментарий к операнду
- •Комментарий к элементу цепи ркс и к цепи ркс
- •Библиотека стандартных функциональных блоков
- •Блоки организации связи по каналу “эвм”
- •Блоки обработки системы реального времени
- •Арифметические блоки
- •Блоки обработки модулей расширенной периферии
- •Системные блоки
- •Блоки регулирования
Блоки данных
Блоки данных 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 |
Зарезервировано |