Добрый день, товарищи. Подскажите пожалуйста, может кто-то знает - можно ли подружить ПР вот с таким модулем(https://pcus.ru/rele-s-interfejsom-rs485-modbus-rtu) по RS-485?
Вид для печати
Добрый день, товарищи. Подскажите пожалуйста, может кто-то знает - можно ли подружить ПР вот с таким модулем(https://pcus.ru/rele-s-interfejsom-rs485-modbus-rtu) по RS-485?
Можно подружить, посмотрел в ПР200, есть для мастера команды 0х01 и 0х05
По вашей ссылке все написано в примерах. Воспользуйтесь для проверки любой команды парсером Modbus
01 01 00 01 00 01 AC 0A - чтение состояния - https://rapidscada.net/modbus/ для запросов и ответов RTU режима
Можете порыться еще у китайцев, другие продавцы могут более подробнее расписывать.
да, если это запрос, ставите соответствующий переключатель на RTU, если ответ, аналогично.
Там команд в принципе кот наплакал
Поигрался с парсером, есть непонятные моменты:
1. При записи команд на включение/выключение реле передаваемое значение - это "on" и "off". Как это в ПР реализовать - писать в переменную ноль на выключение и любое число на включение?
2. На этой релюшке есть два входа - in1 и in2. Как читать их значения, я тоже не понял.
Скорее всего у вас 1-й Coil это выход 1, а 2-й coil это выход 2.
Возможно реле позволяет включать выключать командой записи в регистр битовой маской, но в описании этого не указано.
У меня вообще есть реле на 8 выходов, которое различными значениями вкл/выкл с таймером, без таймера но это зависит от прошивки управления в плате. Как у вас не знаю.
Если реле на руках, можете поиграться через Modpoll, расчеты CRC для Modbus есть online, можно даже при помощи терминала поклацать.
Выберите Булевую переменную, и увидите как.
Так вроде подобное уже неоднократно обсуждали на форуме, даже я принимал участие в одной из тем!
Ну смотрите, управлять выходами с помощью ПР на этом модуле я научился. У этого модуля есть загадочные "in1" и "in2". Не знаете, для чего они? Подавал на них плюс, подавал минус, думая, что будут срабатывать выходы - они не срабатывают. Если это чисто информационные входы - как их читать?
TaPX не могу знать, возможно входы. То есть если плата ваша 2in - 2out например. У меня 8х8 плата и другой функционал управления.
Вообще ссылку вы дали на плату с одним реле, а пишете, что у вас их два.
Если такая, то там тоже все написано как читать входы.
https://pcus.ru/moduli/moduli-rele/r...-modbus-rtu-2x
Возможно по запросу состояния разные биты отвечают за разное - входы и выходы. На что замыкать вход надо смотреть по плате, на минус или на плюс. Ну и почитать и посмотреть будут ли меняться другие биты.
Честно, я не вижу тут информации, как читать входы.
TaPX Запрос состояния реле. Определитесь, как работают входы, что надо подать на него для его активации, + или -
И проверьте на данном ответе будут ли изменяться биты, отличные от контроля выходов.
03 Status On On Off Off Off Off Off Off - 3-й бат на двух включенных реле занимают всего 2 бита.
Еще как вариант попробовать прочитать следующий адрес
00 00 Starting address Physical: 0x0000 (0)
Logical: 0x0001 (1)
то есть прочесть 1-й физический адрес при запросе Coils
Как вариант, что писал выше, найдите такую плату у китайцев, может быть больше информации, в том числе и по входам
Устройство на руках. Функцию 2 не пробовал, пробовал только 3 - щас попробую
Не функцию 2 а адрес 2. И заметьте, если там же на сайте откроете версию на 4 реле, то вообще в запросах не увидите чтения состояния реле.
То есть приходится ориентироваться на данные между тремя платами.
Кстати у китайцев не нашел именно таких плат. Пытался сейчас найти, но все другие.
А инпут регистры - они булевские?
А это дело производителя, как захочет, так и сделает.Цитата:
А инпут регистры - они булевские?
Так, входы я тоже прочитал, функцией два, на нулевом регистре на нулевом бите - спасибо вам всем за помощь )
Что за функция 2 ? Пример запроса в HEX напишите
Read Input Status - Это ?
У меня почему-то зависает форум при выборе цитирования - отвечу так.
Мелкий. Видимо да. Вот скриншот из ПР, переменная in1. Eсли есть сигнал на входе1 - переменная выдает 1. Если есть сигнал на входе2 - переменная имеет значение 2. Если на обоих, то ее значение - 3.
Кондор. На входы подаю +, тот же, который приходит на DC+.
Мне понравилось, что если изменить только функцию чтения бита(булевой переменной) будет читаться совсем другой бит(булева переменная), в смысле как-то это очень непривычно, типа квантовой механики, для меня так просто чудеса, недавно подобный вопрос обсуждался в одной из тем на форуме!
imaex да понял я уже, Просто настолько давно не читал DI. DO с устройств, что забыл :)
Что забавно, таких плат у китайцев не нашел, чтобы и там посмотреть запросы.
А на указанном сайте есть 3 вида аналогичных плат, на 1, 2 и 4 выхода. И если сравнивать там данные, то не везде одинаково написано :) Типа купит человек плату на 4 выхода и гадать будет как что прочитать :)
Товарищи, помогайте - не знаю, как обработать полученную информацию со входов этого китайского реле. Дело в том, что все 4 входа (разжились такой же релюхой на 4 входа\выхода) пишутся в одну БУЛЕВСКУЮ переменную. Булевскую. Которая, в теории, должна принимать значения "0" или "1". Но она же принимает значения от 1 до 15 (4 входа теперь)! И тут возникает проблема. В Owen Logic мы эту переменную не можем сравнивать с целочисленной константой - она же булевская. А при конвертации ее в int она конвертируется в единичку, только если имеет значение единичку. При всех остальных значениях на ее выходе после конвертации висит 0. Получается, я могу получать сигнал только с первого входа. Как это победить?
Распаковка бит из целочисленной, приём до 16 бит через 1 регистр. Вложение 69760
До 16 бит, можно упаковать в маску Вложение 69761
Упаковка бит в целочисленную, для передачи до 16 бит через 1 регистр
4 битовых можно просто подать на выходы Вложение 69763
Это так не работает
Вот именно, нужно 4 булевых с последовательными адресами. И никаких ехтрактов с преобразованием TO_INT
Вложение 69765