Semenalidery.com

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Встроенные языки программирования

ГЛАВА 6. ВСТРОЕННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Встроенные языки программирования используются в SCADA — системах для разработки сложных приложений. Первые версии SCADA — систем либо не имели подобных языков, либо эти языки реализовывали небогатый набор функций. В современных версиях SCADA — систем функциональные возможности языков становятся существенно богаче.

Два типа встроенных языков:

1) Языки, ориентированные на технологов. Функции в таких языках являются высокоуровневыми, не требующими профессиональных навыков программирования при их использовании. Расширение набора функций достигается с помощью дополнительных инструментальных средств (Toolkits). Разработка дополнительных функций выполняется обычно программистами — профессионалами.

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

Во всех языках функции разделяются на группы, часть из которых присутствует практически во всех языках: математические функции и др.

При настройке SCADA на объекте cоздаются программные фрагменты (скрипты), состоящие из операторов и функций языка, которые связываются с событиями в приложении, такими как нажатие кнопки, открытие окна, выполнение логического условия. Каждое из событий ассоциируется с графическим объектом, окном, таймером, открытием/ закрытием приложения.

Существует два режима выполнения функций:

1) В синхронном режиме выполнение следующей функции не начинается до завершения предыдущей.

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

Скрипты в InTouch

Скрипты в InTouch — это программные фрагменты, активизируемые по событиям (по нажатию клавиши, кнопки, открытию окна, изменению значения переменной и т. д.). Находятся в свойствах, описывающих объекты SCADA-системы.

Типы скриптов

1) Скрипты уровня приложения (Application Scripts) относятся ко всему приложению и используются для запуска других приложений, имитации технологических процессов, вычисления значений переменных и т.д.

2) Скрипты уровня окна (Window Scripts) связываются с конкретным окном.

3) Клавишные скрипты (Key Scripts) привязываются к какой-либо клавише или комбинации клавиш клавиатуры. Это может быть полезным при создании каких-либо глобальных для всего приложения функций (возврат в главное окно, окончание сеанса работы с приложением и т. д.).

Скрипты, запускаемые кнопками (Touch Pushbutton Action Scripts)

Скрипты по изменению логического выражения (Condition Scripts )

Скрипты по изменению данных (Data Change Scripts)

ActiveX Event (скрипты событий ActiveX)

Quick Function — скрипты, которые могут вызываться из других скриптов и использоваться в выражениях при определении динамических свойств объектов. Например, длина выражения в поле Expression диалогов определения динамических свойств объектов должна быть не более 256 символов. Для ввода более длинных выражений можно воспользоваться функциями Quick Functions. При этом выражение в поле Expression должно содержать операторы CALL вызова функций Quick Functions, каждая из которых, в свою очередь, должна иметь в качестве последнего оператора RETURN для возврата результата в вызывающее выражение. Организованное таким образом выражение может содержать многие тысячи символов и быть сколь угодно сложным.

Встроенные функции

Разбиты на четыре группы:

1) String. — для обработки различных символьных строк и переменных, например:

— Number — конвертируемая вещественная величина;
— Precision — количество десятичных знаков;
— Type — тип формата ( «f», «e», «E»).

функция StringFromReal(263.365, 2, «f») возвращает «263.36»;

2) Math. — математические функции. Математические функции работают с целыми и вещественными аргументами, выдавая целый или вещественный результат.

3) System. — системные функции, делятся на две категории: файловые (File) и для работы с Windows — приложениями (Info).

Файловые функции предназначены для считывания и записи информации в файлы. У всех файловых функций есть два общих аргумента — Filename и FillOffset.

Аргумент Filename (имя файла) хранит имя файла, из которого должна быть считана или в который должна быть записана информация (имя также должно включать и путь к файлу).

Аргумент FillOffset (смещение в файле) задает относительную позицию в файле, начиная с которой будут читаться или записываться данные. Смещение задается в байтах от начала файла. Первый байт файла имеет смещение 0. После завершения каждая функция возвращает следующее доступное смещение в файле. Например, если функция читает 5 байтов данных, начиная с 10-го байта, то после завершения функция возвратит 15.

