Иерархия создания и вызовов блоков в программе пользователя
Функционирование структурированной программы пользователя состоит в вызовах функциональных блоков. Для этого используются специальные команды, которые могут быть запущены только в логических блоках.
Порядок вызовов блоков называется иерархией вызовов. Количество блоков, которые могут быть вложены друг в друга (глубина вложения) зависит от конкретного CPU.
Порядок вызовов блоков диктует, соответственно, порядок их создания.
Если построить иерархию вызовов в организационном блоке ОВ1, как показано, например, на рисунке 1.3, то сформулировать порядок создания блоков можно таким образом:
Рисунок 4.3 - Порядок вызовов блоков внутри цикла программы
• Блоки создаются сверху вниз, то есть начинать нужно из верхнего ряда блоков.
• Поскольку каждый вызываемый блок уже должен существовать, то внутри ряда блоки должны создаваться справа налево.
Учитывая этот порядок, для приведенного на рисунке 1.3 примера определим такую последовательность создания блоков:
1. Для верхнего ряда сначала должен быть создан блок с функцией FC1, потом функциональный блок FB1 с его блоком данных DB1.
2. Для следующего ряда сначала создается блок системных данных DB1 для системной функции SFC1, после этого составляется программа функционального блока FB21, для которого потом создается блок данных DB21. Дальше разрабатывается функциональный блок FB2 с его экземплярным блоком данных DB2.
3. Для последнего ряда создается блок с функцией FC3.
4. В заключение создается блок ОВ1.
В программе STEP 7 используются разные операнды – сигналы входов/выходов, меркеры, счетчики, таймеры, блоки данных и функциональные блоки. Обращение к этим операндам осуществляется через их абсолютные адреса. Однако программа будет значительно легче читаться, если вместо этих адресов применить символьные имена. STEP 7 может автоматически превращать символьные имена в необходимые абсолютные адреса. Однако для этого символьные имена уже должны быть назначены абсолютным адресам. Так, например, если назначить символьное имя Motor_On адресу Q 4.0, то потом можно использовать Motor_On, как адрес в операторе программы.
Следует учесть, что символьные адреса облегчают понимание соответствия элементов программы и аппаратных средств управления процессом.
Различают локальные и глобальные символы. Их различия сводятся к следующему:
1. Глобальные символы действуют во всей программе пользователя, а локальные – в пределах блока, для которого они определены.
2. Глобальные символы должны быть записаны в таблице символов, а локальные символы назначаются в таблицах описания переменных блоков данных.
3. Глобальные символы могут определять все переменные, а локальные – только параметры блока (входные, выходные, статические и временные).
В разделе кодов программы глобальные символьные имена из таблицы символов отображаются в кавычках "...", а локальным символьным именам из таблицы описания переменных блока предшествует символ "#".
Вводить кавычки или символ "#" нет необходимости. При введении программы редактор прибавляет эти символы автоматически.
По всей таблице символов необходимо использовать только мнемонические обозначения, предлагаемые редактором.
Дата добавления: 2016-12-09; просмотров: 2761;