Вход

Просмотр полной версии : ПР 103 и панель Weintek - передача целочисленного значения



Дмитрий Александрович
21.06.2024, 09:52
Добрый день. Извините, если где то подобный вопрос задавался, не увидел решения.

В ПР 103 есть сетевая переменная тип целое. (диапазон 0 до 4 294 967 295)

В WEINTEK создаю макрос, объявляю переменную типом unsigned int (диапазон 0 до 4 294 967 295)

В макросе пытаюсь считать переменную следующим кодом и передать в регистр панели для отображения

GetData(counter, "MODBUS", 3x, 3#16386, 1)//Получаем значение счетчика из ПР103
SetData(counter, "Local HMI", LW, 30, 1)//Передаем значение счетчика на экран

Не работает. Обмен по MODBUS с ПР есть, Панель - Master, ПР - Slave

Если объявить переменную counter как short - работает, но при переходе через 65535 - происходит переполнение, что логично...


Собственно вопрос: как в макросе WEINTEK прочитать целочисленную переменную ПР? Возможно кто то подобное делал.
Спасибо.

Dimensy
21.06.2024, 10:01
В ПР slave сетевые целочисленные переменные 16-битные. Поэтому разбиваете 32-битное число на два

76766

1exan
21.06.2024, 10:51
Добрый день. Извините, если где то подобный вопрос задавался, не увидел решения.

В ПР 103 есть сетевая переменная тип целое. (диапазон 0 до 4 294 967 295)

В WEINTEK создаю макрос, объявляю переменную типом unsigned int (диапазон 0 до 4 294 967 295)

В макросе пытаюсь считать переменную следующим кодом и передать в регистр панели для отображения

GetData(counter, "MODBUS", 3x, 3#16386, 1)//Получаем значение счетчика из ПР103
SetData(counter, "Local HMI", LW, 30, 1)//Передаем значение счетчика на экран

Не работает. Обмен по MODBUS с ПР есть, Панель - Master, ПР - Slave

Если объявить переменную counter как short - работает, но при переходе через 65535 - происходит переполнение, что логично...


Собственно вопрос: как в макросе WEINTEK прочитать целочисленную переменную ПР? Возможно кто то подобное делал.
Спасибо.

Для этой сетевой надо в ПР указать "Количество регистров - 2" (т.е. 32 битное целое)
76769

Дмитрий Александрович
21.06.2024, 11:36
Извините, но не нашел где эта настройка

Дмитрий Александрович
21.06.2024, 11:37
Для этой сетевой надо в ПР указать "Количество регистров - 2" (т.е. 32 битное целое)
76769

Извините, а где это настраивается?

Dimensy
21.06.2024, 11:55
Для этой сетевой надо в ПР указать "Количество регистров - 2" (т.е. 32 битное целое)
76769

Это если ПР мастер

1exan
21.06.2024, 13:00
Извините, а где это настраивается?


Это если ПР мастер

Да, точно. Для слейва целочисленные на 32 бита - только разбивать в программе

vdv22
14.07.2024, 09:36
Добрый день, есть необходимость сделать небольшой проект на ПР103 +WEINTEK соединить хоту по modbus TCP . Вопрос в следующем есть ли какая то возможность произвести симуляцию (как на 210 например с помощью вирт контроллера) или какими то другими средствами что протестировать обмен.

kondor3000
14.07.2024, 10:11
Добрый день, есть необходимость сделать небольшой проект на ПР103 +WEINTEK соединить хоту по modbus TCP . Вопрос в следующем есть ли какая то возможность произвести симуляцию (как на 210 например с помощью вирт контроллера) или какими то другими средствами что протестировать обмен.

Виртуальную панель WEINTEK можно соединить только с живым ПР103, или симулировать ПР103, например ОРС сервером (Инсат и Лектус могут работать в режиме слейв https://owen.ru/catalog/opc_serveri )
или тем же вирт. контроллером CODESYS Control Win V3 или например живым контроллером типа ПЛК110.
А программу в ПР103 протестировать просто эмулятором, без обмена.