Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Программирование логических контроллеров в среде ISaGRAF




Программирование логических контроллеров в среде ISaGRAF

Елизаров И. А., Третьяков А. А.

 

 


Структура инструментальной системы программирования ISaGRAF

 

Одной из самых распространенных инструментальных систем программирования контроллеров, реализующих стандарт IEC 61131-3, является система ISaGRAF. Инструментальная система ISaGRAF относится к классу систем CASE-типа (Computer Aided Software Engineering). Широкому распространению системы ISaGRAF способствуют:

· поддержка всех пяти стандартных (в соответствии с IEC 61131-3) языков программирования ПЛК;

· использование графического интерфейса системы разработки, соответствующего международному стандарту GUI (Graphical User Interface), включающему многооконный режим работы, полнографические редакторы, работу с мышью и т. д.;

· легкость в освоении и удобство использования;

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

· встроенные средства программирования промышленных сетей;

· поддержка основных функций протокола Modbus;

· возможность использования функций пользователя, написанных на языке С;

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

Система ISaGRAF включает в себя:

· систему разработки (ISaGRAF Workbench);

· систему исполнения (ISaGRAF Target).

Общая структура системы ISaGRAF представлена на рис. 1.

Система разработки предназначена для создания прикладных задач, исполняемых под управлением ядра ISaGRAF на системах исполнения, и устанавливается на IBM PC- совместимом компьютере под управлением операционной системы семейства MS Windows. Система разработки компилирует проект в системно-независимый код (Target Independent Code (TIC)). TIC-код загружается через каналы коммуникаций (RS-232, RS-485, Ethernet TCP/IP) в целевую машину (контроллер) для исполнения.

 

Рис. 1. Общая структура системы ISaGRAF

 

Система исполнения загружается или прожигается в ПЗУ целевой машины. Она включает в себя ядро ISaGRAF и набор дополнительных модулей.

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

Коммуникационный интерфейс обеспечивает поддержку со стороны ПЛК процедуры загрузки ISaGRAF-приложения, доступ к переменным этого приложения во время отладки, а также взаимодействие с системами SCADA (Supervisory Control And Data Acquisition – диспетчерское управление и сбор данных) посредством протокола Modbus.

Системные функции предназначены для описания специфики аппаратной части и операционной системы, установленной в конкретном контроллере. ISaGRAF-приложение может функционировать под различными операционными системами (Windows NT, Windows CE, Embedded NT, OS 9/9000, MS DOS, LynxOS, QNX, VxWorks и др. ).

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

Интерфейс плат ввода-вывода предназначен для организации доступа к аппаратуре ввода-вывода (локальным платам ввода-вывода, контроллерам промышленных сетей CAN, Profibus, Ethernet и др. ).

 

Архитектура проекта

Проект ISaGRAF в общем случае разделен на несколько программных элементов. В свою очередь программные элементы можно разделить на программы, функции и функциональные блоки (ФБ). Программные элементы проекта связаны друг с другом в древовидную структуру. Программные элементы могут быть описаны с помощью графических или текстовых языков SFC, FBD, LD, ST, IL.

Программные элементы описывают либо последовательные либо циклические операции. Циклические программные элементы выполняются на каждом цикле целевой системы. Исполнение последовательных программ определяется динамическими правилами языка SFC.

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

Иерархия программных элементов разделена на пять основных секции или группы (табл. 1):

Табл. 1 Иерархия программ

Begin программы, выполняемые в начале каждого цикла целевой задачи
Sequential программы, определяемые динамическими правилами SFC
End программы, выполняемые в конце каждого цикла целевой задачи
Функции, набор функций пользователя
Функциональные блоки набор функциональных блоков пользователя

 

Программы секций Begin и End описывают циклические операции и не зависят от времени. Программы секции Sequential описывают последовательные операции, где временная переменная явно синхронизирует основные действия. Основные программы секции Begin систематически выполняются в начале каждого цикла. Основные программы секции End систематически выполняются в конце каждого цикла. Основные программы секции Sequential  выполняются в соответствии с динамическими правилами SFC. Функции и функциональные блоки могут быть вызваны любой другой программой в проекте. Функции и функциональные блоки могут вызывать другие функции и функциональные блоки. Однако не разрешается рекурсивный вызов функций и функциональных блоков.

Программы секции Sequential должны быть описаны при помощи языка SFC. Программы секций Begin и End пишутся на любом языке, за исключением языка SFC.

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

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...