Макросы обеспечивают дополнительную функциональность, которая может понадобиться вашему приложению.
Макросы - это автоматизированные последовательности команд, которые выполняются во время выполнения. Макросы позволяют выполнять такие задачи, как сложные операции масштабирования, обработка строк и взаимодействие пользователя с проектом. Здесь описываются синтаксис, использование и методы программирования макрокоманд.
В этом окне можно:
- создавать макросы;
- удалять макросы;
- редактировать/править макросы;
- делать импорт/экспорт макросов в файл *.ebm;
- вызвать окно Библиотеки макросов;
- защитить макросы от декомпиляции паролем;
- задать формат адреса переменных для доступа к шестнадцатеричной части адреса (DDDDh вместо DDDDdd).
Редактор макросов
Окно редактора макросов.
Синтаксис макросов
Константы
Константы являются фиксированными значениями и могут быть записаны непосредственно в операторы. Формат следующий:
Тип константы |
Пример |
Примечание |
десятичное целое число |
345, -234, 0, 23456 |
|
шестнадцатеричный |
0x3b, 0xffff, |
Должна начинаться 0x |
ASCII |
‘a’, “data”, “name” |
Символ должен быть заключен в одинарные кавычки, а строки в двойные |
Булев, логический |
true, false |
Пример некоторых операторов с использованием констант:
macro_command main() shortA, B// Объявление переменных типа short A и B. A = 1234 B = 0x12 // 1234 и 0x12 – константы charst1[11] = "qwerty" // qwerty – это строка-константа charst2[11] = {''q'',''w'',''e'',''r'',''t'',''y''} // константа qwerty задана как массив символов charvb22 = ''w'' // w – это символ-константа end macro_command |
Переменные
Переменные - это имена, которые представляют информацию. Информация может быть изменена при изменении переменной с помощью операторов.
Правила именования переменных:
- имя переменной должно начинаться с буквы;
- имена переменных длиннее 32 символов не допускаются;
- зарезервированные слова не могут использоваться в качестве имен переменных.
Существует 8 различных типов переменных, 5 типов данных со знаком и 3 для беззнаковых типов данных:
Тип переменной |
Описание |
Диапазон допустимых значений |
Bool |
1 бит (1 бит) |
0 или 1 |
Char |
8 бит (1 байт) |
от -128 до 127 |
Short |
16 бит (1 слово) |
от -32 768 до 32 767 |
Int |
32 бит (двойной слово) |
от -2 147 483 648 до 2 147 483 647 |
Float |
32 бит (двойное слово) |
|
Unsigned Char |
8 бит (1 байт) |
от 0 до 255 |
Unsigned Short |
16 бит (1 слово) |
от 0 до 65 535 |
Unsigned Int |
32 бита (двойное слово) |
от 0 до 4 294 967 295 |
Объявление переменных
Перед использованием переменные должны быть объявлены. Чтобы объявить переменную, укажите тип перед именем переменной.
Объявление массивов
Макросы поддерживают одномерные массивы (отсчитываемый от нуля индекс). Чтобы объявить массив переменных, укажите тип и имя переменной, а затем число переменных в массиве, заключенное в скобки «[]». Массивы имеют длину от 1 до 4096 переменных. (Макрос поддерживает только до 4096 переменных).
Пример:
int a[10] short b[20], switch[30] float pressure[15] |
Минимальный индекса массива равен 0, а максимальный индекс массива равен (размер массива - 1).
Пример:
char data[100] // Размер массива равен 100 |
Следовательно: минимальный индекс массива - «data[0]», а максимальный индекс массива - «data[99]», 100 - 1 = 99.
Инициализация переменных и массивов
Есть два способа инициализации переменных:
- в теле функции после объявления, используя оператора присваивания (=)
int a float b[3] a = 10 b[0] = 1 |
- сразу при объявлении
char a = ''5'', b = 9 |
Объявление массивов - особый случай. Весь массив можно инициализировать во время объявления, заключив значения, разделенные запятыми, в фигурные скобки «{}».
Пример:
float data[4] = {11, 22, 33, 44} // Следовательно, data[0] = 11, data[1] = 22…. |
Мастер добавления функции в макрос
Мастер позволяет:
- добавлять встроенные функции;
- добавлять функции из пользовательской библиотеки;
- задать параметры функции с помощью выпадающих меню;
- получить краткую справку по встроенной функции и пример ее использования.
Встроенные функции
EasyBuilder Pro имеет набор встроенных функций для поиска и передачи данных в ПЛК, управления данными и математических функций.Описание функций можно прочитать в Руководстве пользователя Easy Builder Pro в главе 18.7 или во встроенной справке в Мастере добвления функций (в момент вставки функции Мастером).
Математические |
Преобразование данных |
Манипулирование данными |
Преобразование битов |
Связь |
Операции со строками |
Работа с рецептами |
Разное |
|
Функции
Функции полезны для уменьшения повторяющегося кода. Функция должна быть определена перед использованием и поддерживает любые переменные и типы операторов.Функция вызывается путем помещения ее имени, за которым следуют параметры в круглых скобках, в основной макро-функции.После выполнения функции она возвращает значение в главную функцию, где оно используется в качестве присвоения или условия. Тип возвращаемого значения не обязателен при определении функции, а это означает, что функция не обязана возвращать какое-либо значение.Параметры также могут отсутствовать в определении функции, в то время как функции не нужно брать какие-либо параметры из основной функции.
Определение функции, возвращающей значение:
sub тип <имя> [(параметры)]
Объявление локальных переменных
[тело функции]
[return [значение]]
end sub
sub int Add(int x, int y) int result result = x + y return result end sub |
macro_command main() int a = 10, b = 20, sum sum = Add(a, b) end macro_command |
Или:
sub int Add() int result, x = 10, y = 20 result = x + y return result end sub |
macro_command main() int sum sum = Add() end macro_command |
Определение функции, не возвращающей никакого значения:
sub <имя> [(параметры)]
Объявлене локальных переменных
[тело функции]
end sub
Пример:
sub Add(int x, int y) int result result = x + y end sub |
macro_command main() int a = 10, b = 20 Add(a, b) end macro_command |
Или:
sub Add() int result, x = 10, y = 20 result = x + y end sub |
macro_command main() Add() end macro_command |
Описание синтаксиса
- sub -> Должен использоваться для начала функционального блока.
- тип -> Необязательно. Это тип данных значения, возвращаемого функцией. Функ&