Как сделать прием данных по rs-232 с прерыванием?
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
что это значит, можно подробнее, еще с этим не сталкивался
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Для начала выложи скрин твоей блоковой диаграммы, может реинтрантнось в данном случае не нужна, а проблема кроется в чём то другом.
Я пользуюсь реинтрантными приборами, если я хочу использовать один и тот же прибор в нескольких циклах, причём этот прибор обрабатывает несколько разных интерфейсов. VISA Read, Write и т.д. тоже являются реинтрантными, т.к. рассчитаны на параллельное использование в нескольких циклах с неизвестным количеством интерфейсов.
Реинтрантные приборы при вызове получают отдельный кусок памяти и работают как бы независимо друг от друга. Для каждого вызова такого прибора создаётся отдельная инстанция.
Я пользуюсь реинтрантными приборами, если я хочу использовать один и тот же прибор в нескольких циклах, причём этот прибор обрабатывает несколько разных интерфейсов. VISA Read, Write и т.д. тоже являются реинтрантными, т.к. рассчитаны на параллельное использование в нескольких циклах с неизвестным количеством интерфейсов.
Реинтрантные приборы при вызове получают отдельный кусок памяти и работают как бы независимо друг от друга. Для каждого вызова такого прибора создаётся отдельная инстанция.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
вот скрины для решения поставленной задачи
- Вложения
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Мне кажется у тебя что то напутано с циклами.
Содержимое верхнего цикла помести в кейс Timeout, а сам цикл вообще удали. Установи время Timeout например на 1000 миллисекунд. Больше тебе в принципе ничего не надо.
Если же ты обязательно хочешь иметь два цикла, то могут возникнуть как раз такие проблемы, как ты описал.
Содержимое верхнего цикла помести в кейс Timeout, а сам цикл вообще удали. Установи время Timeout например на 1000 миллисекунд. Больше тебе в принципе ничего не надо.
Если же ты обязательно хочешь иметь два цикла, то могут возникнуть как раз такие проблемы, как ты описал.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
пасиб, буду пробовать. На уровне ViSA ничего не нужно делать? Стоит
ли делать то же самое с помощью lvserial?
ли делать то же самое с помощью lvserial?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Lvserial и VISA почти одно и тоже. У того и другого есть недостатки и преимущества. Что ты выберешь решать тебе самому.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
когда нужно делать открытие VISA сессии и закрытие, для проги с вложенными подприборами?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Ну это как ты захочешь. Можешь открывать/закрывать сессию по нажатию кнопки. А можешь автоматически при старте/стопе главного прибора.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
а это для каждого вложенного прибора или для общего?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Для общего наверное. Тебе надо будет передавать номер сессии в подприборы. Но я не знаю как ты устроил свою прогу. Если выложишь скрин, может подскажу побольше.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
можно глобальными перем.передавать!? до общей еще не добрался. Но вобщем ясно, где-то в начале проги нужно
инициализировать.
как я понимаю, реинтратные приборы можно юзать для множества команд, т.е. как шаблон?
инициализировать.
как я понимаю, реинтратные приборы можно юзать для множества команд, т.е. как шаблон?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Да, глобальными тоже можно, но лучше проводами соединять.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
пробовал как советовали с events и VISA, проблема еще осталась.
это происходит при передаче одновременно двух и более команд. Например, при нескольких запусках (нажатии кнопки run) в ответной строке первой команды может быть строка которая должна идти в ответ запроса второй команды и наоборот, т.е. возникает путаница или может быть пустая строка, затем строка от другой команды, а затем соответствующая первой.
что тут нужно настраивать: очереди, прерывания или что-то другое?
это происходит при передаче одновременно двух и более команд. Например, при нескольких запусках (нажатии кнопки run) в ответной строке первой команды может быть строка которая должна идти в ответ запроса второй команды и наоборот, т.е. возникает путаница или может быть пустая строка, затем строка от другой команды, а затем соответствующая первой.
что тут нужно настраивать: очереди, прерывания или что-то другое?
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
Тебе скорее всего надо делать так:
посылаешь одну команду и ждёшь ответ, когда ответ приходит, посылаешь следующюю и ждёшь ответ ну и т.д.
Тогда путаницы быть не должно.
посылаешь одну команду и ждёшь ответ, когда ответ приходит, посылаешь следующюю и ждёшь ответ ну и т.д.
Тогда путаницы быть не должно.
-
- assistant
- Сообщения: 104
- Зарегистрирован: 15 авг 2008, 11:55
- Версия LabVIEW: 8.5
- Откуда: Россия, Московская область
- Контактная информация:
Re: Как сделать прием данных по rs-232 с прерыванием?
это то да, но мне нужно чтобы одновременно несколько команд выполнялось, потому что
для управлением прибора нужно использовать несколько команд одновременно для решения задачи которую я описал ранее.
для управлением прибора нужно использовать несколько команд одновременно для решения задачи которую я описал ранее.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение