Список форумов   Список форумов  

RS232 управление источником питания

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

RS232 управление источником питания

Сообщение Deniz1983 » Ср дек 05, 2007 4:59 pm

в описании сего прибора сказано:
1 инициализируйте компорт в соответствии с установками прибора(тут всё ясно)
2для изменения режима работы введите команду 82Н
3для установки максимального тока напряжения и мощности используйте команду 80Н
символ Н означает шестнадцатиричную систему счисления.

структураблока данных
связь между пк и прибором осуществляется путем обмена 26 байтными блоками данных. первые 3 и последний байт всегда одинаковые.
Содержимое байтов:
байт содержимое байтов
1 заголовок(ААН)
2 адрес прибора(0-31)
3 команда (80Н, 81Н, 82Н)
4-25 зависит от используемой команды
26 контрольная сумма

команда 80 Н

байт содержимое байтов

1 заголовок(ААН)
2 адрес прибора (мне надо задать 1)
3 80Н
4 макс ток(младший байт)
5 мак ток(старшийбит)
6 макс напяжение(младший бит)
7 макс напряжение(старший бит)
8 макс мощность(младший бит)
9 макс мощность(старший бит)
10 напяжение(младший бит)
11 напряжение(старший бит)
12-25 не используются
26 контрольная сумма


запускаю программу с использованием функции виза выдает ошибку
VISA: (Hex 0xBFFF003E) Could not perform operation because of I/O error.
как мне написать команду чтобы задать адрес прибора мне нужно задать 1?
я в функцию виза врайт писал просто 80 Н
помогите пожалуйста советом или блокдиаграммой
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение егра » Ср дек 05, 2007 5:25 pm

Само задание не сложное, как и протокол передачи данных. Проблему создаёт ошибка

VISA: (Hex 0xBFFF003E) Could not perform operation because of I/O error

Как соединён прибор с компьютером? Через USB Serial адаптер? Если да, то читать здесь:

http://digital.ni.com/public.nsf/websea ... enDocument
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Ср дек 05, 2007 6:09 pm

да, к компьютеру в усб к источнику питания по RS232
причем есть программа приложенная на диске вместе с источником питания она работает и управляет, так там в настройках я прописывал com3 после установки драйверов девайса все работает, но мне нужно управлять обязательно через labview так как значения тока должны изменяться в зависимости от показаний ацп 9206 daq
с серии
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение егра » Ср дек 05, 2007 6:13 pm

Предлагаю использовать вместо VISA вот эту библиотеку, с ней должно работать.

http://www.mhst.de/downloads.html
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Чт дек 06, 2007 1:24 pm

да, спасибо, скачал библиотеку сериал но примеров нет и я понятия не имею как пользоваться данными VI и совсем непонятно как в команде задать ID прибора можете подсказать?
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение егра » Чт дек 06, 2007 2:33 pm

Пользуйся наздоровье.

Это конечно не будет работать, надо будет посмотреть с лампочкой что где надо подправить, но в общем примерно так.
Вложения
RS232_LVSERIAL.zip
(33.63 KiB) Скачиваний: 648
RS232_LVSERIAL.PNG
RS232_LVSERIAL.PNG (50.98 KiB) Просмотров: 13595
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Чт дек 06, 2007 3:05 pm

спасибо буду разбираться)
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение Deniz1983 » Пн дек 10, 2007 12:27 pm

источник не управляется :( может быть нужно посылать команду состоящую из 16 строк и чтобы лв понимало что это 16тиричная система счисления???
еще в описании прибора есть модуль active x но к сожалению не для лабвью
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение Deniz1983 » Пн дек 10, 2007 12:37 pm

я хочу сделать попростому чтобы заработало как все улучшить и сверения серийных номеров я сделаю позже)
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение егра » Пн дек 10, 2007 2:22 pm

Скачай для начала вот эту программкуз и подслушай что происходит на порте. Может сам увидишь в чём проблема.

http://www.redsofts.com/soft/56/4925/Fr ... nitor.html
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

контрольная сумма

Сообщение Deniz1983 » Пн дек 17, 2007 12:35 pm

для проверки безошибочности передачи данных при отправке каждого блока к прибору генерируется контрольная сумма. контрольная сумма генерируется путем сложения значений от 1 до 25 байтов и получения результирующей части байта. например результирующая сумма 46531(B5C3H) даст контрольную сумму 3(03Н).
как это получается??? кто нибудь может мне объяснить? из 46531 перевести в 16ричную систему я могу получается B5C3H и обратно тоже все просто но как из 46531 получить 3 я не понимаю
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение егра » Пн дек 17, 2007 1:28 pm

Попробуй использовать Split Number, может подойдёт.
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Пн дек 17, 2007 4:19 pm

я так понял что контрольная сумма вычисляется как остаток от деления на 16 потому что 4+6+5+3+1=19 - 16 =3
а что делать с младшим байтом и старшим? допустим сколько будет младший байт от 8 и как вычисляются(математически или функцией лабвью)старший и младший байты??
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение егра » Пн дек 17, 2007 4:25 pm

Сорри, если это остаток деления, тогда используй Quotient & Remainder VI, и преобразуй остаток, то бишь Remainder в U8, вот тебе и будет контрольная сумма.
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Пн дек 17, 2007 4:51 pm

а что делать с младшим байтом и старшим? допустим сколько будет младший байт от 8 и как вычисляются(математически или функцией лабвью)старший и младший байты??
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

След.

Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1