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

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

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

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

Сообщение Zetrix » 17 дек 2024, 16:15

Михалыч писал(а):
В общем, такой вот проектик, не знаю только, насколько он соответствует задаче...
Используются два объекта в "Data transfer (Global)". На вкладке Security этих объектов указан бит, который разрешает/запрещает копирование (отключает/включает объект).
Бит этот, в свою очередь, вычисляется через Object=> If Condition.

Спасибо за помощь, я пока мало что понял, слишком много окошек для записи одной частоты. Почему у Вас в свойствах числа есть вкладка с триггером, а у меня не появляется такая вкладка?
Zetrix
 
Сообщения: 11
Зарегистрирован: 13 дек 2024, 17:03

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

Сообщение Zetrix » 17 дек 2024, 17:00

Если в мвойствах числового поля нельзя указывать несколько адресов, то думаю пойти в сторону макроса. Как запустить макрос в момент когда происходит изменение в числовом поле? Например если ввел частоту, то срабатывает макрос который читает регистры, сравнивает их и записывает одинаковые значения, то что введено в числовое поле.
Zetrix
 
Сообщения: 11
Зарегистрирован: 13 дек 2024, 17:03

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

Сообщение Михалыч » 17 дек 2024, 20:08

Честно сказать, с этой моделью панели не работал, для примера выбрал наобум. Со свойством "Trigger Action Setting" не приходилось работать. И это свойство есть только у панелей (cMT / cMT X - как написано в мануале для изи билдера).

А окошек, как раз. Исходя из вопроса: "...нужно сделать окно число в котором я записываю максимальную выходную частоту двигателя по адресу 5104H и это же значение должно записаться в регистр базовой частоты 5106h...", а так же "...базовая меньше макс, если наоборот то ошибка записи будет."

Т.е., прежде чем принять значение "максимальной выходной частоты" нужно убедиться, что "базовая меньше макс". Так и сделано.
Переменная Hmi_Speed_max_source является промежуточной (она в памяти HMI).
Её значение сравнивается со значением в Ph_Speed_max_base (что содержит "базовую" из ПЧ).
На основании результата сравнения принимается решение, записать в Ph_Speed_max_source (макс. в ПЧ) или нет.
Хотя, написано это на коленке, и можно обойтись и без промежуточной Hmi_Speed_max_source, что будет правильнее. Вот версия 2.

А насчет макроса, это да, можно попробовать. Как запустить макрос "в момент когда происходит изменение в числовом поле" пока не знаю. Может лучше сделать его выполнение циклическим, пусть себе постоянно мониторит данные.
Наверное, с запуском "в момент когда происходит изменение в числовом поле" как раз помогло бы свойство поля "Trigger Action Setting", там есть вызов макроса (только макрос сначала надо сделать).
Михалыч
 
Сообщения: 37
Зарегистрирован: 16 май 2018, 20:21

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

Сообщение dimensy » 18 дек 2024, 04:12

Zetrix писал(а):Если в мвойствах числового поля нельзя указывать несколько адресов, то думаю пойти в сторону макроса. Как запустить макрос в момент когда происходит изменение в числовом поле? Например если ввел частоту, то срабатывает макрос который читает регистры, сравнивает их и записывает одинаковые значения, то что введено в числовое поле.

Записываете уставку в какой-нибудь регистр панели (например LW0). В свойствах числового поля ставите галочки на "уведомление включить", "установить", "после записи" и указываете регистр (например LB0).
Далее, создаете макрос, в котором читаете регистр панели (LW0), записываете куда там вам нужно и сбрасываете бит (LB0).
Потом создаете триггер, там выбираете из списка "выполнить макрос", указываете имя макроса, регистр с битом (LB0) и режим OFF->ON.
Все
dimensy
 
Сообщения: 213
Зарегистрирован: 14 мар 2018, 17:54

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

Сообщение Zetrix » 18 дек 2024, 11:39

Михалыч писал(а):Хотя, написано это на коленке, и можно обойтись и без промежуточной Hmi_Speed_max_source, что будет правильнее.


подскажите, а как сравнение организовано, где условие прописано? В левое окошко я записываю значение и если она больше базовой то она записывается в правое окошко, а кто ее тута записывает, как это сделано?

Я так понял, что можно удалить индикатор и второе поле, т.к сравнение делается в объекте условия и ставится бит по результату, по этому биту происходит передача данный. Вроде разобрался, жаль что так все скрыто в разных окнах программы, без Вашей помощи бы об этом и не догадался. Только в моем проекте почемуто объект условие не активный, может тоже не поддерживается в моей панели MT8052ip?
Zetrix
 
Сообщения: 11
Зарегистрирован: 13 дек 2024, 17:03

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

Сообщение pkl58 » 18 дек 2024, 15:17

Выложите ваш проект. Проще его поправить, чем понять что вы хотите.
pkl58
 
Сообщения: 44
Зарегистрирован: 25 окт 2016, 08:55

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

Сообщение Zetrix » 18 дек 2024, 16:03

Т.к у меня нет объекта условия, то использую макрос. В числовом поле ввожу цифру и по выполнению Lb0 ставлю в 1, по этому LB0 запускаю макрос в окне триггера, в самом макросе в конце ставлю LB0 в ноль, но он не ставится в ноль проверяю по битовому индикатору, для проверки LB1 ставил в ноль в макросе, он ставится. Почему так?
Zetrix
 
Сообщения: 11
Зарегистрирован: 13 дек 2024, 17:03

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

Сообщение dimensy » 18 дек 2024, 18:10

Zetrix писал(а):Т.к у меня нет объекта условия, то использую макрос. В числовом поле ввожу цифру и по выполнению Lb0 ставлю в 1, по этому LB0 запускаю макрос в окне триггера, в самом макросе в конце ставлю LB0 в ноль, но он не ставится в ноль проверяю по битовому индикатору, для проверки LB1 ставил в ноль в макросе, он ставится. Почему так?


Проверяйте
https://disk.yandex.ru/d/XiSqyDfuJagoeQ

А еще, полезно здесь посмотреть, кто же этот регистр использует
Изображение
dimensy
 
Сообщения: 213
Зарегистрирован: 14 мар 2018, 17:54

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

Сообщение Михалыч » 18 дек 2024, 20:07

Zetrix писал(а):
Михалыч писал(а):Хотя, написано это на коленке, и можно обойтись и без промежуточной Hmi_Speed_max_source, что будет правильнее.


подскажите, а как сравнение организовано, где условие прописано? В левое окошко я записываю значение и если она больше базовой то она записывается в правое окошко, а кто ее тута записывает, как это сделано?

Я так понял, что можно удалить индикатор и второе поле, т.к сравнение делается в объекте условия и ставится бит по результату, по этому биту происходит передача данный. Вроде разобрался, жаль что так все скрыто в разных окнах программы, без Вашей помощи бы об этом и не догадался. Только в моем проекте почемуто объект условие не активный, может тоже не поддерживается в моей панели MT8052ip?


Object=> If Condition

Изображение

Пересылка:

Изображение

"Хитрый" ход по запрещению/разрешению пересылки через опцию Security

Изображение
Михалыч
 
Сообщения: 37
Зарегистрирован: 16 май 2018, 20:21

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

Сообщение Михалыч » 19 дек 2024, 00:45

Zetrix писал(а):
Михалыч писал(а):Хотя, написано это на коленке, и можно обойтись и без промежуточной Hmi_Speed_max_source, что будет правильнее.


подскажите, а как сравнение организовано, где условие прописано? В левое окошко я записываю значение и если она больше базовой то она записывается в правое окошко, а кто ее тута записывает, как это сделано?

Я так понял, что можно удалить индикатор и второе поле, т.к сравнение делается в объекте условия и ставится бит по результату, по этому биту происходит передача данный. Вроде разобрался, жаль что так все скрыто в разных окнах программы, без Вашей помощи бы об этом и не догадался. Только в моем проекте почемуто объект условие не активный, может тоже не поддерживается в моей панели MT8052ip?


Да, MT8052ip не поддерживает "If Condition". Так же и у "Data Transfer (Global)" возможности урезанны.
Тогда используем макрос. И "Data Transfer (Per-page)".

Вот версия исправленная и дополненная.

В этом проекте используются переменные (Ph_Speed_max_source, Ph_Speed_max_base) непосредственно из области регистров. Но, как я думаю, лучшим решением было бы использовать для получения промежуточного результата локальные переменные HMI, и пересылать результат в регистры.

И ещё, мне кажется, что в моем примере алгоритм работает неправильно, исходя из вопроса. Ведь в вопросе сказано, что "базовая меньше макс". А в моем примере можно ввести "макс" меньше чем "базовая" - такой ввод нужно отклонять, наверное.
Михалыч
 
Сообщения: 37
Зарегистрирован: 16 май 2018, 20:21

Пред.След.

Вернуться в Weintek

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

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

cron