Об управляющей вычислительной системе и прикладном программировании систем промышленной автоматики

Прикладное программирование в АСУ ТП во многом определяется архитектурой и свойствами элементов вычислительной си­стемы. Качество программ систем промышленной автоматики зависит от зна­ний прикладного программиста, представле­ния информации в памяти машины, спосо­бов адресации, системы команд и системы прерывания, организации ввода-вывода.           Вычислительная система также представляется пользователю в оболочке операционной си­стемы.

Числа с фиксированной запятой представляются в виде 16- и 32-разрядных двоичных чисел в дополнительном коде. По­ложение фиксированной запятой подразуме­вается в любом месте разрядной сетки. Чис­ла с плавающей запятой представляются в виде 32-разрядных слов.

Максимальная емкость оперативной па­мяти систем промышленной автоматики, подключаемой к процессору, состав­ляет 128 Кбайт. Память условно разделяется на страницы по 512 слов, исключение со­ставляет нулевая страница размером 1024 слова.

Каждой задаче выделяется целое число страниц памяти (обычно не более 32 Кбайт). В СМ-2 оперативная память делится на про­извольное число разделов.

Для обращения к данным, размещаемым в оперативной памяти, используются шесть       схем адресации:

  • прямая адресация к нулевой странице систем промышленной автоматики;
  • прямая адресация к текущей странице систем промышленной автоматики;
  • косвенная адресация через нулевую страницу систем промышленной автоматики;
  • косвенная адресация через текущую страницу систем промышленной автоматики;
  • индексная или автоиндексная адресация с использованием индексного регистра систем промышленной автоматики;
  • индексная или автоиндексная адреса­ция с использованием индексного регистра систем промышленной автоматики.

Изменения в организации памяти из­меняют схемы адресации. При адресации в СМ-1 и СМ-2 различают адреса трех типов: базовые, относительные и испол­нительные (базовый — адрес первой ячейки раздела, относительный - адрес ячейки па­мяти систем промышленной автоматики внутри раздела, исполнительный - но­мер ячейки памяти, к которому производит­ся фактическое обращение).

При обработке данных прикладной про­граммой можно использовать следующую регистровую память: регистр А, регистр Б, индексные регистры 7, 2, регистр номера ко­манды, регистр базы 7, 2, регистры верхней и нижней границы памяти задач, регистр адреса возврата, регистр расширения и ре­гистр переполнения.

 

Система команд процессоров АСУ ТП

 

В качестве процессоров в АСУ ТП приме­няется ряд мини- и микро-ЭВМ. Для примера приводим систему команд систем промышленной автоматики. Система разноформат­ная. Она разделена на следующие группы: адресные команды основного формата; адресные команды двойного формата; безадресные команды сдвигов; безадресные команды изменений и пропу­сков; команды ввода-вывода; команды расширенной арифметики; команды дополнительного набора (вы­числительного комплекса).  Программы мини- и микро-ЭВМ разра­батываются на мнемонических языках низко­го уровня (МНЕМОКОД, АССЕМБЛЕР) или на языках высокого уровня Программы, составленные на языках низ­кого уровня, состоят из отдельных команд систем промышленной автоматики.

 

Элементы машинно-ориентированного языка ПЛК АСУ ТП

 

В качестве примера рассмотрим МНЕ­МОКОД мини-ЭВМ М-6000, М-7000, СМ.

Основные символы. К ним относятся буквы латинского алфавита от А до Z (за­главные), дополненные не совпадающими по начертанию буквами русского алфавита, арабские цифры 0—9, специальные символы:

+ (плюс);

— (минус);

, (запятая);

. (десятичная точка);

* (звездочка);

),( (скобки);

= (знак равенства).

Термы и выражения систем промышленной автоматики. Термом может быть: идентификатор, указатель счетчика адреса, число. Термы могут быть абсолютными и перемещаемыми. Идентификатор исполь­зуется для обозначения команд, областей па­мяти, констант. Он может содержать буквы, цифры и точки и состоять из одного — пяти символов, причем первый символ должен быть буквой или точкой. Идентификатор определен, если он встречается в поле метки команды, записанной на мнемокоде. При за­писи команды структура должна быть сле­дующей: поле метки, поле мнемокода, поле операндов и комментария. Примеры иденти­фикаторов: ВОСК, Р1, ТОРАН. Счетчик ячеек программы систем промышленной автоматики используется для подсчета числа ячеек памяти, выделяемых для команд, адресов или данных, получаемых при транс­ляции каждого оператора. Каждому иденти­фикатору присваивается текущее значение счетчика ячеек программы, причем макси­мальное значение счетчика 215 -1. Чтобы использовать текущее значение счетчика ячеек, записывают в поле операнда. Числа являются абсолютными термами и исполь­зуются для указания констант, абсолютных адресов, приращения адресов, адресов устройств ввода-вывода. Используются деся­тичные и восьмеричные числа. Десятичные числа должны лежать в диапазоне от - 32768 до +32767. Восьмеричные числа со­держат одну — шесть цифр, за которыми сле­дует буква В.            Максимально допустимое зна­чение восьмеричного числа равно 177777В.

Термы с помощью знаков плюс и минус объединяются в выражение, значение которого вычисляется во время трансляции. При­меры выражений: МАР+ 5, ВОН + А13 —7.  В зависимости от режима трансляции ре­зультирующая программа может быть абсо­лютной (загружаемой в одно и то же место памяти при каждом ее использовании) либо перемещаемой (загружаемой в произволь­ную область памяти в зависимости от сво­бодного места). В соответствии с этим раз­личают абсолютные и перемещаемые выра­жения.

Литералы систем промышленной автоматики. Они предназначены для ввода данных в исходную программу и исполь­зуются только в перемещаемой программе. Признак литерала — знак равенства, ставя­щийся перед данными. Допустимы следую­щие типы литералов: = D — десятичное це­лое число; = F — десятичное число с пла­вающей точкой в диапазоне от 10“38 до 10+38; = В — восьмеричное число; =А — два алфавитно-цифровых символа; =L — абсо­лютное выражение.

Транслятор размещает литералы в ячей­ках памяти непосредственно после последней команды программы.

Команды и псевдокоманды систем промышленной автоматики. Мнемокоды команд приведены в параграфе 3 гл. XIV. Адресные команды используют обращение к памяти. К ним относятся:

команды выполнения арифметических операций:

команды расширенной арифметики

команды выполнения логических опера­ций

команды управления ходом вычислитель­ного процесса

Безадресные команды состоят из микро­команд, которые могут объединяться в ма­крокоманды.

Псевдокоманды систем промышленной автоматики. Используются шесть групп псевдокоманд» которые несут инфор­мацию для транслятора.

1. Команды управления трансляцией, определяющие границы поля и адрес загруз­ки программы:

а) определение названия программы (пробел) NAM (название программы) название программы следует непосред­ственно за оператором ASMB.

б) установление начального адреса (пробел) ORG (восьмеричное число)     Псевдокоманда ORG определяет на­чальный адрес абсолютной программы.

в) окончание программы

(пробел) END (пробел или идентификатор)

г) повторение (пробел) REP (абсолютное выражение) Оператор, следующий после этой псевдо­команды, повторяется и транслируется ука­занное операндом число раз.

2. Команды объединения результирую­щей программы систем промышленной автоматики, используемые для установ­ки связи между основной программой и одной или несколькими подпрограммами: а) резервирование общей области памяти (пробел) СОМ (идентификатор! (размер!), идентификатор2 (размеру, идентификатор (размер),.. >.

Резервируется область памяти, которая может использоваться несколькими переме­щаемыми подпрограммами.

б) определение идентификаторов входных точек

в) определение внешних идентификаторов

Каждый идентификатор определяет вход­ную точку в другой подпрограмме.

3. Команды определения адресов и иден­тификаторов систем промышленной автоматики:

а) определение адресной константы. Определяется константа» являющаяся адре­сом операнда адресной команды или под­программы.

б) эквивалентность

в) определение абсолютной константа.

4. Команды резервирования памяти и определения констант:

а) резервирование области памяти да данных

б) определение символьной константы

в) определение десятичных констант

г) определение восьмеричных констант

5. Команды вызовов арифметических подпрограмм. Они используются только в перемещаемых программах для обращения к командам расширенной арифметики.

6. Команды управления печатью листин­га систем промышленной автоматики. К ним относятся следующие команды: UNL — подавить печать, LST — продолжение печати, SKP — переход на новую страницу, SPS - пропуск строк, SUP-подавить пе­чать дополнительных строк, которые со­здаются псевдокомандами, генерируемыми в несколько строк, UNS — разрешить печать дополнительных строк, HED — печать загла­вий.

Макросредства Мнемокода (М-7000, СМ-1, СМ-2). Макросредства служат для бо­лее экономной и надежной записи програм­мистом мнемокод-программы систем промышленной автоматики. Суть заклю­чается в том, что повторяющиеся в програм­ме группы команд мнемокода называют некоторым именем, которое образует код операции макрокоманды, и в дальнейшем программист использует этот код, не повто­ряя запись группы команд Макросредства

включают макроопределение, макрокоманду и макрорасширение, выполняемое спе­циальным макроассемблером.

Макроопределение имеет следующую структуру систем промышленной автоматики:

  1. Оператор MCR, указывающий начало макроопределения.
  2. Прототип, определяющий формат ко­манды (макрокоманды), соответствующей данному макроопределению.
  3. Набор операторов, составляющих ма­кроопределение. Этими операторами могут быть любые операторы мнемокода, кроме END.
  4. Оператор MND, указывающий конец макроопределения.

Порядок за­писи значений параметров систем промышленной автоматики в макрокоманде должен соответствовать порядку перечисле­ния параметров в прототипе. Код операции макрокоманды не должен совпадать с мнекодами машинных команд и псевдокоманд Постоянному параметру, записанному в по­ле метки прототипа, соответствует значение, записанное в поле метки макрокоманды.

Допускается соединение параметра с дру­гими знаками, причем если нужно соединить некоторые знаки с параметром, то параметр записывается сразу же за этими знаками без разделителя, а если параметр соединяется с другими знаками, то после параметра за­писывается точка, а за ней знаки, с которы­ми соединяется параметр.

Макрокоманда содержит всю информа­цию, необходимую для генерации макрорас­ширения из соответствующего макроопреде­ления.

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

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

В макроопределении систем промышленной автоматики кроме постоянных параметров можно применять системные па­раметры: $Х и: SL, значения которым при­сваивает макроассемблер. Системные параметры можно использовать в любом поле оператора макроопределения (в поле метки, поле операции, поле операндов), как и другие параметры.

Системный параметр: SX служит для со­здания уникальных имен в операторах ма­кроопределения при многократном обраще­нии к нему. Параметр: SX — это трехраз­рядный порядковый номер макрокоманды, причем макроассемблер присваивает параметру: SX начальное значение 001, встретив в программе первую макрокоманду, а для каждой следующей макрокоманды это значе­ние увеличивается на единицу. Значение: SX представляет собой константу, которая не изменяется при обработке макроопределе­ния, соответствующего данной макрокоман­де.

Для создания уникального имени систем промышленной автоматики пара­метр: SX соединяется с другими символами, максимальное число которых не должно пре­вышать двух, чтобы идентификатор (имя) не содержал более пяти символов. Первый из этих символов должен быть буквой или точкой.

Системный параметр: SL позволяет обра­щаться к операторам макрокоманды с указа­нием только номера операнда в виде индекса при: SL., например, запись: SL(N) означает обращение к операнду макрокоманды, имею­щему номер N. Можно обращаться и к эле­ментам списка, являющегося операндом ма­крокоманды. Для экономии памяти используются фрагментарные макрорасширения, реали­зуемые с помощью генераторных переходов AIF и AGO (AIF — оператор условного пере­хода, AGO — оператор безусловного перехо­да). При этом записывается сложное макро­определение, а генерируется в виде макро­расширения только определенный его фраг­мент в зависимости от условия, задаваемого в команде. Оператор систем промышленной автоматики, на который делается генераторный переход, должен иметь метку, состоящую из знака /, сопровождаемого од­ним — четырьмя символами (буквами или цифрами), причем первой после знака / дол­жна быть буква.

Метки, начинающиеся с символа /, являются макрометками и не появляются в выходном тексте программы после генера­ции макрорасширений.

 

Новости

Линия производства цветных принтерных чернил общим объемом 2000 литров - проектирование и поставка автоматической системы управления, г. Эгль, Швейцария

06.01.24

Линия производства цветных принтерных чернил общим объемом 2000 литров - проектирование и поставка а...

Снабжение факельной установки топливным газом на период аварийного отключения - поставка системы управления и выполнение ПНР, порт Тамань, Краснодарский край

06.01.24

Снабжение факельной установки топливным газом на период аварийного отключения - поставка системы упр...

Контроль расхода кислорода. Проектирование и поставка шкафа автоматики мониторинга, Санкт-Петербург

06.01.24

Контроль расхода кислорода. Проектирование и поставка шкафа автоматики мониторинга, Санкт-Петербург ...

Заказчики
Поставщики