Программирование контроллеров ICP DAS на Windows CE. Работа с модулями ввода вывода
Программируемые промышленные контроллеры являются неотъемлемой частью в автоматизированных системах управления и контроля. Они осуществляют сбор информации с датчиков, обработку по ранее заданному пользователем алгоритму и выдачу сигналов на управляющие устройства. Невозможно представить себе технологический сложный процесс без применения промышленных контроллеров.
Оптимизировать производственный процесс, сделать его максимально эффективным, непрерывным и извлечь максимальную экономическую выгоду, вот на что сегодня направлена автоматизация производства, в основе которой лежат отказоустойчивые интеллектуальные устройства – промышленные контроллеры ПЛК.
Эксперт-Автоматика предлагает к поставке промышленные контроллеры всемирно известной и признанной компании ICP DAS. ICP DAS на протяжении уже многих лет является одним из лидеров рынка промышленной автоматизации, производя несколько линеек открыто программируемых промышленных контроллеров. Отличительной особенностью этих контроллеров является открытая PC-совместимая архитектура, операционная система Windows, Linux или DOS подобная MiniOS, использование открытых протоколов связи, возможность программирования, как на инженерных языках стандарта МЭК, так и на системных языках C#, VB.NET, C/C++, средствами API.
Не секрет, что для многих инженеров АСУ ТП написание программного кода на языках низкого уровня, таких как Си является не специфической задачей, и выбор подходящего оборудования для того или иного проекта часто сводится к решению вопроса о применении программного обеспечения, которое будет доступным и дешевым, легким для изучения и программирования, по возможности универсальным. В этом смысле рынок существующего оборудования и программного обеспечения в области промышленной автоматизации остается довольно консервативным. Компания ICP DAS одна из первых предложила концепцию открытой PC-совместимой промышленной архитектуры. В ее основе PC-совместимый промышленный контроллер с возможностью создания программного кода при помощи системных языков низкого уровня. Базируются эти контроллеры на PC-совместимых операционных системах со всеми вытекающими, то есть программу можно создавать привычными методами на компьютере и потом перенести на контроллер. Данная статья призвана познакомить читателя с тем, на сколько просто создавать программы на языках Си. Инженер АСУ получает в свои руки инструмент с очень мощными возможностями, как в плане реализации самых сложных алгоритмов, так и в плане интеграции оборудования от различных производителей.
Свои примеры мы продемонстрируем на промышленном контроллере серии XPAC-8000 компании ICP DAS. Эти контроллеры базируются на многозадачных системах семейства Windows CE и Windows XP Embedded. Могут применяться в самом широком круге задач, например таких как системы автоматизации зданий, промышленные механизмы, телемеханика - от простых до самых сложных.
Для описания примеров мы выбрали контроллер XPAC-8741-Atom-CE6. Это модульный промышленный контроллер, с ОС Windows CE 6.0, поддерживает написание приложений с использования .NET Framework 3.5. Имеет корзину для установки модулей до 7 шт. Разберем на конкретных примерах работу с дискретными и аналоговыми модулями ввода – вывода. В качестве дискретного модуля ввода используем 16-ти канальный I-8053W, в качестве дискретного вывода 16-ти канальный I-8037W, для примера работы с модулем аналогового ввода используем I-8017HCW.
Работа с модулями дискретного ввода/выводаНаш проект мы будем создавать при помощи Microsoft Visual Studio 2008 на языке C#, платформа для разработки приложения.NET Framework 3.5 именно эту версию поддерживает Windows CE 6.0, для работы с модулями ввода - вывода используется библиотека API функций, предоставляемая производителем. Опишем основные возможности работы с модулем дискретного ввода i-8053W.
На этапе создания проекта нам нужно указать, что проект создаётся для смарт-устройства (smart device), и что будет использоваться .NET Framework 3.5. Также нужно указать, что платформой для приложения будет Windiows CE:
Подключим к проекту стандартную библиотеку XPacNET.dll.
Подготовка окончена, теперь можно приступать к программированию. Напишем небольшую программу, отображающую состояние дискретных входов модуля i-8053W. Начнём с установки таймера на форму, который будет опрашивать модуль каждый 100мс:
Далее запрограммируем таймер на опрос модуля i-8053W:
Для графического отображения состояния каналов разместим элементы checkBox на форме 16 (по числу каналов дискретного ввода) для удобства разместим в 2 полосы по 8 элементов(соответствует расположению индикаторов на модуле i-8053W
Передадим значения элементов массива mark элементам формы checkBox:
Программа готова, осталось скомпилировать её и перенести на контроллер. Используя лишь базовые функции библиотеки XPacNET контроллер запрограммирован на отображение дискретных каналов модуля i-8053W.
Теперь опишем работу контроллера XPac с дискретным выводом на примере работы модуля I-8037W. Разберём процесс создания простейшей программы, считывающей состояния дискретных выходов модуля i-8053W:
Процесс создания проекта абсолютно аналогичен предыдущему примеру, проект создаётся для смарт-устройства (smart device), с поддержкой .NET Framework 3.5, платформа Windiows CE. Далее подключим стандартную библиотеку XPacNET.dll, так как она содержит функцию записи в каналы вывода и преступаем к программированию. Наш простой пример будет включать соответствующий выходной канал по нажатию кнопки.
Разместим на форме элемент TextBox, с помощью которого будем вводить номер канала для включения:
Также разместим управляющую кнопку Button, при нажатии на которую будет включаться канал, номер которого введён в TextBox:
Осталось запрограммировать кнопку на обработку данных, введённых пользователем, и послать сигнала модулю вывода i-8037W по нажатию на кнопку button1:
Программа готова, осталось скомпилировать её и перенести на контроллер Xpac. Используя лишь базовые функции библиотеки XPacNET контроллер запрограммирован на управление каналами модуля I-8037W.
В завершении работы с модулями дискретного ввода - вывода отметим несколько важных моментов, как Вы уже поняли мы использовали функции чтения и записи дискретного канала из библиотеки XPacNET.dll эта библиотека поставляется изготовителем оборудования, компанией ICP DAS, работа со всеми типами дискретных модулей серий I-87K и I-8K будет осуществляется через вызов упомянутых функций.
Работа с модулями аналогового вводаРабота с модулями аналогового ввода будет представлена на примере работы с модулем i-8017HCW. Создание проекта аналогично созданию проектов для работы с модулями дискретного ввода/вывода с единственным отличием в том, что библиотека для работы с модулем i-8017HCW будет использоваться специальная библиотека для этого модуля. Добавим библиотеку pac_i8017HWNet.dll в проект:
Приступим к программированию, для этого разместим на форме элемент Label, который будет служить для отображения входящего сигнала с модуля аналогового ввода i-8017HCW:
Далее добавим таймер, который будет опрашивать модуль аналогового ввода i-8017HCW:
Программируем таймер на опрос модуля, используя стандартную функцию чтения сигнала с аналогового входа:
Программа готова, осталось лишь скомпилировать и запустить её на контроллере Xpac. В окне программы будет выводиться цифра, обозначающая силу тока, поступающую на канала №0 модуля аналогового ввода i-8017HCW.
Эти небольшие примеры иллюстрируют, на сколько прост процесс создания программного кода для работы с модулями ввода вывода на промышленных контроллерах под Windows CE. Необходимо также отметить, что вне зависимости от моделей модулей, работающих под управлением контроллера, функции для работы с ними не будут отличаться практически ничем.
По любым вопросам программирования промышленных контроллеров вы всегда можете обратиться в компанию "Эксперт-Автоматика".