Вопросы по языку технологического программирования TechnoC

  1. Какое выбрать средство для программирования контроллера: Си, МЭК 61131 или ТехноСи?
  2. Какие устройства поддерживает драйвер устройств ввода/вывода и что делать, если устройство отсутствует в поддерживаемом списке?
  3. К устройству подключена термопара/термометр-сопротивление с нестандартной градуировочной таблицей. Как в задаче можно получить реальные значения температуры?
  4. Какие возможности для построения отказоустойчивых систем управления имеются в ТехноСи?
  5. На каких платформах работает ТехноСи?
  6. У меня имеются разработанные функциональные блоки для управлению технологическим оборудованием на языке ST(IL) МЭК 61131. Как я могу их использовать в ТехноСи?
  7. Допускается ли архивация переменных задач средствами ТехноСи?
  8. Каким требованиям должен удовлетворять контроллер для работы с ТехноСи под управлением WindowsCE?
  9. Какого размера может быть задача на ТехноСи?
Какое выбрать средство для программирования контроллера: Си, МЭК 61131 или ТехноСи?

Бытует мнение, что технологам легче писать программы на графических языках МЭК 61131 (например FBD). Так ли это на самом деле? Если речь идет о программировании алгоритма работы простого объекта, то несколько функциональных блоков, описывающих данный алгоритм, легко помещаются на экране монитора и обозримы от А до Я. Если же речь идет о серьезных проектах, то графическое представление программы может усложнить процесс программирования, т.к. сложный алгоритм может быть размещен на нескольких экранах и понимание взаимосвязи разных частей алгоритма будет затруднено.

Язык Си знаком практически всем, кто занимается программированием. Он позволяет решить любую задачу, однако при его использовании в технологических программах программист вынужден сам реализовывать обмен переменными со SCADA системой, писать драйверы устройств ввода/вывода, процесс обновления управляющих программ возможен только путем полной остановки задачи и т.д.

Технологический язык программирования ТехноСи имеет синтаксис языка Си и предоставляет средства, которые исконно используются в технологическом программировании: технологические типы данных, таймеры, циклическое периодическое выполнение задач, поддержка функциональных блоков. ТехноСи поддерживает изменение программ контроллера "на лету" с сохранением текущего состояния задачи. В любой момент можно добавить/удалить устройство ввода/вывода или отдельный канал в устройстве. Драйвер устройств ввода/вывода поддерживает широкую номенклатуру устройств и позволяет комбинировать практически любые устройства на одной полевой шине. Отладчик программ на языке ТехноСи предоставляет большие возможности по отладке программ, поддерживаются все виды точек останова (останов в точке, останов при истинном значении условия, останов по изменению переменной, останов по выдаче технологического сообщения). После останова выполняется пошаговое выполнение программы с заходом внутрь функций и без, выполнение до указанного места, выполнение до выхода из функции/функционального блока. Все переменные задач доступны для изменения. Возможен просмотр стека вызова функций/функциональных блоков и переход к месту определения переменной/функции и т.д. Кроме того, задачи ТехноСи полностью защищены от возникновения критических ситуаций, таких как деление на нуль, зацикливание, обращение к элементу массива за его границами, переполнение при вычислениях, и других исключительных ситуаций. В случае возникновения критической ситуации будет зафиксировано время его возникновения и номер строки с оператором. Обмен данными со SCADA системами выполняется через OPC DA сервер.

К началу

Какие устройства поддерживает драйвер устройств ввода/вывода и что делать, если устройство отсутствует в поддерживаемом списке?

Драйвер устройств ввода-вывода обеспечивает сбор, первичную обработку и передачу значений в задачу. Драйвер устройств ввода/вывода представляет собой динамически подключаемую библиотеку (файл DriverTC.dll). Связывание глобальных переменных задачи с каналами ввода-вывода выполняется путем описания устройств ввода-вывода и их каналов в текстовом файле.

В настоящий момент поставляемый драйвер устройств ввода/вывода поддерживает работу с устройствами: серии ADAM4000, ADAM5000, I7000, I8000, MODBUSRTU (и как разновидность HID3000, STAHL_IS1, учитывая особенности устройств), MODBUSASCII, FIELDPOINT, HART, Dymetic, PKP1 (Овен). На одной полевой шине возможна работа устройств, работающих на разных скоростях и по разным протоколам.

