PDA

Просмотр полной версии : Tpm-138 и обмен с ним



Vladmir
13.08.2007, 08:37
Объясните пожалюйста на примере TPM-138 как сформировать запрос на получение данных параметра "rEAd". А точнее как узнать размер блока данных в байта и как он зависит от настроек "параметров обмена в сети" для данного прибора.

Малышев Олег
13.08.2007, 09:02
Если Вы программируете для Windows попробуйте скачать библиотеку для работы с приборами ОВЕН - WIN DLL

Vladmir
13.08.2007, 10:47
Пробовал owen_io.dll c примером на Delphi и функцию по обмену ReadIeee32. Функция работает, данные получаю, но медленно. А хотелось бы чтобы опрос прибора не влиял на работу всего приложения. Поэтому и хотелось узнать какой размер блока данных в запросе указывать.
TRM-138 в параметре dAtA содержит S.FL.b (знаковое число с односторонней точкой в двоичном виде).

Кстати а на исходники owen_io.dll поглядеть можно, тогда все вопросы я думаю решаться.

Малышев Олег
13.08.2007, 13:20
Если не секрет - как часто получаете данные и какова скорость опроса. Для того что бы не тормозило используйте отдельный поток

Vladmir
13.08.2007, 15:18
Хотелось бы успеть опросить 8 каналов за 1 сек.

незарегистрированный
13.08.2007, 18:32
Можно и чаще, ( примерно 20 раз в секунду), только уточните что у Вас за прошива - ежели ниже 037 будут траблы.

незарегистрированный
16.08.2007, 06:30
Каким образом можно перепрошить ТРМ - 138 на более позднюю версию, чтобы уменьшить время опроса каналов (1 секунда до 20каналов как ранее писалось)

Илья Глан
16.08.2007, 17:03
Прежде всего посмотрите какую версию показывает прибор при включении питания, если PO37, то перепрошивать не надо. Если номер меньше, то прибор надо отправить в сервис центр. Для проверки скорости опроса можете взять демо-версии OPM 1.2 http://www.owen.ru/documents/catalog/files/setup_v1_2-3.zip, она использует ту же библиотеку.

незарегистрированный
19.12.2007, 09:58
на нашем приборе написано B0600 Это новая версия или старая?

vvs
06.06.2008, 11:16
Работаю с Вашим прибором Tpm-138. Базовый адрес 128
Пробовал owen_io.dll c примером на Delphi и функцию по обмену ReadIeee32.

Без проблем считаваю значение температуры
res:=ReadIEEE32(128+port,0,'rEAd',val,tm,0); {port=0..7}

Не получается управлять релейными выводами.
При попытке управлять релейными выводами и считывать их состояние
использовал разные варианты.
tm:=1;{tm:=0;}
res:=WriteWord(128+port,0,'dr.dG',tm,0);
{или res:=WriteByte(128+port,0,'dr.dG',tm,0); ?}
Для чтения
res:=ReadSInt(128+port,0,'dr.dG',tm,0); {tm-состояние}
{или}
res:=ReadUInt(128+port,0,'dr.dG',tm,0); {tm-состояние}

Подскажите правильный вариант функции чтения/записи
состояния релейного выхода

незарегистрированный
07.06.2008, 07:10
Работаю с Вашим прибором Tpm-138. Базовый адрес 128
Пробовал owen_io.dll c примером на Delphi и функцию по обмену...


Правильнее, пожалуй, будет так:
var
val: single;
tm: integer;
dw: dword;
i: integer;
...
res:= ReadIEEE32(128+port, 0, 'rEAd', val, tm, -1);
...
res:= WriteWord(128+port, 0, 'dr.dG', i, -1);
res:= ReadUInt(128+port, 0, 'dr.dG', dw, -1);
...
См. хелп к owen_io.dll (OwenIO.chm)- "Порядок индексации" и файл tags.txt - "Соответствие параметров приборов функциям библиотеки"