АСУТП по-домашнему

Вкусная АСУ на малине, секреты приготовления

Напишите ответ

Введите сообщение и нажмите «Отправить»
Параметры

Назад

Обзор темы (новое вверху)

Puhov
2017-04-06 00:20:26
Система исполнения IsaGRAF для Raspberry PI (TargetPI)

Широко известная cреда разработки прикладных программ ISaGRAF позволяет разрабатывать качественный софт для программируемых логических контроллеров (ПЛК). Для того, чтобы полученный в ISaGRAF-е код смог исполняться на ПЛК, в ПЛК должна функционировать среда исполнения - ISaGRAF Target Kernel, причём для каждого семейства ПЛК разрабатывается свой Target, учитывающий специфику данного ПЛК. Благодаря своим прекрасным технико-экономическим показателям, одноплатные компьютеры Raspberry с успехом могут быть использованы в качестве ПЛК для широкого круга задач автоматизации. В связи с чем для Raspberry было разработано ядро исполнения ISaGRAF со следующими возможностями:

  • поддержка системы разработки ISaGRAF Workbench 3.х;

  • поддержка Raspberry PI-3;

  • встроенная ОС PICore (портация linux TinyCore для RaspberryPI), устойчивость к внезапному отключению питания;

  • сетевой обмен между несколькими контроллерами по протоколу UDP;

  • несколько ядер (проектов) внутри контроллера с возможностью обмена между ними;

  • сервер modbus-tcp-slave для доступа к сетевым переменных проекта по MODBUS-TCP;

  • доступ к внешним устройствам по протоколу MODBUS через TCP и Serial-Bus соединения;

  • доступ к встроенному интерфейсу GPIO в режимах DI, DO, PWM (широкоимпульсная модуляция);

Структура среды исполнения

TargetPI состоит из образа SD-карты памяти с предустановленной ОС Linux PICore и прикладным программным обеспечением. SD карта памяти имеет два раздела, первый из которых размечен как FAT32. Здесь расположены загрузочные файлы ОС. Также в этот раздел вынесены настройки, позволяющие контролировать параметры ПЛК, например настройки IP адресации для сетевых карт Ethernet и wifi.

Второй раздел SD-карты содержит файловую систему linux и предначен для хранения приложений, в том числе TargetPI. Среда исполнения TargetPI представляет собой интерпретатор TIC-кода (target independent code), генерируемого в среде разработки ISaGRAF и загружаемого в контроллер RaspberryPI через механизм отладчика. Загруженный в контроллер проект сохраняется на SD-карте и автоматически стартует в случае последующих выключений и включений контроллера.

Cлужебные скрипты и исполняемые файлы среды TargetPI инсталлированы в каталог /home/tc . Структурно система состоит из следующих составляющих:

  • скрипты автозапуска процессов и служб;

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

  • поцесс-планировщик прикладных задач (csSched);

  • процесс-интерпретатор TIC-кода (isaSys);

  • сервис протокола отладчика ISaGRAF Workbench (isaNet);

  • сервис сетевого обмена по протоколу fastlink (netDDE) и процесс-инициатор сетевого обмена (masterDDE);

  • сервис modbus-slave (isaModbus);

  • сервис доступа по протоколу HTTP/POST

Возможности коммуникации

Многозадачная ОС обеспечивает одновременное исполнение нескольких ISaGRAF-проектов на одном контроллере. Между ними возможен обмен на уровне переменных через разделяемую память. Если в проекте использовано несколько ПЛК, то их можно связать по сети Ethernet или wifi, при этом используется быстродействующий метод передачи сгруппированных в массивы переменных UDP-пакетами (внутренний протокол fastlink). Для связи ПЛК с уровнем HMI (SCADA и тп) может использоваться OPC-сервер,  modbus-tcp и HTTP протоколы.

Применительно к протоколу Modbus, TargetPI обеспечивает работу ПЛК в режиме ведущего (master) или подчинённого (slave) узла. В случае назначения внутренним переменным проекта сетевых адресов возможен доступ к таким переменным по протоколу Modbus-TCP (режим slave). Для работы в качестве ведущего в TargetPI реализованы функциональные блоки доступа к подчинённым узлам по ModbusTCP, ModbusRTU и ModbusASCII протоколам.
Для удалённого администрирования возможен доступ к командной строке по ssh (например, посредством утилит putty или WinSCP).

Библиотеки ввода-вывода

TargetPI содержит реализацию функциональных блоков и плат ввода-вывода, предоставляющие доступ к сигналам GPIO, удалённым устройствам Modbus и другие возможности. Детальное описание этих возможностей доступно в контекстной справке библиотеки среды разработки ISaGRAF. Для работы с GPIO реализованы следующие платы:

  • gpio_conf - плата конфигурирования сигналов GPIO;

  • gpio_di - дискретные входы;

  • gpio_do - дискретные выходы;

  • gpio_pwm - выходы с широтно-импульсной модуляцией;

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

Интерфейс GPIO Raspberry PI-3 предоставляет 28 выходов, которые можно сконфигурировать на ввод или вывод в произвольной комбинации.

Функциональные блоки Modbus:
  • mbwr1ro - запись одного выходного регистра Modbus-RTU/ASCII;

  • mbwr1сo - запись одного дискретного выхода Modbus-RTU/ASCII;

  • mbrdri - чтение входных регистров Modbus-RTU/ASCII;

  • mbrdci - чтение дискретных входов Modbus-RTU/ASCII;

  • mbrdro - чтение выходных регистров Modbus-RTU/ASCII;

  • mbrdco - чтение дискретных выходов Modbus-RTU/ASCII;

  • mbwrro - запись выходных регистров Modbus-RTU/ASCII;

  • mbwrco - запись дискретных выходов Modbus-RTU/ASCII;

  • mbrdritc - чтение входных регистров Modbus-TCP;

  • mbrdcitc - чтение дискретных входов Modbus-TCP;

  • mbrdrotc - чтение выходных регистров Modbus-TCP;

  • mbrdcotc - чтение дискретных выходов Modbus-TCP;

  • mbwrrotc - запись выходных регистров Modbus-TCP;

  • mbwrcotc - запись дискретных выходов Modbus-TCP;

Функциональные блоки Modbus (кроме mbwr1ro и mbwr1ri) работают с массивами переменных. В виду отсутствия массивов в 3 версии ISaGRAF, в TargetPI массивы реализованы в виде С-функций и в виде именованных виртуальных плат (vio_ai, vio_ao, vio_di, vio_do). При использовании виртуальных плат ввод/вывод по Modbus происходит так же как и через обычные ISaGRAF-овские платы с использованием штатных механизмов привязки переменных и таблиц преобразований. Также доступны платы ввода-вывода для обмена массивами переменных между проектами в пределах ПЛК и скоростного сетевого обмена. Состав библиотеки непрерывно расширяется.

Две конфигурации системы исполнения

Система исполнения доступна в двух вариантах - live и home. В случае live рабочий каталог системы расположен в оперативной памяти контроллера, запись данных на SD-карту происходит однократно, только при обновлении версий проектов ISaGRAF. Использование хранимых переменных (переменные, значения которых цикли чески сохраняются в памяти и восстанавливаются при перегрузке контроллера) в конфигурации live невозможно, т.к. их значения будут храниться в файле ram-диска и при несанкционированном отключении питания контроллера значения хранимых переменных не сохранятся.

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

Подвал раздела