Как сделать прием данных по rs-232 с прерыванием?

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 15 Aug 2008, 17:25

что это значит, можно подробнее, еще с этим не сталкивался
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 15 Aug 2008, 17:35

Для начала выложи скрин твоей блоковой диаграммы, может реинтрантнось в данном случае не нужна, а проблема кроется в чём то другом.

Я пользуюсь реинтрантными приборами, если я хочу использовать один и тот же прибор в нескольких циклах, причём этот прибор обрабатывает несколько разных интерфейсов. VISA Read, Write и т.д. тоже являются реинтрантными, т.к. рассчитаны на параллельное использование в нескольких циклах с неизвестным количеством интерфейсов.

Реинтрантные приборы при вызове получают отдельный кусок памяти и работают как бы независимо друг от друга. Для каждого вызова такого прибора создаётся отдельная инстанция.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 15 Aug 2008, 18:27

вот скрины для решения поставленной задачи
Attachments
1.JPG
код в VISA.Код остальных команд
аналогичен.
2.JPG
общий vi с подпрограммами
Status.vi, Move to.vi, Stop.vi
3.JPG
Stop.vi останавливает любую команду
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 15 Aug 2008, 18:41

Мне кажется у тебя что то напутано с циклами.

Содержимое верхнего цикла помести в кейс Timeout, а сам цикл вообще удали. Установи время Timeout например на 1000 миллисекунд. Больше тебе в принципе ничего не надо.

Если же ты обязательно хочешь иметь два цикла, то могут возникнуть как раз такие проблемы, как ты описал.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 15 Aug 2008, 18:57

пасиб, буду пробовать. На уровне ViSA ничего не нужно делать? Стоит
ли делать то же самое с помощью lvserial?
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 15 Aug 2008, 19:00

Lvserial и VISA почти одно и тоже. У того и другого есть недостатки и преимущества. Что ты выберешь решать тебе самому.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 20 Aug 2008, 13:20

когда нужно делать открытие VISA сессии и закрытие, для проги с вложенными подприборами?
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 20 Aug 2008, 13:24

Ну это как ты захочешь. Можешь открывать/закрывать сессию по нажатию кнопки. А можешь автоматически при старте/стопе главного прибора.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 20 Aug 2008, 13:29

а это для каждого вложенного прибора или для общего?
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 20 Aug 2008, 13:31

Для общего наверное. Тебе надо будет передавать номер сессии в подприборы. Но я не знаю как ты устроил свою прогу. Если выложишь скрин, может подскажу побольше.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 20 Aug 2008, 13:38

можно глобальными перем.передавать!? до общей еще не добрался. Но вобщем ясно, где-то в начале проги нужно
инициализировать.
как я понимаю, реинтратные приборы можно юзать для множества команд, т.е. как шаблон?
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 20 Aug 2008, 13:47

Да, глобальными тоже можно, но лучше проводами соединять.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 15 Sep 2008, 11:04

пробовал как советовали с events и VISA, проблема еще осталась.
это происходит при передаче одновременно двух и более команд. Например, при нескольких запусках (нажатии кнопки run) в ответной строке первой команды может быть строка которая должна идти в ответ запроса второй команды и наоборот, т.е. возникает путаница или может быть пустая строка, затем строка от другой команды, а затем соответствующая первой.

что тут нужно настраивать: очереди, прерывания или что-то другое?
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Eugen Graf on 15 Sep 2008, 11:50

Тебе скорее всего надо делать так:

посылаешь одну команду и ждёшь ответ, когда ответ приходит, посылаешь следующюю и ждёшь ответ ну и т.д.
Тогда путаницы быть не должно.
User avatar
Eugen Graf
guru
guru
 
Posts: 6502
Joined: 13 Nov 2007, 02:20
Location: Saarbrücken
Medals: 4
Activity (1) Professionalism (1) Silver (1) Black (1)
LabVIEW Version: 2009
Karma: 303
CLAD I/O VIP bloggers internet

Re: Как сделать прием данных по rs-232 с прерыванием?

Postby Confocal on 15 Sep 2008, 13:33

это то да, но мне нужно чтобы одновременно несколько команд выполнялось, потому что
для управлением прибора нужно использовать несколько команд одновременно для решения задачи которую я описал ранее.
Confocal
assistant
assistant
 
Posts: 104
Joined: 15 Aug 2008, 11:55
Location: Россия, Московская область
LabVIEW Version: 8.5
Karma: 0

PreviousNext

Return to Коммуникация с приборами

Who is online

Users browsing this forum: Bing [Bot] and 1 guest

cron