8 800 6003347
info@weintek.net
Закладки
Сравнение
Ваша корзина пуста!
Корзина

Макросы обеспечивают дополнительную функциональность, которая может понадобиться вашему приложению.

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

В этом окне можно:

  • создавать макросы;
  • удалять макросы;
  • редактировать/править макросы;
  • делать импорт/экспорт макросов в файл *.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 или во встроенной справке в Мастере добвления функций (в момент вставки функции Мастером).

Математические

Преобразование данных

Манипулирование данными

Преобразование битов

Связь

ACOS

ASCII2DEC

FILL

GETBIT

ADDSUM

ASIN

ASCII2FLOAT

HIBYTE

INVBIT

CRC

ATAN

ASCII2HEX

HIWORD

SETBITOFF

DELAY

COS

BCD2BIN

LOBYTE

SETBITON

GetCTS

COT

BIN2BCD

LOWORD

GetData

CSC

DEC2ASCII

SWAPB

GetDataEx

CUBERT

FLOAT2ASCII

SWAPW

GetError

LOG

HEX2ASCII

INPORT

LOG10

INPORT2

POW

OUTPORT

RAND

PURGE

SEC

SetData

SIN

SetDataEx

SQRT

SetRTS

TAN

XORSUM

Операции со строками

Работа с рецептами

Разное

StringBin2DecAsc

StringIncluding

RecipeGetData

ASYNC_TRIG_MACRO

StringBin2HexAsc

StringInsert

RecipeQuery

Beep

StringCat

StringLength

RecipeQueryGetData

FindDataSamplingDate

StringCompare

StringMid

RecipeQueryGetRecordID

FindDataSamplingIndex

StringCompareNoCase

StringReverseFind

FindEventLogDate

StringCopy

StringSet

FindEventLogIndex

StringDecAsc2Bin

StringSetEx

SYNC_TRIG_MACRO

StringDecAsc2Float

StringToLower

TRACE

StringExcluding

StringToReverse

StringFind

StringToUpper

StringFindOneOf

StringTrimLeft

StringFloat2DecAsc

StringTrimRight

StringGet

StringGetEx


Функции

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

Определение функции, возвращающей значение:

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 -> Должен использоваться для начала функционального блока.
  • тип -> Необязательно. Это тип данных значения, возвращаемого функцией. Функ&

