Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАМММНО-ТЕХНИЧЕСКИЕ КОМПЛЕКСЫ МИКРОПРОЦЕССОРНЫХ СИСТЕМ АВТОМАТИЗАЦИИ И УПРАВЛЕНИЯ.doc
Скачиваний:
63
Добавлен:
01.05.2014
Размер:
10.03 Mб
Скачать

6. Инструментальные средства разработки

Система разработки программ PG2000 предназначена для программирования ПКК B&R SYSTEM 2000. Система Программирования PG2000 обладает всеми особенностями современных пакетов программ, представляет собой многооконную интегрированную среду, которая позволяет пользователю работать как с помощью клавиатуры, так и мыши, иметь доступ к меню и диалоговым окнам. В случае необходимости можно воспользоваться интерактивной справкой по PG2000.

Рис. 6.1

PG2000 работает на персональном компьютере (ПК) с операционной системой MS DOS версии 3.30 или выше. Соединение ПКК с компьютером производится по последовательному интерфейсу через COM1 или COM2 (рис. 6.1). Если используется сетевой модуль PROFIBUS, то можно также программировать ПКК в сети.

Система Программирования PG2000 состоит из следующих модулей:

  • системы управление проектом (прикладной программой): для создания, открытия, удаления копий, и т.п. операций с проектом;

  • среды программирования, предназначенной для программирования проектов: создания, компилирования кодов, загрузки в ПКК, и т.д.

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

  • уровень ПКК, показывающий все устройства управления (ПКК) в данной прикладной программе как объекты (символы);

  • уровень процессора (необязательный уровень), содержащий все процессоры для данного ПКК;

  • уровень задачи - все задачи, выполняющиеся на данном процессоре.

Выбрав объект на уровне ПКК, с помощью функциональных клавиш пользователь сможет перейти с уровня ПКК на следующий, порожденный уровень. Если в системе имеется только один модуль процессора (основное ЦПУ), то можно перейти прямо с уровня ПКК на уровень задачи данного ПКК. В этом случае уровень процессора не нужен и ,следовательно, не существует. Если система является многопроцессорной, т.е. имеется более одного процессора или интеллектуальный процессор ввода/вывода, то между уровнями ПКК и задачи вставляется уровень процессора. На этом уровне все процессоры соответствующего ПКК показываются как объекты (символы). Пользователь может перейти на уровень процессора.

На уровне задачи показываются в виде объектов (символов) все прикладные программы (циклические задачи ПКК, задачи, выполняемые в режиме ожидания, особого состояния и прерывания) для соответствующего процессора.

GDM дает программисту обзор всего проекта на каждой фазе разработки приложения и возможность создавать и сопровождать сложные многопроцессорные приложения. При этом GDM позволяет улучшить понимание задачи автоматизации и облегчает написание более структурированных программ.

PG2000 предоставляет пользователю для оптимального решения любой задачи право выбора языка программирования. Имеются три различных языка программирования: язык лестничных диаграмм (LAD), список операторов (STL) и язык высокого уровня PL2000 (Си-подобный). В проекте возможно использование всех трех языков программирования.

Язык списка операторов соответствует стандарту IEC1131-3 и является специализированным ассемблером с ограниченным набором команд. Список операторов (STL) имеет алфавитно-цифровую форму. Соответствие стандарту позволяет использовать части прикладных программ, написанные в STL, из других стандартных совместимых систем программирования. Программы на языке STL создаются или редактируются в редакторе STL.

Рассмотрим пример:

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

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

1. Установить предельный вес (100 кг).

2. Вычислить общий вес двух объектов.

3. Сравнить текущий вес c предельным значением.

3.1. Если суммарный вес слишком велик, то включить сигнальный индикатор.

Текст программы на языке STL выглядит следующим образом:

START:

LD

100

ST

max_weight

; max_weight = 100

LD

weight_1

ADD

weight_2

ST

total

; total = weight_1 + weight_2

LT

max_weight

; total < max_weight?

JMPC

CONT

; если да, то перейти к CONT

LD

1

; иначе установить «alarm» = 1

ST

alarm

CONT:

Переменные weight_1 и weight_2 вводятся с электронных весов. «Alarm» выводится на сигнальный индикатор или светодиод.

STL - очень простой и широко используемый стиль программирования. Его просто изучить, и он весьма полезен.

Перед сохранением исходный текст STL проверяется редактором STL на синтаксическую правильность. Переменным, используемым в STL, даются символические имена. Связь между именами и аппаратными средствами может быть сделана в любое время с использованием процедуры объявления переменных. Список команд приведен в Приложении 2.

Система Программирования PG2000 позволяет писать программы для любой части приложения с использованием редактора лестничных диаграмм (LAD). Этот тип программирования подобен созданию принципиальных электрических схем. В редакторе LAD контакты показываются символическим образом; используется вызов символических имен. Каждый контакт должен быть приписан переменной процесса или константе. Связь между символическими именами и аппаратными средствами может быть установлена в любое время с помощью процедуры объявления переменных. Перед сохранением LAD полностью проверяется на наличие ошибок, например, отсутствующих выходов, неподсоединенных линий, контактов без имени и символов функций (см. ниже) без входных или выходных параметров. Все типы контактов приведены в Приложении 3.

Рассмотрим пример:

Необходимо описать схему (рис. 6.2) с двумя выключателями и лампой в терминах LAD.

Рис. 6.2

Рис. 6.3

Когда оба контакта (switch_1 и switch_2) включены (замкнуты), то лампа включена. Если любой из двух выключателей разомкнут, то соединение отсутствует, и лампа остается выключенной. Одна из самых сильных сторон лестничных диаграмм заключается в том, что программы в этом представлении имеют очень наглядный вид (рис. 6.3):

При работе с чисто логическими разделами программы использование LAD является самым простым, быстрым и легким методом программирования.

Язык программирования высокого уровня PL2000, который основан на стандарте IEC1131-2 для структурных текстовых языков программирования, благодаря богатому синтаксису, позволяет решать самые разнообразные задачи, в том числе и с использованием расширенной библиотеки математических функций. PL2000 содержит конструкции для управления циклами, условными переходами (if - then), выбора структур (case) и создания конечного автомата (select). Рассмотрим предыдущий пример, реализованный на STL. Текст такой программы на языке PL2000 выглядит следующим образом:

max_weight = 100

total = weight_1 + weight_2

if total > max_weight then

alarm = 1

endif

Программы PL2000 создаются и редактируются в редакторе PL2000. Редактор PL2000 имеет систему проверки синтаксиса строки, которая может проверять каждую строку исходного текста по мере написания. Исходный текст PL2000 проверяется на синтаксическую правильность либо интерактивно, либо при сохранении, в зависимости от сделанных пользователем установок. Переменным, используемым в PL2000, даются символические имена. Связь между именами и аппаратными средствами может быть произведена в любое время с помощью процедуры объявления переменных. Из трех языков, возможных при программировании ПКК B&R, язык программирования PL2000 - наиболее мощный. Основные сведения по языку PL2000 приведены в Приложении 3.

Существует более 200 функциональных блоков (подпрограмм), которыми может воспользоваться программист. Функции полезны при написании программ. Функция - это фрагмент программы, который уже создан и выполняет некоторую операцию, например вычисляет косинус угла, или выводит текст на дисплей. Стандартные функции поддерживают математические операции, управление и специальные операции. Большинство библиотек функций должны импортироваться в текущий проект, за исключением системной библиотеки (SYSTEM), которая является встроенной. Если библиотека, содержащая используемую функцию, не была импортирована, то при трансляции выдается сообщение об ошибке. Существуют конкретные функции B&R для аппаратных средств, операционной системы и памяти; функции, удовлетворяющие требованиям стандарта IEC1131 (разрядные функции, счетчики, распознавание фронта, таймеры и т.д.); стандартный набор математических функций (тригонометрических, степенных, гиперболических и т.д.); функции для модемной связи, стандартные системные функции (преобразование типа данных, функции обработки строк и т.д.). Пользователь в любое время может создавать с помощью редактора функциональных блоков новые функции на любом языке.

