Просмотр полной версии : Проблема с выводом значений с ПР200 на HMI панель
MasikSow
21.08.2024, 19:47
Есть расходомер воды УРЖ2КМ с RS485 который считает общий объём воды качаемой насосами, подключаю к пр200(для управления насосами), И самое главное нужно на HMI панель Weintek выводить общий объём перекачанной воды(показания с расходомера), и тут проблема.
На HMI панель выводится максимальное число 65535, если прикинуть, что в сутки качает 1500 м3, на долго не хватит.
Главное пр200 отправляет сетевую переменную с большим числом(например 65536), а на HMI панели уже уже приходит "0"
Подскажите что делаю не так?, как увеличить максимально отображаемое число на панели.
kondor3000
21.08.2024, 22:57
Есть расходомер воды УРЖ2КМ с RS485 который считает общий объём воды качаемой насосами, подключаю к пр200(для управления насосами), И самое главное нужно на HMI панель Weintek выводить общий объём перекачанной воды(показания с расходомера), и тут проблема.
На HMI панель выводится максимальное число 65535, если прикинуть, что в сутки качает 1500 м3, на долго не хватит.
Главное пр200 отправляет сетевую переменную с большим числом(например 65536), а на HMI панели уже уже приходит "0"
Подскажите что делаю не так?, как увеличить максимально отображаемое число на панели.
Для этого существуют 32 битные целочисленные переменные, типа DWORD или UDINT. Про типы переменных можно посмотреть в справке Лоджика по F1.
В ПР и панели надо выбрать соответствующие переменные, указать 2 регистра.
Сделайте скрины, как вы настроили в ПР и в Панели.
Посмотрите на форуме макрос, как собрать из 2 16тибитных сетевых регистров одну внутреннюю 32 бита. Так же и для передачи сначала надо разобрать
MasikSow
22.08.2024, 08:21
Для этого существуют 32 битные целочисленные переменные, типа DWORD или UDINT. Про типы переменных можно посмотреть в справке Лоджика по F1.
В ПР и панели надо выбрать соответствующие переменные, указать 2 регистра.
Сделайте скрины, как вы настроили в ПР и в Панели.
Вот скрины, за регистры и переменные вообще не знаю.
78129 78130
HMI_Vm3 и далее у вас целочисленное и один регистр. Которое ограничено 16-бит значением, то есть 65535. Хотите больше, делите переменную на два регистра, получите число в 2 лярда, а если точнее то в 4 лярда, так как в ПР нет понятия отрицательного целочисленного. Дальше уже зависит от панели, при помощи макросов можно и отрицательные числа сделать, были реализации.
Или применяйте float, по умолчанию 2 регистра.
И не забываем, что ПР200 да и другие ПР ограничены количеством регистров. Так что битовые маски пакуем в один регистр, там где можно, применяем целочисленные с делением на 10, 100 и т.д.
kondor3000
22.08.2024, 08:34
Вот скрины, за регистры и переменные вообще не знаю.
78129 78130
В панели всё правильно адрес 4х 533 должен быть, если протокол у вас Модбас RTU (Zero Address), иначе смещение адресов будет +1.
В ПР слейве, 2 регистра поставить нельзя, надо сделать 2 переменных, адреса 533 и 534, ваш объём разложить на 2 регистра и отправить в Панель.
На скрине как разобрать и собрать из 2 регистров 32 битную переменную 78131
В панели надо проверить правильность полученного числа, если не правильно, поменять местами в ПР старший и младший регистры.
MasikSow
22.08.2024, 10:02
В панели всё правильно адрес 4х 533 должен быть, если протокол у вас Модбас RTU (Zero Address), иначе смещение адресов будет +1.
Спасибо большое тебе за подсказку по панели :) Ща скину что сделал.
MasikSow
22.08.2024, 10:06
Или применяйте float, по умолчанию 2 регистра.
И тебе спасибо большое за эту строчку))
Короче меняю переменные в ПР200 на плавающую с запятой, и в панели на 32bit-float.И вот78133 78134 78135
kondor3000
22.08.2024, 10:13
И тебе спасибо большое за эту строчку))
Короче меняю переменные в ПР200 на плавающую с запятой, и в панели на 32bit-float.И вот
Это не лучшее решение, Считать общий объём во Float, больше 5 знаков накопиться, объём начнёт врать. Считать надо в целочисленном формате, можно поставить 9 знаков.
Как, читайте выше, там всё описано.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot