EasyBuilder - Скорая помощь новичкам

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 18 апр 2018, 18:23

Например.
Нижний предел и ПЛК низ = 0;
Верхний предел = 1000, ПЛК выс.=100.
Там есть кнопка "Тест", можно проверить.
VanMo
 
Сообщения: 375
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение zed1000 » 18 апр 2018, 18:29

Спасибо. Получилось
zed1000
 
Сообщения: 5
Зарегистрирован: 05 мар 2018, 22:40

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 19 апр 2018, 12:57

Возможно ли написать свой функциональный блок таким образом, что бы вычисленное в блоке значение помещалось в параметр, а не в возвращаемое значение.
то есть примерно так:
sub ADD(int a, int b, int result)

result = a + b

end sub


В языке С, например всё просто было бы - нужно в качестве параметра просто передать указатель на параметр result.

Вышеприведённый пример компилируется, но при вызове блока из библиотеки всегда нули (((.

macro_command main()

int a = 10
int b =20
int result

ADD (a, b, result )

TRACE("%X", result)

end macro_command


result будет равен "0", хотя если мониторить значение в самом ФБ значение будет = 30.

Что не так? Во встроенной же библиотеке существуют функции, например SWAPB(source, result), где вычисленное значение присваивается параметру...
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Владимир_Я » 20 апр 2018, 05:18

Number17 писал(а):Возможно ли написать свой функциональный блок таким образом, что бы вычисленное в блоке значение помещалось в параметр, а не в возвращаемое значение.
то есть примерно так:


Только так :

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
Владимир_Я
 
Сообщения: 59
Зарегистрирован: 17 мар 2015, 10:50

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 28 апр 2018, 12:05

А возможно ли как то определить константу которая будет видна во всех макросах? Допустим имеются адреса регистров устройства подключенного к HMI Weintek. Адреса регистров используются в различных макросах. Постоянно вспоминать приходится какой адрес регистра и что в нём :x .
В "С" всё просто - пишем файл определений с дефайнами и используем где хотим только подключая файл, например:
#define REG_PID_P 0x26
#define REG_PID_I 0x27
#define REG_PID_D 0x28

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

Сейчас делаю так: ячейкам памяти присваиваю user tag'и - REG_PID_P, REG_PID_I и т.д., при запуске панели инициализирую ячейки памяти необходимыми значениями адресов.
Далее, при использовании требуемых адресов "выдираю" их в макросах из ячеек памяти с использованием user tag'ов.
Как то не очень с моей точки зрения...
Замечу что устройство подключенное к HMI использует не MODBUS протокол.
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Dmit » 14 май 2018, 02:23

Господа здравствуйте.
Помогите советом, кто уже решил такую задачу: нужно выводить сообщения в event display содержащее следующую информацию - начало процесса, время конца процесса и результат %(WATCH1)f.2. Причем результат именно на конец процесса. Проблема в том, что как я понял функция %(WATCH1)f. берет значение по фронту (фактически получается значение на момент возникновения события) , а я хочу чтобы в одной строке событий была информация по времени начала, времени окончания и собственно результат. Есть решение как обойти эти условия?



Заранее благодарен
Dmit
 
Сообщения: 11
Зарегистрирован: 11 май 2018, 02:19

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 14 май 2018, 11:51

Number17 писал(а):А возможно ли как то определить константу которая будет видна во всех макросах? Допустим имеются адреса регистров устройства подключенного к HMI Weintek. Адреса регистров используются в различных макросах. Постоянно вспоминать приходится какой адрес регистра и что в нём :x .
В "С" всё просто - пишем файл определений с дефайнами и используем где хотим только подключая файл, например:
#define REG_PID_P 0x26
#define REG_PID_I 0x27
#define REG_PID_D 0x28

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

Сейчас делаю так: ячейкам памяти присваиваю user tag'и - REG_PID_P, REG_PID_I и т.д., при запуске панели инициализирую ячейки памяти необходимыми значениями адресов.
Далее, при использовании требуемых адресов "выдираю" их в макросах из ячеек памяти с использованием user tag'ов.
Как то не очень с моей точки зрения...
Замечу что устройство подключенное к HMI использует не MODBUS протокол.

Все правильно, проще не сделать.
VanMo
 
Сообщения: 375
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 14 май 2018, 12:04

Dmit писал(а):Господа здравствуйте.
Помогите советом, кто уже решил такую задачу: нужно выводить сообщения в event display содержащее следующую информацию - начало процесса, время конца процесса и результат %(WATCH1)f.2. Причем результат именно на конец процесса. Проблема в том, что как я понял функция %(WATCH1)f. берет значение по фронту (фактически получается значение на момент возникновения события) , а я хочу чтобы в одной строке событий была информация по времени начала, времени окончания и собственно результат. Есть решение как обойти эти условия?



Заранее благодарен

Добрый день.
Формируйте строку когда все параметры уже известны. Если запись попадает в журнал, ее уже не изменить.
VanMo
 
Сообщения: 375
Зарегистрирован: 16 авг 2011, 09:31

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 14 май 2018, 17:33

Как воспроизвести звук на панели? В описании на EBP нашёл функции BEEP и BUZZER. Но это всё пищалки и свистелки. Как воспроизвести звуковой файл? Вижу что имеется Saund Library. Но каким образом воспроизвести звук из этой библиотеки?
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение VanMo » 14 май 2018, 18:29

Number17 писал(а):Как воспроизвести звук на панели? В описании на EBP нашёл функции BEEP и BUZZER. Но это всё пищалки и свистелки. Как воспроизвести звуковой файл? Вижу что имеется Saund Library. Но каким образом воспроизвести звук из этой библиотеки?

Через пищалку никак. Библиотека звуков только для панелей с аудиовыходом.
VanMo
 
Сообщения: 375
Зарегистрирован: 16 авг 2011, 09:31

Пред.След.

Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1