Просмотр полной версии : Опрос по RS-485
spacelxrd
16.06.2025, 06:39
Всем здравствуйте! столкнулся с проблемой. есть две чиллерные установки, моих знаний хватает что бы написать алгоритм любой сложности под любые задачи. но проблема в том, что ПР205 по интерфейсу не видит переменные с чиллера. никакие. на плате чиллера опрос есть (там присутствуют светодиоды). подключаюсь преобразователем интерфейса и через любую стороннюю программу опрашиваю установку - данные есть, а в это же время на ПР205 данных нет. всю голову сломали, в чем может быть проблема?
все регистры указаны верно, функции опроса тоже верны, А и В местами не перепутал)) тех.поддержка предлагала вывести эти переменные на экран (якобы в онлайн-отладке могут не отображаться данные - бесполезно).
Если с ПК опрос есть, значит не верно что-то делаете на пр205, вполне очевидно, что голову сломали не до конца. А что, в пр появились групповые запросы, с чего такой выбор в сторону пр вообще?
spacelxrd
16.06.2025, 06:51
Выбор в сторону ПР очевиден - заводской сенсорный пульт производителя стоит 125к, + есть несколько задач автоматизации - удаленное управление и изменение уставок температур, а так же сброс аварий и мониторинг, т.к. объект находится за городом около 50км, ездить по каждому скачку напряжения такое себе мероприятие.
дело в том, что по инструкциям и правилам все настроено правильно. единственное - регистры, присланные поставщиком (например Ambient Temp регистр 30012 - меня смущают) якобы правильные, что думаете? пробовал без 300, ничего не помогло. через преобразователь и стороннюю программу именно этот регистр показывает 30.8 (гр.цельсия соответственно)
spacelxrd
16.06.2025, 06:58
вот пример
84360
МихаилГл
16.06.2025, 07:19
Какую стороннюю программу используете?
spacelxrd
16.06.2025, 07:38
рандомную скачал с интернета. указал адрес опрашиваемого прибора и все полетело. пробовал с тремя разными программами. думаю нет смысла указывать какими
spacelxrd
16.06.2025, 07:39
а Вы различаете разницу в регистрах хранения и входных регистрах, хотя бы то что они разными функциями читаются
различаю. далее в инструкции к чиллерной установке указаны регистры Holding Registers 4х - с ними тоже ничего не взлетает.
spacelxrd
16.06.2025, 07:46
знаете ли Вы что надо не отбрасывать 300, а вычитать 30001? Тип переменной какой задали в проекте на ПРку? Скрин настроек мастера покажите
этого не знал.
84361
spacelxrd
16.06.2025, 07:48
знаете ли Вы что надо не отбрасывать 300, а вычитать 30001? Тип переменной какой задали в проекте на ПРку? Скрин настроек мастера покажите
т.е. мне нужно указывать не 30012, а просто 11?
spacelxrd
16.06.2025, 07:49
не обращайте внимания на функции Modbus, я их все перепробовал, открыл проект первоначальный, т.к. работал на ноутбуке а сейчас за ПК
spacelxrd
16.06.2025, 07:56
для Holding вычитайте 40001, для Input 30001, и On/Off state у Вас читается 4 функцией, а должна третьей, это касается и остальных регистров хранения
принято. сегодня попробую. позже отпишу что и как. спасибо!
МихаилГл
16.06.2025, 08:30
Просто некоторве производители пишут 30001 или 40001 обозначая первой цифрой область, например так делает сименс, хотя на самом деле это первый регистр... Хотя они используют 400001, но не суть. При этом область 3ххх надо читать 4ой командой, а 4хххх - 3ей.
spacelxrd
23.06.2025, 06:47
всем снова здравствуйте! общение устройств наладилось, показания есть, вот только исходя из паспорта чиллера, логически понимаю что эти биты должны быть либо 0 либо 1. подключившись снова через преобразователь интерфейса напрямую, разложив регистр на биты, увидел что так и есть 84464, сымитировал ошибку по протоку увидел что 1 бит в этом регистре изменился на 1 (ошибка протока воды), в это же время у меня в лоджике такие вот данные..84463
настройки вот такие 84470
вырезка из паспорта на эти параметры вот 84466 и 84469
spacelxrd
23.06.2025, 06:50
вычитал из этого регистра 30001, данные такие же
всем снова здравствуйте! общение устройств наладилось, показания есть, вот только исходя из паспорта чиллера, логически понимаю что эти биты должны быть либо 0 либо 1. подключившись снова через преобразователь интерфейса напрямую, разложив регистр на биты, увидел что так и есть 84464, сымитировал ошибку по протоку увидел что 1 бит в этом регистре изменился на 1 (ошибка протока воды), в это же время у меня в лоджике такие вот данные..84463
настройки вот такие 84470
...
Непонятно - в чиллере биты упакованы в слова, но вы читаете биты по отдельности (а в инструкции описан такой вариант доступа?), чтобы в OL опять упаковать их в слова?
Не проще прочитать слово (регистр) из чиллера, разложить его на биты (если нужно), а само слово отправить дальше (если нужно)?
spacelxrd
23.06.2025, 06:59
пробовал функции 0х01 и 0х02 поэтому они стоят разные на этих переменных, не обращайте внимания
spacelxrd
23.06.2025, 07:01
как это сделать?) все что в инструкции написано это adress, item, unit и note
пробовал функции 0х01 и 0х02 поэтому они стоят разные на этих переменных, не обращайте внимания
Почему вдруг 01? В инструкции же над таблицей написано - читайте слово командой 4
как это сделать?) все что в инструкции написано это adress, item, unit и note
В OL добавляйте не булевые переменные в чиллер, а целочисленные - и выбирайте чтение функция 4
spacelxrd
23.06.2025, 07:04
В OL добавляйте не булевые переменные в чиллер, а целочисленные - и выбирайте чтение функция 4
принял, сейчас попробую
принял, сейчас попробую
Для разложения на биты в библиотеке тоже должны быть блоки
принял, сейчас попробую
Можете почитать например здесь (https://ipc2u.ru/articles/prostye-resheniya/modbus-rtu/#read_discr_out) про различные области памяти и функции
spacelxrd
23.06.2025, 07:14
В OL добавляйте не булевые переменные в чиллер, а целочисленные - и выбирайте чтение функция 4
осталось только проверить в действии..84473
spacelxrd
23.06.2025, 08:03
получилось что-то такое, но главное все работает! спасибо Вам!84475
получилось что-то такое, но главное все работает! спасибо Вам!84475
Можете использовать такой ФБ для распаковки:
function_block NQ
var_input
in : udint;
end_var
var_output //объявление выходных переменных
b0 : bool;
b1 : bool;
b2 : bool;
b3 : bool;
b4 : bool;
b5 : bool;
b6 : bool;
b7 : bool;
b8 : bool;
b9 : bool;
b10 : bool;
b11 : bool;
b12 : bool;
b13 : bool;
b14 : bool;
b15 : bool;
end_var
b0 :=in.0 ;
b1 :=in.1 ;
b2 :=in.2 ;
b3 :=in.3 ;
b4 :=in.4 ;
b5 :=in.5 ;
b6 :=in.6 ;
b7 :=in.7 ;
b8 :=in.8 ;
b9 :=in.9 ;
b10 :=in.10 ;
b11 :=in.11 ;
b12 :=in.12 ;
b13 :=in.13 ;
b14 :=in.14 ;
b15 :=in.15 ;
end_function_block
spacelxrd
25.06.2025, 13:43
Всем спасибо за помощь! Всё полетело, никаких ошибок, ни-че-го!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot