Ejemplo FB14-15 SFB14-15 GET-PUT

Contestanto a la pregunta de un compañero voy a realizar la siguiente práctica, se trata de intercambiar datos entre dos CPU 300 con puerto PN,  con las funciones FB14 GET y FB15 PUT, ya que estas no pueden ser simuladas en el PLCSIM voy a sustituirlas por SFB14-15 que tienen el mismo proposito y pueden ejecutarse en el PLCSIM, para ello partimos de que tenemos un proyecto con nuestras dos CPU´s y tienen configurada una direccion IP en el mismo rango y estan en la misma subred

Lo primero que hacemos es ejecutar el Netpro para crear un nuevo enlace entre los dos equipos, ello lo podemos hacer desde insertar -> nuevo enlace

Siguiendo el asistente, seleccionamos el PLC_2 y un enlace del tipo Enlace S7, aceptamos y la siguiente ventana muestra el enlace entre los dos equipos y tenemos que tener presente que necesitaremos saber el ID local, para nuestro bloque SFB

Al confirmar, ya podemos observar que tenemos creado el enlace, solo falta compilar y guardar. Una vez realizado esto pasamos a hacer la programación

El ejercicio consiste en lo siguiente, el PLC_1 va a leer y a escribir datos en el PLC_2 , mas especificamente en el DB1, que es un array de 10 del tipo word. Tanto en el PLC_1 como el PLC_2 tienen el mismo DB1, pero cuando configuramos ADDR_1 en nuestro SFB14, apunta a la primera direccion de memoria de los datos que nos interesa leer y su longitud, para ello utilizamos el formato puntero tal y como se observa, y los datos leidos del PLC_2 son almacenados en el DB1 del PLC_1 a partir de la direccion de memoria especificada en RD_1, y esto se efectuara en un flanco positivo detectado en REQ. ID pertenece al ID cuando se realizo la configuración del enlace, el bit NDR indica el estado de la operacion y cualquier fallo es recogido en el bit ERROR y su código en STATUS.

La parametrización del SFB15 es exactamente la misma, salvo que en SD_1 son los datos que vamos a escribir

El programa de ejemplo quedaria tal y como se puede observar, a excepción que falta el SFB15 y el DB15 en el PLC_1 para escribir en el PLC_2.

Aprovechando la funcionalidad del PLCSIM abrimos dos instancias y cargamos ambos programas en su correspondiente

Utilizamos la tabla de variables del PLC_2 para cambiar los datos nuestro DB1 ya que en este PLC no necesitamos nada mas para comprobar la funcionalidad

A su vez hemos ejectudo el PLC_1 y con el PLCSIM forzamos la entrada E0.0 con lo cual REQ detecta un flanco positivo y se ejecuta la función GET, para comprobar abrimos el DB1 y observamos que los datos han sido leidos correctamente.

17 de Marzo del 2013