Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Вт мар 19, 2024 12:24

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 15 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Пн июл 30, 2018 17:27 
Не в сети

Регистрация: Пн июл 30, 2018 16:07
Сообщения: 6
Добрый день. Необходимо получить данные от газоанализатора КГА-8С.
Газоанализатор отдает данные по RS 485 (двухпроводной) по своему протоколу.
Контроллер CS1D, есть плата SCU-31-V1

Есть описание работы протокола:
"Протокол обмена по каналу RS485 для газоанализатора КГА-8С. Скорость обмена 9600, 9 бит в байте. Сервер посылает в канал 1 байт с номером газоанализатора, с которого нужно получить данные. Этот байт должен иметь длину 9 бит с установленным девятым битом ( например , с установленным битом четности или вообще без четности ). В течение 20 мс должен последовать ответ от газоанализатора – блок из 27 байтов информации. Байты имеют длину 9 битов, причем 9 бит равен 0 ( т.е. как бы бит четности установлен в 0 ) . Если ответ в заданное время не поступил , считается, что газоанализатор не включен или его нет".

Можно ли реализовать подобный протокол на модуле SCU?
P.S. Опыта работы с модулем SCU, CX-protocol у меня не было


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Пн июл 30, 2018 19:09 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Какое то странное описание.

Стандартно, вначале идёт стартовый бит, подом данные, потом проверка на чётность (или без проверки) потом стоповый бит (или два)

т.е. если 8E1 то тут на один байт будет 11 бит. никак не 9.

CX-protocol тут и не нужен, пробуйте команды TXD RXD. При ошибки чётности при приёме, полученные байты вроде не теряются, выставляется флаг ошибки порта, но данные считать можно.

При таком описании, только пробовать.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Вт июл 31, 2018 12:03 
Не в сети

Регистрация: Пн июл 30, 2018 16:07
Сообщения: 6
Если я правильно понимаю, то для использования команд TXDU, RXDU необходимо настроить модуль SCU на режим работы No-Protocol. А в мануале w336 написано: "No-protocol mode is only supported for RS-422A/485 if the four-wire method is used" (хотя в описании к инструкциям TXDU, RXDU такого примечания нет). Т.е. для этих команд требуется четырехпроводная схема подключения, а в моем случае используется двухпроводная схема.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Вт июл 31, 2018 13:11 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Не знал такого, возможно что при отправке запроса, сразу получите эхо, т.к. передатчик и приёмник соеденены перемычками. Возможно причина в этом, возможно при попытке считать данные, кроме тех байт которые пришли, получите и то что отправили. Попробуйте, если уже докопались до этого.

Тут
contents/files.php?&dir=n20
инструкция для CX-protocol на русском, с примерами создания запросов.

------------------
Подключите в сеть 485 комп с терминальной прогой, чтобы видеть запросы и ответы.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Вт июл 31, 2018 13:55 
Не в сети

Регистрация: Пн июл 30, 2018 16:07
Сообщения: 6
Спасибо за ответы.
К сожалению нет пока возможности поэкспериментировать.
На данный момент я думаю, что сообщение для данного протокола должны иметь след.вид:
1) Запрос на получение данных: [Старт.бит]+[Номер опрашиваемого устр-ва (8 бит)]+[Установленный в единицу бит четности] + [Стоп. бит]
2) Ответ от газоанализатора: [Старт.бит]+[Данные (8 бит)]+[Установленный в ноль бит четности] + [Стоп. бит]. В ответе придет таких 28 слов.

Т.е. получается, что в этом протоколе бит четности используется в качестве флага, по которому опрашиваемое устройство начинает передавать данные (причем когда устройство передает данные бит четности устанавливается в ноль).
Получается, что нужно выставить след. настройки для модуля SCU:
Baud rate: 9600; data length: 8 bit; Parity: Even; Stob bits: 1.

Тогда для газоанализатора получится сформировать запрос, как он того ожидает. А в ответ посыпятся сообщения с нулевым битом четности.
Модуль SCU в этом случае примет их или нет? По любому же возникнет ошибка проверки четности. Смогу я считать сообщения принятые с ошибкой?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Вт июл 31, 2018 14:39 
Не в сети

Регистрация: Пт окт 14, 2011 17:04
Сообщения: 726
попробуйте с начала сделать обмен например в multiway'е, посмотрите сколько байт прилетает в ответ.
потом уже в cx-protocole сделайте send message - запрос на который дейвас отвечает, а в
receive message - прием, ровно столько сколько прилетает..
например W((1),56) (раз вы думаете что придет 28 слов).
ps: удобно использовать еще Trace list в cx-protocolе, видно что улетает и прилетает.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 01, 2018 00:08 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
AlexHodorik писал(а):
[Старт.бит]+[Номер опрашиваемого устр-ва (8 бит)]+[Установленный в единицу бит четности] + [Стоп. бит]


Так не получится работать с портом на контроллере или компе, используя стандартные средства. (первый раз?)
В порт меньше байта ничего не отправить, стартовый, чётность, стоповый добавляются почти на уровне железа.
Т.е. или Вы не поняли описание протокола, или этот протокол сделан с целью заставить заказчика купить их софт.

Попробуйте связаться с прибором с компа, используя любую терминальную прогу.
Если количество единиц в адресе прибора (в двоичной системе) чётное, выбирайте в настройках порта терминалки Even, в противном случае Odd.
Постарайтесь для начала ответ с прибора на компе получить.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Вт авг 07, 2018 22:39 
Не в сети

Регистрация: Пн июл 30, 2018 16:07
Сообщения: 6
Поэкспериментировал в реальных условиях.

Вначале подключились терминалом к газоанализатору. Ответ получили.
Затем подключили модуль SCU к газоанализатору.
При этом использовались следующие настройки для порта SCU модуля - baud rate:9600; data:8 bit; parity:even; stop: 1 bit. Для обмена данными использовался Macro-protocol
Трассировка выглядит след. образом:
Рисунок
Т.е. ответ идет, но при этом возникает ошибка проверки четности (т.к. в ответе газоанализатор устанавливает все биты четности, равными 0).

Далее терминал подключили к модулю SCU (при этом на терминал baud rate, parity и т.д. настроили так же как и модуль SCU). Из терминала отправили такой же сообщение, какое отправляет газоанализатор.
Трассировка выглядит след. образом
Рисунок
Ошибки проверки четности нет. Полученные данные записались в нужную область памяти контроллера.

Исходя из вышеописанного вопрос: можно ли как-нибудь игнорировать ошибку проверки четности и считать полученные данные из буфера? Или может еще можно как-нибудь обойти нулевые биты четности в ответе?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 07:36 
Не в сети

Регистрация: Пт окт 14, 2011 17:04
Сообщения: 726
интересно, есть бит 01, Parity 0:Yes, 1: No.
может оно.


У вас нет необходимых прав для просмотра вложений в этом сообщении.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 10:25 
Не в сети

Регистрация: Пн июл 30, 2018 16:07
Сообщения: 6
Если я выставлю Parity: No, тогда модуль SCU не просто будет игнорировать биты четности, а при разборе посылки будет ожидать, что в сообщениях отсутствуют биты четности. В результате получим ошибки F на трассировке (ошибка фрэйма, если я правильно понимаю)


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 10:54 
Не в сети

Регистрация: Пт окт 14, 2011 17:04
Сообщения: 726
если в последовательности, в шаге где реакция на "Error" вместо Abort, поставить End?


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 11:39 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Попробовал на подобном модуле TXDU, RXDU.

RXDU не отдаёт байты из порта, при ошибке чётности, хотя счётчик байтов в памяти контроллера считает все байты.

т.е. не прицепить этого извращенца к Омрону напрямую. Нужен посредник.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 12:48 
Не в сети

Регистрация: Вт май 27, 2008 11:41
Сообщения: 559
У вас есть описание протокола от прибора идущее в комплекте на диске???? если есть закиньте сюда или в облако если не трудно.......


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 13:29 
Не в сети

Регистрация: Пн июл 30, 2018 16:07
Сообщения: 6
Единственное описание протокола, которое имеется, размещено в 1-ом посту) Также опытным путем проверено, что так этот протокол и работает.

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

В любом случае, всем спасибо за ответы!


В начало
 Профиль  
 
 Заголовок сообщения: Re: Протокол обмена по RS485 для газоанализатора КГА-8С
СообщениеДобавлено: Ср авг 08, 2018 13:54 
Не в сети

Регистрация: Вт май 27, 2008 11:41
Сообщения: 559
AlexHodorik писал(а):
Единственное описание протокола, которое имеется, размещено в 1-ом посту) Также опытным путем проверено, что так этот протокол и работает.

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

В любом случае, всем спасибо за ответы!


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

Проверку можно обойти если его подоткнуть к RS232 на CPU ,там выбрать RS232 ,если прибор один то сделать ему код запуска он же заголовок он же адрес прибора и т.п командами RXD-TXD все катит...ну и конвертор присобачить в 485 Если порт CPU занят чем то, отписать его на SCU ...или на периферийник....и т.д
Некое время назад "игрался" с подобной задачей но не для вашего прибора, были весовые преобразователи AD ,с таким же еб...ым форматом и ASC ным протоколом выдуманным разработчиками железячки ....так же нашими соотечественниками ...но это все игрушки по сравнению с протоколом DIN 66099 II от KEB ,вот там было грустно...немцы они обстоятельно подошли к делу.......


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 15 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3