Работа с RS232
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Работа с RS232
Всем привет! Есть следующая задача:нужно создать интерфейс управления настройками камеры через COM port. Задумка следующая: нужно на каждый элемент управления(будь то кнопка или чекбокс или др.) написать определенную команду(например на кнопку ZOOM+: 55 AA 01 02 00 00 03 0F, на кнопку Menu: 55 AA 02 03 00 00 05 0F) для того, чтобы при нажатии на кнопку выполнялось то или иное действие. Может кто-то делал что-то подобное или знает ресурс где это есть. Поделитесь пожалуйста. Заранее всем благодарен.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Работа с RS232
Так и в чём проблема?
открыть порт, по кнопке записать в него строку. Стандартная задача.
один из примеров: Continuous Serial Write and Read.vi
открыть порт, по кнопке записать в него строку. Стандартная задача.
один из примеров: Continuous Serial Write and Read.vi
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Работа с RS232
Возникла проблема с передачей данных. Как я уже и описал выше посылка осуществляется в 16-тиричном формате. С постоянными командами все просто, а вот команды с изменением параметров работы девайса загвоздка: 55 AA 02 03 00 00 01 0F (смотрим слева направо 0-7 байт. байт 0 и 1 - 55 АА соответственно - стандартное начало посылки, байт 2 -функция управления,байт 3- подфункция, байт 4 и 5 - доп.информация 1 и 2 соответственно, 6 байт - сумма XOR со 2-го по 5 байт (байт2 XOR байт3 XOR байт4 XOR байт5 ) 7 байт - стоп байт (всегда F0) ). с изменение 4 и 5 байта проблема: если данный параметр до 50, то должна идти 07В4 , а идет 7B4. А это критично в данном случае. Проблема 2: по моей задумке ком порт должен открываться и отключаться при нажатии кнопок (т.е когда я захочу). Проблема 3: посылка должна быть однократная, а не циклическая. Заранее благодарем всем откликнувшимся. Программу отдельного ком порта и в купе с полным кодом программы прилагаю на LV15.
- Вложения
-
- Archive.zip
- (1.66 МБ) 67 скачиваний
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Работа с RS232
Не знаю, как можно 50 превратить в 7В4, но видимо, вам нужна фиксированная длина строки: Открытие и закрытие так же в кейс, как формирование строки. Главное, не пытаться писать в закрытый порт, иначе ругаться будет
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Работа с RS232
По поводу счета до 50(пятидесяти).Логика здесь следующая: например возьмем число 27(dec) оно записывается как 27 00 и затем мы его переводим в hex. Получается A8C , а должно в эти два байта записаться как 0A8C.Число 150 : 150 00(dec) -> 3A98(hex). Надеюсь что ясно объяснил.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Работа с RS232
ну если брать посимвольно, то A8C - это 3 байта. 0A8C - 4 байта. A 8C - это 2 байта, тут нет разницы если будет 0A 8C.
Для того, чтобы преобразовать два байта в символьную строку из 4 байт, вам уже рассказали как - Format Into String с параметром "%04x".
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Работа с RS232
тогда у меня напрашивается сразу другой вопрос: оно запишется как 0A8C или A8C0?! И как это 8С - 2 байта? 1000 1100 - это 2 байта?
Последний раз редактировалось AN-G 07 дек 2020, 21:42, всего редактировалось 1 раз.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Работа с RS232
в том-то и дело, что я ее задаю с помощью окна. А она записывается не так как нужно.
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Работа с RS232
Я эту строку не получаю ниоткуда, а самостоятельно формирую. Это я описал в самом первом посте.
-
- professor
- Сообщения: 3404
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 175 раз
- Контактная информация:
Re: Работа с RS232
Вы писали, что она как-то не так записывается. Теперь утверждаете, что никуда она не записывается.
а вы уверены, что вам нужна именно строка, а не hex-значения?например на кнопку ZOOM+: 55 AA 01 02 00 00 03 0F
-
- user
- Сообщения: 80
- Зарегистрирован: 22 мар 2014, 23:22
- Версия LabVIEW: 2015
- Благодарил (а): 10 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Работа с RS232
мне нужна строка в hex формате, состоящая из 8 байт. Я собственно и обратился для этого за помощью к форумчанам. Мой код не совсем корректный, ввиду начала познания LV. Да и сама реализация ком порта требует доработки.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 16 Ответы
- 3263 Просмотры
-
Последнее сообщение Artem.spb
-
- 4 Ответы
- 220 Просмотры
-
Последнее сообщение Andrew Lunev