Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разбег времен при управлении железом через
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам
SmartRed
Имеется два устройства подключенные к PC под XP или W2K,
одно на Ethernet без протоколов высокого уровня, другое на RS232.
На устройства синхронно приходит команда пуск , далее они без постороннего вмешательства отрабатывают цикл.
При работе возникает рассинхронизация устройств до 200 ms.

Программисты говорят это Билл Гейтс мать перемать и ничего сделать нельзя.

Аппаратную синхронизацию городить пока не хочется, поэтому вопросы:

1. Это действительно так или это кривые руки программеров ?

2. Если виноваты программеры, до каких времен можно понизить рассогласование?
(хотелось бы в идеалле до времени на передачу через RS232 - единицы ms).
net
Цитата(SmartRed @ Oct 30 2005, 13:40)
Имеется два устройства подключенные к PC под XP или W2K,
одно на Ethernet без протоколов высокого уровня,  другое на RS232.
На устройства синхронно приходит команда пуск , далее они без постороннего вмешательства отрабатывают цикл.
При работе возникает рассинхронизация устройств до 200 ms.

Программисты говорят это Билл Гейтс мать перемать и ничего сделать нельзя.

Аппаратную синхронизацию городить пока не хочется, поэтому вопросы:

1. Это действительно так или это кривые руки программеров ?

2. Если виноваты программеры, до каких времен можно понизить рассогласование?
(хотелось бы в идеалле до времени на передачу через RS232 - единицы ms).
*


1 как то не понял о чем вы?
2 win это многозадачная система и там много процессов и кто сколько отест процессора дело темное
3 конфигурация pc может быть сильно разные и соответсвенно время выполнения сильно разное
4 если в состав задачи входит обмен по rs или по ethernet то это все может порождать ассинхронность которая может накопиться
5 более того часы в win на разных машинах просто идут по разному - если задача долго выполняется
6 есть realtime приблуды для win они помогут вам решить эти задачи
и тд и тп
Виктория
To SmartRed
Хотелось бы поточнее ..

1)
Цитата
Имеется два устройства подключенные к PC под XP или W2K,
одно на Ethernet без протоколов высокого уровня,  другое на RS232.


На одну PC?

2)
Цитата
На устройства синхронно приходит команда пуск , далее они без постороннего вмешательства отрабатывают цикл.
При работе возникает рассинхронизация устройств до 200 ms.
Аппаратную синхронизацию городить пока не хочется


Синхронизация и рассинхронизация только относительно команды пуск? Что она представляет (число байт информации в устройства, что запускается в устройствах)?
SmartRed
Попытаюсь уточнить ситуацию.

Оба устройства управляются с одной машины.

На ethernet висит датчик, который пишет данные в свою память и сливает их на PC.

Через RS232 управляется источник питания, от которго зависит что будет читать датчик.

На оба эти устройства дается команда пуск, а далее они аппаратно отрабатывают каждое свой цикл.
Оба устройства проверены по отдельности и временные диаграммы их работы
сомнений не вызывают.

По данным с датчика видно что есть рассинхронизация, т.е. не одновременная
подача сигнала пуск с PC до 200 ms .

Команда на включение источника питания это 4 байта по RS 232 на 19200.

Про датчик сразу сказать не могу (не я его разрабатывал) но думаю что тоже
единицы байт.
spf
Бил Гейтс тут ни при чем, виноват тут разработчик системы ;-)

Для синхронизации необходимо оба устройства вешать на один интерфейс или делать последовательное управление (один блок должен управлять другим), если в первом блоке имеется возможность гарантировать время и момент трансливания команды.

Либо ставить операционную систему реального времени и попытаться синхронизовать два инерфейса, что не является тривиальной задачей.. .
Виктория
Еще некоторые простые советы
1) Команду на включения питания - естественно, до команды пуска измерений.
2) Передавать команду одной передачей. Сегодня это уже где упоминалось (writefile(dsk,buf,4).
3) Обе команды в одной функции (по возможности, хоть и с разными устройствами).
4) Использовать низкоуровневые функции для передачи как по RS-232, так и по Ethernet.

А вообще, лучше перенести тему в раздел "Операционные советы" в ее уточненном варианте.

Хотя и вариант какого-нибудь программно-аппаратного решения тоже можно рассматривать (типа использовать какую-либо сигнальную линию Ethernet для аппаратного запуска блока питания, да простят меня спецы за это дилетанство smile.gif)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.