Работа с RS232

Простейшие вопросы в области инженерной разработки
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Работа с RS232

Сообщение AN-G »

Всем привет! Есть следующая задача:нужно создать интерфейс управления настройками камеры через COM port. Задумка следующая: нужно на каждый элемент управления(будь то кнопка или чекбокс или др.) написать определенную команду(например на кнопку ZOOM+: 55 AA 01 02 00 00 03 0F, на кнопку Menu: 55 AA 02 03 00 00 05 0F) для того, чтобы при нажатии на кнопку выполнялось то или иное действие. Может кто-то делал что-то подобное или знает ресурс где это есть. Поделитесь пожалуйста. Заранее всем благодарен.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Работа с RS232

Сообщение Artem.spb »

Так и в чём проблема?
открыть порт, по кнопке записать в него строку. Стандартная задача.
один из примеров: Continuous Serial Write and Read.vi
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Artem.spb писал(а): 02 дек 2020, 22:21 Так и в чём проблема?
открыть порт, по кнопке записать в него строку. Стандартная задача.
один из примеров: Continuous Serial Write and Read.vi
Думаю данного примера будет достаточно. Благодарю за наводку.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Возникла проблема с передачей данных. Как я уже и описал выше посылка осуществляется в 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 скачиваний
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Работа с RS232

Сообщение Artem.spb »

AN-G писал(а): 05 дек 2020, 14:14 если данный параметр до 50, то должна идти 07В4 , а идет 7B4.
Не знаю, как можно 50 превратить в 7В4, но видимо, вам нужна фиксированная длина строки:
x.png
x.png (8.98 КБ) 1821 просмотр
Открытие и закрытие так же в кейс, как формирование строки. Главное, не пытаться писать в закрытый порт, иначе ругаться будет
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Artem.spb писал(а): 05 дек 2020, 18:22
AN-G писал(а): 05 дек 2020, 14:14 если данный параметр до 50, то должна идти 07В4 , а идет 7B4.
Не знаю, как можно 50 превратить в 7В4, но видимо, вам нужна фиксированная длина строки:
x.png

Открытие и закрытие так же в кейс, как формирование строки. Главное, не пытаться писать в закрытый порт, иначе ругаться будет
По поводу счета до 50(пятидесяти).Логика здесь следующая: например возьмем число 27(dec) оно записывается как 27 00 и затем мы его переводим в hex. Получается A8C , а должно в эти два байта записаться как 0A8C.Число 150 : 150 00(dec) -> 3A98(hex). Надеюсь что ясно объяснил. :wink:
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

неужели ни у кого нет ответа?!
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2211
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 27 раз

Re: Работа с RS232

Сообщение Borjomy_1 »

AN-G писал(а): 07 дек 2020, 11:36 неужели ни у кого нет ответа?!
ну если брать посимвольно, то A8C - это 3 байта. 0A8C - 4 байта. A 8C - это 2 байта, тут нет разницы если будет 0A 8C.
Для того, чтобы преобразовать два байта в символьную строку из 4 байт, вам уже рассказали как - Format Into String с параметром "%04x".
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Borjomy_1 писал(а): 07 дек 2020, 13:16
AN-G писал(а): 07 дек 2020, 11:36 неужели ни у кого нет ответа?!
ну если брать посимвольно, то A8C - это 3 байта. 0A8C - 4 байта. A 8C - это 2 байта, тут нет разницы если будет 0A 8C.
Для того, чтобы преобразовать два байта в символьную строку из 4 байт, вам уже рассказали как - Format Into String с параметром "%04x".
тогда у меня напрашивается сразу другой вопрос: оно запишется как 0A8C или A8C0?! И как это 8С - 2 байта? 1000 1100 - это 2 байта?
Последний раз редактировалось AN-G 07 дек 2020, 21:42, всего редактировалось 1 раз.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Работа с RS232

Сообщение Artem.spb »

AN-G писал(а): 07 дек 2020, 21:32 тогда у меня напрашивается сразу другой вопрос: оно запишется как 0A8C или A8C0?!
оно запишется как СТРОКА, которую вы сформируете.
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Artem.spb писал(а): 07 дек 2020, 21:39
AN-G писал(а): 07 дек 2020, 21:32 тогда у меня напрашивается сразу другой вопрос: оно запишется как 0A8C или A8C0?!
оно запишется как СТРОКА, которую вы сформируете.
в том-то и дело, что я ее задаю с помощью окна. А она записывается не так как нужно.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Работа с RS232

Сообщение Artem.spb »

Как записываете? Как получаете? И как проверяете, что получили?
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Artem.spb писал(а): 07 дек 2020, 21:46 Как записываете? Как получаете? И как проверяете, что получили?
Я эту строку не получаю ниоткуда, а самостоятельно формирую. Это я описал в самом первом посте.
Вложения
изображение_2020-12-07_220310.png
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Работа с RS232

Сообщение Artem.spb »

AN-G писал(а): 02 дек 2020, 21:40 Я эту строку не получаю ниоткуда, а самостоятельно формирую.
Вы писали, что она как-то не так записывается. Теперь утверждаете, что никуда она не записывается.
например на кнопку ZOOM+: 55 AA 01 02 00 00 03 0F
а вы уверены, что вам нужна именно строка, а не hex-значения?
hex.png
hex.png (11.24 КБ) 1731 просмотр
AN-G
user
user
Сообщения: 80
Зарегистрирован: 22 мар 2014, 23:22
Версия LabVIEW: 2015
Благодарил (а): 10 раз
Поблагодарили: 1 раз
Контактная информация:

Re: Работа с RS232

Сообщение AN-G »

Artem.spb писал(а): 07 дек 2020, 22:14
AN-G писал(а): 02 дек 2020, 21:40 Я эту строку не получаю ниоткуда, а самостоятельно формирую.
Вы писали, что она как-то не так записывается. Теперь утверждаете, что никуда она не записывается.
например на кнопку ZOOM+: 55 AA 01 02 00 00 03 0F
а вы уверены, что вам нужна именно строка, а не hex-значения?
hex.png
мне нужна строка в hex формате, состоящая из 8 байт. Я собственно и обратился для этого за помощью к форумчанам. Мой код не совсем корректный, ввиду начала познания LV. Да и сама реализация ком порта требует доработки.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»