Структура и обработка технологических программ

Язык программирования контроллера ориентирован на структурное программирование, которое предполагает разделение программы пользователя на отдельные функционально завершенные структурные единицы - блоки. Это дает пользователю следующие преимущества:

- простое и наглядное программирование, в том числе и больших по объему программ;

- простую организацию программы;

- возможность модернизации программы с минимальными затратами;

- возможность стандартизации разделов программы;

- быструю отладку программы.

Для реализации возможности структурирования программ пользователя имеются различные типы блоков:

OВ - организационные блоки. Предназначены для управления последовательностью выполнения частей программы пользователя. Они программируются пользователем, но вызываются системной программой и обеспечивают взаимодействие между системной программой и программой пользователя;

РВ - программные блоки. Предназначены для программирования основной обработки;

FB - функциональные блоки. Предназначены для программирования часто повторяющихся сложных функций (вычисления, сообщения, функции регулирования и т.д.);

DB - блоки данных. Служат для запоминания констант, данных с байтной или словной организацией, текстов, используются в командах с индексной адресацией; позволяют вести обработку массивов данных. Блоки данных по своим функциям отличаются от перечисленных выше блоков. Они содержат не команды, а данные, являющиеся операндами. Обращение к блокам данных происходит через команды загрузки и передачи.

NB0 - блок назначений. Предназначен для описания символических имен переменных, связывая их с абсолютными именами переменных. Например, входной бит Е 2.4 можно обозвать как “КонВык24”, что, допустим, означает “сигнал с концевого выключателя номер 24”, при этом Е 2.4 - это абсолютное имя, а “КонВык24” - это символическое имя.

Пользователь может программировать все предоставленные ему организационные, программные и функциональные блоки. Последовательность программирования и размещение блоков в памяти контроллера - произвольная. Последовательность обработки программных, функциональных блоков задается в организационных блоках командами условного и безусловного вызова. Программные блоки, в свою очередь, позволяют вызывать другие программные и функциональные блоки в любой комбинации. Это дает возможность строить иерархическую древовидную структуру пользовательской программы с выделением уровней управления. При этом не рекомендуется использовать более 8 вложений блоков.

Для дополнительного структурирования блоков программы предназначена возможность сегментирования блоков. Каждый организационный и программный блок может иметь от 1 до 10 сегментов. Функциональные блоки обязательно содержат два сегмента: в первом сегменте всегда располагается заголовок блока, а во втором - тело блока. Блоки данных и блок назначений не имеют деления на сегменты.

Разделение программы на отдельные блоки напоминает организацию программ на языках высокого уровня. Например, в сравнении с PASCAL организационный блок аналогичен телу основной программы, программный блок - это процедура, а функциональный блок - это функция.

Пользователь с помощью организационных блоков может управлять режимами обработки программы или отдельных блоков программы. Предусмотрены следующие режимы обработки пользовательской программы (частей программы):

1) обработка при переходе в режим СТОП; вызывается блоком OB0;

2) циклическая обработка программы; обеспечивается организационным блоком OB1. Программа, внесенная в этот блок, обрабатывается циклически;

3) обработка по сообщению; производится при изменении состояния любого из восьми каналов младшего байта входов. При этом виде обработки циклическая обработка программы прерывается на границе блоков, вызывается и обрабатывается один из организационных блоков: OB2...OB9;

4) обработка с управлением по времени; производится по прерываниям от системного таймера. При этом циклическая обработка программы прерывается на границе блоков, вызывается и обрабатывается один из организационных блоков: OB10...OB18;

5) обработка по возникновению ситуаций включения, перезапуска ПКЛ, ошибок модулей и др., при вызове блоков OB19...OB50.

Возможна организация комбинированной обработки, когда в программе присутствуют организационные блоки, соответствующие разным видам обработки.

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

Для начала изучения языка S300 на лабораторных работах достаточно писать программы в одном блоке – в ОВ1, в конце блока ставится BE – обозначение конца блока.

Блок OB1 - блок циклической обработки программы пользователя. Циклическая обработка - основной (общепринятый) вариант обработки пользовательских программ в программируемом контроллере. Циклическое выполнение программы начинается с первой команды, запрограммированной в OB1, и заканчивается выполнением команды BE. После выполнения системной программы сканирования модулей ввода/вывода управление вновь передается на начало OB1, на первую команду и т.д.

При изучении системы команд С300 и решении лабораторных заданий по данному методическому пособию обратите внимание на формат индексных команд, они пригодятся в п.4.9 и на лабораторной работе.


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



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