Показано с 1 по 6 из 6

Тема: пример работы с мва8 и мву8

  1. #1

    Exclamation пример работы с мва8 и мву8

    Здравствуйте Коллеги!
    Есть ли у кого пример работы с МВУ8 на С++ с использованием owen_io.lib? Меня интересует, какие функции и с какими параметрами используются при записи в МВУ8 (замыкание n-ного выходного контакта).

    Также хотелось бы понять следующий момент:

    Вот код из TEST_LIB.cpp:

    display("Работа с МВА8 адрес 16 (канал 8) \n");

    for(hh=0;hh<20;hh++)
    {
    res=ReadIEEE32(16,0,"rEAd",val,tm,-1);
    if(res==1)
    {
    printf("Read=[%f] ,Time=[%5d]\n",val,tm);
    }
    else {
    display("Ошибка чтения!\n");
    }
    }

    Переменная цикла не используется в качестве параметра функции. Получается, что при каждом новом чтении опрашивается следующий по порядку вход?

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

  2. #2

    По умолчанию

    Вопрос - с каким прибором Вы работаете - МВУ8 - это управление или МВА8 - ввод аналоговых величин, т.е вы подаете на выход значения записывая параметр "r.oe " функцией WriteFloat24. Для чтения с прибора используется ReadFloatIEEE32. При чтении с канал nn добавляйте к индексу значение nn-1 к базовому адресу передаваемому функции (здесь можно 16+(hh % 8)

  3. #3

    По умолчанию

    Цитата Сообщение от Малышев Олег Посмотреть сообщение
    Вопрос - с каким прибором Вы работаете - МВУ8 - это управление или МВА8 - ввод аналоговых величин, т.е вы подаете на выход значения записывая параметр "r.oe " функцией WriteFloat24. Для чтения с прибора используется ReadFloatIEEE32. При чтении с канал nn добавляйте к индексу значение nn-1 к базовому адресу передаваемому функции (здесь можно 16+(hh % 8)
    Работать нужно и с МВУ8 и с МВА8. МВУ8 должен управлять сервоприводом задвижки на ХВС, а с МВА8 я буду считывать показания датчиков - "лягушек".

  4. #4

    По умолчанию

    В файле howto.txt я нашел описание функции WriteFloat24:
    int WriteFloat24(DWORD adr,DWORD adr_type,char *command,float value, int index);

    Параметры
    DWORD adr - адрес устройства.
    DWORD adr_type - тип адреса 0 - 8 бит,1 - 11 бит.
    char *command - комманда.
    float value - значение записываемого параметра.
    int index - индекс согласно пункту 6.2. "Индексация оперативных параметров."

    Только пункта 6.2 в этом тексте нет, все заканчивается на пункте 2.7.

    При чтении с канал nn добавляйте к индексу значение nn-1 к базовому адресу передаваемому функции (здесь можно 16+(hh % 8)
    Мне немного неясно: при чтении с канала nn значение (nn-1)
    суммируется с индексом или с базовом адресом?
    И где взять начальное значение индекса?

    Если Вам не сложно, можете написать параметры функции WriteFloat24 для записи 1.0 на 4 выход МВУ8 с базовым адресом 3 (например).

  5. #5

    По умолчанию запись плавающего в мву

    WriteFloat24(3+(4-1),0,"r.oe ",1.0,-1); // Оперативные - без индекса, доступ к каналу N - через базовый адрес.

  6. #6

    По умолчанию

    все работает!!

    огромное спасибо!!

Ваши права

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