Visual Basic.NET - Ayuda con Aplicacion para control OPC

 
Vista:

Ayuda con Aplicacion para control OPC

Publicado por Pablo Padin (1 intervención) el 09/04/2010 10:02:50
Necesito ayuda sobre una aplicación con OPC.

La aplicación la he descargado de la Web de un ejemplo que tiene el siguiente nombre "Cliente OPC realizado en Visual Basic .NET" y la estoy adaptando a lo que yo necesito.

He conseguido realizar la conexión del Servidor, utilizando en mi caso el "RsiOPCAuto" de Rockwell Automation.

He tenido que modificar algunos puntos de Double por String ya que mis datos de intercambio son cadenas de caracteres.

Mi problema es el siguiente: Cuando inicio la lectura de los datos direcciono 3 Items y lanzo la creación del grupo del servidor (Un grupo de 3 Items). Hasta aquí todo correcto puesto que en la aplicación de OPC me aparece un grupo activo con 3 Items. Mi problema está cuando se ejecuta la funcion "ObjGrupo_DataChange" con el siguiente código...

***************************************************************************************************
Sub ObjGrupo_DataChange(ByVal TransactionID As Integer, ByVal NumItems As Integer, _
ByRef ClientHandles As System.Array, ByRef ItemValues As System.Array, _
ByRef Qualities As System.Array, ByRef TimeStamps As System.Array) Handles ObjGrupo.DataChange
Dim Valores(99, 3) As Object

Dim i As Integer

'Creación de un vector que condensa toda la información enviada por
'el Servidor OPC
For i = 1 To NumItems
Valores(i - 1, 0) = ItemValues.GetValue(i)
Valores(i - 1, 1) = ClientHandles.GetValue(i)
Valores(i - 1, 2) = TimeStamps.GetValue(i)

'Se obtiene un valor significativo de la calidad de la informacion
If Qualities.GetValue(i) And &HC0 Then
Valores(i - 1, 3) = "Buena"
Else
Valores(i - 1, 3) = "Deficiente"
End If
Next i

'Se llama al metodo ActualizarLista del formulario que instancio a clOPC
'para que este obtenga el vector condensado con la informacion de los
'cambios de variables enviados por el Servidor OPC
' FormularioAplicar.Actualizar_Lista(Me.Servidor, Me.Nodo, Me.Grupo, NumItems, Valores)
FormularioAplicar.Actualizar_Lista(Me.Servidor, Me.Nodo, Me.Grupo, NumItems, Valores)
End Sub
***************************************************************************************************

Cuando se produce un cambio me actualiza el Array de Valores(99,3) pero en ocasiones solo se produce el cambio en un Item, otras veces en 2 y otras en los 3. Con lo que en ocasiones tengo solo el primer valor en el Array (si el cambio es en el segundo item tengo los datos del segundo), otras veces tengo dos y otras tres. Pero lo que no consigo de estos items es cual es su origen.

Resumiendo: Mi problema o necesidad es saber realmente el "ItemValues" a que Item de los enlaces creados anteriormente pertenecen. O por otro lado si hay otra forma de conseguir lo mismo que estoy intentando hacer.

GRACIAS!!!!!!!!!!!!!!!!!! por vuestra AYUDA!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder