VB realiza la comunicación entre el PLC y la computadora host
Esto se puede hacer utilizando el servidor OPC, que es más conveniente. Aplicable a todo tipo de PLC.
A continuación se toma el PLC Siemens como ejemplo para describir el método de implementación:
1 Cree un nuevo proyecto OPC a través del software STEP7, agregue una estación SIMATIC 300 y una estación de PC al proyecto. , en el cual el módulo PLC CP343 está instalado en la cuarta ranura de la estación. La primera ranura de la estación de PC es OPC SERVER, la tercera ranura es IE GENERAL y luego configure la conexión de red entre el PLC y la estación de PC en NETPRO: (Nota: esta es una conexión de red recién creada en la estación de PC, y el tipo de conexión es Conexión S7)
2. Configure la estación PC de esta máquina a través del software configurador de estaciones (debe ser el mismo que el configurado en STEP7) y luego descargue tanto el PLC como la estación PC ( nota: al descargar la estación de PC, debe S7ONLINE (STEP7)---> PC interna (local)).
3. Abra OPC Scout, (Inicio>SIMATIC>SIMATICNet>OPC Scout), haga doble clic en "OPC
SimaticNet" en el "AGREGAR grupo" que aparece; nombre del grupo en el cuadro de diálogo. En este ejemplo, se denomina "OPC".
Haga clic en Aceptar para confirmar;
Haga doble clic en el grupo de conexión agregado (OPC) y aparecerá el cuadro de diálogo "OPC Navigator", que se muestra en esta ventana
Todos los protocolos de conexión. Haga doble clic en "S7", se mostrará el nombre de la conexión creada en la configuración de la estación PC NetPro (S7
conexión_1). Haga doble clic en esta conexión y aparecerá el árbol de objetos a los que se puede acceder. Los bloques DB que ya existen en el PLC también aparecerán en la CPU.
El SERVIDOR OPC completó la parte anterior de la configuración.
4. Escribí la aplicación cliente OPC usando VB.
El código principal del programa es el siguiente:
En VB, haga referencia también a siemens opc daautomation 2.0
(1) Conectar al servidor OPC
Atenuar con eventos MyOPCServer como OPCServer 'Definir la variable de objeto de servidor MyOPCServer
Dim WithEvents MyOPCGroup As OPCGroup 'Definir la variable de objeto de grupo OPC MyOPCGroup
Establecer MyOPCServer = New OPCServer
MyOPCServer.Connect " OPC . SimaticNET" 'Conectarse al servidor OPC de SIMATICNET
(2) Agregar objeto de grupo OPC
Set MyOPCGroup=MyOPCServer.OPCGroups.Add("Grupo1")
' Agregar objeto de grupo OPC
MyOPCGroup.IsSubscribed= True
'Establecer los datos del grupo en actualización en segundo plano
MyOPCGroup.IsActive = True
'Establecer el grupo en estado activo
MyOPCGroup.UpdateRate=1000
'Establecer el tiempo de actualización de datos en 1000
(3) Agregar elementos de datos
Atenuar abItemIDs() como cadena
'Identificadores de elementos
Atenuar abClientHandles() mientras
'Identificadores de cliente
Dim abServerHandles() As Long
'Controles del lado del servidor
Atenuar abErrors() As Long
Atenuar i As Long
ItemCount =3
abItemIDs(1) = " S7:S7 conexión_1IB1"
abItemIDs(2) = " S7:S7 conexión_1MB1"
abItemIDs(3) = " S7:S7 conexión_1QB1"
para i=1 a 3
abClientHandles(i) = i
'Asignar un valor al identificador del cliente
Siguiente
MyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles, abErrors
'Operación para agregar elementos de datos
(4) Datos sincrónicos lectura Escritura
El acceso a datos OPC tiene dos tipos: modo síncrono y modo asíncrono. La lectura y escritura asincrónica de datos es compleja y debe usarse junto con eventos. Es más lenta pero más precisa que la sincronización. Leer y escribir datos sincrónicamente es simple, simplemente use el método OPCItem.
Atenuar uno como OPCItem
Atenuar índice mientras
'Índice es el número de secuencia de la etiqueta
Atenuar OneRead como cadena
Atenuar Xie como cadena
Establecer uno = MyOPCGroup.OPCItems(Index)
One.Read OPCCache
OneRead = One.Value
'Leer datos
MyOPCGroup.SyncWrite ItemCount, ServerHandles, valores, Errores
'Escribir datos sincrónicamente
MyOPCGroup.SyncRead OPCCache, ItemCount, ServerHandles , ReadValue, Errors
'Leer datos sincrónicamente
One.Write (Xie)
'Escribir datos
Si solo lees datos Puede utilizar el evento DataChange Una vez que cambien los datos a los que se accederá en el controlador, el evento se activará y los datos se leerán automáticamente en el cuadro de texto TxtValue.
Sub privado MyOPCGroup_DataChange(ByVal TransactionID mientras, ByVal NumItems mientras, ClientHandles() mientras, ItemValues() como variante, Qualities() mientras, TimeStamps() como fecha)
'Actualizar datos automáticamente
Atenuar i siempre
For i = 1 To NumItems
txtValue(ClientHandles(i)) = ItemValues(i)
'Obtener el valor del artículo
txtTime(ClientHandles(i)) = TimeStamps(i)
'Obtener la marca de tiempo del artículo
txtQuantity(ClientHandles(i))=GetQualityString(Qualities(i))
'Obtener la calidad del artículo
Siguiente i
End Sub
(5) Desconectar el servidor OPC
MyOPCServer.OPCGroups.RemoveAll
'Eliminar todos los grupos OPC y liberar recursos
Establecer MyOPCGroup = Nada
MyOPCServer.Disconnect
'Desconectar