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

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

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

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

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

Я же уже сверху предложил использовать Split Number, вычислять байты не надо, они уже есть, просто нужно разбить 16 Бит на два по 8 Бит.
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Вт дек 18, 2007 5:40 pm

ещё вопрос в команде 82h 4 графа это режим работы прибора


режим работы задается значениями двух младших битов байта 4.
бит0:
=0 - прибор выключен;
=1 -прибор включен

бит 1:
=0 - работа в автономном режиме
=1 - работа под управлением пк.

байт описание
1 заголовок(ААН)
2 адрес прибора(0-31)
3 82Н
4 Режим работы (см выше)
5-25 не используются(-)
26 контрольная сумма

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

Сообщение егра » Вт дек 18, 2007 6:14 pm

Байт номер 4 будет равен 3.
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

Сообщение Deniz1983 » Ср дек 19, 2007 10:44 am

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

Сообщение егра » Ср дек 19, 2007 1:08 pm

Deniz1983 писал(а):если не трудно можете объяснить почему? мне просто может в будущем придется столкнуться с такими же вопросами...


Байт, как известно состоит из 8 бит. Бит может быть тавен 0(фолз) или 1 (тру). В твоём случае Бит 0 равен 1 (прибор включен), и Бит 1 равен 1 (работа под управлением пк). Про остальные ничего не сказано, поэтому их можно сделать как тебе угодно. Я в таком случае ставлю их на 0, чтобы понятнее было. И так получается:

00000011 в двоичной кодировке. Если перевести это в шестнадцатиричную кодировку выходит число 3. Вот и все фокусы. Если не знаешь как переводить числа из одной кодировки в другую, то калькулятор тебе в помощь. А вообще лучше почитай теорию о кодировках чисел, может быть я у себя на страничке сделаю такой урок-туториал для начинающих.
Вложения
Hex.PNG
Hex.PNG (21.07 KiB) Просмотров: 8860
Bin.PNG
Bin.PNG (20.98 KiB) Просмотров: 8860
егра
Специалист LabVIEW
 
Сообщений: 220
Зарегистрирован: Сб сен 01, 2007 10:51 pm
Откуда: Homburg/Germany

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

теперь почти все хорошо... источник питания реагирует на 4 байт левого массива...если пишу туда 3, прибор включен и под управлением ПК если 2 то выключен(аналоговый выход) и под управлением ПК тоесть реагирует. но когда пытаюсь командой 80Н выставлять какие-нибудь вольты-амперы все остается на 0 и даже если до этого было какое-то значение напряжения все гонит к 0
я так думаю что дело в младшем и старшем байте
посоветуйте что написать в этих байтах??? программу и скрин прилагаю
Вложения
scrn1443.JPG
scrn1443.JPG (131.14 KiB) Просмотров: 8801
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

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

атн
Вложения
АТН1443 222.rar
Атн
(26.13 KiB) Скачиваний: 568
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

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

команда 80Н описана на 1ой странице этого топика
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Сообщение Deniz1983 » Вт янв 22, 2008 12:17 pm

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

Сообщение gray » Вт янв 22, 2008 1:37 pm

Старший байт в двухбайтовом числе - целая часть результата деления оного числа на 256 (2^8+1), а младший байт - остаток от этого деления. В ЛВ можно использовать Split Number (прямое назначение данной функции) или Quotient & Remainder.
По поводу контрольной суммы. Протокол обмена имеет какое либо название, или это нестандартный протокол? В простейшем случае, КС вычисляется путем сложения содержимого всех значимых байт в посылке (обычно кроме заголовка и, естественно, самой КС) и от этой суммы берется младший байт.
То есть суммируете все нужные байты и сплитом "отрезаете" младший байт.
gray
Пользователь
 
Сообщений: 15
Зарегистрирован: Пн дек 10, 2007 12:51 pm
Откуда: Almaty

Сообщение gray » Вт янв 22, 2008 1:42 pm

Сорри...
Пропустил вторую страничку в вашей переписке и чуть опоздал с советом...
gray
Пользователь
 
Сообщений: 15
Зарегистрирован: Пн дек 10, 2007 12:51 pm
Откуда: Almaty

я его победил

Сообщение Deniz1983 » Вт янв 22, 2008 6:04 pm

выкладываю готовую программу управления источником питания, спасибо всем кто отвечал на мои вопросы)кстати замечу что описание команд не соответствует действительности
12и 13 байты это напряжение и тд...
Вложения
atn2.rar
(31.22 KiB) Скачиваний: 565
Deniz1983
Специалист LabVIEW
 
Сообщений: 71
Зарегистрирован: Пт сен 14, 2007 11:39 am

Пред.

Вернуться в LabVIEW

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

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

cron