Здравствуйте!
Я пытаюсь работать с WBIO-DI-WD-14 через WB-MIO посредством бокового подключения.
Первый вариант: Замнкул контакт iGND и 1 порт модуля WBIO-DI-WD-14
Читаю из WB-MIO следующие модбас регистры
1000-1015 везде выдаются нули…
997 выдает 2 т.е. он подключен
Второй вариант:Когда подключил wb-mio<>WBIO-AI-DV-12/4-20mA<>WBIO-DI-WD-14
Читаю из WB-MIO следующие модбас регистры
2000 - 2015 на 2000 выдает 1 т.е. работает
Почему не работает вариант 1?
Собираю аналогичную схему, воспроизвожу.
Итак модуль WBIO-DI-WD-14 подключен первым и единственным:
export DEV_PORT=/dev/ttyRS485-1
export DEV_ADDR=157
for i in {990..997}
do
echo "register $i $(modbus_client --debug -mrtu -pnone -s2 $DEV_PORT -a$DEV_ADDR -t0x03 -r$i | grep Data:)"
done
Дает:
register 990 Data: 0x0000
register 991 Data: 0x0000
register 992 Data: 0x0000
register 993 Data: 0x0000
register 994 Data: 0x0000
register 995 Data: 0x0000
register 996 Data: 0x0000
register 997 Data: 0x0002
Что верно.
Пробуем прочитать состояние (замкнут 14 вход)
for i in {1000..1015}
do
echo "register $i $(modbus_client --debug -mrtu -pnone -s2 $DEV_PORT -a$DEV_ADDR -t0x01 -r$i | grep Data:)"
done
вывод:
register 1000 Data: 0x00
register 1001 Data: 0x00
register 1002 Data: 0x00
register 1003 Data: 0x00
register 1004 Data: 0x00
register 1005 Data: 0x00
register 1006 Data: 0x00
register 1007 Data: 0x00
register 1008 Data: 0x00
register 1009 Data: 0x00
register 1010 Data: 0x00
register 1011 Data: 0x00
register 1012 Data: 0x00
register 1013 Data: 0x01
register 1014 Data: 0x00
register 1015 Data: 0x00
Подключаем вторым:
# for i in {990..997}; do echo "register $i $(modbus_client --debug -mrtu -pnone -s2 $DEV_PORT -a$DEV_ADDR -t0x03 -r$i | grep Data:)"; done
register 990 Data: 0x0000
register 991 Data: 0x0000
register 992 Data: 0x0000
register 993 Data: 0x0000
register 994 Data: 0x0000
register 995 Data: 0x0000
register 996 Data: 0x0002
register 997 Data: 0x0000
Опрашиваем:
for i in {2000..2015}
> do
> echo "register $i $(modbus_client --debug -mrtu -pnone -s2 $DEV_PORT -a$DEV_ADDR -t0x01 -r$i | grep Data:)"
> done
register 2000 Data: 0x00
register 2001 Data: 0x00
register 2002 Data: 0x00
register 2003 Data: 0x00
register 2004 Data: 0x00
register 2005 Data: 0x00
register 2006 Data: 0x00
register 2007 Data: 0x00
register 2008 Data: 0x00
register 2009 Data: 0x00
register 2010 Data: 0x00
register 2011 Data: 0x00
register 2012 Data: 0x00
register 2013 Data: 0x01
register 2014 Data: 0x00
register 2015 Data: 0x00
а у вас при чтении 1000 регистра точно ошибок нет? Замкните еще несколько, для проверки.
Ошибок при чтении 1000 регистра нет. Попробовал подключить его третьим модулем и тоже все работает по 3000 адресу… Странно…
И определяется в 997 если первый, 996 если второй? Не, так не бывает, где-то ошибка.
Да определяется на 997 с двоечкой…
Попробовал заменить WB-MIO на другой такой же модуль, тоже в первом варианте не работает… Как только ставлю WBIO-DI-WD-14 вторым или третьим сразу начинает работать… Проверял через modbus pool, второго модуля WBIO-DI-WD-14 у меня к сожалению нет…
У MIO таких ошибок не было. Все ж давайте попробуем позамыкать еще несколько выводов…