Повышение эффективности кросс-средств

Кросс-средства – это специальные программные средства для программирования контроллеров. Был проведён анализ наиболее распространённых и доступных (наличие самих программ и документации) кросс-средств: программа Леон – для контроллеров серии «Контраст»; программа Редитор Р-130 – для контроллера Ремиконт Р-130; UltraLogik, ISaGRAF, CoDeSys, Step-7 – системы разработки программ для промышленных контроллеров ведущих фирм. Программные продукты CoDeSys, Step-7 лучше назвать средой программирования. Так, среда CoDeSys предназначена в нашей стране для программирования контроллеров фирмы ОВЕН, таких как ПЛК-150, ПЛК-154, ПЛК-110 и др. Step-7 – для программирования контроллеров фирмы Siemens. В результате анализа и работы с программами Леон и Редитор Р-130 были сформулированы требования к такого рода программным средствам, чтобы они были более эффективными при разработке программ контроля и регулирования для промышленных контроллеров. Рабочие версии программ UltraLogik, ISaGRAF, Step-7 стоят тысячи долларов, поэтому не представляется возможным их применение в учебном процессе. Удалось получить рабочие версии программ Редитор Р-130 и Леон, которые успешно осваиваются студентами. Фирмой ОВЕН предоставлена возможность бесплатного изучения и применения CoDeSys [17, 18]. Для общего представления ниже приводится краткая характеристика программ UltraLogik и ISaGRAF.

Назначение UltraLogik

Система UltraLogik предназначена для разработки программного обеспечения сбора данных и управления, исполняемого на IBM PC – совместимых контроллерах и промышленных компьютерах с открытой архитектурой.

Система программирования UltraLogik разработана в соответствии со стандартом Международной электротехнической комиссии (МЭК) IEC61131.3 и в качестве основного языка программирования использует язык функциональных блоковых диаграмм Function Block Diagram (FBD).

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

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

Контроллер в системе представляется как «черный ящик», связанный с объектом управления посредством формальных устройств аналогового и дискретного ввода/вывода. Настройка системы на различные типы контроллеров и модулей ввода/вывода производится в диалоговом режиме.

Контроллеры и промышленные компьютеры, программируемые на UltraLogik, могут объединяться в сети передачи данных на базе интерфейса RS-485 и Ethernet. При этом обеспечивается возможность организации обмена данными между контроллерами в многоточечном мультимастерном режиме. Разработчику программного обеспечения достаточно указать, какие переменные проекта должны передаваться в сеть и приниматься из сети, задать сетевой адрес для каждого узла и выбрать тип сетевого интерфейса. После компиляции проекта сетевые драйверы будут автоматически скомпонованы с кодом проекта.

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

Архитектура и составные части системы

UltraLogik состоит из двух частей:

– системы программирования, работающей в среде Microsoft© WINDOWSTM или WINDOWS NT;

– системы исполнения, работающей в среде MS-DOSTM версий 3.3 и выше.

Система программирования содержит собственно средства подготовки программ и средства их отладки. Средства подготовки программ объединяет Менеджер проекта, который содержит:

– редактор переменных;

– конфигуратор контроллера;

– редактор программ;

– компиляторы.

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

Встроенный эмулятор предназначен для предварительной отладки программы непосредственно в среде UltraLogik без целевого контроллера. В этом режиме работа контроллера эмулируется специальной программой, выполняемой на компьютере системы программирования. Программа эмуляции работает в режиме «резинового» времени, то есть отсчеты времени производятся через интервалы, устанавливаемые пользователем.

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

Основные характеристики UltraLogik:

– визуальное программирование;

– встроенная поддержка процессоров и модулей ввода/вывода Octagon System®, модулей LanAutomatic, контроллеров серии ADAM-5510;

– библиотеки поддержки модулей – преобразователей серии G5 (Grayhill);

– поддержка сторожевого таймера;

– встроенные алгоритмы дискретного и аналогового управления и регулирования, в том числе П, ПИ, ПИД-законы;

– калибровка входных измерительных каналов;

– широтно-импульсная модуляция аналоговых переменных;

– простое подключение к популярным SCADA-системам;

– моделирование процессов;

– эмуляция контроллера на системе программирования;

– удаленная сетевая отладка программы и осциллографирование переменных с любых узлов;

– подключение программных модулей, написанных на других языках;

– подключение любых типов контроллеров;

– библиотека функциональных модулей, в том числе математических, статистических;

– библиотека функциональных модулей, определяемая пользователем;

– инспектор программ;

– встроенная сетевая поддержка работы контроллеров;

– неограниченное количество переменных и каналов ввода/вывода.

ISaGRAF

Продукт ISaGRAF основан на структурном программировании, дающем возможность пользователю описать автоматизируемый процесс в наиболее понятной форме. Интерфейс с пользователем системы ISaGRAF соответствует международному стандарту GUI (Graphical User Interface), включающему многооконный режим работы, графические редакторы, работу с мышью и т.д. Данная интегрированная система позволяет:

