Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22

Тема: Помогите с протоколом ОВЕН

  1. #1
    Пользователь
    Регистрация
    16.06.2008
    Адрес
    Владивосток
    Сообщений
    37

    Question Помогите с протоколом ОВЕН

    Пишу в LabVIEW 8.6 программку для снятия инфы с МВА8, для связи выбрал протокол ОВЕН, стал разбираться в сути протокола, возникли проблемы :

    1. в описании протокола в структурной схеме есть квадратик "Размер блока данных в байтах -2", поясните его, пожалуйста, непонятки в куске "-2" и как его посчитать - просто сумма байтов данных?

    2. есть затруднения в понимании расчёта hash-функции и CRC-функции, строковое описание алгоритма, которое приводится не понял, т.к. не работал со строковыми языками программирования
    x16+x15+x11+x10+x9+x8+x6+x4+x2+x1+x0 а почему там нет x13,x12,x7,x5,x3 ?

    3. допустим у меня в МВА8 на 5-ом входе висит "Датчик 4...20мА"
    3.1 напишите, пожалуйста, как будет выглядеть команда в HЕX коде на посылку запроса значения даных с этого датчика и чем будет отличаться если ещё и время снятия данных запросить?
    3.2 как должен выглядеть ответ от МВА8? (тоже в HEX коде)
    3.3 и можно подробный пример расчёта HASH и CRC хотя бы для запросной команды? (подробный - т.е. если вручную считать "на бумаже", проверить правильно ли считается в программе)


    Заранее спасибо

  2. #2
    Пользователь
    Регистрация
    16.06.2008
    Адрес
    Владивосток
    Сообщений
    37

    Question

    Немного разобрался сам, но ещё есть проблемы .

    все значения в HEX
    Ст. часть адреса 0008 - взял из конфигуратора МВА8
    Мл. часть адреса 101 - т.к. датчик на пятом входе висит
    Бит запроса 1 - т.к. производим запрос данных
    Размер блока данных в байтах -2 - НЕ ЗНАЮ ЧТО ПИСАТЬ
    Локальный идентиф. (HASH) 8784 - команда rEAd (ВЗЯЛ ИЗ описания прграммруемых параметров МВА-8)
    Поле данных уровня представления ???000??? - ЗНАЮ ЧТО НУЛИ , но СКОЛЬКО ИМЕННО НУЖНО - один или пятнадцать
    Контрольная сумма CRC - так и не понял как считать
    Изображения Изображения
    • Тип файла: jpg 1.jpg (17.9 Кб, Просмотров: 71)
    Последний раз редактировалось Коротенко; 20.08.2008 в 14:08.

  3. #3

    По умолчанию

    Чтобы не заморачиваться, гораздо проще использовать Owen OPC сервер и DataSocket в LabView. Настраиваете ОРС, создаете нумерик контрол или индикатор и в его свойствах во вкладке Data Binding -> Data Binding selection выбираете DataSocket и выбираете нужную переменную в Data Binding -> Browse -> DSTP Server. Данные прекрасно записываются и считываются с большинства наших приборов и не надо заморачиваться =)

  4. #4
    Пользователь
    Регистрация
    16.06.2008
    Адрес
    Владивосток
    Сообщений
    37

    По умолчанию

    как вариант для тестирования - отлично, но ведь наверно до запуска программы лабвью ещё надо будет запускать ОПЦ, а ведь юзеры бывают с очень кривыми руками, особенно если они ещё студенты.
    поэтому прошу помощи в том, чтобы разобраться с протоколом ОВЕН

    ps: просто уже есть опыт работы с чужими протоколами (ellab, awd10),
    овен очень похож, но есть трудности.
    Последний раз редактировалось Коротенко; 20.08.2008 в 14:01.

  5. #5

    По умолчанию

    насчет CRC вот программка на LabView для расчета контрольной суммы
    Вложения Вложения
    • Тип файла: rar CRC.rar (19.5 Кб, Просмотров: 90)

  6. #6
    Пользователь
    Регистрация
    16.06.2008
    Адрес
    Владивосток
    Сообщений
    37

    По умолчанию

    а мож объяснишь заодно про....
    Цитата Сообщение от Коротенко Посмотреть сообщение
    Размер блока данных в байтах -2 - НЕ ЗНАЮ ЧТО ПИСАТЬ
    Поле данных уровня представления ???000??? - ЗНАЮ ЧТО НУЛИ , но СКОЛЬКО ИМЕННО НУЖНО - один или пятнадцать
    ..плииииииизззз , а то проект стоит, а начальство скоро из отпуска вернётся

  7. #7

    По умолчанию

    Допустим рассмотрим пакет посылаемый с ПК на МВА8 записывающий значение 1 в параметр LEN в ASCII символах (не забываем, что байты представляются по принципе тетрада-в-ascii-символ)

    #HGGHLIJVGHSJQS.

    # - начало пакета, «.» (она же 0D) – символ конца посылки
    Преобразуем строку в последовательность байт по таблице

    0000 -> 'G' = 0x47
    0001 -> 'H' = 0x48
    0010 -> 'I' = 0x49
    0011 -> 'J' = 0x4a
    0100 -> 'K' = 0x4b
    0101 -> 'L' = 0x4c
    0110 -> 'M' = 0x4d
    0111 -> 'N' = 0x4e
    1000 -> 'O' = 0x4f
    1001 -> 'P' = 0x50
    1010 -> 'Q' = 0x51
    1011 -> 'R' = 0x52
    1100 -> 'S' = 0x53
    1101 -> 'T' = 0x54
    1110 -> 'U' = 0x55

    Получаем 10 01 52 3F 01 С3 AC

    Разберем побитно слева направо согласно структурной схеме протокола ОВЕН:

    00010000+000 – старшая+младшая часть адреса сети (16)
    0 – бит запроса
    0001 – размер блока данных 1 (то есть в пакете блок данных состоит из 1 байта поля данных и 2 байт хэш-кода, именно это и имеется ввиду, где написано про «-2»)
    523F – hash-код параметра Len
    01 – записываемое значение параметра
    C3AC – контрольная сумма CRC

  8. #8

    По умолчанию

    Могу также предложить программку для расчета хэш-кода параметра
    Вложения Вложения
    • Тип файла: rar hash.rar (37.8 Кб, Просмотров: 92)
    Последний раз редактировалось PC_DOS; 20.08.2008 в 15:29.
    бывший инженер отдела тестирования)))

  9. #9

    По умолчанию

    почему бы вам не использовать owen_io.dll (http://www.owen.ru/device/64305906)? и все проблемы с протоколом будут сняты.

    вот здесь и пример использования есть - http://www.owen.ru/forum/showthread.php?t=460

  10. #10
    Пользователь
    Регистрация
    16.06.2008
    Адрес
    Владивосток
    Сообщений
    37

    По умолчанию

    Цитата Сообщение от Дмитрий Егоренков Посмотреть сообщение
    почему бы вам не использовать owen_io.dll и пример использования есть [/url]
    пока что не занимался подключением dll к LabVIEW , в дальнейшем рассмотрю и применение owen_io.dll, спасибо

Страница 1 из 3 123 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •