Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Синхронизация устройств по COM-порту

311
20 декабря 2014 года
plastictown
309 / / 08.01.2006
Доброго времени суток!
Имеется система, в которой установлены два равноправных контроллера ICP-DAS I-7188XAD( прошивка пишется на Turbo C++), которые по запросу с ПК опрашивают некоторое количество модулей ввода/вывода, собирают из этого пакет 20 байт и отсылают на ПК. Система работает только по одному каналу( когда один из ПК не запрашивает данные). Как только включаются оба, данные отображаются некорректно на обоих ПК, т.е. имеется каша из данных в COM-порте.
Компьютеры не соединены между собой и нет возможности соединить. Возможен обмен данными между контроллерами по свободному порту COM3.

Месяц ломаю голову над синхронизацией этого безобразия. Пришла идея синхронизации по времени (чет/нечет секунда), сейчас реализовываю это, но мне не кажется, что это правильный путь. Буду рад любым идеям.

Заранее спасибо!

Схема:
327
20 декабря 2014 года
UserNet2008
748 / / 03.04.2010
Цитата:
Система работает только по одному каналу( когда один из ПК не запрашивает данные). Как только включаются оба, данные отображаются некорректно на обоих ПК, т.е. имеется каша из данных в COM-порте.


Есть возможность проверить девайс для каждого ПК в отдельности, если девайс работает с каждым ПК по отдельности, если да тогда :
как вариант
Делаем синхронизацию во времени для каждово ПК, но и главное время нужно брать с одного сервера, и при этом не выключять ПК1 и ПК2 - для проверки. Здесь может есть повлиять помеха power network если нет хороший фильтр or UPS.
если нет
По ходу у Вас в программе есть не дочёт
По ходу и сам девайс тово типа error.
P/S
1000 причин для не конформной жизни.

311
21 декабря 2014 года
plastictown
309 / / 08.01.2006
Цитата: UserNet2008
Есть возможность проверить девайс для каждого ПК в отдельности, если девайс работает с каждым ПК по отдельности


Каждый контроллер работает только со своим компом, но если нужно, контроллеры могут посылать друг другу что-нибудь. Я сейчас пробую пересылать время (в контроллере свои часы, так что синхронизировать компы не нужно). Кроме того, компы полностью автономны и ни о каком сервере с временем речи быть не может.

Цитата: UserNet2008
По ходу у Вас в программе есть недочёт


Баг может быть в софтине на компе. Переделывать софтину нельзя - заказчик её уже принял.

Цитата: UserNet2008
По ходу и сам девайс тово типа error.


Девайсов 72 штуки. Терзают сомнения на этот счет:) С одним ПК работает уже 2 года без сбоев.

311
21 декабря 2014 года
plastictown
309 / / 08.01.2006
Тут было сообщение, которое удалили, вероятно, из-за не самых приличных выражений, но была высказана идея про шум и длину проводов. В системе удаленность различных узлов немаленькая, однако сейчас прошивка пишется на макете на столе, где длина проводов не более метра и используются только два девайса и два модуля ввода/вывода. Просто хотел поинтересоваться нет ли других идей по поводу синхронизации, кроме времени опроса?
327
24 декабря 2014 года
UserNet2008
748 / / 03.04.2010
Не знаю как я понимаю, но вот screenshot как-бы ставит на место. Девайсы могут соединяться между собой. А в кучу только либо маршрутизатор or Server. По этой ссылке та же тема. Вопрос в другом есть к этому девайсу документация и схемы разводки?
источник
252
26 декабря 2014 года
koderAlex
1.4K / / 07.09.2005
инфу принимайте одним контроллером . по сом3 передавайте второму .
вообще сомпорм не используют как шину . только как соединение точка-точка .
311
26 декабря 2014 года
plastictown
309 / / 08.01.2006
Цитата: koderAlex
инфу принимайте одним контроллером . по сом3 передавайте второму .
вообще сомпорт не используют как шину . только как соединение точка-точка .


Я бы и рад это сказать проектировщикам, но я тогда еще не работал в компании.
Контроллеры должны работать независимо. Две линии (комп-контроллер-модули в/в) сделаны на случай глюка или смерти одного из 7188.
Сейчас сделал так: один работает по четным секундам и шлет сигналы второму, когда шина свободна. Второй работает по сигналам от первого, либо после таймаута.
Пока что комп, который работает со slave, получает процентов 80 битых пакетов, благо CRC еще никто не отменял, но причина непонятна.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог