-
Tpm-138 и обмен с ним
Объясните пожалюйста на примере TPM-138 как сформировать запрос на получение данных параметра "rEAd". А точнее как узнать размер блока данных в байта и как он зависит от настроек "параметров обмена в сети" для данного прибора.
-
Пользователь
Если Вы программируете для Windows попробуйте скачать библиотеку для работы с приборами ОВЕН - WIN DLL
-
Пробовал owen_io.dll c примером на Delphi и функцию по обмену ReadIeee32. Функция работает, данные получаю, но медленно. А хотелось бы чтобы опрос прибора не влиял на работу всего приложения. Поэтому и хотелось узнать какой размер блока данных в запросе указывать.
TRM-138 в параметре dAtA содержит S.FL.b (знаковое число с односторонней точкой в двоичном виде).
Кстати а на исходники owen_io.dll поглядеть можно, тогда все вопросы я думаю решаться.
-
Пользователь
Если не секрет - как часто получаете данные и какова скорость опроса. Для того что бы не тормозило используйте отдельный поток
-
Хотелось бы успеть опросить 8 каналов за 1 сек.
-
незарегистрированный
Гость
Можно и чаще, ( примерно 20 раз в секунду), только уточните что у Вас за прошива - ежели ниже 037 будут траблы.
-
незарегистрированный
Гость
Время обмена ТРМ с ЭВМ
Каким образом можно перепрошить ТРМ - 138 на более позднюю версию, чтобы уменьшить время опроса каналов (1 секунда до 20каналов как ранее писалось)
-
Прежде всего посмотрите какую версию показывает прибор при включении питания, если PO37, то перепрошивать не надо. Если номер меньше, то прибор надо отправить в сервис центр. Для проверки скорости опроса можете взять демо-версии OPM 1.2 http://www.owen.ru/documents/catalog...tup_v1_2-3.zip, она использует ту же библиотеку.
-
незарегистрированный
Гость
на нашем приборе написано B0600 Это новая версия или старая?
-
Работаю с Вашим прибором 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-состояние}
Подскажите правильный вариант функции чтения/записи
состояния релейного выхода
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума