EnglishУкраїнськаРocсийский
Вход/Новый
01.02.2012 18:56 Давность: 7 yrs

Автор: Роман Савоченко

OpenSCADA в программируемом логическом контроллере (ПЛК)

Имя: ПЛК

Основан: октябрь 2008г

Версия: 1.0.0

Статус: GPL

Участники: Роман Савоченко

Описание: Проект посвящён созданию: среды исполнения ПЛК, прошивки ПЛК и аппаратных конфигураций специализированных PLC. Рассмотрены встраиваемые системы на основе архитектур x86 и ARM, а также отдельное оборудование встраиваемых решений:

  • Diamond Systems: ATH400-128;
  • Kontron: MOPSlcdLX;
  • «A-TEX» Ltd: iROBO-Fanless;
  • ICP DAS: LP-8781;
  • ZAO ZEO: Тион-Про270;
  • Segnetics: SMH2Gi.

Материалы: ftp://ftp.oscada.org/OpenSCADA/PLC


Одноплатный PC/104 компьютер

Современные системы автоматического управления технологическими процессами (АСУ ТП) являются достаточно сложными. Условно иерархию АСУ ТП можно разделить на два уровня: нижний и верхний уровень. Нижний уровень АСУ ТП содержит полевое оборудование (датчики и исполнительные механизмы), а также программируемые логические контроллеры (ПЛК). Верхний уровень представляет из себя систему оперативной визуализации и контроля за технологическим процессом — SCADA-система. ПЛК являются ответственной частью АСУ ТП, которая выполняет функцию сбора данных полевого оборудования, вычисление и выдачу регулирующих, блокировочных и других воздействий на регулирующие органы полевого оборудования.

OpenSCADA является открытой реализацией SCADA-системы, которая основана на модульной архитектуре, что позволяет строить конечные решения под различные требования. Целевым назначением OpenSCADA являются системы верхнего уровня, однако высокая степень модульности, и как следствие масштабируемости, позволяет решать широкий круг задач смежных областей.

1. Промышленные программируемые логические контроллеры

Рынок ПЛК насыщен широким спектром изделий различной архитектуры и конструкции. Архитектурно ПЛК можно разделить на три условные группы:

  • жёстко-программируемые ПЛК и модульные устройства согласования с объектом (УСО);
  • высокоинтеллектуальные коммерческие ПЛК;
  • PC-совместимые ПЛК.

Жёстко-программируемые ПЛК обычно строятся на основе одно-кристальных микроЭВМ или микросхемах программируемой логики. Программа таких контроллеров или прошивается единоразово, предоставляя возможность программной параметризации, или же формируется специализированными средами наделёнными функциями компиляции бинарной прошивки среды исполнения с пользовательской программой, например ISaGRAF и LabView. В качестве представителя такого ПЛК можно в пример привести модули распределённого УСО фирмы Advantech.

Высокоинтеллектуальные коммерческие ПЛК обычно строятся на базе более мощного оборудования с архитектурой, близкой к полноценному PC-компьютеру. Основным отличием от стандартного PC-совместимого ПЛК является закрытая программная, а часто и аппаратная архитектуры. Программное окружение таких контроллеров обычно основывается на операционной системе реального времени, планирующей несколько пользовательских потоков с разделением их по приоритетам. Пользовательское программирование таких ПЛК осуществляется работой в фирменном программном окружении, формирующем в качестве результата бинарный код потока ПЛК. В качестве представителя такого оборудования можно привести ПЛК серии S7 фирмы Siemens.

PC-совместимые ПЛК - это группа скорее не ПЛК, прямо совместимых с PC, а ПЛК, которые не имеют интегрированной среды исполнения и часто поставляемых без операционной системы. Архитектура таких ПЛК может быть различной, начиная от экономичных решений архитектуры x86 и заканчивая архитектурными решениями ARM и MIPS. Среду исполнения таких ПЛК обычно формируют из ПО того же класса, что и в случае с жёстко программируемыми ПЛК в виде исполняемого бинарного файла под одну из распространённых, масштабируемых или специализированных ОС (DOS, QNX, Linux, WinCE, VxWorks). Часто встречаются и специализированные под задачу решения. В качестве представителей этого класса можно рассматривать ПЛК формфактора PC/104.

Варианты конструктивного исполнения ПЛК можно условно разделить на моноблочные и модульные. Моноблочные ПЛК предоставляют фиксированную конфигурацию УСО, специализированную под ограниченный круг задач. Модульные конструкции предоставляют возможность лёгкого расширения конфигурации УСО под нужную задачу. Существуют также и гибридные конструкции, представляющие из себя моноблок, способный расширять своё УСО за счёт внешних блоков УСО, подключаемых по одному из стандартных интерфейсов, например, по RS-485.

2. OpenSCADA как среда исполнения ПЛК

Архитектура системы OpenSCADA позволяет создавать конечные решения под различные требования и ресурсы путём модульного расширения. Эта возможность оказывается полезной в свете ограниченности ресурсов ПЛК. Кроме того, учитывая постоянное развитие аппаратного обеспечения, а также непрерывное повышение интеграции и экономичности современных микропроцессорных решений, OpenSCADA позволяет последовательно расширять функциональность ПЛК, сохраняя преемственность со старыми решениям. Например, на основе системы OpenSCADA можно строить решения с минимальными требованиям на уровне: CPU 100 МГц, память и флешь диск по 30 Мб.

Как было отмечено выше ресурсы современных ПЛК могут колебаться достаточно в больших пределах, причём ПЛК фиксированного типа, построенные на однокристальных микроЭВМ, всё дальше вытесняются в узко-специализированные области развитыми PC-архитектурами. Такая тенденция делает всё более интересной возможность создания унифицированной открытой платформы для реализации среды исполнения ПЛК на основе унифицированных PC-платформ.

OpenSCADA позволяет реализовать идею создания открытой платформы для реализации среды исполнения ПЛК. Уже сейчас можно реализовывать окружения ПЛК, немногим уступающее коммерческим интеллектуальным контроллерам, а во многом и превосходящие их за счёт возможности интеграции функций, характерных для SCADA систем, в окружение ПЛК, расширяя функциональные и пользовательские характеристики ПЛК и приводя его на единую со SCADA кодовую базу, а также оптимизируя стоимость конечного решения.

Перечислим функции решаемые OpenSCADA в рамках окружения ПЛК:

  • сбор данных различного спектра оборудования в синхронном, асинхронном или блочных режимах;
  • пользовательские процедуры обработки данных и выдачи управляющих воздействий на Java-подобном языке высокого уровня и на формальном языке блочных схем;
  • архивирование данных, начиная от временных буферов в памяти и заканчивая полноценными архивами на файловой системе или в БД различной дискретизации и глубины;
  • интеграция в инфраструктуру АСУ ТП путём реализации стандартных протоколов взаимодействия (ModBus, SNMP, OPC UA ...);
  • интеграция с СУБД для экспорта данных, хранения конфигурации или архивов;
  • свободная конфигурация и администрирование сети ПЛК как посредством оперативного интерфейса станции администрирования, так и посредством Web-интерфейса;
  • возможность реализации панелей оператора с интерфейсом контроля и управления на встроенной Touch-панели;
  • предоставление Web-интерфейсов оперативного и диспетчерского контроля.

3. Прошивка и создание программного окружения ПЛК архитектуры x86

Перед реализацией прошивки ПЛК ставились следующие требования:

  • Компактность. В связи с прямой зависимостью цены на промышленные флеш-диски от их объёма, а также реальным отсутствием необходимости частого обновления, образ прошивки нужно упаковывать, достигнув уровня компактности 8-50Мб на среду исполнения ПЛК в окружении полноценной ОС.
  • Унифицированный исходный репозиторий. Поскольку прошивка не является чем-то немодифицируемым, нерасширяемым и окончательно фиксированным, то в её основе должен лежать реальный развивающийся репозиторий пакетов ОС. Это позволит продолжительное время формировать обновления и расширения, не поддерживая при этом опосредованный репозиторий.
  • Отлаженная и простая процедура сборки. Учитывая тот факт, что конфигурация прошивки может некоторое время стабилизироваться, кроме того в компонентах ОС и OpenSCADA будут обнаруживаться и устраняться ошибки, то процедура сборки прошивки не должна быть обременительна, а напротив - легко адаптируемой.
  • Прозрачная реализация режима записи в дереве ОС. Хотя прошивка и подразумевает создание упакованного немодифицируемого образа прошивки, однако специфика работы среды исполнения ПЛК подразумевает модификацию БД и ведение архивов. Кроме того, наличие возможности коррекции исходной конфигурации является важным требованием.
  • Надёжность и устойчивость к внезапным выключениям. Спецификой эксплуатации ПЛК является, как правило, отсутствие возможности корректного выключения, а также практическая реальность ситуаций мгновенного и непредсказуемого пропадания питания. ПЛК в таких ситуациях должен сохранять работоспособность, в смысле содержать журналлируемую ФС и обеспечивать её проверку и автоматическое устранение ошибок.
  • Условное разделение конфигурации ПЛК на два типа:
    • ПЛК без локального дисплея, возможно с простым текстовым табло.
    • Touch-панели c функцией ПЛК.

