Ms
Siguiente blog
7 de octubre de 2011
Crear blog
Sobre m
GR
VIGO, PONTE V E DR A ,
SPAIN
Ingeniero Tcnico
Industrial en Electricidad,
intensificacin en Automtica y
Electrnica. Me dedico
profesionalmente a la programacin de
maquinaria industrial.
Ver todo mi perfil
VW Informa
Conoce las ltimas
noticias sobre modelos
vendidos con motor
disel.
Para establecer una comunicacin OPC necesitar un servidor OPC, y Rockwell nos lo
proporciona integrado con el RSLinx, pero ojo, deberemos asegurarnos de que no sea la
versin lite. Recomiendo echar un vistazo a este documento Cmo obtener resultados con
RSLinx Classic (pdf) donde se especifica para qu sirve cada versin de RSLinx.
En el ordenador donde tengo instalado Visual Basic he instalado RSLinx Classic. Con mi
SoftLogix funcionando compruebo que lo detecta.
Para obtener acceso al PLC a travs de OPC deberemos configurar un Topic, que es la
definicin de la ruta de acceso al controlador. Para ello vamos al men de RSLinx y pulsamos
sobre DDE/OPC Topic Configuration... y aparecer una ventana donde seleccionaremos
nuestro controlador y le asignaremos un Topic, en mi caso PRUEBA_OPC.
LinkedIn
Traducir / Translate
Seleccionar
idioma
Seleccionar
idioma
Con la tecnologa de
Traductor
Licencia / Contacto
Acceder
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
2013 (4)
2012 (13)
2011 (22)
diciembre (2)
octubre (3)
Tres maneras de generar pulsos
en un controlador L...
Comunicacin OPC con un PLC
Logix5000 desde Visual...
Accediendo a un PLC Simatic a
travs de ethernet c...
septiembre (3)
agosto (4)
junio (2)
mayo (1)
marzo (5)
febrero (1)
enero (1)
2010 (21)
2009 (31)
Enlaces
Ahora tenemos que aadir un grupo, vamos al men Group Add Group...
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Keyence
Omron
Pepperl-Fuchs
Pro-face
Rockwell Automation
Sew Eurodrive
Siemens Service & Support
REEA
Blog Motion Control
Blog Programacin Siemens
Le asignamos un nombre cualquiera y aceptamos.
PLC dev
Foro Autmatas
Foros de electrnica
Foro de InfoPLC
Foro OPC Foundation
Foro tcnico de Siemens
Etiquetas
Beckhoff
Omron
Seguridad
Cursos
OPC
Festo
servomotor
simotion sinamics
Ya solo falta aadir Items (que sern nuestros tags), vamos al men Item Add Item...
HMI
Rexroth
Logix
Rockwell
Siemens
Step5 Step7
Miembros(69) Ms
En la ventana que aparece, en la parte inferior izquierda navegamos por el rbol del servidor
OPC, seleccionamos dentro de nuestro Topic la opcin online y a la derecha debern
mostrarse los tags de nuestro proyecto Logix5000. Selecciono el tag que me interese y pulso
el botn Add Item.
Visitas
640695
Quin tenemos por aqu...
Live Traffic Feed
A visitor from Mexico
arrived from google.com.mx and viewed
"Notas de automatizacin: Comunicacin
OPC con un PLC Logix5000 desde Visual
Basic" 7 mins ago
A visitor from Buenos Aires, Distrito
Federal
arrived from google.com.ar and viewed
"Notas de automatizacin: Probando "S5/S7
for Windows" para programar en Step5" 8
mins ago
A visitor from Mexico
arrived from google.com.mx and viewed
"Notas de automatizacin: Comunicacin
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Ya hemos comprobado que tenemos acceso por OPC a nuestro controlador. Ahora lo que voy
a hacer es la misma operacin pero desde un programa en Visual Basic.
Crearemos un proyecto en Visual Basic y, para tener acceso a las funciones de comunicacin
OPC, deberemos agregar, en mi caso, la referencia OPC DA Automation Wrapper 2.02
(OPCDAAuto.DLL) que estar disponible en mi ordenador al tener instalado el RSLinx. Esta
referencia difiere segn sea la versin de RSLinx de que dispongamos; segn leo en el foro
de control.com deberemos agregar RsLinxOPCAuto.DLL o incluso RsiOPCAuto.DLL si
disponemos de versiones antiguas.
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Con esto ya podemos empezar a programar. Voy a adaptar el cdigo de la clase que
program en la entrada sobre OPC y WinAC:
Imports OPCAutomation
Public Class OPC_NdA 'OPC Notas de Automatizacin
'Objectos para establecer la comunicacin OPC
Private WithEvents ServidorOPC As OPCServer
Private WithEvents GrupoOPC As OPCGroup
Private WithEvents GruposOPC As OPCGroups
Private ItemOPC() As OPCItem
Public Conectado As Boolean 'Para saber si la conexin est activada
'Si hay algn error se indica en estas variables
Public Mensaje As String
Public Detalle_Error As String
'Constructor
Public Sub New()
'Al crear el objeto, no estamos conectados
Conectado = False
End Sub
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
escribir
referirnos a
'Introducir un tem por cada variable del PLC en la que queramos leer o
'A cada tem le asignamos un nmero, que debemos recordar para
l en el programa
ItemOPC(0) = GrupoOPC.OPCItems.AddItem("[PRUEBA_OPC]OPC_DINT", 0)
ItemOPC(1) = GrupoOPC.OPCItems.AddItem("[PRUEBA_OPC]OPC_BIT", 1)
Catch ex As Exception
End Try
End Function
'Funcin para deshacer la conexin OPC
Public Function Desconectar() As Boolean
Try
Mensaje = "Desconectando..."
ItemOPC = Nothing
If Not IsNothing(ServidorOPC) Then
ServidorOPC.OPCGroups.RemoveAll()
ServidorOPC.Disconnect()
ServidorOPC = Nothing
End If
GrupoOPC = Nothing
GruposOPC = Nothing
Catch ex As Exception
Detalle_Error = "Error: " & ex.ToString
Desconectar = False
Exit Function
End Try
End Function
'Funcin para escribir en un tem que representa una variable entera
'Se le pasa el ndice del tem y el valor que vamos a escribir
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Detalle_Error = ex.ToString
Mensaje = "Error al escribir Item! [Int, ndice " & Indice & "]"
EscribirItemInt = False
Exit Function
End Try
Mensaje = ""
Detalle_Error = ""
EscribirItemInt = True
End Function
'Funcin para escribir en un tem que representa una variable booleana
'Se le pasa el ndice del tem y el valor que vamos a escribir
'Si todo va bien devuelve True
Public Function EscribirItemBool(ByVal indice As Integer, ByVal Bit As Boolean)
As Boolean
Dim Dims() As Integer = New Integer() {1}
Dim Bounds() As Integer = New Integer() {1}
Dim Serverhandles As Array = Array.CreateInstance(GetType(Integer), Dims,
Bounds)
Dim Errores As Array = Array.CreateInstance(GetType(Integer), Dims, Bounds)
Dim Valores As Array = Array.CreateInstance(GetType(Object), Dims, Bounds)
If Not Conectado Then
Mensaje = "Error conexin OPC."
Detalle_Error = "No hay establecida una conexin OPC."
EscribirItemBool = False
Exit Function
End If
Try
Serverhandles.SetValue(ItemOPC(indice).ServerHandle, 1)
Errores.SetValue(0, 1)
Valores.SetValue(Bit, 1)
GrupoOPC.SyncWrite(1, Serverhandles, Valores, Errores)
Catch ex As Exception
Detalle_Error = ex.ToString
Mensaje = "Error al escribir Item! [Bool, ndice " & indice & "]"
EscribirItemBool = False
Exit Function
End Try
Mensaje = ""
Detalle_Error = ""
EscribirItemBool = True
End Function
'Funcin para leer un tem que representa una variable entera
'Se le pasa el ndice del tem que vamos a leer
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Detalle_Error = ex.ToString
Mensaje = "Error al leer Item! [Int, ndice " & Indice & "]"
LeerItemInt = 0
Exit Function
End Try
Mensaje = ""
Detalle_Error = ""
End Function
Detalle_Error = ex.ToString
Mensaje = "Error al leer Item! [Bool, ndice " & Indice & "]"
LeerItemBool = False
Exit Function
End Try
Mensaje = ""
Detalle_Error = ""
End Function
End Class
Con respecto al cdigo que hice para Siemens simplemente he cambiado en la funcin
Conectar el servidor OPC a RSLinx OPC Server y he adaptado la lista de items.
Para introducir los items deberemos especificar el nombre del Topic que hayamos
configurado en el RSLinx entre corchetes seguido del nombre del tag, por ejemplo:
ItemOPC(0) = GrupoOPC.OPCItems.AddItem("[PRUEBA_OPC]OPC_DINT", 0)
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Las funciones para leer y escribir booleanos y enteros son las mismas que las programadas
en el OPC de Siemens.
Ya solo nos queda crear una interfaz sencilla para probar la conexin:
25 comentarios:
Annimo 15 de octubre de 2011, 13:08
WinLC RTX es un controlador en tiempo real basado en el entorno PC, se comunica de
forma remota con STEP 7 y SIMATIC Computing a travs
de redes PROFIBUS, MPI o Ethernet.
WinLC RTX es compatible con las herramientas de automatizacin de la gama de
productos SIMATIC, p.ej. con el software de programacin STEP 7 y WinCC de
SIEMENS.
PODRIAS HACER UN EJEMPLO DE WinLC RTX + STEP 7 + WinCC de SIEMENS con
Ethernet?
GRACIAS, JG.
Responder
GR
Hola JG. Supongo que ya has visto en el blog las entradas sobre WinAC.
No creo que dedique ninguna entrada a WinCC, ya que es un software que nunca he
visto y no lo tengo disponible.
Lo que s tengo es un runtime de WinCC Flexible, que tengo pensado intalar en una
mquina virtual y en un futuro lo usar para alguna entrada del blog.
Un saludo y gracias por el inters.
Responder
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
GR
Hola JG.
El WinCC Flexible Runtime es un software que, instalado en un ordenador normal, te
permite usarlo como un panel Simatic, programable con WinCC Flexible.
Ms informacin aqu: https://www.automation.siemens.com/mcms/human-machineinterface/en/visualization-software/wincc-flexible/wincc-flexibleruntime/Pages/Default.aspx
Un saludo.
Responder
Responder
Responder
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Responder
GR
Responder
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Responder
Responder
Notas de automatizacin: Comunicacin OPC con un PLC Logix5000 desde Visual Basic
Introduce tu comentario...
Comentar como:
Publicar
Seleccionar
perfil...
Seleccionar perfil...
Vista previa
Bordadora
Industrial
Comienza Tu Propio Negocio
Hoy Te Apoyamos Con Tu
Crdito Hazlo!
Entrada ms reciente
Pgina principal
Entrada antigua
Notas de automatizacin by notasdeautomatizacion@gmail.com is licensed under a Creative Commons Reconocimiento-No comercial 3.0 Espaa License.