PDA

Просмотр полной версии : пример работы с мва8 и мву8



Борис Мальков
13.07.2007, 14:39
Здравствуйте Коллеги!
Есть ли у кого пример работы с МВУ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");
}
}

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

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

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

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

Работать нужно и с МВУ8 и с МВА8. МВУ8 должен управлять сервоприводом задвижки на ХВС, а с МВА8 я буду считывать показания датчиков - "лягушек".

Борис Мальков
13.07.2007, 16:55
В файле 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 (например).

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

Борис Мальков
16.07.2007, 16:53
все работает!! :)

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