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

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

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

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

Сообщение dimensy » 08 мар 2022, 21:58

dimensy писал(а):Попытался обойти недоступность в панели серии IE глобального таймера, разместив его на окне Common Windows. Но, изменение окна с помощью Управление ПЛК по сигналу таймера происходит только один раз, после чего таймер просто не активируется. Это косяк ,или так и задумано?

Похоже таймер одноразовый. Нужно после сработки его еще и сбрасывать, тогда работает
dimensy
 
Сообщения: 143
Зарегистрирован: 14 мар 2018, 17:54

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

Сообщение ArtemPM » 09 мар 2022, 06:55

dimensy писал(а):Похоже таймер одноразовый. Нужно после сработки его еще и сбрасывать, тогда работает

Что значит одноразовый? Таймер вполне логично работает, реагируя на состояние переменной IN.
А как по вашему это должно происходить?
ArtemPM
 
Сообщения: 197
Зарегистрирован: 14 апр 2021, 05:16

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

Сообщение Number17 » 11 мар 2022, 11:05

Вопрос в общем вот в чём: делал проект на панелях mt3070. На этой панели на лицевой панели светодиод мигает при наличии обмена на линии RS-485. Сейчас применяю панели MT8071ip. Светодиод на лицевой панели индицирует только наличие питания. Заказчик же хочет что бы было как на панели mt3070 - мигал при обмене. Такие вот капризы... Возможно ли как то перенастроить светодиод на лицевой панели MT8071ip на индикацию обмена? Я конечно в этом сильно сомневаюсь... но мало ли. Индикация обмена отрисованная на панели не устраивает почему то...
Такой же вопрос по панели MT8051ip.
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

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

Сообщение rv9can » 11 мар 2022, 16:20

Добрый день, появилась проблема ломаю голову второй день. Имеем устройство MODBUS, опрашиваю через getdata два разных регистра, записываю в регистры LW и вывожу на экран и при этом второй регистр не опрашивается, а значение первого копируется во второй.
unsigned short data[2] = {0, 0}

macro_command main()

GetDataEx(data[0], "MODBUS RTU", 4x, 81#0, 1)
GetDataEx(data[1], "MODBUS RTU", 4x, 81#1, 1)

n1 = data[0]
n2 = data[1]

SetData(n1, "Local HMI", LW, 432, 1)
SetData(n2, "Local HMI", LW, 433, 1)
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

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

Сообщение dimensy » 12 мар 2022, 09:42

rv9can писал(а):Добрый день, появилась проблема ломаю голову второй день. Имеем устройство MODBUS, опрашиваю через getdata два разных регистра, записываю в регистры LW и вывожу на экран и при этом второй регистр не опрашивается, а значение первого копируется во второй.
unsigned short data[2] = {0, 0}

macro_command main()

GetDataEx(data[0], "MODBUS RTU", 4x, 81#0, 1)
GetDataEx(data[1], "MODBUS RTU", 4x, 81#1, 1)

n1 = data[0]
n2 = data[1]

SetData(n1, "Local HMI", LW, 432, 1)
SetData(n2, "Local HMI", LW, 433, 1)

Вы не правильно задаете регистры для чтения. Откуда взялась запись типа 81#0 и 81#1?
dimensy
 
Сообщения: 143
Зарегистрирован: 14 мар 2018, 17:54

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

Сообщение ArtemPM » 12 мар 2022, 16:29

dimensy писал(а):Вы не правильно задаете регистры для чтения. Откуда взялась запись типа 81#0 и 81#1?

Запись корректна. 81 - адрес устройства, 0 и 1 - регистры данного устройства.
По сути проблемы: макрос вроде бы корректен. Возможно проблема на стороне устройства. Попробуйте значение этих регистров вывести не через макрос, а напрямую с помощью цифрового индикатора.
ArtemPM
 
Сообщения: 197
Зарегистрирован: 14 апр 2021, 05:16

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

Сообщение rv9can » 14 мар 2022, 14:08

Пробовал, если использовать цифровой дисплей то значения в этих регистрах разные, а мне они нужны для дальнейшей обработки
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

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

Сообщение ArtemPM » 14 мар 2022, 15:01

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

А если попробовать так:
Код: Выделить всё
macro_command main()
short err
unsigned short data[2] = {0, 0}
GetDataEx(data[0], "MODBUS RTU", 4x, 81#0, 2)
GetError(err)
if err == 0 then
    SetData(data[0], "Local HMI", LW, 432, 2)
end if
ArtemPM
 
Сообщения: 197
Зарегистрирован: 14 апр 2021, 05:16

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

Сообщение 8bit » 14 мар 2022, 16:40

rv9can писал(а):Добрый день, появилась проблема ломаю голову второй день. Имеем устройство MODBUS, опрашиваю через getdata два разных регистра, записываю в регистры LW и вывожу на экран и при этом второй регистр не опрашивается, а значение первого копируется во второй.
unsigned short data[2] = {0, 0}

macro_command main()

GetDataEx(data[0], "MODBUS RTU", 4x, 81#0, 1)
GetDataEx(data[1], "MODBUS RTU", 4x, 81#1, 1)

n1 = data[0]
n2 = data[1]

SetData(n1, "Local HMI", LW, 432, 1)
SetData(n2, "Local HMI", LW, 433, 1)


Используйте этот код и все будет ок:

Код: Выделить всё
GetDataEx(data[0], "MODBUS RTU", 4x, 81#1, 1)
GetDataEx(data[1], "MODBUS RTU", 4x, 81#2, 1)
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

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

Сообщение rv9can » 15 мар 2022, 08:56

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

А если попробовать так:
Код: Выделить всё
macro_command main()
short err
unsigned short data[2] = {0, 0}
GetDataEx(data[0], "MODBUS RTU", 4x, 81#0, 2)
GetError(err)
if err == 0 then
    SetData(data[0], "Local HMI", LW, 432, 2)
end if

Спасибоооо, помогло
Извините не знаю как отвечать так сложилось что форумами никогда не пользовался
rv9can
 
Сообщения: 25
Зарегистрирован: 09 мар 2022, 14:05

Пред.След.

Вернуться в Weintek

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

Сейчас этот форум просматривают: Bing [Bot], Oleg_K и гости: 15