PDA

Просмотр полной версии : Работа с выходами МДВВ



Алексей_К
12.01.2009, 09:33
Здравствуйте!
Возникла задача управления выходами МДВВ на Delphi (включение-выключение реле).
В конфигураторе все работает, а в программе возникает ошибка:
ERR_NERR (-104) - прибор вернул код сетевой ошибки nErr
Фрагмент:
функция для записи:
function Zapis(adresWORD; val:single):integer;
запись:
res:=WriteIEEE32(adres,0,'r.oe',val,-1);
в параметр val записываю "1", чтобы включить реле
базовый адрес прибора: 16 - его и использую
Помогите пожалуйста, никак не пойму что не так...
Пожалуйста приведите пример работы с выходами.

Дмитрий Егоренков
12.01.2009, 16:45
r.ОЕ - это float 24

Алексей_К
12.01.2009, 16:51
Пробовал и WriteFloat24 не получается, то же самое - нет реакции на реле :confused:

Дмитрий Егоренков
12.01.2009, 18:02
ну функция-то работает? тогда смотрите настройки прибора - значения t.out и O.Alr.

Алексей_К
12.01.2009, 19:29
Через вашу библиотеку функция не срабатывает... Я не изменял эти настройки. Считывание с дискретных входов происходит без проблем. А разъясните пожалуйста какие должны быть эти параметры?

Дмитрий Егоренков
13.01.2009, 11:42
если функция не срабатывает, она возвращает код ошибки. смысл и возможные значения параметров даны в руководстве по эксплуатации.

Алексей_К
13.01.2009, 15:15
Код ошибки, как и писал выше возвращается: 104
Уже 2-й день копаюсь, но безрезультатно.
Скиньте пожалуйста небольшой примерчик на Delphi пощелкать выходами, на форуме нет ничего подобного. Я думаю это будет очень актуально и для других новичков, работающих с оборудованием ОВЕН.

Дмитрий Егоренков
13.01.2009, 15:47
то есть вы вызываете WriteFloat24() для записи значения r.OE, и функция возвращает -104 (ERR_NERR). такое может быть только в том случае, если у вас прибор со старой прошивкой, но тогда должна работать WriteIEEE32().

Алексей_К
14.01.2009, 00:32
Прибор по моему со старой прошивкой 1.07, если не ошибаюсь последняя 1.09, хотя покупался в марте 2008 г.
Пробовал WriteIEEE32(), возвращает ту же ошибку.
Перевернул всю документацию, все что можно.
Через конфигуратор вручную отлично проходит переключение, а тут никак.
Может я записываю что-то не то? Или может нужно еще какие-то параметры поменять, или режимы?

Дмитрий Егоренков
14.01.2009, 15:24
я даже не знаю, что сказать. с прошивкой 1.07 работает WriteFloat24().

покажите весь код, который работает с прибором, и код ошибки, который возвращает функция WriteFloat24().

Алексей_К
15.01.2009, 09:02
Вот модуль с функциями работой с прибором.
Из программы вызывается функция, в которую передается адрес канала.
Что писать содержит переменная val.
Ошибка возвращается -104.
Вывожу n.Err - код ошибки "0", по руководству все проходит отлично.

Дмитрий Егоренков
15.01.2009, 11:59
у меня ваш код работает

Алексей_К
15.01.2009, 12:22
Может что тогда с настройками прибора? Не могли бы вы свои настройки описать. Или дело в самом приборе, в прошивке. Может версия библиотеки?

Алексей_К
15.01.2009, 12:29
Спасибо за помощь! Поменял файл с библиотекой, с сайта скачал - все заработало!

Сергей_ВМ
27.09.2010, 02:10
Здравствуйте. А мне смена библиотеки и поиск по форуму не помогли..
Итак, как же правильно управлять выходами МДВВ с помощью 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 пример изменяющий выходы МДВВ.

Сергей_ВМ
02.10.2010, 20:15
Т.к. техподдержка в компании Овен отсутствует как класс, отвечаю самому себе, мож еще кому пригодится.
Функция WriteIEEE32 библиотеки owen_io.dll v1.2.0.17 с МДВВ v1.09 работает неверно. В описании функции для Дельфи - ошибка. Вместо допустимой команды 'r.OE' можно написать 'XXX' и функция выполнится с кодом возврата 0. Для управления выходами нужно использовать WriteFloat24. У меня она заработала чудесным образом только после восстановления заводских настроек МДВВ (EEPROM перезаписали :-) ).