Você está na página 1de 40

ndice Interfaz OPC Custom Interfaz OPC Automation

1 2

SIMATIC Computing Interfaz OPC Server


Manual

Este manual se basa en la versin 2.0 de la especifiacin OPC de la Fundacin OPC.

Este manual slo est disponible en ingls y espaol.

Edicin 07/2002
A5E00170811-01

Consignas de seguridad para el usuario


Este manual contiene las informaciones necesarias para la seguridad personal as como para la prevencin de daos materiales. Las informaciones estn puestas de relieve mediante seales de precaucin. Las seales que figuran a continuacin representan distintos grados de peligro:

! ! !

Peligro
Significa que, si no se adoptan las medidas preventivas adecuadas, se producir la muerte, o bien lesiones corporales graves o daos materiales considerables.

Advertencia
Significa que, si no se adoptan las medidas preventivas adecuadas, puede producirse la muerte, lesiones corporales graves o daos materiales considerables.

Precaucin
Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones corporales.

Precaucin
Significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse daos materiales.

Atencin
Se trata de una informacin importante, sobre el producto o sobre una parte determinada del manual, sobre la que se desea llamar particularmente la atencin.

Personal cualificado
Slo est autorizado a intervenir en este equipo el personal cualificado. En el sentido del manual se trata de personas que disponen de los conocimientos tcnicos necesarios para poner en funcionamiento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas estndar de seguridad.

Uso conforme
Considere lo siguiente:

Advertencia
El equipo o los componentes del sistema slo se podrn utilizar para los casos de aplicacin previstos en el catlogo y en la descripcin tcnica, y slo con los equipos y componentes de proveniencia tercera recomendados y homologados por Siemens. El funcionamiento correcto y seguro del producto presupone un transporte, un almacenamiento, una instalacin y un montaje conforme a las prcticas de la buena ingeniera, as como un manejo y un mantenimiento rigurosos.

Marcas
SIMATIC , SIMATIC NET y SIMATIC HMI son marcas registradas por SIEMENS AG. Los restantes nombres y designaciones contenidos en el presente documento pueden ser marcas registradas cuya utilizacin por terceros para sus propios fines puede violar los derechos de los proprietarios.

Copyright W Siemens AG 2002 All rights reserved La divulgacin y reproduccin de este documento, as como el uso y la comunicacin de su contenido, no estn autorizados, a no ser que se obtenga el consentimiento expreso para ello. Los infractores quedan obligados a la indemnizacin de los daos. Se reservan todos los derechos, en particular para el caso de concesin de patentes o de modelos de utilidad. Siemens AG Bereich Automation and Drives Geschaeftsgebiet Industrial Automation Systems Postfach 4848, D- 90327 Nuernberg Siemens Aktiengesellschaft

Exencin de responsabilidad Hemos probado el contenido de esta publicacin con la concordancia descrita para el hardware y el software. Sin embargo, es posible que se den algunas desviaciones que nos impiden tomar garanta completa de esta concordancia. El contenido de esta publicacin est sometido a revisiones regularmente y en caso necesario se incluyen las correcciones en la siguiente edicin. Agradecemos sugerencias.

Siemens AG 2002 Sujeto a cambios sin previo aviso. A5E0017081 1-01

ndice
1 Interfaz OPC Custom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 1.2 1.3 1.4 1.5 2 Crear y utilizar un objeto OLE en C/C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informacin adicional sobre la descripcin de la interfaz OPC Custom . . . . . . . . El objeto OPCServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetos de la categora OPC Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interfaz IDataObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 1-5 1-6 1-11 1-16 2-1 2-2 2-5 2-6 2-8 2-10 2-12 2-15 2-17

Interfaz OPC Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Crear y usar un objeto OLE en Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelo de objeto de la interfaz de automatizacin . . . . . . . . . . . . . . . . . . . . . . . . . El objeto OPCServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El objeto OPCBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El objeto de coleccin OPCGroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El objeto OPCGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El objeto de coleccin OPCItems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . El objeto OPCItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Figure
1-1 1-2 1-3 2-1 2-2 Objeto OPC Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objeto OPC Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interfaces IAdviseSink (cliente) y IDataObject (servidor) . . . . . . . . . . . . . . . . . . . . Activar la referencia para la interfaz de automatizacin . . . . . . . . . . . . . . . . . . . . . Modelo de objeto de la interfaz de automatizacin . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 1-11 1-16 2-2 2-5

Tabelle
1-1 2-1 2-2 2-3 2-4 2-5 2-6 Objetos e interfaces de la interfaz OPC Custom . . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades de el objeto OPCServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades del objeto OPCBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades del objeto OPCGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades del objeto OPCGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades del objeto de coleccin OPCItems . . . . . . . . . . . . . . . . . . . . . . . . . Propiedades del objeto OPCItem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-5 2-6 2-8 2-10 2-12 2-15 2-17

Interfaz OPC de servidor A5E0017081 1-01

ndice

ii

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

Resumen del captulo


En este captulo se describe el manejo de la interfaz OPC Custom. Aqu encontrar tambin una relacin de las interfaces y los mtodos de la interfaz OPC Custom. No es objetivo de este manual describir detalladamente la interfaz, pero contiene informacin adicional y especfica sobre el software Computing. Ahora existe una versin ampliada de la interfaz OPC Custom, la especificacin 2.0. La versin 2.0 complementa diferentes aspectos de la interfaz OPC Custom anterior, especialmente aqullos que simplifican el manejo de la comunicacin asncrona. Las interfaces de la versin 1.0 de la interfaz OPC son completamente compatibles con la versin 2.0.

Apartado 1.1 1.2 1.3 1.4 1.5

Descripcin Crear y utilizar un objeto OLE en C/C++ Informacin adicional sobre la descripcin de la interfaz OPC Custom El objeto OPCServer Objetos de la categora OPC Group Interfaz IDataObject

Pgina 1-2 1-5 1-6 1-11 1-16

Interfaz OPC de servidor A5E0017081 1-01

1-1

Interfaz OPC Custom

1.1

Crear y utilizar un objeto OLE en C/C++


El siguiente apartado descibe paso a paso cmo activar los mtodos de una instancia de una categora OLE en C++. Debe tener en cuenta la diferencia entre el trmino Categora en OLE y en C++: Categoras OLE: Un objeto de Windows es una instancia de una categora OLE. El trmino categora OLE difiere del trmino categora usado en C++. Categoras C++: En C++ una categora es una definicin de tipo. Sin embargo, una categora OLE es una descripcin de objeto y no contiene tipos.

Cdigo de identificacin de categora


Cada una de las categoras OLE puede identificarse de forma unvoca con un cdigo de identificacin de 128 bits de longitud, el CLSID. El sistema operativo utiliza ese cdigo para la asignacin unvoca de un archivo DLL o EXE que utiliza esta categora. Cuando un cliente desea utilizar un objeto de una categora, slo necesita el CLSID.

ProgID
Para simplificar la identificacin de servidores OPC, generalmente hay un nombre legible, el ProgID asignado en los CLSIDs. Mientras que CLSID siempre es nico debido al algoritmo de la compilacin, un ProdID puede repetirse. Igual que ocurre con el CLSID, el ProgID lo especifica el proveedor de un servidor OPC. El ProgID para el servidor OPC de Computing es: OPCServer.WinAC

Crear un objeto COM


Para crear un objeto COM se requieren cinco pasos: 1. Inicializar COM. 2. Buscar el CLSID. 3. Crear un objeto. 4. Activar una funcin OPC. 5. Liberar las interfaces utilizadas.

Paso 1: Inicializar COM


Antes de poder utilizar las funciones de COM, debe inicializarse la librera COM con el siguiente orden:
HRESULT r1; r1 = CoInitialize(NULL);

1-2

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

Paso 2: Buscar el CLSID


Si se conoce el nombre de un objeto, el CLSID puede buscarse con la funcin CLSIDFromProgID. Ejemplo: El siguiente apartado describe cmo buscar el CLSID para el servidor OPC para Computing.
CLSID clsid; // Get the CLSID from the Name r1 = CLSIDFromProgID((LOPCServer.WinAC),&clsid);

Paso 3: Crear un objeto


Si un cliente quiere utilizar un objeto, transfiere el CLSID al sistema operativo y solicita una instancia del objeto. Independientemente de la localizacin del servidor, la solicitud del objeto siempre se dirige a COM. La funcin CoCreateInstance crea un objeto perteneciente a la categora solicitada. Esta funcin incluye ciertos pasos intermedios a travs de la interfaz IClassFactory. La creacin de un objeto con IClassFactory resulta ms eficaz si se deben crear varios objetos de una categora. Ejemplo: A continuacin se muestra cmo puede crearse un objeto de la categora OPCServer con referencia a la interfaz IUnknown.
IUnknown * pOPCUnknown; r1 = CoCreateInstance (clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**) &pOPCUnknown );

Paso 4: Activar una funcin OPC


En este paso se utiliza un mtodo de la interfaz IOPCServer del objeto creado para conocer el estado del servidor. Primero se proporciona un indicador a la interfaz IOPCServer a travs de IUnKnown. Finalmente se activa el mtodo GetStatus. Ejemplo: El programa que se muestra a continuacin indica el estado del servidor y la informacin del proveedor. Si el mtodo GetStatus se activa con xito, el servidor OPC localiza las reas de memoria correspondientes a la informacin de retorno a travs de la interfaz IMalloc. El usuario debe volver a liberar las reas de memoria.
IOPCServer *pOPCServer; OPCSERVERSTATUS *pss; r1 = pOPCUnknown>QueryInterface(IID_IOPCServer, (void**)&pOPCServer); r1 = pOPCServer >GetStatus(&pss); printf(Status.szVendorInfo = %ls\n, pss> szVendorInfo); // Remember to release the memory returned by the method pIMalloc>Free(pss>szVendorInfo); pIMalloc>Free(pss);

Interfaz OPC de servidor A5E0017081 1-01

1-3

Interfaz OPC Custom

Paso 5: Liberar las interfaces utilizadas


Los objetos incluyen contadores de referencias que permiten detectar si el objeto ya no se necesita y puede eliminarse a s mismo de la memoria. Cada vez que se activa la funcin QueryInterface, el valor del contador de referencias incrementa. Para liberar el objeto es necesario reiniciar el contador. Ejemplo: Los siguientes comandos permiten inicializar el contador de referencias para las interfaces IUnknown y IOPCServer.
pOPCServer>Release(); pOPCUnknown>Release();

1-4

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

1.2

Informacin adicional sobre la descripcin de la interfaz OPC Custom


En este manual no se describen en profundidad la las interfaces OPC. Esta informacin se suministra sin embargo conjuntamente con este producto en un documento en forma de archivo redactado por la Fundacin OPC en lengua inglesa. Los documentos se encuentran en el directorio DOC del directorio de productos del servidor OPC para Computing. En la siguiente informacin adicional referente a las interfaces figuran los objetos de OPC, sus interfaces y los mtodos definidos en estas interfaces, destacando las caractersticas especiales del servidor OPC para Computing.

Valores de retorno
Todos los mtodos relacionados dan un resultado del tipo HRESULT.

Breve descripcin de los objetos y las interfaces


Tabla 1-1 Objetos e interfaces de la interfaz OPC Custom Objeto IOPCServer IOPCServerPublicGroups (opcional) IOPCBrowseServerAddressSpace (opcional) OPCServer IOPCItemProperties (nuevo en V 2.0) IConnectionPointContainer (nuevo en V 2.0) IOPCCommon (nuevo en V 2.0) IPersistFile (opcional) IOPCGroupStateMgt IOPCPublicGroupStateMgt (opcional) IOPCASyncIO2 (nuevo en V 2.0) IOPCAsyncIO (no es necesario en V2.0) OPCGroup IOPCItemMgt IConnectionPointContainer (nuevo en V 2.0) IOPCSyncIO IDataObject (no es necesario en V2.0) EnumOPCItemAttributes IEnumOPCItemAttributes Interfaz

Interfaz OPC de servidor A5E0017081 1-01

1-5

Interfaz OPC Custom

1.3

El objeto OPCServer
La categora OPC server tiene diferentes atributos que contienen informacin sobre el estado, la versin, etc. de un objeto OPCServer. La categora OPC server tambin tiene mtodos que permiten al cliente gestionar los productos de la categora OPC group. Una aplicacin cliente slo se dirige a un objeto de esta categora directamente a travs de mecanismos COM. El resto de objetos se crea con los correspondientes mtodos OPC. Los mtodos de la interfaz IOPCServer se utilizan para gestionar los objetos de la categora OPC group. Los mtodos de la interfaz IOPCBrowseServerAddressSpace permiten averiguar el rea de direccionamiento del servidor. La figura 1-1 ilustra el objeto OPC Server con sus interfaces.
IUnknown IOPCServer IOPCBrowseServerAddressSpace IOPCCommon (V2.0) IConnectionPointContainer (V2.0) IOPCItemsProperties (V2.0) Figura 1-1 Objeto OPC Server Objeto OPC Server

Interfaz IOPCServer
Esta interfaz contiene mtodos para la gestin de grupos dentro de un objeto servidor. Tambin es posible obtener informacin sobre el estado actual del servidor.

AddGroup ( szName, bActive, dwRequestedUpdateRate, hClientGroup, pTimeBias, pPercentDeadband, dwLCID, phServerGroup, pRevisedUpdateRate, riid, ppUnk )

Crea un grupo en el objeto servidor. Notas: El servidor OPC para Computing no evala el parmetro pTimeBias. LCID es irrelevante para el servidor OPC para Computing. UpdateRate la especifica el parmetro de configuracin Minimum Update Rate como mltiplo del valor de configuracin. El parmetro pPercentDeadband slo es efectivo para variables del tipo real (VT_R4). Si el parmetro szName est vaco, se genera un nombre comenzando por el guin bajo (por ejemplo _123456). Por eso, los nombres definidos por el usuario no deberan comenzar por un guin bajo.

CreateGroupEnumerator ( dwScope, riid, ppUnk )

Crea varios enumeradores para el grupo. Nota: Dado que no hay grupos pblicos en el servidor OPC para Computing, los valores de retorno del parmetro dwScope ...PRIVATE y ...PUBLIC son idnticos.

1-6

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

GetErrorString ( dwError, dwLocale, ppString )

Proporciona el mensaje de error correspondiente a un cdigo de error especfico. Nota: El servidor OPC para Computing soporta textos de error en alemn e ingls. Los errores que detecta el sistema operativo Windows se describen en el idioma en que se ha instalado el sistema operativo.

GetGroupByName ( szName, riid, ppUnk )