4) Misc. — функции для работы с алармами распределенных систем, трендами, печатью и др. Состоит из нескольких подгрупп.

а) Функции, название которых начинается с alm, используются только в распределенных системах алармов, например:

— almAckDisplay(ObjectName,Comment); — подтверждает только те алармы, которые в текущий момент видны в окне отображения алармов, где ObjectName (имя объекта алармов), Comment (комментарий).

б) HT функции архивных трендов, например:

— HTGetPenName(Hist_Tag, UpdateCount, PenNum); — Возвращает имя переменной, связанной в текущий момент с указанным пером указанного тренда

где: Hist_Tag (имя тренда), PenNum (номер пера тренда), ValType_Text (строка, указывающая тип возвращаемого значения), Tagname (новое имя пера).

в) wc — функции управления объектами окна (простые списки, текстовые окна, ниспадающие списки и т. д.), например:

— wcInsertItem(«ControlName», ItemIndex, «MessageTag»); — Вставляет указанное сообщение в список

где: ControlName (имя управляемого окна). ItemIndex (номер, соответствующий позиции элемента), MessageTag (строковое сообщение), Filename (имя файла в формате ASCII).

Язык Cicode

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

Команды

Используются для управления Citect и технологическим процессом. Каждая команда имеет механизм ее запуска: вручную, когда оператор нажмет некоторую последовательность клавиш или кнопку на графической странице. Можно произвести конфигурирование команд для автоматического выполнения:

1) при регистрации оператора для входа или выхода из среды исполнения;

2) при открытии и закрытии графических страниц;

3) при срабатывании алармов, событий, выдаче отчетов

Выражения

В отличие от команд, выражения не выполняют конкретных задач, они их оценивают.

Функции

Функция — это набор выражений, переменных, операторов, и других функций. Функции эквивалентны подпрограммам или функциям BASIC, Pascal или C.

Citect имеет около 700 встроенных функций. Наиболее часто используются следующие группы:

1) Группа Alarm включает более 40 встроенных функций, например:

Встроенные языки программирования.

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

— программно-логическое управление технологическим оборудованием;

— алгоритмы оптимального (рационального) управления;

— расчет значений переменных по формулам;

— визуализация значений трендов целевой обработки (т.е. построение каких-либо расчетных трендов на базе полученных в результате измерений); в качестве исходных трендов могут быть использованы тренды реального времени и/или исторические тренды;

— архивирование дат и времени определенных событий;

— создание сценариев динамики экрана;

— интегрирование мгновенных значений расхода в задачах дозирования;

— создание альтернативных фильтров входных переменных.

В каждой SCADA-системе имеется встроенный набор стандартных алгоритмов, однако для решения уникальных задач приходится прибегать к созданию собственных алгоритмов на встроенных языках. Большинство SCADA-систем имеют встроенные языки высокого уровня, подобные языку Visual Basic. Эти языки позволяют задать адекватную реакцию приложения на события, связанные с изменением значений переменных, с выполнением некоторого логического условия, с нажатием комбинации клавиш. Также возможно создание программных фрагментов, циклически выполняемых с заданной частотой.

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

1) ориентация языка программирования на потребности и задачи технолога;

2) ориентация языка программирования на потребности и задачи системного интегратора.

Читать еще:  Ошибка центра обновления 0х80070057

Ориентация встроенного языка на потребности и задачи технолога.

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

Ориентация встроенного языка на потребности и задачи системного интегратора.

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

В каждом языке допускается расширение набора функций. В языках, ориентированных на технологов, это расширение достигается с помощью дополнительных инструментальных средств (Toolkits). Разработка дополнительных функций выполняется обычно программистами — профессионалами.

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

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

Во всех языках функции разделяются на группы, часть из которых являются общеупотребительными: математические функции, функции работы со строками, обмен по SQL , DDE-обмен и т. д. Наряду с этими группами во многих SCADA-системах есть собственные уникальные наборы функций.

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

Каждая из функций во встроенном языке выполняется в синхронном или асинхронном режиме. В синхронном режиме выполнение следующей функции не начинается до тех пор, пока не завершилось исполнение предыдущей. При запуске асинхронной функции управление переходит к ней, не дожидаясь завершения исполнения предыдущей функции.

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

