Escolar Documentos
Profissional Documentos
Cultura Documentos
1 2
Edicin 07/2002
A5E00170811-01
! ! !
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.
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
ndice
ii
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
1-1
1.1
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
1-2
1-3
1-4
1.2
Valores de retorno
Todos los mtodos relacionados dan un resultado del tipo HRESULT.
1-5
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.
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
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.
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.
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.
Permite consultar la ruta de acceso de un ItemID. Nota: No es necesaria con el servidor OPC para Computing.
1-7
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 (\).
Permite buscar en el rea de direccionamiento. Se puede cambiar al nivel superior o a una rama.
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
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.
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.
Proporciona los valores correspondientes a las propiedades de un elemento transferidos en una lista de PropertyIDs.
1-9
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
1.4
Figura 1-2
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.
1-11
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
Ajusta el tipo de datos solicitado de uno o ms elementos de un grupo. Nota: Vase AddItem
1-12
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.
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).
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 )
1-13
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).
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.
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
Cancel ( dwTransactionID )
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.
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.
1-15
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.
Cliente
IDataObject::DAdvise
Servidor
IAdviseSink
IDataObject
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)
1-16
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);
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);
Skip (celt);
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.
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 )
1-17
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)
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
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
2-1
2.1
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
Figura 2-1
2-2
2-3
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
2-4
2.2
OPCServer
1:1 1:n
OPCBrowser
OPCGroup
1:1
OPCItem
Figura 2-2
2-5
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
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.
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.
2-7
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.
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
Mtodos de OPCBrowser
Item (Key As Variant) As String
ShowBranches ()
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 ()
Baja la posicin actual dentro del rea de direccinamiento a la rama actual (un nivel menos).
MoveToRoot ()
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.
Proporciona la posibilidad de consultar la ruta de acceso en un ItemID. Nota: No es necesaria con el servidor OPC para Computing.
2-9
2.5
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
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
Mtodos de OPCGroups
Item (Key As Variant) 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.
Proporciona la referencia al grupo OPC indicado por el nombre o por el handle 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.
2-11
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
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
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.
Solicita un valor actual para cada elemento OPC activo. Los resultados se indican con el evento DataChange.
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.
2-13
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)
2-14
2.7
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
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.)
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.
2-15
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)
SetClientHandles (NumItems As Long, ServerHandles() As Long, ClientHandles() As Long, ByRef Errors() As Longt)
SetDataTypes (NumItems As Long, ServerHandles() As Long, RequestedDataTypes() As Long, ByRef Errors() As Long )
2-16
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
ServerHandle
Largo
EUInfo
Nota: Estas unidades no son compatibles con el servidor OPC para Computing (unidades de ingeniera)
2-17
Mtodos de OPCItem
Read (Source As Integer, optional ByRef Value As Variant, optional ByRef Quality As Variant, optional ByRef TimeStamp As Variant )
2-18