Proporciona un indicador de interfaz adicional para el nombre de un grupo privado, es decir,, se ha aumentado el valor del contador de referencias.

GetStatus ( ppServerStatus )

Indica el estado del servidor. Nota: El valor de retorno del servidor OPC para Computing es el nombre y la versin del servidor OPC.

RemoveGroup ( hServerGroup, bForce )

Borra un grupo del servidor. Nota: El servidor OPC para Computing no acepta el uso del parmetro bForce. No se pueden borrar grupos para los cuales todava hay referencias activadas.

Interfaz IOPCBrowseServerAddressSpace
Esta interfaz contiene mtodos con los que se puede averiguar el rea de direccionamiento del servidor. El rea de direccionamiento contiene todos los elementos OPC que conoce el servidor.

BrowseAccessPaths ( szItemID, ppIEnumString )

Permite consultar la ruta de acceso de un ItemID. Nota: No es necesaria con el servidor OPC para Computing.

Interfaz OPC de servidor A5E0017081 1-01

1-7

Interfaz OPC Custom

BrowseOPCItemIDs ( dwBrowseFilterType, szFilterCriteria, vtDataTypeFilter, dwAccessRightsFilter, ppIEnumString )

Proporciona una cadena del tipo IEnumString cuyo contenido lo especifican los parmetros de llamada. La posicin desde la que se crea la lista puede definirse con el mtodo ChangeBrowsePosition. Notas: BRANCH excluye los filtros para Type y AccessRights. Las normas para la creacin de un filtro son las siguientes: Asterisco (*) Cualquier cadena de caracteres, incluidas las cadenas vacas Ms (+) Cualquier cadena de caracteres, siempre que contenga como mnimo un carcter Signos de interrogacin (?) Cualquier carcter nico Corchetes ( [ ] ) Un nico carcter del juego especificado Para utilizar un caracter cualquiera de filtro, ste debe estar precedido por una barra invertida (\).

ChangeBrowsePosition ( dwBrowseDirection, szString )

Permite buscar en el rea de direccionamiento. Se puede cambiar al nivel superior o a una rama.

GetItemID ( szItemDataID, szItemID )

Crea un ItemID completo en el rea de direccionamiento jerrquica. Esta funcin es necesaria dado que la bsqueda slo proporciona las designaciones por debajo del nodo actual. Nota: La descripcin de GetItemID en la especificacin OPC difiere de la descripcin de ChangeBrowsePosition. ChangeBrowsePosition permite especificar un ItemID completo. Por eso el servidor OPC para Computing ahora slo admite el comando GetItemID para hojas individuales (LEAF).

QueryOrganization ( pNameSpaceType )

Indica la estructura del rea de direccionamiento. El rea de direccionamiento puede estar organizada de forma plana o jerrquica. Nota: El rea de direccionamiento del servidor OPC para Computing tiene una estructura jerrquica.

1-8

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

IOPCCommon Interface (Versin 2.0)


La interfaz de la versin 2.0 de la interfaz OPC Custom contiene mtodos que permiten ajustar el idioma y dar a conocer el nombre del cliente al servidor.

SetLocaleID (dwLcid)

Define el cdigo de idioma del servidor. El cdigo de idioma especifica el idioma en el que se editan los textos del servidor. Nota: El servidor OPC para Computing est disponible en alemn e ingls.

GetLocaleID (pdwLcid)

Facilita el cdigo de idioma del servidor. Nota: El servidor OPC para Computing est disponible en alemn e ingls.

QueryAvailableLocaleIDs (pdwLcid)

Indica todos los cdigos de idioma disponibles del servidor. Nota: El servidor OPC para Computing est disponible en alemn e ingls.

GetErrorString (dwError, ppString)

Proporciona el texto de error especfico de un cdigo de error en el idioma seleccionado.

SetClientName (szName)

Transfiere un texto descriptivo desde el cliente al servidor. El servidor puede utilizar el texto descriptivo para cualquier fin, por ejemplo para abrir archivos de exploracin.

Interfaz IConnectionPointContainer
Esta interfaz es una interfaz COM estndar para la transmisin de eventos asncrona a travs de puntos de conexin. Para ms informacin sobre el uso de los puntos de conexin, vase la documentacin de OLE/COM.

Interfaz IOPCItemProperties (V 2.0)


Esta interfaz de la versin 2.0 contiene mtodos que permiten consultar informacin especfica del servidor sobre un elemento.

QueryAvailableProperties (szItemID, pdwCount, ppPropertyIDs, ppDescriptions, ppvtDataTypes )

Proporciona una lista de las propiedades disponibles para un elemento.

GetItemProperties (szItemID, dwCount, pdwPropertyIDs, ppvData, ppErrors )

Proporciona los valores correspondientes a las propiedades de un elemento transferidos en una lista de PropertyIDs.

Interfaz OPC de servidor A5E0017081 1-01

1-9

Interfaz OPC Custom

LookupItemIDs (szItemID, dwCount, pdwPropertyIDs, ppszNewItemIDs, ppErrors);

Proporciona (para los propertyIDs posibles) una lista de ItemIDs correspondientes a una lista de PropertyIDs. Estos ItemIDs pueden incluirse en un grupo con el fin de simplificar y acelerar el acceso a los datos. Nota: Esta funcin no es compatible con el servidor OPC para Computing La llamada se rechaza con el mensaje de error 0x8004001 (no est implementada).

1-10

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

1.4

Objetos de la categora OPC Group


La categora OPC Group gestiona la variables individuales del proceso, los elementos OPC. Con estos objetos grupo, un cliente puede formar unidades semnticas de elementos OPC y ejecutar operaciones con ellas. La figura 1-2 ilustra un objeto de la categora OPC Group y sus interfaces.
IUnknown IOPCItemMgt IOPCGroupStateMgt IOPCSyncIO IOPCAsyncIO IDataObject IOPCItemsAttributes Objeto OPC Group

IOPCAsyncIO2 (V 2.0) IConnectionPointContainer (V 2.0)

Figura 1-2

Objeto OPC Group

Interfaz IOPCItemMgt
Esta interfaz proporciona mtodos que permiten gestionar ms de un elemento de un grupo. Sello horario OPC proporciona un sello horario con cada valor que se lea. Este sello indica en qu momento se ha recibido o se ha cambiado este valor. Dado que los sistemas SIMATIC no utilizan un sello horario, la hora en la que el servidor recibe el valor se utiliza como sello horario.

Interfaz OPC de servidor A5E0017081 1-01

1-11

Interfaz OPC Custom

AddItems ( dwNumItems, pItemArray, ppAddResults, ppErrors )

Inserta uno o ms elementos en un grupo. Notas: Un nombre unvoco de un elemento del servidor OPC para Computing se genera de la siguiente manera: Ejemplos
MD0:Real EB0 DB1.DBD0

Este nombre puede especificarse en su forma completa en el ItemID. AccessPath (ruta de acceso) debe estar vaco. Tambin es posible incluir en AccessPath la parte del nombre que se encuentra entre corchetes. Ejemplo:
AccessPath: MD0:Real

Un mismo elemento OPC puede insertarse varias veces en el mismo grupo. No obstante, en ese caso cada uno de los elementos tiene su propio handle de servidor. Los handles de servidor slo son nicos dentro de un grupo y no para todos los elementos de todos los grupos. Los tipos de datos vlidos son los siguientes: VT_UI1, VT_UI2, VT_UI4, VT_I1, VT_I2, VT_I4, VT_R4, VT_BOOL, VT_BSTR