Разработанные программные фрагменты (часто их называют «скрипты») могут выполняться в режиме интерпретации, могут быть скомпилированы в исполняемый код, и выполняться, например, как вызовы функций из библиотеки DLL.

Необходимо отметить, что в том и другом случае скрипты могут выполняться в том же потоке, что и основная часть программы, либо могут выполняться в отдельном потоке. Это зависит, в частности, от типа используемой SCADA – системы.

В SCADA различают следующие типы скриптов:

— глобальные (выполняются при запуске АРМ, либо вручную, при помощи менеджера скриптов);

— периодические (выполняются периодически, через заданный интервал времени);

— «условные» (выполняются при наступлении определенного условия, т.е. когда некоторое логическое выражение становится истинным);

— по алармам (выполняются при возникновении аларма, после подтверждения аларма, после неподтверждения аларма, и т.д.).

Базы данных в SCADA. Основные понятия БД. Краткая история развития БД.

В настоящее время ни одна АСУТП, выполняющая функции ведения архива параметров ТП, не может обойтись без базы данных.

В самом общем смысле база данных (БД) — это система хранения информации, обращение к которой осуществляется через средство управления базой данных (СУБД). На практике БД — это данные, рассортированные по уникальным идентификаторам и организованные в виде таблиц. Основное назначение БД — предоставить пользователю нужную информацию в нужном месте и в нужное время. И надо сказать, что по мере своего развития БД справляются с этой задачей все лучше и лучше. Тем не менее, первые БД не вполне соответствовали ожиданиям пользователей. Организации и предприятия должны были бороться с огромными объемами дублированной и иногда противоречивой информации, предоставляемой, к тому же, различными и, зачастую, несовместимыми друг с другом способами.

Можно сказать, что путь развития БД — это путь все большего и большего отстранения программного обеспечения от физических структур данных. До появления БД информация хранилась в отдельных файлах. Самые первые системы управления файлами позволяли программистам создавать, записывать, обновлять и читать эти файлы. Файловая система имеет органический недостаток: программы должны точно «знать», где расположены данные. Как следствие — для определения адресов в развитых системах хранения данных необходимо применение довольно сложных, трудно оптимизируемых и модифицируемых алгоритмов.

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

В качестве возможного решения этих проблем явились иерархические БД. В таких базах элементы данных строго упорядочены, причем так, что данные одного уровня подчиняются данным другого, более высокого уровня, иными словами, данные более низкого уровня являются подмножеством данных более высокого уровня. В такой модели связи данных могут быть отражены в виде дерева-графа, где допускаются только односторонние связи от старших вершин к младшим. Иерархические БД не получили широкого распространения. Реальный мир отнюдь не является иерархическим.

Перспективнее оказались сетевые БД, учитывающие более сложные взаимосвязи между элементами, составляющими БД (теоретически, по крайней мере, допускаются связи «всех со всеми»). Управляющие программы для таких БД становились все более и более независимыми от физических структур данных. Но все равно необходимо знать, как управлять этими структурами. По-прежнему для таких моделей характерна сложность реализации БД, а сами программы остаются весьма чувствительными к модификациям. А поскольку каждый элемент данных должен содержать ссылки на другие элементы, требуются значительные объемы памяти, как дисковой, так и оперативной. Дефицит последней может приводить к замедлению доступа к данным, лишая сетевую БД основного ее достоинства — быстродействия.

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

— отражающие прикладную область знаний модели данных являются интуитивно понятными конечному пользователю;

— реорганизация данных на физическом уровне совершенно не влияет на выполнение прикладных программ;

— возможно создание СУБД с клиент-серверной архитектурой, сохраняющих все достоинства централизованного администрирования и управления данными, с одной стороны, и дружески настроенных по отношению к пользователю клиентских программ, с другой;

— благодаря нормализации удается избежать чрезмерного дублирования данных.

Индустрия РБД в настоящее время вполне созрела. Условия на рынке сейчас диктует «большая пятерка»: IBM, Informix, Microsoft, Oracle и Sybase. На нее падает львиная доля всех расходов на разработку БД.

Можно выделить две категории приложений в БД: системы оперативной обработки транзакций (OLTP — Online Transaction Processing) и системы поддержки принятия решений (DSS — Decision Support System).

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

Читать еще:  Плей маркет ошибка 495 как исправить

DSS (Decision Support System)- системы поддержки принятия решений, как правило, крупнее, чем OLTP-системы. Обычно они используются с целью анализа данных и выдачи отчетов и рекомендаций. Пользователи должны иметь возможность конструировать запросы различной степени сложности, осуществлять поиск зависимостей, выводить данные на графики и использовать информацию в других приложениях типа электронных таблиц, текстовых процессорах и статистических пакетов. Еще более широкую поддержку в процессе принятия решений обеспечивают системы оперативной аналитической обработки (OLAP — Online Analytical Processing).

Модель «клиент-сервер»при построении БД в настоящее время стала доминирующей компьютерной архитектурой после того, как предприятия осознали преимущество объединения удобных персональных компьютеров с централизованными, надежными и отказоустойчивыми мэйнфреймами. Клиент-серверные системы одновременно используют вычислительную мощь как клиента, так и сервера, возлагая интенсивную обработку данных на сервер и оптимизируя сетевой трафик так, чтобы повысить общую эффективность работы.

Для интерфейса в клиент-серверных БД используется SQL (Structured Query Language — язык структурированных запросов). Он представляет собой средство организации, управления и поиска информации в РБД. Широкое признание SQL приобрел благодаря таким следующим своим характеристикам:

— независимость от поставщика;

— переносимость на разные компьютерные платформы;

— опора на реляционные принципы хранения информации;

— высокоуровневая англоязычная структура;

— интерактивное выполнение запросов;

— полнофункциональный язык БД;

— поддержка со стороны IBM, Oracle, Sybase, Microsoft и др.

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

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

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

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

1. Язык программирования C

C — это статически типизированный язык программирования высокого уровня, созданный Деннисом Ритчи с целью предоставления языка, относительно более легкого для написания кода, по сравнению с ассемблером, который в то время был наиболее широко используемым языком.

Язык программирования C работает быстро и даже позволяет разработчикам быстро создавать собственные компиляторы. Он имеет встроенные указатели, которые обеспечивают доступ к низкоуровневым системным компонентам, большую экосистему, удобную для разработчиков, свободную политику типизации данных и т. Д. — все функции, которые сделали его в значительной степени языком по умолчанию для встроенных систем.

2. Язык программирования C ++

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

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

3. Язык программирования Python

Python — это интерпретируемый высокоуровневый язык программирования общего назначения, созданный Гвидо ван Россумом с акцентом на удобочитаемость кода.

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

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

4. Java

Java — это объектно-ориентированный язык программирования на основе классов, разработанный Джеймсом Гослингом как усовершенствование языка программирования C ++ . Он предоставляет своим пользователям корпоративную стабильность, возможность писать один раз и работать где угодно, благодаря своей виртуальной машине, которая позволяет переносить ее на разные платформы IoT .

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

5. Rust

Rust — это современный мультипарадигмальный, ориентированный на безопасность, язык программирования, разработанный для обеспечения высокой производительности и безопасности памяти. Он имеет синтаксис, похожий на синтаксис C ++, с отличной реализацией концепций высокого уровня.

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

6. JavaScript

JavaScript , пожалуй, самый любимый в мире динамический язык программирования общего назначения в наши дни. Когда-то считавшийся языком только для Интернета, JS теперь является наиболее рекомендуемым языком для начинающих.

Есть даже закон, известный как закон Этвуда, который гласит:

Любое приложение, которое может быть написано на JavaScript, в конечном итоге будет написано на JavaScript.

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

B # — это небольшой современный объектно-ориентированный язык, созданный явно для встроенных систем небольшого размера. Он разработан для быстрой и компактной работы с классами, обработчиками, интерфейсами и высокоуровневым отображением.

B # является идеальным языком для встраиваемых систем, потому что согласно Антуану де Сент-Экзюпери :

Дизайнер знает, что достиг совершенства не тогда, когда нечего добавить, а когда нечего убрать.

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

