Запись команд в прибор
-
- interested
- Сообщения: 6
- Зарегистрирован: 13 окт 2008, 21:00
- Версия LabVIEW: 7.0
- Контактная информация:
Запись команд в прибор
Добрый вечер!
У меня есть такая апория.
а) Что необходимо.
Есть прибор - источник питания. Хочется написать программу на LabView, которая бы управляла им.
Вот Manual к прибору:
http://www.prosoft.ru/cms/f/346525/1U.pdf
б) Вопрос.
Само написание программы - понятно. Затруднение состоит в том, что в процессе выполнения программы необходимо производить
запись команд в данный прибор. Так вот этой самой записи не происходит.
Связь организована ч/з COM-порт.
в)Что было сделано.
Для организации общения с прибором использовалась VISA. При этом, есть некий стандартный набор команд, на которые откликается
прибор (см. стр. 63 вот этого Manual`а: http://www.prosoft.ru/cms/f/346525/1U.pdf).
Далее, были загружены стандартные примеры LabView 7.0 для общения с прибором ч/з COM-порт(Например, Serial.vi, вот этот: См. рис.1 - диаграмму Scheme_1.jpg - Приложение).
В нём, в качестве команды была записана команда "adr 06" - просто на VISA Write подал такую строку. Ждал Ответа "OK". Ответа не пришло. Точнее пришёл, но примерно такой: "Error. Connection time expired".
Следующим шагом отправил команду: "out 1". Если она дошла до прибора, то должен был включиться выход, и должен был загореться
диод на панели прибора. Опять же - Ответ тот же, что и в предыдущем случае. При этом из того, что диод не загорелся
получается, что и записи команды в прибор не произошло.
Однако, блок VISA Serial, который используется для инициализации COM-порта срабатывает
(проверил так: установил BaudRate, например N бод для порта COM1. Далее, захожу в командную строку Windows - набираю mode -
выводятся ведения о COM1 с его настройками. Так вот они ровно такие, как конфигуррует их VISA Serial).
ВОПРОС: Почему же тогда не работает Write b Read в стандартных примерах?!!!!!!!
P.S. а)а, кстати подключение прибора к порту похоже нормальное, т.к. проверка из Manual`a
(http://www.prosoft.ru/cms/f/346525/1U.pdf, стр. 71 - 73) работает.
б) Для общения с COM1 используется интерфейс RS232.
Заранее благодарен.
У меня есть такая апория.
а) Что необходимо.
Есть прибор - источник питания. Хочется написать программу на LabView, которая бы управляла им.
Вот Manual к прибору:
http://www.prosoft.ru/cms/f/346525/1U.pdf
б) Вопрос.
Само написание программы - понятно. Затруднение состоит в том, что в процессе выполнения программы необходимо производить
запись команд в данный прибор. Так вот этой самой записи не происходит.
Связь организована ч/з COM-порт.
в)Что было сделано.
Для организации общения с прибором использовалась VISA. При этом, есть некий стандартный набор команд, на которые откликается
прибор (см. стр. 63 вот этого Manual`а: http://www.prosoft.ru/cms/f/346525/1U.pdf).
Далее, были загружены стандартные примеры LabView 7.0 для общения с прибором ч/з COM-порт(Например, Serial.vi, вот этот: См. рис.1 - диаграмму Scheme_1.jpg - Приложение).
В нём, в качестве команды была записана команда "adr 06" - просто на VISA Write подал такую строку. Ждал Ответа "OK". Ответа не пришло. Точнее пришёл, но примерно такой: "Error. Connection time expired".
Следующим шагом отправил команду: "out 1". Если она дошла до прибора, то должен был включиться выход, и должен был загореться
диод на панели прибора. Опять же - Ответ тот же, что и в предыдущем случае. При этом из того, что диод не загорелся
получается, что и записи команды в прибор не произошло.
Однако, блок VISA Serial, который используется для инициализации COM-порта срабатывает
(проверил так: установил BaudRate, например N бод для порта COM1. Далее, захожу в командную строку Windows - набираю mode -
выводятся ведения о COM1 с его настройками. Так вот они ровно такие, как конфигуррует их VISA Serial).
ВОПРОС: Почему же тогда не работает Write b Read в стандартных примерах?!!!!!!!
P.S. а)а, кстати подключение прибора к порту похоже нормальное, т.к. проверка из Manual`a
(http://www.prosoft.ru/cms/f/346525/1U.pdf, стр. 71 - 73) работает.
б) Для общения с COM1 используется интерфейс RS232.
Заранее благодарен.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Запись команд в прибор
Смотри пункт 4, ты добавляешь возврат каретки в конец каждой команды?7.7 ОПИСАНИЕ НАБОРА КОМАНД
7.7.1 Общие инструкции
1. Любая команда или параметр могут быть написаны как заглавными буквами, так и
строчными.
2. В команде, содержащей параметр, между командой и параметром необходимо поставить
пробел.
3. Для любой команды, содержащей числовые данные, эти числовые данные могут быть до
12 знаков длиной.
4. Возврат каретки: Если получен символ возврата каретки (ASCII 13), источник питания
должен ответить "OK", добавив символ возврата каретки.
-
- interested
- Сообщения: 6
- Зарегистрирован: 13 окт 2008, 21:00
- Версия LabVIEW: 7.0
- Контактная информация:
Re: Запись команд в прибор
Похоже, что нет. Как я понимаю, это должно выглядеть так, как на прилагаемой ниже картинке. Казалось бы: добавление символа возврата каретки влияет лишь на Ответ - т.е. на чтение, а вот на запись влиять не должно. А записи-то не происходит. Но, in any case, проверю данную ниже схему. Спасибо;)
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Запись команд в прибор
Ты пробовал для начала использовать Hyper Terminal?
Если с ним пойдёт, то с VISA разберёмся.
Если что, ещё можешь попробовать мой RS232 Terminal:
/viewtopic.php?f=22&t=128
Если с ним пойдёт, то с VISA разберёмся.
Если что, ещё можешь попробовать мой RS232 Terminal:
/viewtopic.php?f=22&t=128
-
- interested
- Сообщения: 6
- Зарегистрирован: 13 окт 2008, 21:00
- Версия LabVIEW: 7.0
- Контактная информация:
Re: Запись команд в прибор
Да, я ж написал ещё в самом первом сообщении! Через HyperTerminal, если делать всё согласно инструкциям, указанного в том же сообщении Manual`a, то всё здорово работает! Проблема именно с записью через VISA........
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Запись команд в прибор
А ты когда это через Hyper Terminal пробовал, ты добавлял ввод в конце каждой команды?
И мой RS232 Terminal пробовал? Он построен на VISA.
И мой RS232 Terminal пробовал? Он построен на VISA.
-
- interested
- Сообщения: 6
- Зарегистрирован: 13 окт 2008, 21:00
- Версия LabVIEW: 7.0
- Контактная информация:
Re: Запись команд в прибор
Твой ещё не пробовал. А вот при вводе в HyperTerminal - ввёл команду, например out 1. Далее - бью по enter. Как там явно прописать символ возврата каретки - не очевидно. Однако, видимо, этот удар по Enter и ассоциируется с переводом каретки!
-
- interested
- Сообщения: 6
- Зарегистрирован: 13 окт 2008, 21:00
- Версия LabVIEW: 7.0
- Контактная информация:
Re: Запись команд в прибор
Вот. Возврат каретки добавил - действительно - запись произошла. Но чтения после этого не происходит. Опять Time Expired...... Может кол-во байт для чтения не то?!
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
Korotenko
- developer
- Сообщения: 286
- Зарегистрирован: 25 июл 2008, 10:43
- Награды: 1
- Версия LabVIEW: 2009
- Откуда: Россия, Владивосток
- Контактная информация:
Re: Запись команд в прибор
очень советую (по собсвенному опыту) при работе с портами использовать порт-мониторы
например http://www.serial-port-monitor.com/Down ... onitor.exe вот его зеркало http://hhdsoftware.co.uk/Download/free- ... onitor.exe запускать программу надо ПЕРЕД запуском , в программе выбираешь НОВАЯ СЕССИЯ и ставишь галку ЗАПРОСЫ, остальные галки - показывают тоже что и указанная мной, только в менее нормальном варианте. а ещё в проге есть настройка - всегда поверх всех окон - полезная штука!
теперь всегда будешь видеть - что проходит туда-сюда через компорт
но учти - если в поставишь 4 байта на чтение то даже монитор покажет только 4 байта, т.к. порт больше не пропустит, поэтому для начала ставь где-то 20-30 байт на приём, а потом уж столько - сколько нужно, либо как говорил EG ориентируйся на символ конца сообщения,
и ещё совет - поставь для визы время ожидания конца не 10 сек как по умолчанию, а 0,5 сек - уж поверь мне, железячнику, для 9600 бод - 0,25 сек ожидания - время когда даже "ёжика дойдёт "
например http://www.serial-port-monitor.com/Down ... onitor.exe вот его зеркало http://hhdsoftware.co.uk/Download/free- ... onitor.exe запускать программу надо ПЕРЕД запуском , в программе выбираешь НОВАЯ СЕССИЯ и ставишь галку ЗАПРОСЫ, остальные галки - показывают тоже что и указанная мной, только в менее нормальном варианте. а ещё в проге есть настройка - всегда поверх всех окон - полезная штука!
теперь всегда будешь видеть - что проходит туда-сюда через компорт
но учти - если в поставишь 4 байта на чтение то даже монитор покажет только 4 байта, т.к. порт больше не пропустит, поэтому для начала ставь где-то 20-30 байт на приём, а потом уж столько - сколько нужно, либо как говорил EG ориентируйся на символ конца сообщения,
и ещё совет - поставь для визы время ожидания конца не 10 сек как по умолчанию, а 0,5 сек - уж поверь мне, железячнику, для 9600 бод - 0,25 сек ожидания - время когда даже "ёжика дойдёт "
I work in LabVIEW 2009 !
-
Pavel Krivozubov
- professor
- Сообщения: 4422
- Зарегистрирован: 07 фев 2008, 16:39
- Награды: 3
- Версия LabVIEW: 7.0 - 2013
- Откуда: г. Электросталь
- Благодарил (а): 24 раза
- Поблагодарили: 9 раз
- Контактная информация:
Re: Запись команд в прибор
почему вы все так не любите MAX
Меня в аналогичных случаях он выручал всегда. Хотя бы посмотреть для начала в нем - определился ли девайс относительно LabVIEW или нет..
2Алексей, а зачем нужны портмоны, если траблы с самой передачей (приёмом)? Ну покажет он read(write) error, а дальше что?
Меня в аналогичных случаях он выручал всегда. Хотя бы посмотреть для начала в нем - определился ли девайс относительно LabVIEW или нет..
2Алексей, а зачем нужны портмоны, если траблы с самой передачей (приёмом)? Ну покажет он read(write) error, а дальше что?
Правила форума
Developlabs - IT услуги - ждём Ваших заказов на написание программ
Новостной канал о LabVIEW и технологиях NI на Facebook
Developlabs - IT услуги - ждём Ваших заказов на написание программ
Новостной канал о LabVIEW и технологиях NI на Facebook
-
Korotenko
- developer
- Сообщения: 286
- Зарегистрирован: 25 июл 2008, 10:43
- Награды: 1
- Версия LabVIEW: 2009
- Откуда: Россия, Владивосток
- Контактная информация:
Re: Запись команд в прибор
ещё не пользовался когда линия 2 метра это и не требуется! (стадия разработки и проверки)Indey писал(а):почему вы все так не любите MAX
а если нет? то покажет что ИМЕЕННО ушло и что ИМЕЕННО пришло без протаскивания через !Indey писал(а): а зачем нужны портмоны, если траблы с самой передачей (приёмом)?
I work in LabVIEW 2009 !
-
Pavel Krivozubov
- professor
- Сообщения: 4422
- Зарегистрирован: 07 фев 2008, 16:39
- Награды: 3
- Версия LabVIEW: 7.0 - 2013
- Откуда: г. Электросталь
- Благодарил (а): 24 раза
- Поблагодарили: 9 раз
- Контактная информация:
Re: Запись команд в прибор
ха! у меня были случаи когда линия была полметра и девайсы глючили Да и причем тут вообще длина линии?Коротенко Алексей писал(а):ещё не пользовался когда линия 2 метра это и не требуется! (стадия разработки и проверки)
Ну в этом то случае - проблемы именно с передачей.. Но впрочем использовать портмоны, конечно же полезно в принципе, ты прав.Коротенко Алексей писал(а): а если нет? то покажет что ИМЕЕННО ушло и что ИМЕЕННО пришло без протаскивания через !
Правила форума
Developlabs - IT услуги - ждём Ваших заказов на написание программ
Новостной канал о LabVIEW и технологиях NI на Facebook
Developlabs - IT услуги - ждём Ваших заказов на написание программ
Новостной канал о LabVIEW и технологиях NI на Facebook
-
Korotenko
- developer
- Сообщения: 286
- Зарегистрирован: 25 июл 2008, 10:43
- Награды: 1
- Версия LabVIEW: 2009
- Откуда: Россия, Владивосток
- Контактная информация:
Re: Запись команд в прибор
верно- всякие там наводки могут бытьIndey писал(а):у меня были случаи когда линия была полметра и девайсы глючили Да и причем тут вообще длина линии?
хочу добавить - и вообще видеть - УШЛО ли что-нить изIndey писал(а):Но впрочем использовать портмоны, конечно же полезно в принципе, ты прав.
I work in LabVIEW 2009 !
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Запись команд в прибор
Портмоны как то сильно тормозят передачу данных при высоких скоростях. Поэтому перестал ими пользоваться. Если надо подслушать что приходит и уходит, то пользуюсь хард-подслушивалкой. Если кому надо могу сделать фотку, но в принципе легко смастерить самому.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 13 Ответы
- 897 Просмотры
-
Последнее сообщение seromax
-
- 5 Ответы
- 186 Просмотры
-
Последнее сообщение 70ny
-
- 12 Ответы
- 600 Просмотры
-
Последнее сообщение Sergey Puzanov