3.1. Инструменты и сборка рабочих окружений

Учитывая вышеприведенные требования, для создания прошивки был выбран репозиторий пакетов дистрибутива ОС Linux ALTLinux и инструмент создания дистрибутивов mkimage. mkimage - инструмент для сборки образов Sisyphus-based системы по шаблону. В качестве исходного набора шаблонов был взят набор шаблонов формирования дистрибутивов ALTLinux по адресу git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop командой:

git clone git://git.altlinux.org/people/boyarsh/packages/mkimage-profiles-desktop

За основу формирования PLC шаблона был взят стандартный "rescue", как наиболее компактный и близкий к целевой задаче ПЛК.

3.1.1. Результат

В результате получаем прошивку размером от 30 до 100Мб, удовлетворяющую фактически всем заявленным требованиям и обеспечивающую:

  • Загрузку в течении 27 сек от включения контроллера и включая инициализацию BIOS.
  • Проверку и восстановление рабочей файловой системы в файле work.
  • Хранение пользовательских данных и изменений прошивки в файле work.
  • Автоматическую настройку сети по DHCP (или 192.168.0.1).
  • Доступ к контроллеру по SSH и удобный интерфейс работы, включая mc. Пароли по умолчанию (root:123456; admin:123456).
  • Синхронизацию времени посредством ntp.
  • Исполнение OpenSCADA с доступными сетевыми интерфейсами:
    • конфигурация через Web (порты: 10002 и 10004);
    • среда исполнения через Web (порты: 10002 и 10004);
    • интерфейс управления OpenSCADA (порт 10005).

3.1.2. OpenSCADA

В качестве среды исполнения ПЛК используем систему OpenSCADA. Для данного случая возьмём сборку с отдельными пакетами на каждый модуль и укажем для установки виртуальный пакет openscada-plc, который содержит зависимости на все пакеты OpenSCADA, обычно используемые для данной конфигурации. Пакет графической библиотеки gd2 был пересобран без поддержки формата графического файла xpm и получил название libgd2-noxpm. Пересборка делалось для того что бы исключить тяжелые зависимости на библиотеки графического интерфейса XOrg.

В результате получилась среда исполнения ПЛК с поддержкой:

  • БД:
    • SQLite
  • Архивирование:
    • на файловую систему
  • Источник данных:
    • вычислитель функциональных блоков
    • вычислитель на Java-подобном языке высокого уровня
    • контроллеры логического уровня
    • различные ПЛК по протоколу ModBus (RTU,ASCII,TCP)
    • данные ОС
  • Транспорт:
    • последовательные интерфейсы;
    • TCP, UDP и UNIX сокеты;
    • безопасный слой сокетов (SSL).
  • Транспортные протоколы:
    • HTTP
    • собственный протокол контроля OpenSCADA
  • Пользовательский интерфейс:
    • движок среды визуализации и управления (СВУ)
    • визуализатор СВУ на основе Web-технологий
    • конфигуратор OpenSCADA на основе Web-технологий

Конфигурация OpenSCADA запускается в режиме демона в локали uk_UA.UTF-8 с использованием локальной БД SQLite, предоставляя по умолчанию сетевые сервисы:

  • конфигурация через Web (порты: 10002 и 10004);
  • среда исполнения через Web (порты: 10002 и 10004);
  • интерфейс управления OpenSCADA (порт: 10005).

3.2. iROBO-3000a

