-
текущее значение счетчика си 30!!!!
Добрый День!
Использую Библиотеку owen_io.dll и подключаю ее в свой проект в среде
c++ builder. Необходимо получить Текущее значение счетчика СИ 30 в физических единицах.
При статическом подключении owen_io.h и компиляции проекта была выведена следующая ошибка:
[Linker Error] [...]\owen_io.LIB contains invalid OMF record, type 0x21 (possibly COFF).
Google дал ответ в виде: The library is of the wrong type. Use coff2omf.exe, located in CBuilder/bin, to convert it to the correct type. После конвертирования вышеуказанного LIB файла проект скомпилировался и начал работать.
Текущее значение счетчика получаю без проблем но только для беззнаковых целых чисел:
ReadUInt(16,ADRTYPE_8BIT,"Ctr",pulses, -1);
А его значение в физических единицах в виде числа с плавающей запятой
никак вытащить не удается. Пробовал все три функции из библиотеки owen_io следующим образом:
1) res = ReadFloat24(16, ADRTYPE_8BIT, "CEU", angle, -1);
функция выполняется успешно, но постоянно выдает очень маленькое число в экспоненциальном виде -45 степени
2) res = ReadStoredDotS(16, ADRTYPE_8BIT, "CEU", angle, -1);
функция выполняется успешно, но постоянно выдает 0
3) res = ReadIEEE32(16, ADRTYPE_8BIT, "CEU", 60,angle, -1);
функция выполняется успешно, но постоянно выдает число такое же как в пункте 1.
Попробовал использовать функцию, которая считывает знаковое целое число
- ReadSInt(16,ADRTYPE_8BIT,"Ctr",pulses, -1);
функция выполняется успешно, но возвращается нуль, странная реакция - только одна из перечисленных функций - ReadUInt дает правильное значение, но оно к сожалению не отображает знак важный для использования энкодера, когда он вращается в обратную сторону.
Подскажите Пожалуйста, Как решить проблему? Заранее Благодарен.
Последний раз редактировалось smizrakhy; 08.12.2010 в 18:28.
-
Похоже у нас ошибка в функции readsint. Будем исправлять, но это потребует времени. Можно попробовать использовать функцию OwenIO и разобрать поле данных.
-
проблему решил
Воспользовался советом Ильи Глана и попробовал использовать универсальную функцию обмена с приборами OwenIO.
Более того, нашел на форуме удачный пример использования данной функции, в котором реализовано чтение целочисленного знакового числа http://www.owen.ru/forum/showthread....ghlight=OwenIO
Таким образом проблема решена.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума