Часто задаваемые вопросы
Если вы не найдете здезь ответа на интересующий вас вопрос, задайте его на этой странице.
Поддерживается ли в вашем OPC Toolkit спецификация OPC Data Access 3.00?
Да, OPC Data Access 3.00 полностью поддерживается во всех версиях Graybox OPC Server Toolkit,
начиная с версии 3.00.
Поддерживается ли в вашем OPC Toolkit разработка серверов in-proc (DLL)?
Да, поддержка in-proc появилась в версии Graybox OPC Server Toolkit v2.4.4.
Используйте класс GBDataAccessInproc.
С какими компиляторами можно использовать Graybox OPC Server Toolkit?
Graybox OPC Server Toolkit совместим с любым компилятором C++, поддерживающим динамическую
компоновку.
Это может быть компилятор, использующий формат
двоичных файлов COFF (Microsoft Visual C++, Microsoft Visual Studio и др) или OMF (Borland C++ Builder, Borland Developer Studio, компиляторы от Intel и др).
Я создал тэги, указав их значения. Почему эти значения не высылаются OPC-клиенту через IOPCDataCallback?
Потому что значения тэгов, указанных в GBCreateItem (или других методах создания тэгов), помещаются
во вторичный кэш. Чтобы эти значения могли быть сообщены клиентам, их нужно
переместить в первичный кэш. Вы можете сделать это очень просто: после создания тэгов вызовите
GBBeginUpdate() и сразу GBEndUpdate(FALSE).
Для каких тэгов OPC-сервера имеет смысл полоса пропускания?
Полоса пропускания (deadband) поддерживается только для аналоговых тэгов, т.е. для тэгов типа
OPC_ANALOG.
Клиент создал активную OPC-группу. Почему GBOnReadItems не вызывается периодически (с периодом опроса группы)?
Потому что OPC-сервер не обязан (и в большинстве случаев не должен) читать тэги из устройств
с периодом опроса как у OPC-групп. Сервер должен считывать значения тэгов из устройств только когда клиент
явно этого требует (в вызове от OPC-клиент к OPC-серверу указан источник данных OPC_DS_DEVICE или указан
maxage). В остальном повидение OPC-сервера в отношении опроса устройств и обновлений кэша значений
абсолютно не зависит от OPC-клиентов.
Вызывается ли GBOnReadItems, когда OPC-клиент читает значения свойств, ассоциированных с тэгами?
Нет.
OPC-клиент записывает тэг A, с которым ассоциировано свойства P некоторого другого тэга B. Будет ли записано значение этого свойства P ядром сервера?
Нет. Однако, когда OPC-клиент прочитает значение этого свойства P, то он получит то значение, которое
записывал в тэг A. Но, если вы вызовите GBGetPtoperty, то увидите старое значение свойства P. Чтобы
избежать этого, вы должны в обработчике GBOnWriteItems вручную обновить значение свойства P с помощью
GBSetProperty, хотя в большинстве случаев в этом нет необходимости.
Что я получу, вызвав GBGetProperty?
Вы получите значение самого свойства, но не значение тэга, ассоциированного со свойством.
Описания каких свойств уже есть в ядре Graybox OPC Server Toolkit?
В библиотеках Graybox уже содержатся описания всех стандартных свойств, т.е. свойств, приведенных
в спецификации OPC Data Access. Когда вы добавляете такие свойства к тэгам, то вам не нужно
указывать строку описания свойства.
Какова организация адресного пространства OPC-серверов?
Адресное пространство для всех OPC-серверов, разработанных с Graybox OPC Server Toolkit - иерархическое. Если вам нужно одноуровневое адресное пространство, то просто не
создавайте ветвлений.
Является ли адресное пространство OPC-сервера динамическим?
Вы можете создавать новые тэги в любой момент времени, но вы не можете удалять тэги. Вообще, динамическое
изменение адресного пространства тэгов OPC-сервера (OPC Data Access) не согласуется со спецификацией, у
сервера просто нет возможности сообщать об этих изменениях клиентам.
Поддерживается ли точка продолжения (Continuation Point) в интерфейсе IOPCBrowse?
Да.
Можно ли создать несколько разных OPC-серверов в одном процессе?
Да, можно. Вы можете создать произвольное количество экземпляров класса GBDataAccess (или его потомков),
каждый из них будет представлять отдельный OPC-сервер. Но тогда вам нужно зарегистрировать отдельный CLSID на каждый OPC-сервер.
Поддерживается ли разработка OPC-серверов для Windows CE?
Да. Поддерживается Windows CE 3.0 и страше. Поддерживаемые платформы: ARMV4, ARMV4I, MIPSII, MIPSII_FP, MIPSIV, MIPSIV_FP, SH3, SH4, x86, x86 Emulator.