15.12.2020
Связанные статьи
17.04.2026
Чем отличаются панель оператора, облачный терминал (iV) и Веб-панель (W)
Рассмотрим на примере трёх панелей: cMT3108XP - 10.1" панель оператора Weintek   (MQTT, EasyAccess 2.0, OPC UA, Codesys, Dashboard, Wi-Fi) cMT3108XP(iV)..
28.01.2026
Подключение портативной панели оператора cMT3106XM к коммутационным базам cMT-XMBS и cMT-XMBC
Подключение портативной панели оператора cMT3106XM к коммутационным базам производится посредством 26-пинового круглого соединителя. Нужно вставить его до щелчка фикса..
14.01.2026
Как продлить жизнь FLASH памяти панели?
[ВАЖНО] Согласно главе 3.2.1. Prolong the Lifespan of Flash Memory документа Product Security User Manual eng.pdf: Из-за ограниченного числа циклов записи в..
29.09.2025
Все о Weincloud Dashboard
Вступление Часто пользователи сталкиваются с необходимостью проводить мониторинг и управление несколькими устройствами, которые могут работать в разных сетях и/или в р..
15.09.2023
Расширение графического функционала панелей Weintek средствами встроенного JavaScript
EasyBuilder Pro позволяет создавать довольно симпатичный пользовательский интерфейс, графическим объектам (кнопки, поля ввода/вывода, спидометр и т.п.) можно придавать ра..
09.06.2023
Codesys от Weintek . Быстрый старт
Эта статья содержит информацию необходимую для начала работы в среде CODESYS V3.5 с устройствами Weintek и рассчитана на пользователей, которые первый раз столкнулись с C..
30.03.2023
Модули ввода-вывода Weintek, ПЛК cMT-CTRL01, каплеры iR-ETN, iR-COP, iR-ECAT, описание работы
Панели оператора имеют на борту COM порты (RS-232/485) и Ethernet порты. А как "завести" в панель полевые сигналы ? Для работы с полевыми сигналами ко..
19.10.2022
Система контроля и управления доступом на базе панели Weintek и считывателя RFID меток
1. Введение В данном проекте мы реализуем простую систему контроля и управления доступом на базе панели Weintek. Наша СКУД будет управлять турникетом-"верт..
19.10.2022
Взрывозащищенные панели оператора и взрывозащищенные компьютеры
Взрывозащищенные панели оператора и взрывозащищенные компьютеры - это решение для работы в потенциально взрывоопасной среде. Существуют такие производственные отрасли,..
03.10.2022
Панель оператора Weintek вместо VPN-роутера
Управление производственным процессом из любой точки мира можно реализовать двумя способами: используя защищенный VPN-канал, для чего понадобится промышленный VPN-р..
01.06.2022
Умный офис с панелями оператора Weintek
В последние годы панели оператора Weintek настолько улучшили свой дизайн и производительность, что стали все чаще применяться для автоматизации жилых и офисных зданий, а ..
20.05.2022
Пример проекта для панели Weintek, демо проект
Предисловие Панели оператор используются для взаимодействия человека с системой управления чем-либо, например, технологическим процессом переработки нефти или дизель-г..
23.03.2022
Как подключить ПЛК к панели Weintek?
ВВЕДЕНИЕ Первый вопрос, которым задается пользователь, столкнувшийся с новым оборудованием: как его связать с другим оборудованием ? Мы рассмотрим три варианта: ..
29.12.2021
Как получить доступ к COM порту панели оператора и ПЛК CTRL01 Weintek из встроенного Codesys?
Согласно документации на встроенный Codesys доступными из Codesys остаются только Ethernet порт и CAN bus. COM порт остается в "билдеровской части". Но на пр..
27.10.2021
[Отзыв клиента] Применение панели Weintek cMT2078X в системе управления поливом
О проекте информационно-управляющей системы водоподготовки и автополива на базе панели Weintek cMT2078X Впечатления от панели Weintek cMT2078Х самые положитель..
08.09.2021
Сервис Дашборд в Weincloud от Weintek. Быстрый старт.
Хотя EasyAccess 2.0 обеспечивает простой способ доступа к удаленным устройствам, он может не подходить для удаленного мониторинга. В промышленной сфере построению системы..
05.09.2021
Как заменить неработающую панель оператора Weintek на исправную
Начните с файла проекта Панель оператора состоит из аппаратной части и программной. При замене панели на новую, нужно позаботиться о переносе программной части в новую..
27.08.2021
Типы адресов в драйвере Modbus панелей Weintek
Согласно встроенной справке Weintek обозначения Modbus адресов следует понимать так: Тип адреса Описание 0x ..
20.07.2021
Веб-интерфейс в панелях Weintek
В панелях Weintek серий cMT и cMT_X есть веб-интерфейс, который дает доступ к системным настройкам панели и позволяет ее удаленно обслуживать (например, производить актив..
05.07.2021
Настройка Wi-Fi в панелях Weintek (MT8103iE, cMT3103, cMT-G02, cMT-SVR-200)
Глава 1. Обзор 1.1. Вступление Некоторые модели HMI имеют беспроводное сетевое соединение (Wi-Fi), которое позволяет пользователям подключаться к локальной беспрово..
26.05.2021
Подключение к панелям Weintek в локальной сети
Рассматриваем подключение именно в локальной сети. Если возможно в локальной, то в глобальной уже дело техники (белый IP адрес у панели, самостоятельно организовать VPN и..
25.05.2021
Как поменять местами байты в слове конкретного тега ?
В настройках драйвера для протокола  Modbus  есть возможность поменять местами байты в слове, но только для целого диапазона адресов (например, все Holding реги..
18.05.2021
Проброс портов на роутере для cMT Viewer
В EasyBuilder Pro начиная с версии 6.05.02.313 и для cMT Viewer (PC) начиная с версии 2.15.46 для cMT Viewer добавлена возможность указания портов не по умолчанию. Так..
17.05.2021
Какие TCP порты используют панели Weintek ?
В ПО Weintek   используются следующие TCP порты: Опция Порт по умолчанию Примечание Коммуника..
27.04.2021
Как обновить прошивку у панелей MT8102iP ?
В марте 2021 года компания Weintek выпустила обновление для панелей серии IP значительно расширяющее возможности по обработке данных. В моделях MT8051iP / MT8071iP / M..
//
0