Для работы с устройствами ввода/вывода, поддержка которых не реализована в стандартном драйвере, требуется разработка нового драйвера. В составе пакета ТехноСи имеется "рыба" (проект на VC 6.0) для создания драйвера в виде динамически загружаемой библиотеки. Все функции, которые необходимо реализовать в драйвере, описаны в документации. Если написание драйвера вызывает у Вас затруднение, то новое устройство может быть добавлено в стандартную библиотеку DriverTC.dll сотрудниками НТФ "Инкотех".

К началу

К устройству подключена термопара/термометр-сопротивление с нестандартной градуировочной таблицей. Как в задаче можно получить реальные значения температуры?

Это можно выполнить тремя способами. Во-первых, поскольку в устройстве нет соответствующей градуировочной таблицы, нам необходимо получить в чистом виде мВ/Омы, приходящие с датчика. Во-вторых, градуировочную таблицу можно описать в виде таблицы в драйвере и выполнить табличное преобразование над значением, получаемым с датчика, или описать градуировочную таблицу в виде полинома и обработать "сырое" значение полиномом. В-третьих, эти же операции над "сырым" значением можно выполнить непосредственно в задаче.

Кстати, драйвер также поддерживает упрощенный язык для обработки "сырых" значений, принимаемых из устройства/выдаваемых в устройство. Этот язык поддерживает математические и логические операции, содержит набор функций, а также позволяет писать функции для обработки "сырых" значений непосредственно в драйвере.

К началу

Какие возможности для построения отказоустойчивых систем управления имеются в ТехноСи?
Для повышения надежности систем управления предусмотрена возможность "горячего" резервирования процессорных плат, сетевых адаптеров и полевых интерфейсов. При этом от пользователя требуется сконфигурировать контроллер: указать признак резервирования, указать некоторые параметры резервирования (период проверки работоспособности резервного контроллера, период посылки уведомлений о своей работоспособности, а также период посылки состояния задач активного контроллера). В дальнейшем работа с дублированным контроллером выполняется как и с обычным контроллером.

К началу

На каких платформах работает ТехноСи?
В настоящее время поддерживаются встраиваемые ОС Windows XP Embedded и Windows CE.NET, а также настольные ОС Windows NT/2000/XP. Планируется портирование интерпретатора под ОС QNX.

К началу

У меня имеются разработанные функциональные блоки для управлению технологическим оборудованием на языке ST(IL) МЭК 61131. Как я могу их использовать в ТехноСи?
Указанные функциональные блоки необходимо переписать на ТехноСи. Язык ТехноСи позволит реализовать любую языковую конструкцию языка ST (или тем более IL). Функциональный блок может поставляться вместе с основной программой в открытом и закрытом (закодированном) виде. Также функциональные блоки можно переписать в виде функций на языке высокого уровня и подключить в виде динамически загружаемой библиотеки (DLL), хотя в большинстве случаев в этом нет необходимости.

К началу

Допускается ли архивация переменных задач средствами ТехноСи?
Встроенной возможности архивации переменных не предусмотрено, но ее можно реализовать с использованием функций файловых операций либо функций, вызываемых из динамически подключаемых библиотек (DLL).

К началу

Каким требованиям должен удовлетворять контроллер для работы с ТехноСи под управлением WindowsCE?

Интерпретатор со всеми библиотеками занимает в оперативной памяти не более 11 MB. С учетом памяти, занимаемой WindowsCE, требуется контроллер как минимум с 32 MB RAM.

Размер флеш-диска зависит, прежде всего, от размера образа WindowsCE. Помимо образа WindowsCE требуется ~2 MB свободной памяти на флеш-диске для интерпретатора. Также на флеш-диске необходимо предусмотреть место для файлов задач и зарезервировать место под файлы периодического сохранения состояния задач (если указанная функция используется).

Процессор контроллера должен поддерживаться ОС WindowsCE. Мы рекомендует использовать контроллер, в стандартную поставку которого уже включен образ WindowsCE. Если с Вашим контроллером не поставлялся WindowsCE , то он может быть разработан нашими специалистами по дополнительному договору.

К началу

Какого размера может быть задача на ТехноСи?
В проекте допускается до 255 задач, причем задачи могут работать как в одном так и в разных контроллерах. Ограничение по числу строк в программе (задаче) - 65536. Ограничение на длину строки в задаче - 256 символов. В режиме исполнения интерпретатором под ОС WindowsCE версии 5.0 и ниже для задачи (код и данные) остается ~21 MB. Указанная цифра является причиной ограничения WindowsCE версии 5.0 и ниже - 32 MB на процесс. В WindowsCE 6.0 и Windows NT/2000/XP для задач доступна вся свободная память.

К началу