PDA

Просмотр полной версии : Связь ПР200 и WELLPRO 3066ADAM



Анатолий П.
12.07.2020, 10:06
Добрый день!
Пытаюсь получить величины температур с модуля WELLPRO 3066ADAM.
Данный модуль имеет 8 датчиков DS18B20.
Через свою программу WELLPRO данные принимаю, а в ПР200 не получается.
Не понимаю, какой регистр нужно ставить у переменных.

Адрес первого регистра 0? Но с нулем не приходят данные о температуре.

melky
12.07.2020, 15:44
начальный адрес 1 установите, что будет ?

Cs-Cs
12.07.2020, 16:00
А что не получается? Ну, нет связи, не читает переменные, даёт ошибку?
У меня освоение ПРок шло так, что никакие опросы вообще ни фига не работали, пока я не завёл переменные в полях "Опрос" и Чтения переменной.
Вот мои скриншоты: 50133 и на чтение: 50134
В проге я просто эту самую bMbusWork ставлю в TRUE (1) и всё - чтение/запись работают.

Ревака Юрий
12.07.2020, 18:14
Добрый день!
Пытаюсь получить величины температур с модуля WELLPRO 3066ADAM.
Данный модуль имеет 8 датчиков DS18B20.
Через свою программу WELLPRO данные принимаю, а в ПР200 не получается.
Не понимаю, какой регистр нужно ставить у переменных.

Адрес первого регистра 0? Но с нулем не приходят данные о температуре.

Начну с самого простого, сетевой интерфейс в режиме "Мастер"? Если есть АС4 или другой преобразователь, проверьте с ModbusPoll или другим терминалом.

Ревака Юрий
12.07.2020, 18:15
А что не получается? Ну, нет связи, не читает переменные, даёт ошибку?
У меня освоение ПРок шло так, что никакие опросы вообще ни фига не работали, пока я не завёл переменные в полях "Опрос" и Чтения переменной.
Вот мои скриншоты: 50133 и на чтение: 50134
В проге я просто эту самую bMbusWork ставлю в TRUE (1) и всё - чтение/запись работают.

Без этих переменных тоже должно работать, видимо что-то еще было.

Евгений Кислов
12.07.2020, 18:51
Судя по скриншотам - тип данных не с плавающей запятой, а целочисленный, который после считывания надо приводить к float и делить на 10.0.

Ревака Юрий
12.07.2020, 19:52
Кстати да, 01 28 что на скриншоте из оригинальной программы как раз на это и указывает, 01 28 =296/10 29,6. В любом случае, нужно понять читает ПР некорректные значения или ничего не читает.

Cs-Cs
12.07.2020, 22:13
Ревака Юрий У меня ни разу само не заработало. Тестил на ПР200 как раз - ни фига. Только когда переменные эти ввёл...

petera
12.07.2020, 22:19
Добрый день!
Пытаюсь получить величины температур с модуля WELLPRO 3066ADAM.
Данный модуль имеет 8 датчиков DS18B20.
Через свою программу WELLPRO данные принимаю, а в ПР200 не получается.
Не понимаю, какой регистр нужно ставить у переменных.

Адрес первого регистра 0? Но с нулем не приходят данные о температуре.
Мастер в ПР не умеет читать по 8 регистров одной командой,
так что в лучшем случае прочитаете температуру только первого канала, хотя слейв в WELLPRO 3066ADAM может быть заточен на команду чтения 8 регистров, а на команду чтения одного регистра отвечать не будет.

Анатолий П.
13.07.2020, 15:22
В режиме симулятора на входе ПР200 стоит цифра 0.

Анатолий П.
13.07.2020, 15:24
ТОже на входе ПР200 ноль.

Анатолий П.
13.07.2020, 15:27
Да, стоит в мастере. К сожалению, АС4 и других преобразователей нет.

Анатолий П.
13.07.2020, 15:36
Переделал на целочисленный, и подвел к float, но результат 0.

Ревака Юрий
13.07.2020, 16:15
Анатолий, Вы в симуляторе или в режиме отладки смотрите? Покажите сетевые настройки платы и карта регистров.

В первом сообщении есть скриншоты настроек, но нет стартовой вкладки по скорости и адресам. И регистр для температуры, для него не нужно включать функцию записи!

Анатолий П.
13.07.2020, 20:06
Анатолий, Вы в симуляторе или в режиме отладки смотрите? Покажите сетевые настройки платы и карта регистров.

В первом сообщении есть скриншоты настроек, но нет стартовой вкладки по скорости и адресам. И регистр для температуры, для него не нужно включать функцию записи!

Всё заработало, спасибо. Я облажался, использовал симулятор, вместо отладки.

Продолжаю дальше.

Анатолий П.
13.07.2020, 22:13
Судя по скриншотам - тип данных не с плавающей запятой, а целочисленный, который после считывания надо приводить к float и делить на 10.0.

Спасибо, это так.