OPC связь, разрывы и смена сипгналов

Общие вопросы по оборудованию и программному обеспечению Компании ДЭП
Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 05 авг 2009, 02:34

Уважаемый деп, вот аткой вопрос..

есть КП удалённый и связывающийся с WD по GPRS

когад пропадает конект, через некоторое время (время опроса в беще клиент) все сигналы записываются как улевые и вних устанавливается код ошибки типа нет связи с источником данных...

так вот при чтении такого сигнала с OPC клиента как можно узнать что он ложный ... а то у емня система не правельно реагирует на празрыв ...

dws
Администратор
Сообщения: 118
Зарегистрирован: 29 май 2009, 13:45
Откуда: Компания ДЭП
Контактная информация:

Сообщение dws » 05 авг 2009, 08:48

Faster писал(а):... как можно узнать что он ложный ...

Проверить качество OPC - элемента ;)

Аватара пользователя
Kirill
Сообщения: 38
Зарегистрирован: 13 дек 2004, 17:12

Сообщение Kirill » 05 авг 2009, 11:42

Код: Выделить всё

TdepUserItem * Sensor;
...
...
...

if (Sensor->Connected && Sensor->Quality.IsGood())
{
    ;
}

Faster
Сообщения: 653
Зарегистрирован: 11 июл 2007, 09:38

Сообщение Faster » 10 авг 2009, 02:30

ХМ как не странно это условие рпоходит по всем без вопроса даже если он устанавливается при разрыве связи.

Светлана
Сообщения: 329
Зарегистрирован: 06 июн 2005, 15:27
Откуда: Компания ДЭП

Сообщение Светлана » 10 авг 2009, 13:25

Если в Конфигураторе Вы видите, что дискрет неопределен, то в OPC-сервере будет качество - Bad (можно посмотреть любым OPC-проводником). А потом уже разбирайтесь со своим программным кодом. Лучше тренироваться на дискрете, значение которого будете менять Конфигуратором вручную.

KoMaNi
Сообщения: 72
Зарегистрирован: 09 мар 2006, 15:19
Откуда: г. Лангепас

Сообщение KoMaNi » 11 авг 2009, 05:45

Подcкажите, можно ли программно в WinDecont по OPC ЗАПИСАТЬ неопределенность и как.
Очень надо, а то приходится писать типа -999999…

Аватара пользователя
Kirill
Сообщения: 38
Зарегистрирован: 13 дек 2004, 17:12

Сообщение Kirill » 11 авг 2009, 11:28

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", вопрос к сотрудникам Депа: нужно ли делать такую проверку?

^Guffi^

Сообщение ^Guffi^ » 11 авг 2009, 12:39

Здравствуйте.
Пишу на делфи, используемый мной компонент prOPC позволяет записать только значение (тип OleVariant) в ОРС-сервер. Нет-ли значения, скажем строка "BAD" или пустота NULL, в DEPOPC при записи которого в базе параметров оказалась неопределенность?


при записи NULL-значения выдает "несовпадение типов" (что вполне естесственно), пробовал записать 1Е-273 (раньше именно это число было при неопределенности) результат 0 (что тоже естественно)