8. Встроенный C ++

Embedded C ++ является потомком C ++, специально разработанным для программирования встроенных систем, так как он устраняет недостатки, которые есть у C ++ во встроенных приложениях.

Он был создан в результате сотрудничества основных производителей процессоров, таких как Hitachi , Toshiba и Fujitsu, для включения только тех аспектов C ++ , которые жизненно важны для встраиваемых систем и в которых отсутствуют такие функции, как пространства имен, множественное наследование, обработка исключений и т. Д.

C # — это строго типизированный компонентно-ориентированный язык программирования, созданный одной из крупнейших компаний мира — Microsoft . Разработчики, которые программируют на C # , пользуются исключительными функциями отладки, встроенной поддержкой объектно-ориентированного и структурного программирования, эффективностью использования памяти и т. Д.

C # неофициально упоминается как реализация Microsoft Java с дополнительными функциями, отсутствующими в C ++ с акцентом на развитие предприятия. Он имеет большое сообщество разработчиков и несколько библиотек для всех типов проектов.

10. Луа

Lua (произносится как LOO-ах ) — это надежный, дружественный к памяти, мультипарадигмальный, кроссплатформенный язык программирования, разработанный для встроенного программного обеспечения. Он имеет простой синтаксис, легко настраивается, поддерживает создание полиморфных компонентов и т. Д.

Lua является быстрым и кроссплатформенным прямо из коробки, его приложения могут использоваться бок о бок с программами на C , а его семантика может быть расширена уникальными способами, которые позволяют разработчикам настраивать его так, как они хотят.

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

Спасибо что читаете нас ❤️

Оставляйте комментарии и конечно же ставьте лайки👍

Встроенный язык

Встроенный язык является важной частью технологической платформы «1С:Предприятия 8», поскольку позволяет разработчику описывать собственные алгоритмы функционирования прикладного решения.

Встроенный язык имеет много общих черт с другими языками, такими как Pascal, Java Script, Basic, что облегчает его освоение начинающими разработчиками. Однако он не является прямым аналогом какого-либо из перечисленных языков.

  • предварительная компиляция — перед исполнением модули, содержащие текст на встроенном языке, преобразуются во внутренний код;
  • кэширование скомпилированных модулей в памяти;
  • мягкая типизация — тип переменной определяется типом значения, которое она содержит, и может изменяться в процессе работы;
  • отсутствие программного описания объектов конфигурации — разработчик может использовать либо встроенные в платформу объекты, либо объекты, созданные системой в результате визуального конструирования прикладного решения.
Читать еще:  Ошибка binkw32 dll как исправить

Событийная ориентированность встроенного языка

Назначение встроенного языка в системе 1С:Предприятие определяется идеологией создания прикладных решений. Прикладные решения в 1С:Предприятии 8 не кодируются целиком. Большая часть прикладного решения создается разработчиком путем визуального конструирования — создания новых объектов конфигурации, задания их свойств, форм представления, взаимосвязей и пр. Встроенный язык используется лишь для того, чтобы определить поведение объектов прикладного решения, отличное от типового, и создать собственные алгоритмы обработки данных.

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

Например, с функционированием объекта прикладного решения Справочник связан ряд событий, среди которых есть событие ПередЗаписью:

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

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

Универсальные коллекции значений

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

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

Перечислим кратко их возможности:

Массив

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

Структура

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

Соответствие

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

Список значений

Используется, как правило, для решения интерфейсных задач. Позволяет строить динамические наборы значений и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Он может содержать значения любого типа, кроме того, в одном списке типы хранимых значений могут быть разными.

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

Таблица значений

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

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

Дерево значений

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

COMSafeArray

Представляет собой объектную оболочку над многомерным массивом SAFEARRAY из COM. Позволяет создавать и использовать SAFEARRAY для обмена данными между COM-объектами.

Фиксированный массив

Неизменяемый массив. Массив заполняется системой при инициализации объектов данного типа или разработчиком, с помощью конструктора.

Редактор текстов и модулей

Для создания и изменения текстов на встроенном языке разработчик может использовать редактор текста и модуля, обладающий удобными средствами создания, редактирования и синтаксической проверки модулей. Подробнее…

