Связь по RS485

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Связь по RS485

Сообщение JohnChaban »

Добрый день
Вопроосик возник.
Как можно проверять есть ли связь по RS485, не прибегая к новому соединению?
Есть панель таже ИП320 как в программе Labview проверять в цикле есть связи или нет?
Спасибо
Вложения
Создает новое соединение с пнелью. На панели пищет потеря связи
Создает новое соединение с пнелью. На панели пищет потеря связи
vopros.jpg (52.6 КБ) 1206 просмотров
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

Re: Связь по RS485

Сообщение ujin1 »

JohnChaban писал(а): 02 дек 2022, 14:42 Добрый день
Вопроосик возник.
Как можно проверять есть ли связь по RS485, не прибегая к новому соединению?
Есть панель таже ИП320 как в программе Labview проверять в цикле есть связи или нет?
Спасибо
RS485 это самый первый, прикладной уровень. То есть железо.
Есть ли соединение или нет по RS485 означает подключены ли провода и терминаторы.
На втором (канальном) уровне передаются пакеты по сети. Какие пакеты - определяет протокол MODBUS, PROFIBUS, Логика и т.д.
Соответственно чтобы проверить связь по RS485 нужно отталкиваться от протокола.
В MODBUS RTU и MODBUS ASCII (они работают через RS485) можно только сделать запрос и дождаться правильный ответ.
Наличие правильного ответа в соответствии с запросом и будет означать наличие связи.
Например: запрос от мастера прочитать 10 Holding Register + CRC, ответ от слейва повтор функции + данные + CRC. Ответ соответствует запросу, от правильного адреса, уложился в таймаут, количество данных соответствует запросу, CRC правильная - значит связь есть.
Изображение
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

Re: Связь по RS485

Сообщение ujin1 »

JohnChaban писал(а): 02 дек 2022, 14:42 Есть панель таже ИП320 как в программе Labview проверять в цикле есть связи или нет?
Спасибо
На изображении у Вас Слейв MODBUS RTU
Панель получается мастер - выдает запросы
Ваш слейв на LabVIEW должен правильно отвечать.
Если нужно узнать есть ли связь с мастером (панелью), то есть есть ли запросы от панели - нужно слегка залезть в кишки демона и там вывести флаг наличия запроса.
В новой библиотеке это где-то здесь
Serial slave.png
Однако новая библиотека то открыта, то под паролем.
Изображение
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

[На изображении у Вас Слейв MODBUS RTU
Панель получается мастер - выдает запросы
Ваш слейв на LabVIEW должен правильно отвечать.
Если нужно узнать есть ли связь с мастером (панелью), то есть есть ли запросы от панели - нужно слегка залезть в кишки демона и там вывести флаг наличия запроса.
В новой библиотеке это где-то здесь
Serial slave.png
Однако новая библиотека то открыта, то под паролем.
[/quote]

Спсасибо. Ситуация такая панель просто лежит на столе к ПК соедниянется по USB. Смысл моего вопроса был в том что например я имитирую отсутствие связи с панелью (выдергиваю Usb кабель), в программе labview начинает мигать лампочка (условно сигнализация), втыкаю обратно кабель он перестает, мне важно отловить момент (действия при этом я напишу сам).
Только не знаю есть ли у меня виртуальный прибор waiting for request. К сожалению нет такого прибора, может его можно как доустановить.
Вложения
Вот то что стоит у меня на работе и дома.
Вот то что стоит у меня на работе и дома.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Связь по RS485

Сообщение Artem.spb »

JohnChaban писал(а): 03 дек 2022, 23:13 К сожалению нет такого прибора, может его можно как доустановить.
он уже установлен, только спрятан от шаловливых ручек
modbus.PNG
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

Artem.spb писал(а): 04 дек 2022, 02:22
JohnChaban писал(а): 03 дек 2022, 23:13 К сожалению нет такого прибора, может его можно как доустановить.
он уже установлен, только спрятан от шаловливых ручекmodbus.PNG
Спасибо я в понедельник панель там посмотрю дома смысла нет.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

Artem.spb писал(а): 04 дек 2022, 02:22
JohnChaban писал(а): 03 дек 2022, 23:13 К сожалению нет такого прибора, может его можно как доустановить.
он уже установлен, только спрятан от шаловливых ручекmodbus.PNG
Библиотеку я открыл только не могу понять как ней подключиться физически, я же с ком портом связываюсь, а там в примере ссылка создается, её никак не могу к себе прикрутить.
Как можно одно с другим увязать что-то сообразить не могу?
Вложения
Как вот это увязать с ...я физически подключаюсь по Компорту
Как вот это увязать с ...я физически подключаюсь по Компорту
vopros.jpg (52.6 КБ) 1053 просмотра
Связать с вот этим?
Связать с вот этим?
Serial slave.png (39.4 КБ) 1053 просмотра
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

Re: Связь по RS485

Сообщение ujin1 »

JohnChaban писал(а): 05 дек 2022, 09:53 Библиотеку я открыл только не могу понять как ней подключиться физически, я же с ком портом связываюсь, а там в примере ссылка создается, её никак не могу к себе прикрутить.
Как можно одно с другим увязать что-то сообразить не могу?
Там все несколько запутанно.
Когда вы инициализируете слейв инициализируется модель данных (Data Model), записываются параметры и стартует Daemon
Initialise.png
В данном случае модель данных стандартная. 4 банка по 65535 регистров, завернутых в DVR
Standard Data Model.png
Daemon - Serial Slave. Демон был показан в предыдущем сообщении. Здесь его старт
Start Daemon.png
Далее демон постоянно принимает сообщения с порта (ранее настроен при старте демона)
И если все нормально выполняет функцию чтения или записи данных из/в стандартную модель.
Execute.png
Например чтение holding register.
Read Holding Register.png
Далее Вы можете записывать в область памяти нужные значения через библиотечные функции, подключив провод к созданному слейву.
Write Single Holding Register.png
В принципе можно в кишки демона не лезть.
Определить один регистр как Heartbeat. Из панели записывать в него случайные числа или что-то чтобы были изменения. Я записывал время в формате UTC
В слейве периодически читать этот регистр. Если изменений с прошлым разом нет - то нет коннекта.
Изображение
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

Я попробую но как то все замудрено написано.
Может проще можно было сделать, но вам спасибо.
Попробую
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Связь по RS485

Сообщение Artem.spb »

JohnChaban писал(а): 05 дек 2022, 16:49 Может проще можно было сделать, но вам спасибо.
Каждый второй программист на чужом коде так думает :)
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

