Добрый день Знатоки!
Извините за бесспокойство.
Я вроде смотрел по форуму, но ответа на свой вопрос не нашел.
Вообщем вопросы-пролемы:
Подключаю микроконтроллер (МК) pic18f4550 к пк через виртуальный компорт.
ПК должен отправлять команду, и потом принять данные с мк по этой команде.
1. если данные шлю постоянно с мк, т.е. в цикле, то пк принимает хорошо.
2. если же по команде - послал число, а мк ответил, то все не работает. Хотя заметил что работает, но разово, т.е. нужно перезапускать программу - это очень плохл.
3. принимаю данные с плавающей точкой и не как не могу их корректно обработать, а как не знаю. Они пришли и сразу пропали, как их запомнить.
Вот пробывал сделать проект по этой сслке http://www.labview.ru/forum/viewtopic.p ... 0d68501e9f
Но вообще не заработало, убрал visa clr все заработало, но проблемы описанные выше не исчезли.
Вообщем если только слать данные или только принивать данные, то все нормально, а если и то и то одноврененно, то проблема.
Прикладываю проект.
Измерительный блок
-
mzu2006
- doctor
- Сообщения: 2456
- Зарегистрирован: 16 авг 2008, 02:12
- Награды: 3
- Версия LabVIEW: 7.1 10 11 12
- Откуда: St-Petersburg (RU), Phila, Boston, Washington DC
- Контактная информация:
Re: Измерительный блок
В этом несколько проблем:
1. состояние гонки с переменной write buffer
2. отсутствие паузы
3. чтение 1000 байт за раз
решения:
1. Убрать локальную переменную, всё делать проводами
2. вставить паузу
3. читать примерно размер одной посылки
возможно необходима пауза между записью и чтением.
1. состояние гонки с переменной write buffer
2. отсутствие паузы
3. чтение 1000 байт за раз
решения:
1. Убрать локальную переменную, всё делать проводами
2. вставить паузу
3. читать примерно размер одной посылки
возможно необходима пауза между записью и чтением.
Правила форума (Forum rules in Russian)
rm -rf /mnt/windows
rm -rf /mnt/windows
-
- beginner
- Сообщения: 44
- Зарегистрирован: 02 ноя 2009, 12:40
- Версия LabVIEW: Labview2010
- Контактная информация:
Re: Измерительный блок
Добрый вечер mzu2006!
Учел все Ваши замечания и вроде все заработало.
Только вот задержка между посылкой приемом 500мс уж больно большая. Ниже все виснет после четырех посылок.
И еще была такая ошибка
LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
Я так понял, что некоректный данные приходят с контроллера.
Учел все Ваши замечания и вроде все заработало.
Только вот задержка между посылкой приемом 500мс уж больно большая. Ниже все виснет после четырех посылок.
И еще была такая ошибка
LabVIEW: An input parameter is invalid. For example if the input is a path, the path might contain a character not allowed by the OS such as ? or @.
Я так понял, что некоректный данные приходят с контроллера.
-
- beginner
- Сообщения: 44
- Зарегистрирован: 02 ноя 2009, 12:40
- Версия LabVIEW: Labview2010
- Контактная информация:
Re: Измерительный блок
Добрый день!
Еще раз проверил и вроде нашел проблему.
Оказалось. что данные с контроллера некоректно приходят. Даже можно не ставить задержку между посылкой и приемом все работает нормально.
принимает данные с плавающей точкой, а мк хотя по программе и шлет такой же тип данных, но некоректно они переводятся в строку.
Проверил так - послал число 12.000 строкой на пк и все нормально. А до этого ацп принимало данные в тип float, затем они переводились в строку и потом слались на пк.
Может у кого-то есть программа на си для мк фирмы microchip, которая переводит из float to string?
Еще раз проверил и вроде нашел проблему.
Оказалось. что данные с контроллера некоректно приходят. Даже можно не ставить задержку между посылкой и приемом все работает нормально.
принимает данные с плавающей точкой, а мк хотя по программе и шлет такой же тип данных, но некоректно они переводятся в строку.
Проверил так - послал число 12.000 строкой на пк и все нормально. А до этого ацп принимало данные в тип float, затем они переводились в строку и потом слались на пк.
Может у кого-то есть программа на си для мк фирмы microchip, которая переводит из float to string?
-
- beginner
- Сообщения: 44
- Зарегистрирован: 02 ноя 2009, 12:40
- Версия LabVIEW: Labview2010
- Контактная информация:
Re: Измерительный блок
Добрый день вообще получилось!
Ошибка была в посылке и в принимаемых байтах в . Нужно чтобы все было согласовано. если с мк 4байта, то и в тоже 4байта + можно использовать перевод строки или/и возврат каретки.
Возник еще один вопрос. Вернее два.
1.Как сделать чтобы структура темепература (аналогично структуре генератор) включалась при определенной посылки с пк на мк. Ведь структура генератор тоже подсоединен к visa write. Когда я соединяю два выходных провода со структур, один с генератора, один с температуры - ошибка. Пробывал через кластер, тоже ошибка.
А планируется доставить еще блок ацп, это уже третий провод к тем двум.
Надеюсь что написал понятно.
2. В структуре темепература я поставил Waveform Graph и планирую использовать. Кроме того, что данные отобаражаюся в режиме реального времени, хотелось бы записывать в файл, потом вывести их в график. Только как это сделать - не знаю.
Ошибка была в посылке и в принимаемых байтах в . Нужно чтобы все было согласовано. если с мк 4байта, то и в тоже 4байта + можно использовать перевод строки или/и возврат каретки.
Возник еще один вопрос. Вернее два.
1.Как сделать чтобы структура темепература (аналогично структуре генератор) включалась при определенной посылки с пк на мк. Ведь структура генератор тоже подсоединен к visa write. Когда я соединяю два выходных провода со структур, один с генератора, один с температуры - ошибка. Пробывал через кластер, тоже ошибка.
А планируется доставить еще блок ацп, это уже третий провод к тем двум.
Надеюсь что написал понятно.
2. В структуре темепература я поставил Waveform Graph и планирую использовать. Кроме того, что данные отобаражаюся в режиме реального времени, хотелось бы записывать в файл, потом вывести их в график. Только как это сделать - не знаю.
- Вложения
-
- Forum.vi
- (33.51 КБ) 100 скачиваний