Страница 1 из 1
Добавлено: 05 авг 2009, 02:34
Faster
Уважаемый деп, вот аткой вопрос..
есть КП удалённый и связывающийся с WD по GPRS
когад пропадает конект, через некоторое время (время опроса в беще клиент) все сигналы записываются как улевые и вних устанавливается код ошибки типа нет связи с источником данных...
так вот при чтении такого сигнала с OPC клиента как можно узнать что он ложный ... а то у емня система не правельно реагирует на празрыв ...
Добавлено: 05 авг 2009, 08:48
dws
Faster писал(а):... как можно узнать что он ложный ...
Проверить качество OPC - элемента

Добавлено: 05 авг 2009, 11:42
Kirill
Код: Выделить всё
TdepUserItem * Sensor;
...
...
...
if (Sensor->Connected && Sensor->Quality.IsGood())
{
;
}
Добавлено: 10 авг 2009, 02:30
Faster
ХМ как не странно это условие рпоходит по всем без вопроса даже если он устанавливается при разрыве связи.
Добавлено: 10 авг 2009, 13:25
Светлана
Если в Конфигураторе Вы видите, что дискрет неопределен, то в OPC-сервере будет качество - Bad (можно посмотреть любым OPC-проводником). А потом уже разбирайтесь со своим программным кодом. Лучше тренироваться на дискрете, значение которого будете менять Конфигуратором вручную.
Добавлено: 11 авг 2009, 05:45
KoMaNi
Подcкажите, можно ли программно в WinDecont по OPC ЗАПИСАТЬ неопределенность и как.
Очень надо, а то приходится писать типа -999999…
Добавлено: 11 авг 2009, 11:28
Kirill
KoMaNi писал(а):Подcкажите, можно ли программно в WinDecont по OPC ЗАПИСАТЬ неопределенность и как.
Очень надо, а то приходится писать типа -999999…
можно:
Код: Выделить всё
TdepUserItem * n = depOPCDesigner->AddNewUserItem();
n->OPCName = "{\\0:Discret:1}";
// if (n->Connected)
// {
TdepOPCQuality * qual = new TdepOPCQuality();
qual->SetBad();
Variant error_code = 0;
n->WriteToItem(error_code, (*qual), true);
delete qual;
// }
не уверен по поводу проверки "n->connected", вопрос к сотрудникам Депа: нужно ли делать такую проверку?
Добавлено: 11 авг 2009, 12:39
^Guffi^
Здравствуйте.
Пишу на делфи, используемый мной компонент prOPC позволяет записать только значение (тип OleVariant) в ОРС-сервер. Нет-ли значения, скажем строка "BAD" или пустота NULL, в DEPOPC при записи которого в базе параметров оказалась неопределенность?
при записи NULL-значения выдает "несовпадение типов" (что вполне естесственно), пробовал записать 1Е-273 (раньше именно это число было при неопределенности) результат 0 (что тоже естественно)