Большая Энциклопедия Нефти и Газа

Встроенный язык — программирование

Встроенный язык программирования STATISTICA BASIC позволяет расширять возможности системы, программировать собственные оригинальные методы. [1]

Для этого имеются соответствующие встроенные языки программирования . [2]

Кроме того, можно использовать встроенный язык программирования , который позволяет создать довольно сложные пользовательские процедуры. Использование таких пользовательских процедур позволяет автоматизировать расчеты на отдельных этапах исследования сложных задач без потери методики их решения. [3]

Для автоматизации выполнения часто повторяемых-действий можно воспользоваться встроенным языком программирования макрокоманд . Существуют макрокоманды и макрофункции. Применяя макрокоманды, можно упростить работу с табличным процессором и расширить список его собственных команд. При помощи макрофункций можно определять собственные формулы и функции, расширив таким образом набор функций, предоставляемый системой. В простейшем случае макрос — это записанная последовательность нажатия клавиш, перемещений и щелчков кнопками мыши. Эта последовательность может быть воспроизведена, как магнитофонная запись. [4]

Методы обработки объектов представлены в виде программных модулей на встроенном языке программирования 1C: Предприятие, во многом напоминающем язык Visual Basic. В объектно-ориентированной системе 1С: Предприятие программные модули запускаются в ответ на наступление предопределенных событий, возникающих в связи с действиями пользователя или изменением данных. [5]

Предприятие использует объектно-ориентированный подход к представлению компонентов типовой конфигурации и встроенный язык программирования для создания программных модулей. Каждый объект метаданных обладает набором свойств и методов обработки. [7]

Дополнительные функции: средства задания зависимостей между элементами таблицы, определяемые пользователем функции, использование текстовых подстановок ( макросов), объединение нескольких таблиц, возможность графического представления данных в таблице, перенос фрагментов из одной таблицы в другую, работа с многомерными таблицами, возможность хранения расчетных формул и описание форматов в служебных файлах, средства проверки статистических гипотез, средства описания математических моделей ( оптимизационных и др.), выполнение фактурно-бухгалтерских процедур, наличие в ФПП встроенного языка программирования , средства подключения к ФПП нестандартных программ, средства подготовки отчетных форм. [8]

Использование встроенных языков программирования VisualLISP , VBA и поддержка C позволяют настроить AutoCAD под конкретные задачи пользователя. [9]

Использование встроенных языков программирования Visual LISP, VBA и поддержка C позволяют настроить AutoCAD под конкретные задачи пользователя. [10]

Возможность дописывать ( наращивать) систему при помощи встроенного языка программирования ( из которого можно вызвать и любую внешнюю библиотеку DLL) является несомненным достоинством пакета. [11]

Подробно рассказывать про работу этих пакетов просто не имеет смысла: каждый из них снабж. Более того, некоторые из перечисленных пакетов, например SPSS / PC, имеют встроенный язык программирования , с помощью которого пользователь может написать специализированную программу для выполнения последовательности расчетных операций. [13]

Рассмотрим для примера конкретную интегрированную систему МАСТЕР. Эта система основывается на втором из рассмотренных принципов интеграции: каждый вид данных имеет в ней свое собственное представление, а интеграция обеспечивается: на структурном уровне — за счет единообразное носителей данных, называемых рамками, на операционном уровне — за счет мощного встроенного языка программирования . На рис. 6 показана компонентная схема системы МАСТЕР. [14]

Несомненно, одним из наиболее значительных изменений в новом ArchiCAD является его завершенный и мощный API ( Application Programming Interface), облегчающий написание дополнительных модулей для ArchiCAD, которые расширяют его возможности. Хотя основное число пользователей не начнет немедленно писать новые программы, они получат пользу от дюжины приложений, доступных уже сегодня или в ближайшей перспективе: например, для работы с геоподосновой и моделирования поверхности земли, особо качественного рендеринга, расчетов несущих конструкций, ЗО-моделирования и др. Встроенный язык программирования GDL также улучшен новыми средствами, позволяющими создавать объекты более эффективно, чем когда-либо. [15]

Ссылка на основную публикацию
Adblock
detector