Язык технологического программирования ТехноСи

Предлагаемый язык технологического программирования ТехноСи обладает достаточной степенью универсальности, он несомненно имеет четко прорисованную область применения, в которой язык, как инструмент разработки, соответствует решаемым задачам наилучшим образом.

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

Язык ТехноСи удачно сочетает простоту изучения, функциональность, независимость от сторонних библиотек, что обеспечивает высокую живучесть проекта, удобство реализации выполнения циклических задач, доступность и интерпретируемость.

Язык ТехноСи буквально обязан быть интерпретируемым языком - в противном случае для осуществления неизбежных процедур отладки в ходе разработки потребуются сложные инструментальные средства, которые вначале потребуется создать, а затем освоить.

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

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

Тип данных секция программы в языке ТехноСи обеспечивает удобное структурное разбиение программы с использованием локальных переменных, вызовов функциональных блоков и функций. Разбиение программы на секции позволяет локализовать возможную программную ошибку в пределах секции, путем автоматического отключения ошибочной секции программы без остановки выполнения остальных секций программы.

Синтаксически язык ТехноСи очень похож на распространенный язык Си, что обеспечивает короткий период его усвоения, а также позволяет стыковать программы на языке ТехноСи с любыми программами на языках Си и Си++.

Исполнительная система в составе инструментальных средств программирования на языке ТехноСи (интерпретатор) предоставляет возможность резервирования контроллеров.

Межконтроллерный обмен данными по протоколу TCP/IP выполняется по сети Ethernet и по последовательному каналу связи, в том числе в дублированном режиме с двумя сетевыми адаптерами. Для повышения надежности линий передачи данных предусмотрены функции резервирования сетевых адаптеров. Это позволяет в случае обрыва связи по одной из линий осуществить оперативный переход на резервную линию.

Интерпретатор позволяет использовать мощный OPC-сервер для связи со SCADA-пакетами.

Дублированный режим выполнения задач в контроллере управления поддерживается без каких-либо дополнительных программных действий со стороны пользователя. Автоматически выполняется контроль работоспособности контроллеров и в случае необходимости осуществляется переход контроллера из активного режима работы к пассивному и наоборот.

Интерпретатор программ обеспечивает многозадачный режим работы в реальном времени. В отдельно взятом контроллере может выполняться несколько программ на языке TехноCи (задач), каждая со своим временным расписанием и приоритетом. Для обмена информацией между задачами, расположенными в одном контроллере (или даже в разных контроллерах), существует общий механизм доступа к глобальным переменным других задач на логическом уровне.

Мощный отладчик позволяет выполнять процесс удаленной отладки на реальном контроллере или на имитирующем его обычном офисном компьютере, выполнять отладку на уровне исходного текста программы. Отладчик обеспечивает пошаговое выполнение и различные виды остановов, просмотр и изменение переменных в окне наблюдения, просмотр значений всех доступных в данном фрагменте программы переменных и управление ими. Выполнение загрузки программ в контроллер осуществляется с использованием монитора-оболочки, подобной Norton Commander, что обеспечивает внесения изменений в выполняющиеся задачи TехноCи без остановки процесса управления в контроллере.

Монитор обеспечивает полный файловый обмен между узлами сети (в том числе и с пассивным контроллером в режиме дублирования).

Отладчик поддерживает два режима ведения времени: реальное и логическое время. Использование режима логического времени позволяет ускорить или замедлить реальное течение времени для отладки алгоритмов выполнения скоротечных или длительных процессов.

Язык TехноCи является языком с произвольным расположением полей. Не имеет значения, в каком месте строки расположен тот или иной символ. Допускаются как строки, содержащие несколько операторов, так и операторы, занимающие несколько строк. Единственное ограничение относится к командам препроцессора и специальным директивам, каждая из которых записывается на отдельной строке.

Язык TехноCи не является компонуемым языком с раздельной трансляцией. Это означает, что отдельная программа и только одна программа целиком содержится в одном файле (если не считать директив препроцессора типа include, которые определяют дополнительные файлы - как для описания прототипов функций, структур или данных, так и для включения целых программ). Для внесения в исходный файл различного рода изменений при компиляции компиляторы производят препроцессорную обработку.

Препроцессор позволяет применять простые макроопределения, условную компиляцию и включение текста из других файлов. Используя команды условной компиляции, можно писать процедуры, которые включаются в программу или исключаются из нее простым изменением команд #define в начале программы.

Строка #PRAGMA должна описывать параметры для каждой задачи, запускаемой в контроллере управления, такие как длительность цикла выполнения задачи в миллисекундах, которая определена параметром INTERVAL, и номер задачи, который задается параметром TASK.

Программа на языке TехноCи состоит из команд препроцессорной обработки, позволяющих применять простые макроопределения, условную компиляцию и включение текста из других файлов, описания глобальных переменных, вызовов функций и выполняемых секций. Глобальные переменные и функции могут отсутствовать, обязательным в выполняемой программе является наличие хотя бы одной секции.