CreateEnumerator ( riid, ppUnk )

Crea un enumerador para los elementos de un grupo.

RemoveItems ( dwNumItems, phServer, ppErrors )

Borra uno o ms elementos de un grupo.

SetActiveState ( dwNumItems, phServer, bActive, ppErrors )

Ajusta el estado activado de uno o ms elementos de un grupo.

SetClientHandles ( dwNumItems, phServer, phClient, ppErrors )

Define el handle de cliente para uno o ms elementos de un grupo.

SetDatatypes ( dwNumItems, phServer, pRequestedDatatypes, ppErrors )

Ajusta el tipo de datos solicitado de uno o ms elementos de un grupo. Nota: Vase AddItem

1-12

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

ValidateItems ( dwNumItems, pItemArray, bBlobUpdate, ppValidationResults, ppErrors )

Comprueba la validez de un elemento OPC, por ejemplo si ha sido insertado en un grupo sin que se produjera ningn error y proporciona informacin como por ejemplo el tipo de datos cannico. Nota: Vase AddItem

IOPCGroupStateMgt Interface
La interfaz IOPCGroupStateMgt proporciona mtodos para la gestin de grupos. Pueden editarse parmetros de grupo especficos y copiar grupos.

CloneGroup ( szName, riid, ppUnk )

Genera una copia de un grupo. Se copian todos los atributos del grupo con la excepcin de los siguientes: El estado activo se ajusta a FALSE Se asigna un nuevo handle de servidor Nota: El parmetro szName puede estar vaco. En ese caso se genera un nombre unvoco (vase AddGroup).

GetState ( pUpdateRate, pActive, ppName, pTimeBias, pPercentDeadband, pLCID, phClientGroup, phServerGroup )

Facilita el estado del grupo. La aplicacin cliente debe indicar al servidor OPC dnde deben almacenarse los resultados mediante un indicador. Notas: El parmetro pTimeBias no tiene ninguna relevancia para el servidor OPC para Computing. El parmetro pPercentDeadband no tiene ninguna relevancia para el servidor OPC para Computing. El parmetro LCID, (valores textuales especficos de idioma en leer/escribir) es irrelevante para las variables de SIMATIC.

SetName ( szName )

Permite cambiar el nombre de un grupo. El nombre siempre debe ser unvoco.

Interfaz OPC de servidor A5E0017081 1-01

1-13

Interfaz OPC Custom

SetState ( pRequestedUpdateRate, pRevisedUpdateRate, pActive, pTimeBias, pPercentDeadband, pLCID, phClientGroup )

SetState permite cambiar varias propiedades del grupo. Notas: El parmetro pTimeBias no tiene ninguna relevancia para el servidor OPC para Computing. El parmetro pPercentDeadband no tiene ninguna relevancia para el servidor OPC para Computing. El parmetro LCID, (valores textuales especficos de idioma en leer/escribir) es irrelevante para las variables de SIMATIC. UpdateRate se especifica con el parmetro de configuracin Minimum Update Rate como mltiplo del valor de configuracin.

Interfaz IOPCSyncIO
Esta interfaz proporciona mtodos de lectura y escritura sncronos. En este caso, sncrono significa que el cliente espera hasta que la operacin de escritura o lectura se complete para continuar la ejecucin. El uso de llamadas sncronas se recomienda en los casos en los que el cliente necesita el resultado para continuar el procesamiento. El resto de clientes no quedan bloqueados ya que el servidor OPC para Computing inicia una hebra diferente para cada cliente. Por norma general se recomienda el uso de la interfaz IData para procesar cambios de variables (o IAdviseSink en el lado del cliente). Esta interfaz garantiza la mxima salida de datos posible reduciendo al mismo tiempo el nmero real de llamadas al mnimo absoluto (slo si se produce algn cambio).

Read ( dwSource, dwNumItems, phServer, ppItemValues, ppErrors )

Lee los valores, informacin de estado o sello horario de uno o ms elementos de un grupo. Los valores pueden leerse desde la memoria cach del servidor o directamente desde el hardware. La lectura desde la memoria cach slo es posible si el grupo est activado. Nota: La llamada se supervisa con el control de retraso (timeout) del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout.

Write ( dwNumItems, phServer, pItemValues, ppErrors )

Escribe valores de uno o ms elementos de un grupo en el hardware. Nota: La llamada se supervisa con el control de retraso (timeout) del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout.

Interfaz IOPCAsyncIO
Esta interfaz de la categora Group aporta mtodos de lectura y escritura asncrona de elementos. En este caso asncrona significa que el cliente activa una operacin de lectura o escritura y sigue procesando a continuacin. Las operaciones asncronas tienen un ID de transaccin. Una vez que el servidor completa la operacin de lectura o escritura, el cliente recibe un mensaje en su interfaz IAdviseSink.

1-14

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

Cancel ( dwTransactionID )

Cancela un trabajo pendiente.

Read ( dwConnection, dwSource, dwNumItems, phServer, pTransactionID, ppErrors )

Enva un comando de lectura asncrona. El resultado se enva a la interfaz IAdviseSink del cliente. Nota: La llamada se supervisa con el control de retraso (timeout) del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout. Si se cancela el control de retraso, se produce una llamada de retorno con hrStatus=E_ABORT.

Refresh ( dwConnection, dwSource, pTransactionID )

Solicita un valor actual para cada elemento OPC activo.

Write ( dwConnection, dwNumItems, phServer, pItemValues, pTransactionID, ppErrors )

Enva un comando de escritura asncrona. Nota: La llamada se supervisa con el control de retraso (timeout) del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout. Si se cancela el control de retraso, se produce una llamada de retorno con hrStatus=E_ABORT.

Interfaz OPC de servidor A5E0017081 1-01

1-15

Interfaz OPC Custom

1.5

Interfaz IDataObject
La interfaz IDataObject es la interfaz estndar para la transmisin de datos OLE. Contiene mtodos para establecer la conexin entre el cliente y el servidor.

Descripcin del mecanismo


Si el servidor quiere enviar un mensaje a un cliente, ste debe proporcionar un contacto al servidor. Ese contacto es la interfaz IadviseSink del cliente. Un servidor enva un mensaje a un cliente con el mtodo OnDataChange de la interfaz IAdviseSink del cliente.

Representacin del mecanismo


La figura 1-3 ilustra la interaccin de la interfaz IAdviseSink en el cliente y la interfaz IDataObject en el servidor.

Cliente

IDataObject::DAdvise

Servidor

IAdviseSink

IDataObject

IAdviseSink::OnDataChange Figura 1-3 Interfaces IAdviseSink (cliente) y IDataObject (servidor)

DAdvise (pFmt, adv, pSnk, pConnection);

Establece una conexin entre un servidor y el cliente. Si un cliente quiere recibir un mensaje, debe establecer una conexin con este mtodo. Transmite un indicador del servidor a la interfaz IAdviseSink.

DUnadvise (Connection)

Finaliza una conexin entre el servidor y el cliente.

1-16

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Custom

Interfaz IEnumOPCItemAttributes
Esta interfaz basada en la interfaz estndar IEnum devuelve los elementos de un grupo. La interfaz slo la proporciona IOPCItemMgr:CreateEnumerator. No puede obtenerse con QueryInterface.

Clone (ppEnumItemAttributes);

Crea una copia idntica del enumerador.