ujin1 писал(а): 05 дек 2022, 16:24
JohnChaban писал(а): 05 дек 2022, 09:53 Библиотеку я открыл только не могу понять как ней подключиться физически, я же с ком портом связываюсь, а там в примере ссылка создается, её никак не могу к себе прикрутить.
Как можно одно с другим увязать что-то сообразить не могу?
Там все несколько запутанно.
Когда вы инициализируете слейв инициализируется модель данных (Data Model), записываются параметры и стартует Daemon
Initialise.png
В данном случае модель данных стандартная. 4 банка по 65535 регистров, завернутых в DVR
Standard Data Model.png
Daemon - Serial Slave. Демон был показан в предыдущем сообщении. Здесь его старт
Start Daemon.png
Далее демон постоянно принимает сообщения с порта (ранее настроен при старте демона)
И если все нормально выполняет функцию чтения или записи данных из/в стандартную модель.
Execute.png
Например чтение holding register.
Read Holding Register.png
Далее Вы можете записывать в область памяти нужные значения через библиотечные функции, подключив провод к созданному слейву.
Write Single Holding Register.png
В принципе можно в кишки демона не лезть.
Определить один регистр как Heartbeat. Из панели записывать в него случайные числа или что-то чтобы были изменения. Я записывал время в формате UTC
В слейве периодически читать этот регистр. Если изменений с прошлым разом нет - то нет коннекта.
Простите за вопрос, я должел сам собрать все схемы которые привели? я просто запутался чучуть
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

Re: Связь по RS485

Сообщение ujin1 »

JohnChaban писал(а): 05 дек 2022, 22:51 Простите за вопрос, я должел сам собрать все схемы которые привели? я просто запутался чучуть
Нет. Это все vi из библиотеки Modbus от National Instruments.
Как вариант можно использовать vi инициализации (New Serial Slave) и к нему подключить блоки чтения и записи регистров.
Можно посмотреть пример со слейвом из библиотеки. Пример есть на Functions Palette
Modbus slave example.png
Изображение
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

ujin1 писал(а): 06 дек 2022, 05:15
JohnChaban писал(а): 05 дек 2022, 22:51 Простите за вопрос, я должел сам собрать все схемы которые привели? я просто запутался чучуть
Нет. Это все vi из библиотеки Modbus от National Instruments.
Как вариант можно использовать vi инициализации (New Serial Slave) и к нему подключить блоки чтения и записи регистров.
Можно посмотреть пример со слейвом из библиотеки. Пример есть на Functions Palette
Modbus slave example.png
Спасибо попробую, если что отпишусь
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Связь по RS485

Сообщение Borjomy_1 »

Стратегически неверно проверять связь на слейве. Слейв может работать и без соединения, а наличие соединения не означает работоспособность мастера. В контроллерах подобную проблему решают другим способом: счетчик жизни (Alive Counter). Мастер с оговоренной периодичностью инкрементирует содержимое определенной ячейки. Анализируя эту ячейку, можно делать выводы о работоспособности мастера.
Аватара пользователя
JohnChaban
leader
leader
Сообщения: 669
Зарегистрирован: 18 фев 2010, 13:26
Версия LabVIEW: 2015,2016
Откуда: Город Сосновый Бор Ленинградская Область
Контактная информация:

Re: Связь по RS485

Сообщение JohnChaban »

Всем привет
Панель отключить получилось, но когда обратно подключаешь кабель USB в порт компьютера, ошибка не сбрасывается.
На самой панели связь востанавливается.

Как можно при подключении провода по Usb убрать ошибку в программе
Вложения
При подключении остается ошибка 56
При подключении остается ошибка 56
Net_sbroSa_Osh1.jpg
Ответить

Вернуться в «Для чайников»