iROBO-3000a представляет из себя безвентиляторный промышленный компьютер с установленным Intel Atom D425 1.8 GHz с VGA, 2xGb LAN, 4xCOM, 4xUSB, 1GB RAM, 1x2.5" SATA HDD 120GB, Mini-PCIe, 4x4 DIO, CF слот, SIM Card слот, Audio, WDT, рабочий диапазон температур -5..+55°С. Производительности данного компьютера достаточно для выполнения как функций сервера сбора, контроля и управления, так и функций станции визуализации. Однако, ввиду использования непроизводительного процессора семейства Atom выполнение математических моделей технологических процессов потребует всех ресурсов процессора. Например, при исполнении математической модели АГЛКС процессор нагружается на 86%. Контроллер имеет сертификат "УкрСЕПРО", что может быть важным для многих пользователей на территории Украины.

iROBO-3000a (541 Кб)

Рабочее окружение OpenSCADA для этого компьютера строилось на основе пакетной базы дистрибутива ALTLinux T6, а также свежесобранного окружения рабочего стола Trinity (TDE). Сборка окружения осуществлялась на основе вышеописанной концепции с помощью обновлённого профиля "mkimage". В новый профиль также была добавлена цель "plc", однако её суть изменилась, фактически став копией цели "live", что стало возможным благодаря внедрению на этапе первичной инициализации прозрачного монтирования раздела с меткой "alt-live-storage" как отражения упакованной файловой системы с произвольным доступом на модификацию. В целом это позволило создать фиксированное ядро прошивки с базовым набором программного окружения размером 300Мб и возможностью свободного расширения путём доустановки нужных пакетов из дистрибутива.

В качестве окружения рабочего стола было выбрано Trinity по причине наличия проблемы фонового артефактинга в связке XOrgServer 1.10 + QT4, а также малой ресурсоёмкости TDE при высокой развитости и стабильности.

Архив профилей сборки нового окружения получил название mkimage-profiles-6-kdesktop-plc.tgz, а последняя сборка прошивки ALTLinux6-OpenSCADA_0.7.2-i586-plcUI_TDE-generic.flash.tar.

4. Прошивка и создание программного окружения ПЛК архитектуры ARM

Широкое распространение во встраиваемых решениях получила архитектура ARM благодаря её сравнительно высокой производительности в сочетании с низким энергопотреблением и ценой. С целью выполнения плановой задачи обеспечения аппаратной многоплатформенности система OpenSCADA была адаптирована к сборке и работе на оборудовании ARM-архитектуры. Так, были выполнены проекты Сборка проекта OpenSCADA для мобильных устройств фирмы Nokia (N800, N900, N950) и Сборка OpenSCADA и прошивки для ARM-контроллеров фирмы ICP DAS (LP-5141). Целью данного раздела является систематизация методик и отслеживание проблем создания сборок OpenSCADA и прошивок программного окружения в целом для различного встраиваемого оборудования архитектуры ARM.

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

Для работы вычислительных функций OpenSCADA да и многих сопутствующих библиотек и программ важна производительность вычислений с плавающей точкой. Особенностью процессоров архитектуры ARM является простота ядра процессора и необязательное наличие расширений вроде математического сопроцессора. Как следствие производительность на операциях с плавающей точкой сильно зависит от конкретно взятого процессора, а также способа эмуляции вычислений с плавающей точкой в случае отсутствия сопроцессора вообще. На процессорах ARM-архитектуры встречаются два формата работы с плавающей точкой: FPA и VFP. Формат FPA является устаревшим и встречался в виде аппаратной реализации с ядрами ARM до семейства StrongARM(ARMv4). Ядра ARM семейства XScale(ARMv5TE) вообще не комплектовались математическим сопроцессором. А ядра ARM, начиная с семейства ARM11(ARMv6) комплектуются математическим сопроцессором формата VFP. В тоже время ARM процессора с архитектурой версии ARMv5 до сих пор широко распространены, а значит вопрос производительности математических вычислений для них сводится к производительности эмуляции формата FPA или VFP. В случае с окружением ОС Linux эмуляция FPA обычно осуществляется ядром Linux путём обработки исключений процессора при вызове FPA команд. Программная эмуляция в математической библиотеке обычно встречается с форматом VFP для чего требуется пересборка всех программ. При этом эмуляция FPA посредством исключений хуже по производительности программной эмуляции VFP почти на порядок. Сравнить производительность вычислений с плавающей точкой на разных архитектурах, процессорах и способах эмуляции можно из таблицы ниже:

Оборудование

Операция sin(Пи) [в JavaLikeCalc], мкс

Операция pow(Пи,2) [в JavaLikeCalc], мкс

ARM

ICP DAS LP-5141 (PXA270, FPA)

100 [200]

51 [152]

ZAO ZEO TionPro270 (PXA270, SoftVFP, uCLibc-0.9.32.1, -Os)

22 [51]

14 [41]

ZAO ZEO TionPro270 (PXA270, SoftVFP, GLibC-2.14.1, -O2)

15 [33]

12 [31]

Segnetics SMH2Gi (ARM926EJ-S, SoftVFP)

23 [44]

12 [31]

Nokia N800 (400 МГц)

6 [15]

6 [17]

Nokia N900 (1ГГц), N950 (1ГГц)

3 [6]

2 [6]

x86

AMD Geode LX800 (500 МГц)

3 [7]

4 [9]

AMD Athlon X2 3600+

3 [3]

3 [3]

AMD Turion L625 1.6

3 [4]

3 [4]

Intel Core2 Duo 1.6

2 [2]

2 [3]

 

Разница во времени вычисления при прямом вызове математической операции и из виртуальной машины JavaLikeCalc связана с влиянием частоты ядра процессора (частоты, на которой оно работает) и которым выполняется часть команды до передачи её математическому сопроцессору. Производительность математического сопроцессора обычно не связана непосредственно с производительностью и частотой ядра процессора.

Типовое программное окружение на основе ОС Linux для оборудования на основе ARM представляет из себя: Загрузчик UBoot, Ядро Linux и Корневую Файловую Систему (КФС). Загрузчик UBoot грузится в нулевой сектор флешь-памяти, а его настройки хранятся в первом. Со второго сектора загружается код ядра, а сразу после него КФС. КФС обычно оформляется в виде файловой системы JFFS2 или UbiFS, которые оптимизированы для работы на блочных устройствах — флешь памяти с ограниченным ресурсом записи. Примеры разбивки блочного устройства (флешь-памяти) для LP-5141 и TionPro270 представлены ниже:

# LP-5141

$ cat /proc/mtd

dev: size erasesize name

mtd0: 00040000 00020000 "Bootloader"

mtd1: 00040000 00020000 "Bootloader Param"

mtd2: 00280000 00080000 "Kernel"

mtd3: 03c80000 00080000 "JFFS2 Filesystem"

# TionPro270

$ cat /proc/mtd

dev: size erasesize name

mtd0: 00080000 00040000 "Bootloader"

mtd1: 00400000 00040000 "Kernel"

mtd2: 01b80000 00040000 "Filesystem"

Корневая файловая система содержит типовое UNIX-дерево с рабочими программами, библиотеками и другими файлами. Основой любой программы или библиотеки являются системные библиотеки GLibC или UClibc. OpenSCADA адаптирована для сборки и работы с "GLibC" версии >= 2.3. "UClibC", созданная как облегчённая версия "GLibC" для встраиваемых систем, содержит ряд ограничений и до сих пор не реализует или содержит ошибки в реализации для ряда функций.

КФС и программное окружение на основе Linux может поставляться вместе с ARM-оборудованием и содержать закрытые бинарные библиотеки, модули ядра Linux и т.д. В таком случае независимая сборка и замена исходного программного окружения становится непрактичной поскольку приводит к потере исходной функциональности. Однако, часто встречается ситуация поставки оборудования ARM без исходного программного окружения или с окружением, которое не содержит закрытого кода и которое может быть заменено. Примером первого случая является контроллер LP-5141 и подобные фирмы "ICP DAS", которые содержат бинарную сборку библиотеки API специализированного оборудования (libi8k) и модули ядра Linux для его инициализации. Примером второго случая является одноплатный компьютер Тион-Про270, создание программного окружения и сборки OpenSCADA для архитектуры ARM которого будем рассматривать ниже.

4.1. Инструменты сборки ядра Linux и рабочих окружений под разные целевые архитектуры

