Simulacion con S7 PLCSIM

En este artículo describimos de manera general como extender el entorno de simulación con el Siemens S7 PROSIM.

SIMATIC S7-PLCSIM


Entre los fabricantes de PLC que existen hoy en la actualidad, el simulador de PLC de Siemens es quizás el más robusto que existe, ya que no solo se emula el código en ejecución, sino que también se pueden tener acceso a las funciones de diagnóstico del CPU, acceso a memoria, simular errores de comunicación con interfaces y desde la versión 5.4 ya se pueden simular varios PLC conectados en red por MPI, PROFIBUS DP y TCP / IP. Pero lo realmente importante y que consideramos que es una idea fantástica, es la inclusión de un módulo de comunicación para extender el entorno del simulador S7 PLCSIM, en donde el desarrollador puede generar una aplicación para PC (C/C++ o en .Net Framework) que se comunica con el simulador de manera de por ejemplo emular un proceso.
Es muy importante aprender a utilizar estas herramientas, ya que reducen los tiempos de arranque y por tanto reduce costos. El descubrimiento de errores de programación o secciones de código que no están optimizadas aumentan la seguridad e integridad de los elementos a controlar cuando la solución se lleve al entorno real.


S7 PLCSIM

S7ProSim

S7ProSim ofrece un acceso desde una aplicación de PC externa a la interfaz del sistema de destino simulada en S7 PLCSIM, lo que permite escribir programas para realizar tareas tales como cambiar la posición de un interruptor o el valor de una variable de temperatura del sistema de destino simulado. Para establecer la comunicación entre las dos aplicaciones, S7ProSim expone un objeto COM el cual puede ser enlazado a cualquier aplicación escrita para ser compatible con este sistema de enlace entre aplicaciones.

La implementación es bastante sencilla

Primeramente debe incorIncorporar el objeto COM S7ProSim de Siemens al proyecto.

Luego para implementar la comunicación utilice las siguientes interfaces:


La interface para Visual Basic 6.0 sería:

Option Explicit 
Private WithEvents S7ProSim As S7PROSIMLib.S7ProSim
...
Private Sub Form_Load()
Set S7ProSim = New S7PROSIMLIB.S7ProSim
...
End Sub
Private Sub S7ProSim_PauseStateChanged(ByVal NewState As String)
  DoEvents
   ...
End Sub
Private Sub S7ProSim_ScanFinished(ByVal ScanInfo As Variant)
DoEvents
...
End Sub
Private Sub S7ProSim_PLCSimStateChanged(ByVal NewState As String)
DoEvents
...
End Sub
Private Sub S7ProSim_ConnectionError(ByVal ControlEngine As String, ByVal error As Long)
DoEvents
MsgBox "Error de conexión"
End Sub
Private Sub S7ProSim_ScanModeChanged(ByVal NewState As String)
DoEvents
...
End Sub

La interface para Visual Basic .Net sería:

Private WithEvents S7ProSim As New S7PROSIMLib.S7ProSim    
Private Sub S7ProSim_PauseStateChanged(ByVal NewState As String) Handles S7ProSim.PauseStateChanged
   ...
End Sub
Private Sub S7ProSim_ScanFinished(ByVal ScanInfo As Variant) Handles S7ProSim.ScanFinished
...
End Sub
Private Sub S7ProSim_PLCSimStateChanged(ByVal NewState As String) Handles S7ProSim.PLCSimStateChanged
...
End Sub
Private Sub S7ProSim_ConnectionError(ByVal ControlEngine As String, ByVal error As Long) Handles S7ProSim.ConnectionError
MsgBox "Error de conexión"
End Sub
Private Sub S7ProSim_ScanModeChanged(ByVal NewState As String) Handles S7ProSim.ScanModeChanged
...
End Sub

La interface en C#

using S7PROSIMLib; 
...
private S7ProSim ps;
// create the COM Object connection
ps = new S7ProSim();

Para C# y C++ no se requieren controladores de eventos, y realmente a nuestra manera de ver tampoco son necesarios en VB.NET salvo si se habilita el control de eventos de error, el cual esta implementado por el evento S7ProSim.ConnectionError.


Como pueden ver, no se tiene que ser un programador diestro para hacer comunicación con el S7 PLCSIM. La aplicación  Simul BP desarrollada por nosotros, es resultado de la implementación simple de esta interfaz, asi que los animamos a que las lleven a cabo. Mas adelante explicaremos un poco mas este proceso.

Hasta la próxima, y como siempre seguir aprendiendo.


PD.
Algunos de los nombres como SIEMENS, S7 PROSIM, S7 PLCSIM, COM, VB.NET, Visual Basic son marcas registradas de SIEMENS AG y Microsoft respectivamente. Se mencionan solo como referencia.

Grado 
02/11/2016

Muy bueno

Una manera distinta de implementar simulación de procesos.

Escribe tu comentario

Escribe tu opinión

Simulacion con S7 PLCSIM

Simulacion con S7 PLCSIM

En este artículo describimos de manera general como extender el entorno de simulación con el Siemens S7 PROSIM.

Has una pregunta

No se requiere registro

Si luego de leer nuestro articulo aun tiene dudas, puede hacer su pregunta utilizando el siguiente formulario.

(Opcional)
*(Requerido para ser notificado cuando la respuesta este disponible)

Si el enlace de descarga redirige a otro producto que no es el descrito en el artículo o está roto, reportarlo usando nuestro formulario de reporte

MásArtículos