Вот модуль с функциями работой с прибором.
Из программы вызывается функция, в которую передается адрес канала.
Что писать содержит переменная val.
Ошибка возвращается -104.
Вывожу n.Err - код ошибки "0", по руководству все проходит отлично.
Вид для печати
Вот модуль с функциями работой с прибором.
Из программы вызывается функция, в которую передается адрес канала.
Что писать содержит переменная val.
Ошибка возвращается -104.
Вывожу n.Err - код ошибки "0", по руководству все проходит отлично.
у меня ваш код работает
Может что тогда с настройками прибора? Не могли бы вы свои настройки описать. Или дело в самом приборе, в прошивке. Может версия библиотеки?
Спасибо за помощь! Поменял файл с библиотекой, с сайта скачал - все заработало!
Здравствуйте. А мне смена библиотеки и поиск по форуму не помогли..
Итак, как же правильно управлять выходами МДВВ с помощью owen_io.dll, Delphi и без такой-то матери?
Имею МДВВ v1.09, owen_io.dll v1.2.0.17, Конфигуратор МДВВ v1.0.0.8.
Из конфигуратора выходы переключаются.
Функцией ReadUInt(16, ADRTYPE_8BIT, 'r.Cn', r_val, -1) входы прекрасно читаются. А функции WriteFloat24, WriteIEEE32(16, ADRTYPE_8BIT, 'r.oe', w_val, -1) выходы не изменяют, хотя функции возвращают 0.
Сами функции описаны в owen_io.pas, который вместе с dll шел.
Приведите пожалуйста работающий в delphi пример изменяющий выходы МДВВ.
Т.к. техподдержка в компании Овен отсутствует как класс, отвечаю самому себе, мож еще кому пригодится.
Функция WriteIEEE32 библиотеки owen_io.dll v1.2.0.17 с МДВВ v1.09 работает неверно. В описании функции для Дельфи - ошибка. Вместо допустимой команды 'r.OE' можно написать 'XXX' и функция выполнится с кодом возврата 0. Для управления выходами нужно использовать WriteFloat24. У меня она заработала чудесным образом только после восстановления заводских настроек МДВВ (EEPROM перезаписали :-) ).