PDA

Просмотр полной версии : работа по RS485 с разной скоростью



SSherstnev
01.12.2014, 15:11
Здравствуйте.
Используется ПЛК154. Необходимо осуществлять связь контроллера с оборудованием по RS485 на разной скорости. В CoDeSys для скорости 115200 использую автоматические функции, настраиваемые через "Конфигурация ПЛК - ModBus". А для подключения газоанализатора требуется скорость 9600. Функция обмена с газоанализатором написана с использованием библиотеки Modbus.lib. При этом, работает что-то одно: либо связь с помощью "Конфигурации ПЛК", либо связь с газоанализатором. Можно ли заставить работать ПЛК с оборудованием с разными скоростями и настройками RS485 в одном проекте?

приборист
01.12.2014, 23:06
Очевидно надо полностью перейти на бибку Modbus.lib

Gans
02.12.2014, 07:29
Здравствуйте, SSherstnev.
Если времени мало (или оно дорого), есть еще вариант использования порта дэбаг-rs232 совместно с преобразователем интерфейса rs232/rs485.

Yegor
02.12.2014, 09:27
Очевидно надо полностью перейти на бибку Modbus.libНикаким программным способом вы не заставите один интерфейс работать на двух скоростях. Разве что циклически открывать-закрывать порт с разными параметрами, но это, скажем мягко, не совсем традиционный подход.

приборист
02.12.2014, 09:37
Никаким программным способом вы не заставите один интерфейс работать на двух скоростях. Разве что циклически открывать-закрывать порт с разными параметрами, но это, скажем мягко, не совсем традиционный подход.

Ну а в чем проблема перейти на 9600?

Sergey666
02.12.2014, 10:45
Никаким программным способом вы не заставите один интерфейс работать на двух скоростях. Разве что циклически открывать-закрывать порт с разными параметрами, но это, скажем мягко, не совсем традиционный подход.

Работает на разных скоростях даже не программно , а по конфигурации модбас мастер один 19200 , другой 9600 , причем количество "стоп бит" разное , только запуск по команде , проверено лично !!!
Реализовать то-же программно не представляет трудности .
Хоть на 3х скоростях , хоть протоколы разные , конечно общая скорость опроса упадет (не путать с скоростью соединения).

Yegor
02.12.2014, 12:03
модбас мастер один 19200 , другой 9600Когда один и другой, то вопросов нет.
Ну а в чем проблема перейти на 9600?В том, что порт уже открыт на другой скорости (мы ведь про один порт говорим, да?). Повторюсь: конечно, можно открывать и закрывать порт по несколько раз в секунду на разных скоростях, но это совершенно чрезжопный подход, особенно в среде реального времени. Мало ли какие там утечки в системе происходят. Так с портами не работают.

приборист
02.12.2014, 12:36
Когда один и другой, то вопросов нет.В том, что порт уже открыт на другой скорости (мы ведь про один порт говорим, да?). Повторюсь: конечно, можно открывать и закрывать порт по несколько раз в секунду на разных скоростях, но это совершенно чрезжопный подход, особенно в среде реального времени. Мало ли какие там утечки в системе происходят. Так с портами не работают.

Я немного про другое,
Работает газоанализатор на 9600 и остальные модули (если там обычные МВ) перевести на 9600.

А если как Sergey666 (http://www.owen.ru/forum/member.php?u=1542) говорит, то получаем ту же самую потеху с открытием закрытие порта (если мы про один порт говорим :))

Sergey666
02.12.2014, 12:38
Скажите а что делать если стоит ПЛК 150 , а в сетке 485 из всех приборов есть одна "паршивая овца" у которой мало того что скорость обмена не та , так еще и кол-во "стоп бит" не такое как у всех и это фиксировано ?
Конечно это не типовая ситуация , но ! перескок работает даже через конфигуратор , даже на протокол Овен перескакивает на "лету".

SSherstnev
02.12.2014, 21:17
Спасибо за ответы.
Я так понимаю, что "запуск по команде" - это настройка "Work Mode" в параметрах Universal Modbus Device. А где можно прочитать про то, как настраивать команду для запуска опроса этого устройства?
Также наткнулся на библиотеку UNM.lib. Вот только функция задания параметров порта "INITCOM : DWORD", описанная в руководстве, в ней не реализована.

petera
03.12.2014, 04:45
Спасибо за ответы.
Я так понимаю, что "запуск по команде" - это настройка "Work Mode" в параметрах Universal Modbus Device. А где можно прочитать про то, как настраивать команду для запуска опроса этого устройства?
В документе "PLC_Configuration_OWEN.pdf"
15548

SSherstnev
04.12.2014, 22:38
Работает на разных скоростях даже не программно , а по конфигурации модбас мастер один 19200 , другой 9600 , причем количество "стоп бит" разное , только запуск по команде , проверено лично !!!
Реализовать то-же программно не представляет трудности .
Хоть на 3х скоростях , хоть протоколы разные , конечно общая скорость опроса упадет (не путать с скоростью соединения).
А как реализовать подобный опрос устройств? Запускать по команде? Запуск осуществлять параллельно или после основных вычислений? Запускать опрос сразу всех устройств или по-очереди: запуск - остановка? Тогда как определять, что произведён опрос всех регистров?

Sergey666
04.12.2014, 23:18
А как реализовать подобный опрос устройств? Запускать по команде? Запуск осуществлять параллельно или после основных вычислений? Запускать опрос сразу всех устройств или по-очереди: запуск - остановка? Тогда как определять, что произведён опрос всех регистров?
Вам шашечки или ехать ?
Вы собираетесь в конфигураторе реализовать или полностью программный опрос ?

В конфигураторе все просто :
1. Создаем 2 мастера , прицепленных к одному порту .
2. Создаем UMD c work mode - by command.
3. В программе ПЛК пишем в соотв. переменную запуска UMD 255 с разнесением по времени . (Запуск 20 мс один , отключение , пауза , запуск 20мс другой ,отключение , пауза и тд )

Enjoy

жекон
05.12.2014, 19:53
даже на протокол Овен перескакивает на "лету".
Модбас с Овеном без всяких перезапусков уживаються ,года три сотка тянет 6 ТРМов и 5 МХ110 круглые сутки