Программирование ЛИР-917
Модератор: Денис Кашин
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Очень хотелось бы вернуться к вопросу скорости опроса. Возможно, вы знаете решение.
ОС WinXP, delphi
Как проконтролировать время прихода данных или интервал между данными с точностью хотя бы 1 мс?
Или как задать определенную частоту опроса?
Используя стандартный таймер можно получть минимальный промежуток времени лишь 15 мс, что весьма грубо.
Можно, конечно, организовать "пустой" цикл на n повторений между измерениями, предварительно "откалиборовав" n под нужное значение паузы, но это не очень красивое решение.
Заранее спасибо!
ОС WinXP, delphi
Как проконтролировать время прихода данных или интервал между данными с точностью хотя бы 1 мс?
Или как задать определенную частоту опроса?
Используя стандартный таймер можно получть минимальный промежуток времени лишь 15 мс, что весьма грубо.
Можно, конечно, организовать "пустой" цикл на n повторений между измерениями, предварительно "откалиборовав" n под нужное значение паузы, но это не очень красивое решение.
Заранее спасибо!
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
-
- СКБИС
- Сообщения: 272
- Зарегистрирован: 07 фев 2008, 09:52
Самое верное - организовать аппаратный буфер (микросхема памяти), в которой четко по времени (по аппаратному прерыванию, например), будут записываться данные, а программа будет считывать все содержимое буфера в удобное для нее время.
Под этого можем разработать специальную версию компьютерной платы на шину PCI. Для этого изменять саму плату не потребуется, только написать и отладить прошивку.
С интерфейсами для USB тоже возможно, просто понадобится новая разработка. Этот вариант будет дольше и дороже, чем первый.
Под этого можем разработать специальную версию компьютерной платы на шину PCI. Для этого изменять саму плату не потребуется, только написать и отладить прошивку.
С интерфейсами для USB тоже возможно, просто понадобится новая разработка. Этот вариант будет дольше и дороже, чем первый.
-
- СКБИС
- Сообщения: 272
- Зарегистрирован: 07 фев 2008, 09:52
Вариант с USB возможен только как новая разработка специально под Ваши требования. Поэтому сколько значений надо хранить в буфере, столько и будет. Хочу обратить еще раз Ваше внимание, что это будет новое устройство разработанное СКБ ИС по Вашему Техническому Заданию. Поэтому этот вариант будет стоить прилично.
проблема с ЛИР-917
в системе подключено 2 ЛИР-917 (планируется 3).
При включении компьютера моя программа находит только одно устройство. СКИФ видит сразу оба. После запуска СИФа, моя программа тоже находит второе устройство. Как их инициализировать сразу?
среда программирования Delphi 6.
При включении компьютера моя программа находит только одно устройство. СКИФ видит сразу оба. После запуска СИФа, моя программа тоже находит второе устройство. Как их инициализировать сразу?
среда программирования Delphi 6.
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Re: проблема с ЛИР-917
Здравствуйте !zerkmax писал(а):в системе подключено 2 ЛИР-917 (планируется 3).
При включении компьютера моя программа находит только одно устройство. СКИФ видит сразу оба. После запуска СИФа, моя программа тоже находит второе устройство. Как их инициализировать сразу?
среда программирования Delphi 6.
SI_GetNumDevices при запуске вашей программы выдает 1 ?
В Диспетчере устройств сколько интерфейсов отображается ?
Re: проблема с ЛИР-917
Михаил Поляков писал(а):Здравствуйте !zerkmax писал(а):в системе подключено 2 ЛИР-917 (планируется 3).
При включении компьютера моя программа находит только одно устройство. СКИФ видит сразу оба. После запуска СИФа, моя программа тоже находит второе устройство. Как их инициализировать сразу?
среда программирования Delphi 6.
SI_GetNumDevices при запуске вашей программы выдает 1 ?
да
в диспетчере отображаются оба устройства.Михаил Поляков писал(а):В Диспетчере устройств сколько интерфейсов отображается ?
нормальная работа начинается только после запуска СКИФа
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Я проверил - показывает 2 устройства.
СКИФ не запускал.
Перезагрузился, проверил еще раз. Все равно возвращает 2.
ОС: WinXP SP3
СКИФ не запускал.
Перезагрузился, проверил еще раз. Все равно возвращает 2.
ОС: WinXP SP3
Код: Выделить всё
function SI_GetNumDevices(var Cardinal):DWord;stdcall;
external 'SIUSBXP.dll';
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
n:Cardinal;
begin
SI_GetNumDevices( n);
ShowMessage(IntToStr(n));
end;
как мне преобразовать тип LPDWORD в string что бы я мог вывести на экран значение подключенных девайсов:
Код: Выделить всё
LPDWORD numDevices;
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
SI_GetNumDevices(numDevices);
MessageBox::Show(System::Convert::ToString(numDevices));
}
-
- СКБИС
- Сообщения: 79
- Зарегистрирован: 06 фев 2008, 16:10
Re: Программирование ЛИР-917
Добрый День!
Столкнулся с проблемой следующего характера:
При запуске съема данных с ЛИР917 + LM10 из самописной программы через какое-то время слетает референтная метка (или что-то вроде этого).
Если после этого запускаю скиф - точка даже близко не располагается от референтной метки.
Помогает только сброс питания и поиск реф.метки через скиф.
При опросе через скиф - все нормально во всем диапазоне перемещения головы датчика.
Заранее Спасибо!
Столкнулся с проблемой следующего характера:
При запуске съема данных с ЛИР917 + LM10 из самописной программы через какое-то время слетает референтная метка (или что-то вроде этого).
Если после этого запускаю скиф - точка даже близко не располагается от референтной метки.
Помогает только сброс питания и поиск реф.метки через скиф.
При опросе через скиф - все нормально во всем диапазоне перемещения головы датчика.
Заранее Спасибо!