Удобным средством, предоставляемым PG2000, является возможность присваивания символических имен всем используемым адресам ввода/вывода в процедуре объявления переменных. Переменные определяются в редакторе таблиц, который интегрирован в систему программирования. В таблицу заносятся символьное имя, область применения (local, tc_global, pcc_global, dynamic), тип данных (BIT, INT8, INT16, INT32, BYTE, WORD, LONG и FLOAT), длина, тип ввода/вывода (INTERNAL, 2003-I/O, 2005-I/O, 2010-I/O, REMOTE-I/O, IP, MP/PP, Reference), начальное значение (значение инициализации), длинное имя (дополнительное описание) для каждой переменной процесса. Основное преимущество для пользователя заключается в том, что определение или изменение адреса ввода/вывода можно выполнить в любое время в ходе программирования, без необходимости изменения исходного текста. При переносе задачи на другие ПКК с различными конфигурациями необходимо изменить только часть объявления переменных, а не фактический код программы.

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

Для режима списка операторов и PL2000 можно запустить монитор переменной регулируемого процесса и многоуровневый отладчик. Отладчик, работающий в терминах языка программирования, позволяет находить ошибки в задачах, которые написаны на языке PL2000 или STL и загружены в ПКК. Задача извлекается из циклической системы выполнения и выполняется независимо от времени цикла. С помощью отладчика можно устанавливать просмотр переменных, чтобы контролировать их значения в нециклическом мониторе переменных процесса. Монитор переменных процесса (Монитор PV) может использоваться вместе с отладчиками или самостоятельно. Список переменных модифицируется согласно установке пользователя. Монитор переменных процесса позволяет наблюдать текущие значения переменных в задаче, выполняющейся в ПКК, обеспечивает доступ на уровне считывания или записи ко всем переменным процесса, известным в системе. Отладчик позволяет выполнять программу по шагам и устанавливать точки останова. В точках ввода/вывода данных может использоваться функция принудительного задания значения. Пользователь может решить, должна ли задача изменять значения выходных сигналов системы, или же в отладчике или при тестировании она должна выполняться независимо от физического мира. Эта особенность гарантирует безопасность при отладке программы на реальном оборудовании.

Многозадачность означает, что вычислительная мощность ЦПУ разделена между индивидуальными задачами. В основном, время обработки определяется не временем выполнения приложения, а операционной системой ПКK. С помощью Профилировщика существует возможность выводить системную информацию (например, загрузку ЦПУ) в легко читаемой форме. Для оптимизации времени выполнения приложения достаточно изменить небольшое число параметров программы. Функциональные возможности операционной системы PLCSW (например, количество классов задач стандартного и повышенного быстродействия) могут быть специально адаптированы под требования прикладной программы с помощью Конфигуратора. Конфигуратором могут быть настроены следующие параметры модуля конфигурации ПКК:

  • количество классов задач стандартного и повышенного быстродействия;

  • время цикла каждого конкретного класса задач;

  • допустимое нарушение времени цикла для стандартных классов задач;

  • приоритет классов задач повышенного быстродействия;

  • приоритет классов задач прерываний;

  • размер областей памяти в системном ОЗУ и ОЗУ прикладной программы.

Наиболее важными функциями Профилировщика являются:

  • измерение временных характеристик в ходе выполнения для классов задач;

  • измерение временных характеристик в ходе выполнения для задач;

  • циклическая оценка временных характеристик в ходе выполнения;

  • отображение системных задач и задач ПКК, выполняющихся в ПКК;

  • оценка требований к объему стека.

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

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

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