PDA

Просмотр полной версии : Чтение параметров МВА8 и ТРМ202



Hobbies
03.03.2008, 09:25
Не удается прочитать текущие значения измерений с ТРМ202
на вызовы:
res = ReadFloat24(84, 0, "Pv ", val, 0)
res = ReadFloat24(84, 0, "PV ", val, 0)
получаю ошибку код -104.
При этом SP (или HYS) и читается на тех же приборах, и пишется (вызов res = ReadFloat24(84, 0, "SP ", val, 0)).

Аналогично не могу прочитать тип датчика у МВА8 с помощью
ReadUInt(***), тоже ошибка -104. Хотя текщие измерения читаются (ReadIEEE32) на том же приборе и с теми же параметрами сети RS485.
И функция ReadUInt(***) работает ...


Среда программирования VisualBasic_.NET.

Что делать ?

Дмитрий Егоренков
03.03.2008, 14:56
надо делать так: res = ReadFloat24(84, 0, "Pv", val, -1)
и вот так: res = ReadUInt(80, 0, "In-t", uval, 0);

Hobbies
03.03.2008, 14:59
И еще, библиотека (owen_io_lib) писалась, подозреваю, на Си. Мне кажется, использование библиотеки упростится, если указать версию языка разработки, а еще лучше сразу длины параметров функций в байтах.
Заранее спасибо.

Hobbies
03.03.2008, 15:09
>надо делать так: res = ReadFloat24(84, 0, "Pv", val, -1)
это будет соответствовать 1-му каналу, видимо (адрес прибора=84) ?
а со 2-го канала ?
у меня SP правильно читались (и записывались) такими вызовами :
1-й канал: res = ReadFloat24(84, 0, "SP ", val, 0)
2-й канал: res = ReadFloat24(84, 0, "SP ", val, 1)

и какой командой читать текущее значение управляющей уставки ?

все это ТРМ202 !

Дмитрий Егоренков
03.03.2008, 16:19
> а со 2-го канала ?
ReadFloat24(84 + 1 , 0, "Pv", val, -1)

> у меня SP правильно читались (и записывались) такими вызовами :
SP, в отличие от PV, не оперативный параметр.

> и какой командой читать текущее значение управляющей уставки ?
не знаю, что это. разве не SP?

Дмитрий Егоренков
03.03.2008, 16:22
ну да, на c. а что, есть какие-то проблемы с вызовом функций?

Hobbies
03.03.2008, 16:41
>ну да, на c. а что, есть какие-то проблемы с вызовом функций?
конечно есть: не понятно, для какой версии Basic'a приведены вызовы в примерах и help-файле, и соответственно, какова длинна переменных ...

>> и какой командой читать текущее значение управляющей уставки ?
>не знаю, что это. разве не SP?

нет, SP - это устанавливаемая температура.

а я имею в виду текущее значение выходов ВУ1 и ВУ2 (рис.1, стр.12 Руководства по эксплуатации на ТРМ202), как называется этот параметр и какой функцией его читать ?

Дмитрий Егоренков
04.03.2008, 11:01
owen_io.dll - обычная динамическая библиотека, из которой экспортированы функции точно такие же, как любые функции Win API. Он версии бейсика они не зависят.

ТРМ202 не умеет отдавать нужные вам значения. А SP - это все-таки уставка.

Hobbies
04.03.2008, 15:15
Точно, от версии языка, ИЗ КОТОРОГО вызывается бибилиотечная функция, сама бибилиотека (owen_io.dll) не зависит. Но в вызывающей программе, как известно, обязано присутствовать объявление библиотечных функций. И вот это объявление должно точно соответствовать определениям функций в самой библиотеке.
В VB_.NET длина integer и long отличается от длинн в версии VB6. Подобное может иметь место и для версий других языков.

Hobbies
04.03.2008, 15:16
... и спасибо за помощь с чтением параметров, все заработало -))

Дмитрий Егоренков
04.03.2008, 15:50
да, нехорошо получилось. посмотрим, что можно сделать.

Hobbies
05.03.2008, 10:46
не смертельно
... зато есть на чем "мозги размять", а то берешь Help от MS и сразу все понятно, все описано (ну или почти все) и думать не надо, только пиши себе -)))

я бы предложил примеры приводить к каждой функции в виде 2-х фрагментов кода:
1. Объявление функции производится в следующем формате ********,
типы параметров следующие : *****.
2. Вызов функции производится в следующем формате : ********.
Особые случаи задания значений параметров следующие : ********.

Дмитрий Егоренков
05.03.2008, 11:15
к сожалению, мы не майкрософт ))