1. Попробуйте в узле LeftSide переключить бит управления подтяжкой RS-485.Цитата:
Что делать?
2. Выложите ваш проект, пожалуйста.
1. Попробуйте в узле LeftSide переключить бит управления подтяжкой RS-485.Цитата:
Что делать?
2. Выложите ваш проект, пожалуйста.
turkish945 А ты наш шлейф физически проверял? Что будет если наплевать на него и подключить датчик на кусок витой пары, например?
Сразу тогда будет понятно про железо или софт
Все, нашел проблему. Это мой косяк :)
Решил проверить шлейф и обнаружил, что одно из устройств, которое на нем висит - не подключено, соответственно в этом месте линия разорвана, соединил - заработало.
Но теперь не считывается значение. Возможно я что-то не так делаю - первый раз RS485 без шаблонов настраиваю...
В докуме к устройству написано:
Прибор поддерживает выполнение функций ModBus:
03 – чтение значений из нескольких регистров хранения;
06 – запись значения в один регистр хранения.
и далее табличка, в которой для параметра "измеренное значение температуры" указан номер первого регистра hex 0х0102.
У слейва настроил канал:
Вложение 50054
почему-то выдает значение 0. Температура при этом точно не 0 :)
Да и через конфигуратор смотрел, там все нормально отображается....
Выложите, пожалуйста, скриншот, на котором это будет видно.Цитата:
почему-то выдает значение 0.
Вложение 50056
вроде все видно
да, теперь работает, спасибо!
а в чем суть этой настройки? И где этот цикл шины? В конфигураторе задач я такой не нашел...
И еще вопрос: как определить, что произошло считывание? Там температура считывается значением х100, мне надо его поделить на 100 соответственно. Если я буду это делать по xDone слейва, будет как надо работать? То есть xDone = true только один цикл?
См. п. 4 здесь:Цитата:
а в чем суть этой настройки? И где этот цикл шины? В конфигураторе задач я такой не нашел...
https://ftp.owen.ru/CoDeSys3/98_Book...kManagment.pdf
Проще это делать в цикле, а не по каким-то условиям.Цитата:
И еще вопрос: как определить, что произошло считывание? Там температура считывается значением х100, мне надо его поделить на 100 соответственно. Если я буду это делать по xDone слейва, будет как надо работать? То есть xDone = true только один цикл?
Это совершенно не ресурсоемкая операция, и нет смысла на ней экономить.