Встроенный макроязык комплекса

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

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

Название макроязыка С-- происходит от названий языков программирования C и C++ и означает сходство элементов и структуры языка. Запись С-- символически означает упрощение языка С++, по аналогии, как название С++ произошло от названия «расширенный С». Макроязык С-- является подмножеством языка C++, значительно упрощенным по сравнению с ним. Он содержит только простые и необходимые элементы, такие, как условия, циклы, блоки, функции и т.п. Сложные конструкции языка С++ отсутствуют, что дает возможность достаточно быстро освоить программирование.

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

В отличие от языков программирования C и С++, где программа компилируется и собирается в исполняемые модули, макроязык С-- версии Энергостат является интерпретируемым, т.е. исполнение (интерпретация) макропрограммы на этом языке происходит сразу (без процедур компиляции в исполняемые модули). Это упрощает процесс программирования и отладки, поскольку результат интерпретации можно проверить сразу запуском макропрограммы. При создании программ на С-- не требуется задания многочисленных опций и параметров, которые всегда сопровождают любой проект на С++. Соответственно, значительно сокращается время разработки простых приложений. При этом в целом С-- не может полностью заменить С++, и у них разные сферы применения.

Важной особенностью интерпретируемых программ, в т.ч. и программ на макроязыке С-- Энергостат (далее С--) является то, что функционал, разработанный с их использованием, может быть изменен и скорректирован непосредственно на месте установки у заказчиков с использованием самых простых текстовых редакторов и инструментов, доступных в Windows. В случае ошибок и сбоев программ на С--, их отладка производится встроенными в комплекс средствами, непосредственно на рабочем месте, что существенно проще по сравнению с другими средствами разработки, например, Microsoft Visual Studio, требующих перекомпиляции основных модулей (*.exe, *.dll и т.п.) и их последующую переустановку.

Синтаксис макроязыка С-- позволяет задать макропрограмму, как в простой форме, - списком операторов, - так и в полной форме, в которой возможно определение и использование функций пользователя. В качестве операторов С-- могут быть использованы стандартные операторы С++: if(else), while, for, break, continue, return, оператор присвоения, вызова функций, методов и т.п. Реализованы поддержка стандартных С и С++ комментариев, средства включения внешних файлов #include. Синтаксис математических выражений может быть использован для численных расчетов, включающих операции сложения, вычитания, умножения и деления, а также логические операции.

Встроенные возможности макроязыка C-- обеспечивают работу со строками, числами, датами, возможно использование ссылок и указателей. Для хранения объектов реализован функционал динамических массивов, в т.ч. массивов строк. Встроенные библиотеки работы с COM-интерфейсом и Windows-приложениями обеспечивают взаимодействие с большинством офисных продуктов, таких, как Excel, Word, Visio и других. Для доступа к SQL-базам данных через интерфейс ODBC реализованы специальные классы объектов. Доступ к SQL-базам также возможен с использованием интерфейса COM. Использование почтовых программам, в т.ч. функции приема и отправки электронных писем, может быть осуществлено через интерфейс Simple MAPI (для Outlook Exress, Windows Mail), или через COM-интерфейс программ Outlook и аналогичных. Файловые библиотеки включают средства поиска, чтения и записи файлов, работу с элементами имен файловой системы, с двоичными данными файлов. Для вывода результатов расчетов и организации работы экранных форм могут быть использованы встроенные типы объектов С-- для работы с окнами графики, круговой диаграммы, таблицей и деревом. Для создания пользовательских типов данных возможно использование структур, аналогичных структурам языка С (struct).

Средства макроязыка применяются для реализации следующих задач:

  • создание дополнительных экранных форм, в которых могут быть использованы основные элементы оконного интерфейса Windows - окна, меню, панели инструментов, кнопки, редакторы, списки, таблицы, деревья и т.д. Средствами макроязыка производится управление созданием элементов в форме и обработка оконных сообщений. Для упрощения создания формы может быть использован стандартный файл ресурсов Windows в формате *.rc, содержащий полное описание структуры формы. Файл ресурсов может быть сформирован специальными визуальными редакторами. Пример экранной формы приведен на рис. 1.
  • организация импорта данных из внешних источников - текстовых и двоичных файлов, файлов формата Excel, Word, *.dbf, а также из СУБД с SQL доступом;
  • организация экспорта данных во внешние файлы различных форматов, выходные макеты, в СУБД с SQL доступом;
  • организация специфических расчетных алгоритмов на основе данных комплекса - алгоритмы проверки данных, дорасчета и т.п.;
  • программирование схемной графики, создание схем на основе структуры технологических объектов и оборудования. Файлы схем являются макропрограммами на языке С--, поэтому схему можно запрограммировать вручную, с использованием запросов к базе данных и последующим построением схемы.

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

Рис. 1. Пример экранной формы, реализованной на макроязыке С--.

С целью упрощения процесса разработки макропрограмм на языке С-- разработана специальная интегрированная среда разработки (IDE), включающая средства редактирования и запуска макропрограмм, а также встроенные средства отладки (рис. 2). Средства отладки позволяют производить пошаговую трассировку функций и операторов, установку точек прерывания при исполнении макропрограммы, а также другие возможности.

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

Рис. 2. Интерфейс интегрированной разработки, включающий средства отладки макропрограммы и оптимизации скорости выполнения.

Средства макроязыка могут включаться в комплект поставки подсистем Энергостат и использоваться специалистами для модернизации комплекса на объектах поставки.