23.12.2007 11:13
С первой волной импортных средств автоматизации, в годы, когда профессиональный программист на языке "С" получал от 50 до 100 долларов, идея "свободно-программируемых" контроллеров попала на особенно благодатную почву на площади в 1/6 суши.
В самом деле, используя открытый, PC- совместимый контроллер, разработчик мог не только сэкономить на ужасно дорогом (если сравнивать с его зарплатой) специализированном программном обеспечении, но и реализовать практически любую фантазию в интерфейсе оператора или алгоритме обработки.
Например, популярный контроллер RTU188, разработки фирмы Fastwel , имеет на борту достаточно ресурсов для работы MS-DOS 6.22, аналоговые и цифровые каналы ввода-вывода, промышленные последовательные интерфейсы RS232/422/485, твердотельный диск.
Этого набора вполне достаточно, что бы поуправлять или промониторить небольшой локальный объект , вроде насосной или компрессорной, а так же передать информацию наверх. Рабочий диапазон температур -40 +85, MTBF в 120 000 часов, компактность и удобство монтажа на обычную DIN рейку , все это при невысокой цене, гарантировало успех продукту.
С помощью «условно бесплатного» компилятора, вышеупомянутый программист мог реализовывать на RTU188 функционал как ПЛК, так и ПИД контроллеров, а если поднапрячься, то и сети со своим протоколом обмена – благо с RTU188 поставляется набор сервисных утилит и примеры программирования.
Однако за последние 10 лет ситуация на рынке АСУ ТП в корне изменилась. Профессиональные C программисты уже давно стали высокооплачиваемой элитой, а на отладку «своих» протоколов и драйверов просто никто не дает ни времени ни денег.
Заказчики безжалостно избавляются от самоделок прошлых лет, предпочитая применять первоначально дорогие при покупке, зато потом дешевые в эксплуатации и развитии решения, основанные на международных стандартах.
При этом стоимость средств разработки стандарта IEC-61131 и современных SCADA систем кажутся уже не такими большими, если сравнивать с зарплатой уникального программиста, разбирающегося в тонкостях диспетчеризации задач реального времени.
Так что же RTU188 ? Чтобы обеспечить интеграцию этого, в общем –то очень неплохого контроллера в современную инфраструктуру АСУ ТП , а так же облегчить создание систем на базе этого устройства, подразделением RTS-Soft была разработана специализированная целевая задача, позволяющая создавать алгоритмы управления с возможностью опроса этого устройства с верхнего уровня используя протокол Modbus.
Этот шаг в направлении стандартизации позволил системотехникам АСУ ТП подключать RTU188 к существующим сетям контроллеров и SCADA системам , как стандартное устройство Modbus, которое, к тому же , способно выполнять алгоритмы управления локально, не замыкая их через верхний уровень.
В целевую задачу уже включены готовые драйверы цифровых и аналоговых входов/выходов RTU188 и драйвер UNIO48-5 (прошивка N03).
При необходимости добавить дополнительные драйверы внутренних и внешних устройств, пользователь может сделать это самостоятельно, реализовав функции инициализации, чтения и записи в порожденном классе - наследнике абстракного класса драйвера, либо заказав необходимый драйвер у RTS-Soft за символическую плату.
Для алгоритмов управления используется похожий подход. Фактически алгоритмы управления реализованы внутри класса - наследника абстракного класса. Все что нужно сделать - написать свой класс (или взять готовый из примеров) и внутри него реализовать несколько функций: инициализации и непосредственно реализации логики управления.
В секции инициализации производится указание списка используемого оборудования в этом алгоритме, а также время цикла управления.
По умолчанию оно равно 50 мс, допустимо снижение этого значения до 1 мс.
Принцип работы наследует классическую схему работы контроллера - чтение входов/выходов, исполнение функций управления, запись выходов в регистры плат УСО. В функции управления необходимо реализовать пользовательскую логику конкретной задачи, оперируя значениями входов/выходов.
Например, для реализации меандра на дискретном выходе, в цикле управления просто достаточно добавить такую строку:
setValue(DO_UNIO_OUT1 , 1-getValue(DO_UNIO_OUT1));
Если же необходимости в алгоритмах управления нет, то нет необходимости писать дополнительный код, при этом целевая задача будет работать в режиме Modbus–Slave устройства - т.е. можно просто считывать данные из этого устройства.
В целевую задачу встроен модуль связи с верхним уровнем через последовательный интерфейс RS232 или RS485 по протоколу Modbus (режим RTU).
Это значит, что подключив RTU188 с загруженной задачей к компьютеру через последовательный порт, можно считывать с него данные используя любой Modbus OPC сервер (для Windows).
Если есть необходимость получать данные под QNX, RTS-Soft предлагает драйвер Modbus устройств и для этой операционной системы.
Свяжитесь со специалистами RTS-Soft, для получения дополнительной информации !