Просмотр полной версии : ПР 200 + датчик кислорода и Ph через RS 485
Добрый день.
Хочу подключить к ПР200(в дальнейшем к ПР205, пока на руках только ПР200) датчик кислорода АКВА МП-400.010 и датчик Ph АКВА МП-200.010 через RS 485 и выводить все показания с этих датчиков, для начала на дисплей(в дальнейшем и в облако). Производитель заявляет что у датчика кислорода заводской адрес 10, у Ph 20. Подскажите с чего начать? Во вложении ещё таблица от производителя с регистрами. Приложил изображения, если нужно есть в xls.
kondor3000
16.08.2023, 13:08
Добрый день.
Хочу подключить к ПР200(в дальнейшем к ПР205, пока на руках только ПР200) датчик кислорода АКВА МП-400.010 и датчик Ph АКВА МП-200.010 через RS 485 и выводить все показания с этих датчиков, для начала на дисплей(в дальнейшем и в облако). Производитель заявляет что у датчика кислорода заводской адрес 10, у Ph 20. Подскажите с чего начать? Во вложении ещё таблица от производителя с регистрами. Приложил изображения, если нужно есть в xls.
Кроме слейв адресов 10 и 20, нужно ещё знать Протокол, Скорость, размер, чётность, стоп-бит, (например Модбас RTU, 9600, 8, N, 1), забить все параметры в ПР,
после чего перевести нужные адреса регистров из HEX в DEC ( калькулятором) и добавить в ПР переменные с нужными адресами.
На скринах не видно всего, да еще это и скрины, но если это от производителя, то там все должно быть... По крайней мере я там увидел про float = big endian
69634
Посмотрите похоже вот эти данные.
https://merapribor.ru/upload/iblock/301/pliucz820dpkkffth09ncznrb27t82ih.pdf вот ссылка на инструкцию
kondor3000
16.08.2023, 17:01
69634
Посмотрите похоже вот эти данные.
Ну так всё написано, с завода идёт Модбас RTU, 9600, 8 бит, N (нет чётности), 2 стоп бита. Типа так 69641
По поводу слейв адресов 10 и 20 где написано?
Если это в HEX, то в DEC будут 16 и 32 адрес.
Получается вроде бы так да, по поводу адресов указано то же в документе, я вложил. Теперь остаётся настроить экраны самих датчиков. Что здесь нужно выставлять?6965369654696556965669657
Сергей0308
17.08.2023, 12:18
Получается вроде бы так да, по поводу адресов указано то же в документе, я вложил. Теперь остаётся настроить экраны самих датчиков. Что здесь нужно выставлять?6965369654696556965669657
А, чего Вы ПР200 не "настраиваете", в смысле, обычно кто БМП, купив ПР сразу начинают калибровать его входы-выходы! Может отложить это мероприятие на год-два, пока с азами разберётесь?
Не совсем понял вашего тонкого юмора, пр200 я пользуюсь очень давно, азы знаю. С настройкой этого прибора через RS485 сталкиваюсь впервые, мне сложно разобраться самостоятельно, вы можете помочь или только умничаете?
Сергей0308
17.08.2023, 14:50
Не совсем понял вашего тонкого юмора, пр200 я пользуюсь очень давно, азы знаю. С настройкой этого прибора через RS485 сталкиваюсь впервые, мне сложно разобраться самостоятельно, вы можете помочь или только умничаете?
Вам расскажу: часто новички, я бы их назвал перманентные экспериментаторы, купив ПР, первым, что начинают делать - начинают калибровать входы-выходы, что приводит, как правило, к выводу ПР из строя, в смысле, к неверным показаниям входов-выходов! Вы, надеюсь, достаточно разобрались с датчиком, чтобы заниматься чем-то подобным? Мне кажется, с этим не надо спешить!
С подключением я разобрался, с этим всё в порядке. Я с пр200 работаю уже очень давно, ну вопрос не в этом а в настройках интерфейса RS485. Вы можете помочь я не пойму или нет? kondor3000
по делу отвечает, у вас не связанные с делом разговоры.
Сергей0308
17.08.2023, 16:15
С подключением я разобрался, с этим всё в порядке. Я с пр200 работаю уже очень давно, ну вопрос не в этом а в настройках интерфейса RS485. Вы можете помочь я не пойму или нет? kondor3000
по делу отвечает, у вас не связанные с делом разговоры.
Вам РЭ на датчик прочитать, Вы что сами читать не умеете, там указаны(должны быть указаны) параметры настройки сети по умолчанию, впрочем, наверно недолго найти их и экспериментальным путём! Проблемы здесь нет! Даже если она есть, в смысле, Вы не можете найти эти параметры(Вам уже их написали), это не предмет обсуждения на этом форуме!
Так у вас в документации все настройки указаны же, проверяете с ПК, потом настраиваете то же самое в ПР.
kondor3000
17.08.2023, 16:27
Получается вроде бы так да, по поводу адресов указано то же в документе, я вложил. Теперь остаётся настроить экраны самих датчиков. Что здесь нужно выставлять?6965369654696556965669657
Похоже адреса так и есть 10 и 20. Поменяйте 16 на 10.
Пока ничего не настраивайте, попробуйте читать регистры Float (запись уберите) помеченные светло-зелёным, адреса в HEX - 0х53, 0х55, 0х57, 0х59,
надо перевести в DEC, первый будет 83
Сергей0308
17.08.2023, 17:34
Похоже адреса так и есть 10 и 20. Поменяйте 16 на 10.
Пока ничего не настраивайте, попробуйте читать регистры Float (запись уберите) помеченные светло-зелёным, адреса в HEX - 0х53, 0х55, 0х57, 0х59,
надо перевести в DEC, первый будет 83
Если первый(0х53) будет 83, то остальные: 85, 87 и 89, без калькулятора понятно!
Тема не умерла! Если кто-то надеялся... Значит разобрался я датчиком кислорода. Удалось мне подключить его к компу и программками считывать значения показаний. Настройки его действительно 9600, 8бит, нет чётности, 2 стоп бита. Адрес устройства 10. Появился новый нюанс, сначала нужно датчику отправить команду FF 06 00 01 00 1F 8C 1C измерь температуру, потом нужно отправить команду считать температуру 0A 03 00 53 00 02 35 61. Собственно вопрос, можно ли реализовать на ПР200 или ПР205 такой опрос что бы он сначала отправлял команду на измерение а затем на считывание значений температуры и кислорода?
Stas/// нельзя, ибо команды непонятны для Modbus, а ПР больше ничего не умеет
Хотя это FF 06 00 01 00 1F 8C 1C Modbus команда на адрес 255 - есть ли поддержка этого адреса у ПР ??? - ОЛ не дает возможности ввести адрес 255, но попробуйте указать адрес устройства 10 и сделать запись по команде. Ну и посмотреть снифером будет ли ответ от устройства ?
то есть подать команду 0A 06 00 01 00 1F XX XX (где ХХ требуемая CRC)
И это 0A 03 00 53 00 02 35 61 тоже Modbus команда уже на адрес 10
Все упирается в первую команду по широковещательному (так понимаю) адресу.
А не пробовали просто читать периодически второй командой, значения меняются ?
То есть просто читать Holding Registers по адресу 83 (или 84)
Physical: 0x0053 (83)
Logical: 0x0054 (84)
Пробовал, обновления данных не происходит, обязательно первой командой заставить его измерит а затем считать
Ну так заставить измерить видимо можно и по адресу устройства, а не широковещательной? Вероятно отправка всем сразу предполагает, что на линии могут быть несколько датчиков, которые потом уже считываются после измерения.
Да это не проблема, так же точно он отзывается и на свой конкретно адрес, 10. Вся проблема что нужно отправить сначала ему команду измерить 0А 06 00 01 00 1F 8C 1C а затем считать 0A 03 00 53 00 02 35 61. Как это реализовать на ПР
Ну так скрин смотрите, что выше я выложил. Создаете устройство со своим адресом, делаете переменную для команды и периодически ее устанавливаете в 1. В переменную Var1 пишите число 31.
Ну а свой регистр 83 и далее просто ставите на чтение в цикле.
Михаил Троицкий
12.12.2023, 15:33
Stas///, датчики которые продают барыги из Мераприбор, они же Полтраф, для начала измерения требуют записать в первый регистр значение типа WORD (1/3/7/15/31), все зависит от того , что хотите считать. Например только регистр с температурой - тогда 1, температура + 1 параметр - 3, все параметры - 15. Частота записи в первый регистр = частота снятия измерений с датчика.
Михаил Троицкий
12.12.2023, 15:39
И скажу сразу, что корректно эти датчики с любыми устройствами на базе OwenLogik работать не будут. Я писал под них отдельную программу на базе CoDeSys 3. Это очень специфические датчики, очень..
Подскажите как пользоваться этими функциями? Нет инструкции на это?72450
Подскажите как пользоваться этими функциями? Нет инструкции на это?72450
В справке все есть
https://docs.owen.ru/product/programmnoe_obespechenie_owen_logic/986/77871#topic-77880
Не могу снова разобраться с этими функциями, выставляю опрос дискретными сигналами, но опрос идёт постоянно без остановки. Не управляется не как опрос в ручную.72524 72525 72526 Кто ни будь разбирается как они точно работают?
Stas/// опрос идет всегда, пока переменная опроса в лог 1, как только сбросите ее в 0, опрос должен прекратиться. Было бы правильнее, если бы опрос происходил по импульсу (вдруг переделали в прошивке) с ожиданием полного ответа.
kondor3000
21.12.2023, 13:40
Не могу снова разобраться с этими функциями, выставляю опрос дискретными сигналами, но опрос идёт постоянно без остановки. Не управляется не как опрос в ручную.Кто ни будь разбирается как они точно работают?
Зачем вам это нужно? Опрос по переменным нужен только в особых случаях, новичкам проще без переменных работать.
По умолчанию чтение циклическое (100 мс), запись по изменению, без всяких переменных.
Дело в том что сначала нужно датчику отправить команду 0А 06 00 01 00 1F 8C 1C измерь температуру, потом нужно отправить команду считать температуру 0A 03 00 53 00 02 35 61. Если не отправлять команду измерить, а только считывать то получаем каждый раз одно и то же измерение.
kondor3000
21.12.2023, 14:01
Дело в том что сначала нужно датчику отправить команду 0А 06 00 01 00 1F 8C 1C измерь температуру, потом нужно отправить команду считать температуру 0A 03 00 53 00 02 35 61. Если не отправлять команду измерить, а только считывать то получаем каждый раз одно и то же измерение.
ПР это не ПЛК, сформировать команду тут нельзя, можно действовать только через запись и чтение,
вы можете попробовать записывать через переменную раз в секунду (30 сек, минуту) например, а читать постоянно. Вопрос будет ли работать?
Stas/// ну и что, что он каждый раз будет считывать одну и ту же температуру?
Вот представьте, вы выполняете опрос какого-то датчика раз в минуту, на протяжении минуты у вас показания те же самые. Тут тоже самое, только в профиль...
Добрый день. Разобрался я как опрашивать с помощью ПР205 по Modbus RTU. Едиственное не получается сформировать команду с плавающей точкой 0B 03 00 53 00 02. Подскажите вообще её можно реализовать?7809178092
Stas/// Ну указать что переменная с плавающей запятой, указать регистр 0x53 или в десятичном виде 83
Да пробую разные варианты, а опрос получается вот такой7809378094
имеете ввиду все по нулям? ну значит там 0, может датчик не прикручен или еще что.
kondor3000
19.08.2024, 14:42
Да пробую разные варианты, а опрос получается вот такой7809378094
Возможно в переменной Float надо переставить регистры, если ПР мастер, то ставите галку в ПР, Старшим регистром вперёд
нет, я подключил вместо датчика программу что бы увидеть как выглядит запрос, а там при вводе нужных данных, на выходе вот так. Поэтому голову ломаю как сформировать команду что бы она была как в инструкции
Ну вроде команда как в инструкции - зеленым цветом.
"приемная рамка" - это ответ датчика со значением. А вы программу подключили, где нет значения, кроме нуля. Но ответ верный, согласно CRC
а кто ни будь знает как расшифровать какое значение здесь пришло в ответе?78095
41 CC D0 9E - Float - Big Endian (ABCD) 25.6018639 (предположу, если это температура)
https://www.scadacore.com/tools/programming-calculators/online-hex-converter/
В общем с компа я этот датчик опрашиваю, получается. Не пойму как сформировать такие же команды с ПРки78096
Указать что это флоат, команда 0х03, выставить правильно положение слов и байтов.
Так вы вообще другое отправляете через ComPort ToolKit
kondor3000
19.08.2024, 19:29
В общем с компа я этот датчик опрашиваю, получается. Не пойму как сформировать такие же команды с ПРки
Не надоело вам ещё?
ПР не может сформировать любой запрос (это может только ПЛК), она работает только по стандарту Модбас RTU, всё что вам надо, это проверить чтение Float функцией 03, проверив перестановку байт и регистров. Больше вы ничего не сможете изменить.
Проверять надо на датчике, чтобы получить то же значение. Если принимается не правильно, переставить регистры (байты).
Из ваших байт получается 25.60186
Надоедает уже))) ну да температуру я и считывал всё правильно. Да вот это и пытаюсь понять может ли ПР сформировать нужную команду. За ссылку спасибо! Я и на датчике пробую не отвечает он, уже перепробовал наверное все варианты. Я просто думаю может ещё какие то нюансы я не знаю или не понимаю, поэтому спрашиваю. Толковой инструкции нет.
Михаил Троицкий
21.08.2024, 11:04
Работал с такими датчиками, только ПЛК их нормально опрашивает, на ПР ничего не получится.
Все получится, просто надо периодически посылать команду для измерения. И потом просто настроив чтение фильтровать данные. Должно получиться.
а фильтровать каким образом?
Stas/// программой. Например если вы читаете регистр без команды "измерить" он что присылает? старое значение, ну и незачем фильтр, если 0, то учесть его не показывать зря.
если без команды измерить присылает старое значение, приходится по очереди отсылать измерить а потом считать.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot