Господа, ну там же никакой помехоустойчивости, даже гальваноразвязки нет! Куда тянуть такое, в какую скаду...
Господа, ну там же никакой помехоустойчивости, даже гальваноразвязки нет! Куда тянуть такое, в какую скаду...
Господа подскажите пожалуйста, каким образом можно управлять с пр200 релейным модулем с RS485 на борту.
Из описания модуля:
Управление реле
Запрос
ADR 05 00 KK SS 00 CRC CRC
Ответ
ADR 05 00 KK SS 00 CRC CRC
KK - номер реле от 0x00 до 0x07, где 0x00 соответствует первомуреле. Указание 0xff означает что команда для всех реле на модуле;
SS- операция которую необходимо сделать с реле:
= 0xff - включитьреле,
= 0x00 - отключить реле,
= 0x55 - изменить состояние (еслибыло включено то выключится и наоборот).
Пример запроса на включение реле с номером 0x00:
Запрос
FF 05 00 00 FF 00 99 E4
Ответ
FF 05 00 00 FF 00 99 E4
Пример запроса на выключение реле с номером 0x00:
Запрос
FF 05 00 00 00 00 D8 14
Ответ
FF 05 00 00 00 00 D8 14
Примерно так:
В интерфейс 485 (мастер) добавьте устройство (параметры связи по умолчанию и адрес уточните из описания на модуль)
Добавьте в мастер 5 булевых переменных с адресом регистра 0 и битами от 0 до 7.
Но с нонеймовыми девайсами могут возникнуть проблемы с адресацией, придется методом тыка искать нужные адреса
Честно говоря не совсем понял как с помощью булевых переменных управлять модулем. И почему их пять?
Нашел описание подобного модуля:
The meaning of each byte:
[Address 1]
//--------------------------------------------
Relay No. 1 is on: 01 05 00 01 01 00 9d 9a
Byte 1: Address
Byte 2: Function
Byte 3 4: Register Address
Byte 5 6: Register Data
Byte 7 8: CRC check
//================================================== ====== ==============
[Address 1]
//--------------------------------------------
Relay No. 0 is on: 01 05 00 00 FF 00 8C 3A
Relay No. 0 is closed: 01 05 00 00 00 00 CD CA
//--------------------------------------------
Последний раз редактировалось mihatin; 10.12.2022 в 11:07.
Это опечатка, конечно 8 шт. Добавьте в мастер 8 булевых переменных с адресом регистра 0 и битами от 0 до 7.
Управляете вы не булевыми переменными, а ПР мастер шлёт запрос модулю слейву, на включение этих битов по данным адресам.
Протокол Модбас RTU, скорость, чётность, кол-во бит данных, стоп биты, адрес слейва, вам надо назначить по описанию на модуль.
Главный вопрос, поддерживает ваш модуль Протокол Модбас RTU или Модбас ASCII ?
Если нет, то ПР200 в пролёте и вам понадобится ПЛК и опрос через биб-ки.
Последний раз редактировалось kondor3000; 10.12.2022 в 11:44.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Пишу в в Var1 = 1 включается первое реле, в Var2 второе. Все работает, Спасибо огромное! Но честно не до конца понимаю как.
Обьясните пожалуйста, если не трудно, каким образом изменяя значения в 0 регистре происходит включение реле. Если из описания модуля 0 регистр это адрес.
Номера регистров модуля:
0x0000
Адрес модуля в сети Modbus
0x0003
Режим работы реле 1:0x02 - автоматическое включение через заданноевремя0x04 - автоматическое выключение через заданное время
0x0004
Значение таймера для реле 1, кратно 100 мс. Значение 10 соответствует 1 сек.
0x0008
Режим работы реле 2
0x0009
Значение таймера для реле 2
0x000D
Режим работы реле 3
0x000E
Значение таймера для реле 3
0x0012
Режим работы реле 4
0x0013
Значение таймера для реле 4
0x0017
Режим работы реле 5
Последний раз редактировалось mihatin; 10.12.2022 в 12:44.
Номера регистров модуля:
0x0000 Адрес модуля в сети Modbus
Это из описания модуля.