Next (celt, ppItemArray, pceltFetched);

Facilita el siguiente elemento OPC del grupo. Nota: Estas unidades de ingeniera no son compatibles con el servidor OPC para Computing. Por eso EUType y EUInfo son irrelevantes.

Reset (void);

Reinicia la lista desde el primer elemento del grupo.

Skip (celt);

Salta un nmero de elementos de la lista.

Interfaz IAsyncIO2 (Versin 2.0)


Esta interfaz de la versin 2.0 aporta mtodos de lectura y escritura asncrona de elementos. En este caso asncrona significa que el cliente activa una operacin de lectura o escritura para seguir procesando a continuacin. La versin 2 de la interfaz para la comunicacin asncrona utiliza puntos de conexin. Esto simplifica el procesamiento de los datos transferidos.

Read (dwCount, phServer, dwTransactionID, pdwCancelID, ppErrors)

Enva un comando de lectura asncrona. El resultado se enva al cliente a travs de un punto de conexin. Nota: La llamada se supervisa con el control de retraso (timeout) del servidor. Si se supera el tiempo predefinido, se indica con el estado E_ABORT.

Write (dwCount, phServer, pItemValues, dwTransactionID, pdwCancelID, ppErrors)

Enva un comando de escritura asncrona. El mensaje que indica que se ha completado la tarea llega a travs del punto de conexin especificado. Nota: La llamada se supervisa con el control de retraso (timeout) del servidor. Si se supera el tiempo predefinido, se indica con el estado E_ABORT.

Cancel2 (dwCancelID )

Cancela un trabajo pendiente.

Interfaz OPC de servidor A5E0017081 1-01

1-17

Interfaz OPC Custom

Refresh (dwSource, dwTransactionID, pdwCancelID)

Solicita un valor actual para cada elemento OPC activo.

SetEnable (bEnable)

Activa mensaje a travs de puntos de conexin. Los mensajes que se generan con el mtodo Refresh se envan independientemente de estas definiciones.

GetEnable (pbEnable)

Devuelve el valor actual de la marca de mensajes a travs de puntos de conexin.

Interfaz IConnectionPointContainer
Esta interfaz es una interfaz COM estndar para la transmisin de eventos asncronos a travs de puntos de conexin. Para ms informacin sobre el uso de los puntos de conexin, vase la documentacin de OLE o COM.

1-18

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

Resumen del captulo


Este captulo describe cmo manejar la interfaz OPC Automation. Adems, ofrece una relacin de las propiedades y los mtodos de esta interfaz. No se pretende aqu dar una descripcin detallada de la interfaz, pero se ofrece informacin adicional y especfica sobre el servidor OPC de Computing.

Versiones de la interfaz de automatizacin


La Fundacin OPC redact una especificacin sobre la versin 1.0 de la interfaz OPC Automation, pero esta especificacin era poco clara en algunos aspectos. Con la introduccin de Visual Basic 5.0 se evidenciaron algunos fallos de la versin 1.0. Desde mediados de 1998 est disponible una nueva versin de la especificacin de la interfaz de automatizacin que puede adquirirse con la versin 2.0. En la informacin sobre el producto podr consultar qu aspectos han sido aprobados por la Fundacin OPC. Este manual hace referencia a la versin 2.0 de la especificacin de la interfaz OPC Automation.

Apartado 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8

Descripcin Crear y usar un objeto OLE en Visual Basic Modelo de objeto de la interfaz de automatizacin El objeto OPCServer El objeto OPCBrowser El objeto de coleccin OPCGroups El objeto OPCGroup El objeto de coleccin OPCItems El objeto OPCItem

Pgina 2-2 2-5 2-6 2-8 2-10 2-12 2-15 2-17

Interfaz OPC de servidor A5E0017081 1-01

2-1

Interfaz OPC Automation

2.1

Crear y usar un objeto OLE en Visual Basic


Visual Basic de Microsoft es un entorno de desarrollo que utiliza la interfaz de automatizacin para facilitar el acceso a objetos OLE. En los siguientes apartados se describe el uso del servidor OPC con la versin 2.0 de la interfaz de automatizacin en Visual Basic. Se requiere como mnimo la versin 4 de Visual Basic.

Pasos a seguir para crear un objeto OPC


Crear un nuevo proyecto en Visual Basic. Seleccione el comando de men Project " References para abrir el cuadro de dilogo References. Active la referencia del servidor OPC para la interfaz de automatizacin 2.0 como se indica en la figura 2-1. Para crear un objeto OPC en Visual Basic deben realizarse estos cinco pasos: 1. Definir las variables 2. Enlazar el servidor OPC 3. Crear un grupo OPC 4. Insertar elementos OPC 5. Lectura sincronizada

Componentes Available References: Visual Basic For Applications Visual Basic runtime objects and procedures Visual Basic objects and procedures OLE Automation OPC Automation 2.0 Active Setup Control Library ActiveMovie control type library API Declaration Loader Automation 1.0 Type Library OK Cancel Browse

Haga clic sobre OPC Automation 2.0 y sobre el botn OK

OPC Automation 2.0 Location: C:\SIEMENS\Common\OCX\S7WCDATX.OCX Language: Standard

Figura 2-1

Activar la referencia para la interfaz de automatizacin

Paso 1: Declarar una variable para el tipo de objeto


En Visual Basic o Visual Basic for Applications, una variable del tipo de objeto se refiere a un objeto OLE. La instruccin DIM declara una instancia de objeto. Ejemplo:
Dim ObjServer As OPCServer

2-2

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

Paso 2: Crear y asignar el objeto


Crear un objeto servidor OPC: Los programas Visual Basic tambin son clientes OPC. Para poder acceder a una variable del proceso, el cliente deber crear primero un objeto servidor y despus enlazar con un servidor OPC. Ejemplo: La siguiente serie de cdigos muestra cmo un cliente Visual Basic puede enlazar con un objeto servidor OPC.
Set ObjServer = New OPCServer ObjServer.Connect (OPCServer.WinAC)

Paso 3: Crear un grupo OPC


El siguiente paso consiste en crear un objeto grupo para adaptar las variables del proceso. Primero se declara el objeto grupo y despus el objeto de coleccin. A continuacin, al objeto de coleccin declarado se le asignan grupos OPC, una propiedad del objeto servidor. Finalmente se crea un grupo mediante el mtodo de insercin del objeto de coleccin. Ejemplo: Las siguiente lneas muestran cmo se crea un grupo en Visual Basic.
Declaraciones Dim GroupObj As OPCGroup Dim GroupCollection As OPCGroups Set GroupCollection = ObjServer.OPCGroups Set GroupObj = GroupCollection.Add(MyGroup)

Paso 4: Insertar elementos OPC


A continuacin se insertan elementos OPC en el objeto grupo creado. Los elementos representan los enlaces con las variables del proceso y su parmetro ItemID especifica a qu variable se accede. El mtodo AddItems permite insertar varios elementos en un grupo en una sola llamada. Para que esto sea posible, los parmetros de transferencia y los valores de retorno son matrices unidemensionales de idntico tamao. La variable lNumItems contiene el nmero de elementos que se van a insertar. Cuando se llama este mtodo, el servidor inicializa los valores correspondientes a las matrices lServerHandles, lErrors y ItemsObj. La matriz IErrors contiene informacin sobre el estado de cada uno de los elementos insertados e indica si el elemento en cuestin ha sido insertado con xito o no.

Interfaz OPC de servidor A5E0017081 1-01

2-3

Interfaz OPC Automation

Ejemplo: En el siguiente ejemplo se crean dos elementos en el grupo OPC GrpObj creado previamente. El primer elemento representa MD0 y el segundo MD4.
Declaracin Dim ItemCollection As OPCItems Dim ItemServerHandle() As Long Const MAX_INDEX = 2 Dim lNumItems As Long Dim lClientHandles(MAX_INDEX) As Long Dim perror() As Long Dim szItemIDs(MAX_INDEX) As String Dim AccPath(MAX_INDEX) As String Dim ReqDataTypes(MAX_INDEX) As Integer Definicin de ItemIDs szItemIDs(1) = MD0:Real szItemIDs(2) = MD4:Real AccPath(1) = AccPath(2) = ReqDataTypes(1) = vbVLong ReqDataTypes(2) = vbVString lClientHandles(1) = 1 lClientHandles(2) = 2 Insertar elementos en grupo Set ItemCollection = GroupObj.OPCItems ItemCollection.Add MAX_INDEX, szItemIDs, lClientHandles, _ ItemServerHandle, perror, ReqDataTypes, AccPath

Paso 5: Lectura sncrona


En el ltimo paso se lleva a cabo una lectura sncrona de las variables de procesamiento de un grupo. En este caso sncrona significa que el servidor no devuelve el control al programa Visual Basic hasta que se hayan devuelto los resultados requeridos a travs del sistema de comunicacin. Eso significa que el flujo de comunicacin se retrasa el tiempo correspondiente a la duracin de esta comunicacin. Ejemplo: Tal y como ocurre con el comando AddItems, OPCRead tambin es una operacin de grupo, es decir, que dentro de un grupo puede accederse simultneamente a varias variables del proceso. El parmetro lNumItems especifica el nmero de variables que se van a leer. Cada una de las varibles se describe en la matriz lServerHandles con el handle asignado por el servidor.
Definicin de las variables para OPCRead Parmetro Out Dim vValues() As Variant Dim pErrors() as Long GroupObj.SyncRead OPCDevice, 2, ItemServerHandle, vValues, pErrors

2-4

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

2.2

Modelo de objeto de la interfaz de automatizacin


El modelo de objeto de la interfaz OPC Automation segn la especificacin 2.0 difiere del modelo descrito en el apartado 5.3. Otros objetos de coleccin independientes gestionan los objetos OPCGroup y OPCItem. Los objetos de coleccin cuentan con funciones de recuento de los objetos que tienen asignados. Las funciones de bsqueda tambin se recogen en un objeto independiente.

OPCServer
1:1 1:n

OPCGroups (objeto coleccin)


1:n

OPCBrowser

OPCGroup
1:1

OPCItems (objeto coleccin)


1:n

OPCItem

Figura 2-2

Modelo de objeto de la interfaz de automatizacin

Interfaz OPC de servidor A5E0017081 1-01

2-5

Interfaz OPC Automation

2.3

El objeto OPCServer
Los objetos correspondientes a la categora servidor OPC (OPCServer) los genera el cliente. Las propiedades de un servidor OPC contienen informacin general sobre el servidor. Cuando se crea un objeto OPCServer, tambin se crea adems un objeto de coleccin de OPCGroup como propiedad del objeto OPCServer.

Propiedades de OPCServer
Tabla 2-1 Propiedades de el objeto OPCServer Tipo Fecha y hora Fecha y hora Fecha y hora Nmero entero Nmero entero Nmero entero Cadena Largo Largo Grupos OPC Variante Variante Breve descripcin Hora en la que se inici el servidor (en UTC) La hora actual (UTC), tal y como el sistema se la indica al servidor La hora (UTC) en la que el servidor envi la ltima actualizacin de los datos al cliente El nmero mayor de la versin del servidor El nmero menor de la versin del servidor El nmero de build del servidor Informacin sobre el proveedor Estado del servidor Ancho de banda del servidor Una coleccin de objetos OPCGroup Los nombres de los grupos pblicos que proporciona este servidor Los nombres (ProgID) de los servidores OPC registrados. Utilice uno de estos nombres para el mtodo Connect. Los nombres se entregan de vuelta en forma de una matriz de cadenas.

Propiedad StartTime CurrentTime LastUpdateTime MajorVersion MinorVersion BuildNumber VendorInfo ServerState Bandwidth OPCGroups PublicGroup Names OPCServers

Notas: El servidor OPC para Computing indica lo siguiente como informacin sobre el vendedor: Computing OPC-Server Los grupos pblicos no son compatibles con el servidor OPC para Computing. La propieda Bandwith no es compatible con el servidor OPC para Computing.

2-6

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

Mtodos de OPCServer
Connect (ProgID As String, Optional NodeName As String) As Long

Estructura de un enlace con un servidor OPC. El ProgID para Computing es: OPCServer.WinAC

Disconnect ()

Estructura del enlace con un servidor OPC. Nota: El servidor OPC para Computing cierra todas las comunicaciones tras la desconexin del ltimo cliente OPC.

ReleaseAll ()

Borra todos los grupos y elementos actuales a modo de preparacin para la desconexin.

CreateBrowser () As OPCBrowser

Crea un objeto de la categora de buscador OPC para averiguar el rea de direccionamiento del servidor. Nota: Vase la descripcin del objeto en el apartado 2.4.

GetErrorString (ErrorCode As Long , Optional LocaleID As Long) As String

Emite el mensaje de error referente a un cdigo de error especfico. Nota: El servidor OPC para Computing dispone de textos de error en alemn e ingls. Los errores que detecta el sistema operativo Windows se describen en el idioma en que se ha instalado el sistema operativo.

Interfaz OPC de servidor A5E0017081 1-01

2-7

Interfaz OPC Automation

2.4

El objeto OPCBrowser
El objeto OPCBrowser es una coleccin que permite averiguar el rea de direccionamiento del servidor OPC. Debe crearse un objeto de la categora OPCBrowser con el mtodo CreateBrowser para el objeto OPCServer. Pueden crearse diferentes objetos OPCBrowser para un servidor.

Propiedades de OPCBrowser
Tabla 2-2 Propiedades del objeto OPCBrowser Tipo Largo Cadena Nmero entero Largo Breve descripcin La estructura organizativa del rea de direccionamiento: jerrquica o plana El filtro eficaz para los mtodos ShowBranches y ShowLeafs El tipo de datos necesario para el mtodo ShowLeafs. El valor por defecto para esta propiedad es vbEmpty. Los derechos de acceso necesrios para el mtodo ShowLeafs.

Propiedad Organization Filter DataType AccessRights CurrentPosition

Cadena (slo Posicin actual del rea de direccionamiento en el rbol lectura) jerrquico. El valor es si la ruta se inicializa o si la estructura es plana. Largo Propiedades necesarias para la coleccin, indica el nombre de entredas

Count

Notas: La estructura del rea de direccionamiento del servidor OPC para Computing es jerrquica. Las normas para la creacin de un filtro son las siguientes: Asterisco (*) Ms (+) Signo de interrogacin (?) Corchetes ( [ ] ) Cualquier cadena de caracteres, incluidas las cadenas vacas Cualquier cadena de caracteres siempre que contenga como mnimo un carcter Cualquier carcter individual Exactamente un carcter del juego especificado

Para utilizar cualquiera de los caracteres de filtro, ste debe estar precedido por una barra invertida (\).