Сформировать Linux КФС можно на основе готовых пакетов существующего бинарного дистрибутива, пакетов исходных текстов существующего дистрибутива, а также собрать из оригинальных исходных текстов посредством ToolChain в одной из сборочных систем.

Сборка программ или целой КФС для архитектур, отличных от x86 и x86_64, обычно осуществляется посредством кросскомпиляции с использованием утилит (ToolChain) для сборки, линковки и отладки под целевую архитектуру ARM. Для автоматизации этого процесса создан ряд инструментов сборки готовых КФС.

4.1.1. BuildRoot

Данная система сборки является частью проекта создания альтернативной библиотеки функций языка "C" UClibc, поэтому в основном нацелена на сборку окружений с "UClibc", с соответствующими ограничениями. BuildRoot хорошо показал себя в работе на хостовых системах разных версий и позволяет без особых проблем собирать программные окружения на основе Linux.

4.1.2. PTXDist

Универсальный инструмент сборки ядер, ToolChain и программных окружений на основе Linux фирмы "Pengutronix". PTXDist является мощным и гибким инструментом, однако старые его версии имеют проблемы на современных хостовых системах, что усложняет задачу сборки программных окружений для сравнительно старых, но всё ещё распространённых, аппаратных платформ. Например, сейчас (2012 год) можно встретить новое оборудование с процессорами ARM XScale, ARM9 (ARMv5) времён 2003 года. Однако, новыми версиями PTXDist неплохо поддерживаются старые платформы, о чём можно узнать из таблицы поддержки по ссылке: www.pengutronix.de/oselas/toolchain/index_en.html.

4.2. Тион-Про270

Одноплатный компьютер "Тион-Про270" представляет собой высокоинтегрированную вычислительно-управляющую систему на базе процессора Marvell PXA270 с ARM ядром семейства XScale от фирмы ЗЭО. Данная плата была передана разработчикам проекта OpenSCADA Алексеем Попковым с целью адаптации OpenSCADA.

Все материалы по сборке программного окружения с OpenSCADA и готовые сборки для платы Тион-Про270 можно получить по ссылке: ftp://ftp.oscada.org/OpenSCADA/PLC/TionPro270

TionPro270 (344 Кб)

Плата поставляется производителем оборудования с предустановленным программным окружением на основе Linux™ или Windows CE©. Кроме того все исходные материалы программных окружений доступны на Wiki-ресурсе производителя.

4.3. SMH2Gi

Свободнопрограммируемый панельный контроллер "SMH2Gi" представляет собой высокоинтегрированную вычислительно-управляющую систему на базе процессора iMx27 с ядром ARM926EJ-S от фирмы Сегнетикс. Адаптация и сборка OpenSCADA для этого контроллера понадобилась в рамках проекта создания автоматизированной системы управления вакуумной технологической установки.

Все материалы по сборке программного окружения с OpenSCADA и готовые сборки для панельного контроллера можно получить по ссылке: ftp://ftp.oscada.org/OpenSCADA/PLC/Segnetics-SMH2Gi

SMH2Gi (259 Кб)

Панельный контроллер поставляется производителем оборудования с предустановленным программным окружением на основе Linux™ и собственной средой исполнения контроллера "SMLogix". Роль OpenSCADA для данного контроллера рассматривалась как расширенная среда программирования контроллера, интегрированная и программируемая из станции верхнего уровня на основе OpenSCADA. Для сохранения возможности представления и контроля данных, полученных в OpenSCADA, на встроенном дисплее, при этом минимизировав трудозатраты на адаптацию, решено было сохранить исходную среду исполнения "SMLogix" для выполнения задачи представления данных на внутреннем дисплее, а данные транслировать в/из неё посредством локального ModBus/TCP соединения.

В отношении программного окружения панельного контроллера SMH2Gi в целом нужно сделать несколько замечаний. В контроллере использовано ядро Linux 2.6.29 с расширением жёсткого реального времени, что позволяет удерживать периодичные интервалы времени до 100 мкс. Кроме того, все критичные системные потоки запущены с политикой управления планированием реального времени. При этом, хотя процессор не имеет математического сопроцессора, эмуляция выполнена оптимально в виде SoftVFP. Всё это позволяет в OpenSCADA исполнять высоко-детерминированные задачи управления с периодичностью до 100 мкс и приемлемой вычислительной производительностью.


2153