– широко использовать программы, процедуры, написанные на языках, а также вставлять кодовые последовательности одного языка в коды других, поддерживая все пять стандартных языков программирования в соответствии со стандартом IEС 61131.3[23];

– просматривать состояние программного кода переменных, программ и многое другое при наличии мощного отладчика;

– поддерживать различные протоколы промышленных сетей;

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

– полностью документировать этапы разработки.

Кроме того, система ISaGRAF имеет: набор драйверов для работы с различными модулями устройств сопряжения с объектом (УСО) под управлением контроллеров разных фирм-производителей (АВВ, Computer Boards, Metrabyte и др.); дополнительные интерактивные редакторы для описания переменных, определений и конфигураций ввода/вывода; встроенные средства контроля за внесением изменений в программный код ISaGRAF-приложения и передачи отчетов по разрабатываемому проекту с большой степенью детализации, в том числе таблиц перекрестных ссылок для программ и отдельных переменных.

Архитектура системы ISaGRAF

ISaGRAF условно делится на две системы:

– разработки ISaGRAF DevSys (MS Windows/NT; интегрированная среда разработки ISaGRAF);

– исполнения ISaGRAF Target (OS-9, MS DOS, VRTX; ISaGRAF-ядро, коммуникационная задача драйверы УСО, функции пользователя, системные функции).

Коммуникационная задача поддерживает процедуру загрузки пользовательского ISaGRAF-приложения со стороны контроллера, а также обеспечивает отладчику системы разработки ISaGRAF доступ к рабочим переменным этого приложения. Кроме того, она поддерживает также протокол MODBUS, что дает возможность доступа к данным контроллера не только отладчику, но любой системе визуализации и управления данными (SCADA).

Драйверы УСО организуют «прозрачный» доступ к аппаратуре ввода/вывода, делая этот процесс стандартным для конкретной ОС.

Функции пользователя описывают процедуры и алгоритмы функций, не реализованные в стандартном варианте постановки системы ISaGRAF.

Системные функции предназначены для описания специфических особенностей конкретной ОС, реализованной на данном типе контроллеров.

Ядро системы ISaGRAF осуществляет поддержку стандартных языков программирования, а также стандартного набора функций и функциональных блоков.

Процесс разработки ISaGRAF-приложения в общих чертах описывается следующим очевидным алгоритмом: создание приложения в рамках интегрированной системы разработки ISaGRAF (ISaGRAF DevSys), загрузка приложения из контроллера РС в PLC (RS-232, ETHERNET) и интерактивная отладка.

Основной принцип системы ISaGRAF –синхронизация.

Прикладная задача ISaGRAF работает строго по временным принципам, продолжительность которых устанавливает разработчик при компиляции задачи. Минимальная их продолжительность определяется характеристиками аппаратно-программной платформы (ISaGRAF Target), на которой происходит исполнение задачи. Для операционной системы MC-DOS этот цикл не должен быть менее 55 мс, для OS-9 – 10 мс. Если параметр времени сделать нулевым, прикладная задача будет работать по принципу: выполнилась текущая программная последовательность – управление передается следующей без ожидания.

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

Программный цикл представляется опросом всех сконфигурованных внешних каналов датчиков (например, АЦП) и завершается обновлением всех выходных каналов (например, ЦАП). Такая схема функционирования ISaGRAF-приложения гарантирует пользователю работу только с одной копией переменных типа INPUT, OUTPUT в рамках одного временного цикла.

Отладчик системы ISaGRAF представляет полный набор возможностей для получения качественного программного продукта (ISaGRAF-приложения):

– поддержку механизма выполнения программ по шагам;

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

– трассировку рабочих переменных;

– ON-LINE-модификацию значений переменных;

– останов/запуск отдельных программ, входящих в состав данного ISaGRAF-приложения;

– изменение продолжительности цикла выполнения приложения в процессе работы отладчика;

– эмуляцию сигналов, подаваемых на каналы ввода (INPUT) и т.д.

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

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

Требуемые функции кросс-средств

Итак, кросс-средства блочного программирования должны выполнять следующие функции.

1. Кросс-средства должны предусматривать стандартные операции с файлами (открытие, сохранение, архивация файлов и т.д.).

2. Кросс-средства должны обеспечивать конвертирование файлов или их сохранение в форматах bmp, tiff, pcx, pcc, ppt, dxf, dwg, cdw и др.

3. Кросс-средства должны обеспечивать возможность одновременной работы с несколькими файлами (иногда желательно иметь сетевой вариант программы).

4. Для удобства построения и чтения графического представления программы необходимы функции:

4.1) наличие координатной сетки с указанием текущих координат (как в AutoCade);

4.2) возможность перемещения по схеме в любом направлении по направлению перемещения курсора;

4.3) возможность изменения масштаба схемы (сразу для всей схемы или покоординатно);

4.4) поворота блока на 90, 180 и 270°;

4.5) при необходимости разделения алгоблока на отдельные части, располагаемые в различных местах схемы (программно это единый блок);

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

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

4.8) предварительного просмотра схемы в выбранном формате: А4, А3, …и произвольном.

5. Особое внимание следует уделить требованиям, касающимся непосредственно процесса программирования:

5.1) требования к выбору номера алгоблока:

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

– по требованию программиста система должна представить номера свободных алгоблоков;

– программа должна иметь запрет выбора номера, использованного ранее;

5.2) код алгоритма должен вводиться:

– с клавиатуры;

– путем выбора из списка. В этом случае хорошо предусмотреть деление всех алгоритмов на группы, что упростит поиск нужного алгоритма;

5.3) следует предусмотреть возможность самому пользователю конструировать новые алгоритмы в виде алгоблоков (примерно так, как это предусмотрено в среде CoDeSys);

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

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

– первые незанятые с возможностью их последующего изменения;

– с помощью косвенной адресации, при которой пользователь задает номер первого блока (базового), а остальные нумеруются по возрастанию с исключением «занятых» номеров;

5.6) должна быть предусмотрена возможность отмены или повтора операций;

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

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

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

5.10) задание связей должно производиться одним из двух способов:

– графическим (непосредственным соединением входа и выхода линией);

– адресно (указанием номеров входа и выхода связываемых алгоблоков);

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

5.12) по каждому алгоблоку должен быть предусмотрен вызов справки о данном алгоритме с рисунком и табличным описанием входов/выходов. То есть справка должна быть объектно привязанной;

5.13) по каждому алгоблоку и входу/выходу на схеме следует предусмотреть возможность ввода комментариев;

5.14) следует предусмотреть возможность перемещения по схеме одного или нескольких выделенных блоков;

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

6. Взаимодействие ПЭВМ с контроллером должно обеспечивать:

6.1) копирование программы в память контроллера (запись с ПЭВМ);

6.2) считывание программы из памяти контроллера;

6.3) сверку программ в памяти контроллера и на мониторе ПЭВМ. При сверке пользователь должен иметь возможность исключать некоторые адреса (так как информация постоянно изменяется);

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

7. При распечатке набранной на ПЭВМ программы кросс-средство должно позволять:

7.1) печать на бумаге различных форматов, в том числе и на рулонной;

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

7.3) печать с использованием масштабирования и/или разворотом схемы на 90°;

7.4) не прерывать работу оператора с документами в течение вывода схемы (таблицы) на печать;

7.5) приостанавливать печать с возможностью продолжения;

7.6) иметь возможность вывода схем, таблиц на принтеры и плоттеры (графопостроители);

7.7) иметь возможность нумерации страниц для таблиц (схем). Перед выдачей схем должна иметься возможность прямоугольной адресации схемы. Например, вся схема разбивается пользователем (или автоматически в соответствии с выбранным форматом) на квадраты (прямоугольники): А1, А2,…, В1, В2 и т.д. А1: А – горизонталь А, 1 – вертикаль 1. Такая адресация весьма полезна при описании сложных структурных схем алгоритмов контроля и регулирования.

8. Кросс-средства, разработанные для одной серии контроллеров, должны иметь дружественный интерфейс (позволять обмен имеющимися программами между ними).

9. На всех операциях должна иметься возможность работы как клавиатурой, включая «горячие» клавиши, так и клавишами мыши, а в дальнейшем – управлять голосом.

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

11. Должен быть предусмотрен режим эмуляции программ, то есть режим проверки программ без контроллера – в режиме эмуляции. Но при этом должны максимально учитываться особенности контроллера: формат и точность данных, соответствие различных типов данных, порядок обработки данных и время цикла, то есть режим эмуляции должен быть связан с временем цикла контроллера. Эмулятор должен быть максимально приближен к работе программы в реальном контроллере.

12. Должна быть возможность пошаговой проверки работы программы как в режиме эмуляции, так и при работе программы в контроллере (здесь, видимо, в режиме шаговой работы должна быть кнопка, при нажатии которой контроллер делает один цикл – шаг).

13. Следует предусмотреть останов программы на контрольных точках.

14. Должен быть конвертор для перевода программы в другие контроллеры.

15. В кросс-средствах или среде программирования должно быть предусмотрено программирование на различных языках: FBD, ST, CFC и др., включая вставки подпрограмм, написанные на языке СИ+.

16. После отладки программы должна иметься возможность оформления её как отдельного блока с учётом общих требований. Таким образом, десятки блоков превратятся в один. У пользователя будет возможность конструирования новых алгоритмов в виде алгоблоков. Следует при этом предусмотреть возможность написания программы с использованием операторов и вставкой любых формул расчёта.

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

Наши рекомендации