2-8

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

Mtodos de OPCBrowser
Item (Key As Variant) As String

Indica el nombre de la entrada especificada en el ndice Key.

ShowBranches ()

Introduce en la coleccin el nombre de las ramas de la posicin actual.

ShowLeafs (Optional Flat As Boolean)

Introduce en la coleccin el nombre de las hojas de la posicin actual. Si el parmetro Flat est activado, se completa la coleccin con todas las hojas de las ramas actual e inferiores comenzando por la posicin actual. El estado por defecto de Flat es desactivado.

MoveUp ()

Sube la posicin actual un nivel dentro del rea de direccionamiento.

MoveDown (Branch As String)

Baja la posicin actual dentro del rea de direccinamiento a la rama actual (un nivel menos).

MoveToRoot ()

Mueve la posicin actual dentro del rea de direccionamiento a la raz.

GetItemID (Leaf As String) As String

Crea un ItemID completo en el rea de direccionamiento jerrquica. Esta funcin es necesaria dado que la bsqueda en s slo proporciona las designaciones por debajo del nodo actual.

GetAccessPaths (ItemID As String) As Variant

Proporciona la posibilidad de consultar la ruta de acceso en un ItemID. Nota: No es necesaria con el servidor OPC para Computing.

Interfaz OPC de servidor A5E0017081 1-01

2-9

Interfaz OPC Automation

2.5

El objeto de coleccin OPCGroups


El objeto OPCGroups es un objeto de coleccin para crear y administrar los grupos OPC. Las propiedades predeterminadas de los grupos OPC especifican los valores por defecto para la creacin de todos los grupos OPC. Los grupos pblicos no son compatibles con el servidor OPC para Computing.

Propiedades de OPCGroup
Tabla 2-3 Propiedades del objeto OPCGroup Tipo Servidor OPC (slo lectura) Booleano Breve descripcin Proporciona una referencia al objeto servidor OPC correspondiente Especifica el valor inicial de la propiedad ActiveState de grupos OPC recin creados Estado por defecto: activada DefaultGroupUpdate Largo Especifica el valor inicial de la propiedad update rate de grupos OPC recin creados Estado por defecto: 1000 milisegundos DefaultDeadband DefaultLocale DefaultTimeBias Count nico Largo Largo Largo Especifica el valor inicial de la propiedad Deadband de grupos OPC recin creados Especifica el valor inicial de la propiedad locale ID de grupos OPC recin creados Especifica el valor inicial de la propiedad time bias de grupos OPC recin creados Propiedades necesarias para la coleccin, indica el nombre de entredas

Propiedad Parent DefaultGroupActive

Notas: El servidor OPC para Computing no evala la propieda DefaultTimeBias. DefaultLocale es irrelevante para el servidor OPC para Computing. La propiedad DefaultGroupUpdate es especificada por el parmetro de configuracin Minimum Update Rate como mltiplo del valor de configuracin. La propiedad DefaultDeadband no tiene ninguna relevancia para el servidor OPC para Computing.

2-10

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

Mtodos de OPCGroups
Item (Key As Variant) As OPCGroup

Proporciona una referencia al objeto de la coleccin indexado.

Add (Name As string, ByRef ServerHandle As Long) As OPCGroup

Crea un grupo en el objeto servidor. Nota: Si el parmetro szName est vaco, se genera un nombre comenzando por el guin bajo (por ejemplo _123456). Por eso, los nombres definidos por el usuario no deberan comenzar por un guin bajo.

GetOPCGroup (Key As Variant) As OPCGroup

Proporciona la referencia al grupo OPC indicado por el nombre o por el handle del servidor.

Remove (Key As Variant)

Borra un grupo del servidor.

RemoveAll (Key As Variant)

Borra todos los grupos y elementos del servidor.

Eventos de OPCGroups
AllGroupsDataChange (GroupHandle as Long, MasterQuality as Long, MasterError as Long, NumItems as Long, ClientHandles() as Long, ItemValues() as Variant, Qualities() as Long, TimeStamps() as Date)

Este evento simplifica el procesamiento de eventos de todos los grupos de la coleccin informando sobre los cambios en el valor y el estado de todos los elementos de todos los grupos.

Interfaz OPC de servidor A5E0017081 1-01

2-11

Interfaz OPC Automation

2.6

El objeto OPCGroup
La categora OPC Group gestiona la variables individuales del proceso, los elementos OPC. Con estos objetos de grupo, un cliente puede formar unidades con sentido semntico de elementos OPC y ejecutar operaciones con ellas.

Propiedades de OPCGroup
Tabla 2-4 Propiedades del objeto OPCGroup Tipo Servidor OPC Cadena Booleano Booleano Breve descripcin Proporciona una referencia al objeto servidor OPC correspondiente El nombre del grupo Indica True si el grupo es pblico, en caso contrario False Estado activo del grupo Un grupo activo crea eventos para todos los elementos activos del grupo. ClientHandle Largo Un handle asignado por el cliente y que puede ser utilizado en el programa cliente para la localizacin de datos (por ejemplo una lnea de una tabla) Un handle nico para el grupo por parte del servidor El cliente debe hacer referencia a este handle con uno de los numerosos mtodos que repercuten en el grupo (por ejemplo, Remove). LocaleID TimeBias DeadBand UpdateRate OPCItems Largo Largo nico Largo Elementos OPC Especifica el ID de idioma para cadenas proporcionadas por el servidor (por ejemplo, textos de error) Indica el retardo temporal aplicado a la hora local para cambiar el sello horario de los datos Especifica un ancho de banda dentro de la cual los cambios en los valores no generan un mensaje La velocidad ms rpida a la que el cliente recibe informacin de cambios en valores o estados de elementos Recopila objetos OPCItems para gestionar los elementos de un grupo

Propiedad Parent Name IsPublic IsActive

ServerHandle

Largo

Notas: El servidor OPC para Computing no evala la propieda TimeBias. LocaleID es irrelevante para el servidor OPC para Computing. UpdateRate la especifica el parmetro de configuracin Minimum Update Rate como mltiplo del valor de configuracin. La propiedad PercentDeadBand no tiene ninguna relevancia para el servidor OPC para Computing.

2-12

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

Mtodos de OPCGroup
SyncRead (Source As Integer, NumItems As Long, ServerHandles() As Variant, ByRef Values() As Variant, ByRef Errors() As Variant, Optional ByRef Qualities As Variant, Optional ByRef TimeStamps As Variant) As Long

Lectura sncrona de los valores, informacin de estado o sello horario de uno o ms elementos de un grupo. Los valores pueden leerse desde la memoria cach del servidor o directamente desde el hardware. La lectura desde la memoria cach slo es posible si el grupo est activado. Nota: La llamada se controla mediante el control de retraso del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout.

SyncWrite (NumItems As Long, ServerHandles() As Variant, Values() As Variant, ByRef Errors() As Variant) As Long

Escritura sincronizada de valores de uno o ms elementos de un grupo en el hardware. Nota: La llamada se supervisa mediante el control de retraso (timeout) del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout.

AsyncRead (Source As Integer, NumItems As Long, ServerHandles() As Variant, ByRef Errors() As Variant, ByRef TransactionID As Long) As Long

Enva una orden de lectura sncrona. El resultado se indica con el evento AsyncReadComplete. Nota: La llamada se controla mediante el control de retraso del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout.

AsyncWrite (NumItems As Long, ServerHandles() As Variant, Values() As Variant, ByRef Errors() As Variant, ByRef TransactionID As Long) As Long

Enva una orden de escritura asncrona. El resultado se indica con el evento AsyncWriteComplete. Nota: La llamada se controla mediante el control de retraso del servidor. El parmetro de configuracin correspondiente es Read/Write Timeout.

AsyncRefresh (Source As Integer, ByRef TransactionID As Long) As Long

Solicita un valor actual para cada elemento OPC activo. Los resultados se indican con el evento DataChange.

AsyncCancel (TransactionID As Long)

Cancela un trabajo asncrono pendiente.

Eventos de OPCGroup
La interfaz OPC Automation indica los cambios de los valores de elementos activos as como los resultados de operaciones asncronas con eventos.

Interfaz OPC de servidor A5E0017081 1-01

2-13

Interfaz OPC Automation

DataChange (NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Variant, TimeStamps() As Date)

El evento DataChange se produce cuando se detecta que un elemento activo tiene un valor de cambio o una calidad de cambio. La comprobacin de los cambios de los valores los activa el temporizador UpdateRate. Slo se crean elementos activos dentro de un grupo de eventos.

AsyncReadComplete (TransactionID As Long, NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Variant, TimeStamps() As Date, Errors() As Variant)

El evento AsyncReadComplete se activa cuando se completa un trabajo de lectura.

AsyncWriteComplete (TransactionID As Long, NumItems As Long, ClientHandles() As Long, Errors() As Variant)

El evento AsyncWriteComplete se activa cuando se completa un trabajo de escritura.

AsyncCancelComplete (TransactionID As Long)

El evento AsyncCancelComplete se activa cuando se completa un trabajo de interrupcin.

2-14

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

2.7

El objeto de coleccin OPCItems


El objeto OPCItems es un objeto de coleccin para la creacin y la administracin de elementos OPC. Las propiedades predeterminadas de los elementos OPC especifican los valores por defecto para la creacin de todos los elementos OPC.

Propiedades de OPCItems
Tabla 2-5 Propiedades del objeto de coleccin OPCItems Tipo Grupo Descripcin Proporciona una referencia al objeto OPCGroup correspondiente Especifica el valor inicial de la propiedad RequestedDataType de elementos recin insertados El valor por defecto es vbEmpty para el tipo de datos cannico. DefaultAccessPath Cadena Especifica el valor inicial de la propiedad AccessPath de elementos reicn insertados El valor por defecto es una cadena vaca. DefaultIsActive Boolean Especifica el valor inicial de la propiedad Active State de elementos recin insertados El valor por defecto est activado. Count Largo Propiedades necesarias para la coleccin, indican el nombre de entradas

Propiedad Parent OPC

DefaultRequestedDataType Nmero entero

Mtodos de OPCItems
Item (ItemSpecifier As Variant) As OPCItem

Proporciona una referencia al elemento de la coleccin descrito por el indicador ItemSpecifier. (Por otro lado, el mtodo GetOPCItem porporciona una referencia a travs del handle del servidor.)

GetOPCItem (ServerHandle As Long) As OPCItem

Proporciona una referencia al hadle del servidor creado mediante Add.

Add (NumItems As Long, ItemIDs() As String, ClientHandles() As Long, ByRef ServerHandles() As Long, ByRef Errors() As Long, Optional RequestedDataTypes() As Variant, Optional AccessPaths() As Variant)

Inserta uno o ms elementos en la coleccin OPCItems de un grupo. Nota: se puede insertar un elemento OPC varias veces en el mismo grupo. En tal caso, cada uno de los elementos tiene su propio handle de servidor. Los handles de servidor slo son nicos dentro de un grupo y no para todos los elementos de todos los grupos.

Interfaz OPC de servidor A5E0017081 1-01

2-15

Interfaz OPC Automation

Remove (NumItems As Long, ServerHandles() As Long, ByRef Errors() As Long)

Borra uno o ms elementos de un grupo.

Validate (NumItems As Long, ItemIDs() As String, ByRef Errors() As Long, Optional RequestedDataTypes () As Variant, Optional AccessPaths() As Variant)

Comprueba la validez de un elemento OPC, por ejemplo si ha sido insertado sin que se produjera ningn error y proporciona informacin como por ejemplo el tipo de datos cannico. Nota: Vase Add.

SetActive (NumItems As Long, ServerHandles() As Long, ActiveState As Boolean, ByRef Errors() As Long)

Ajusta el estado activado de uno o ms elementos de un grupo.

SetClientHandles (NumItems As Long, ServerHandles() As Long, ClientHandles() As Long, ByRef Errors() As Longt)

Cambia el hadle de cliente para uno o ms elementos de un grupo.

SetDataTypes (NumItems As Long, ServerHandles() As Long, RequestedDataTypes() As Long, ByRef Errors() As Long )

Ajusta el tipo de datos necesario de uno o ms elementos de un grupo.

2-16

Interfaz OPC de servidor A5E0017081 1-01

Interfaz OPC Automation

2.8

El objeto OPCItem
Un objeto de la categora elemento OPC representa un vnculo con una variable del proceso, por ejemplo para el mdulo de entrada de un controlador programable. Una variable de proceso es un dato de las E/S del proceso que puede escribirse/leerse, como por ejemplo la temperatura de un tanque. Cada variable de proceso est asociada a un valor (tipo de datos variante), a una cualidad y a un sello horario.

Propiedades de OPCItem
Tabla 2-6 Propiedades del objeto OPCItem Tipo Grupo Largo Breve descripcin Proporciona una referencia al objeto OPCGroup superior Un handle libremente definible por el usuario que permite asignar simple de una variable de proceso en estructuras de datos internas del cliente Un handle nico asignado al elemento por el servidor Este handle es necesario en diferentes operaciones para identificar un elemento. AccessPath AccessRights ItemID IsActive RequestedDataType Value Quality TimeStamp CanonicalDataType EUType Cadena Largo Cadena Boolean o Nmero entero Variante Largo Fecha y hora Nmero entero Nmero entero Variante La ruta de acceso del elemento tal y como est especificada en la funcin Add Proporciona los derechos de acceso de la variable El nombre unvoco del elemento tal y como est especificado en la funcin Add Especifica si se crearn eventos de mensaje para este elemento El tipo de datos en el que se proporciona el valor del elemento El ltimo valor vlido de la variable (propiedad por defecto del objeto OPCItem) La calidad del ltimo valor ledo La calidad indica la validez del valor de la variable. La hora a la que se adquiri el ltimo valor El tipo de datos originales del elemento Identifica la unidad del valor Si no hay ninguna unidad disponible, el valor siempre es VT_EMPTY. Informacin sobre la unidad del valor

Propiedad Parent OPC ClientHandle

ServerHandle

Largo

EUInfo

Nota: Estas unidades no son compatibles con el servidor OPC para Computing (unidades de ingeniera)

Interfaz OPC de servidor A5E0017081 1-01

2-17

Interfaz OPC Automation

Mtodos de OPCItem
Read (Source As Integer, optional ByRef Value As Variant, optional ByRef Quality As Variant, optional ByRef TimeStamp As Variant )

Lee el valor, la cualidad y/o el sello horario de esta variable.

Write (Value As Variant)

Ajusta el valor para esta variable de forma sncrona.

2-18

Interfaz OPC de servidor A5E0017081 1-01

Você também pode gostar