How to do: Comunicación ETH con PUT/GET COMUNICACIÓN ETHERNET CON FB´S PUT / GET INTRODUCCIÓN La presente guía indica como comunicar varias cpu´s en ethernet usando los FB´s PUT/GET. Este tipo de comunicación es especialmente útil porque sólo es necesario disponer de una cpu con cp 343 para gestionar la comunicación. Las demás pueden tener sólo puerto ethernet pasivo (comunicación PG/OP). COMUNICACIÓN ETHERNET CON PUT/GET GENERACIÓN DE ENLACES S7 Los enlaces se generan en la cpu que tiene la cp 343. En las demás no hay que hacerlo. Los enlaces son del tipo S7 y hay que tener en cuenta marcar en la opción “Punto final local del enlace” => “Unilateral” 1 How to do: Comunicación ETH con PUT/GET CONFIGURACIÓN HARDWARE Las cpu´s se configuran normalmente. Simplemente hay que asignarles sus direcciones IP correspondientes y colgarlas de una red Ethernet. ESTRUCTURA DE PROGRAMA La programación de la gestión de la comunicación de los enlaces sólo se hace en la cpu que lleva la cp 343. En las demás no hay que hacer nada, tan sólo preparar los DB´s de datos que se quieran enviar y recibir. Desde el OB1 se llaman a los FB´s (en este caso 100 y 101 asociados a los DB100 y 101 respectivamente) de VIPA que gestionan el intercambio de datos de entre las diferentes Cpu´s. Estos FB´s a su vez llaman a los SFB 14 (GET) y SFB 15 (PUT) (FB´s de sistema, los cuales tienen asociados los DB 14, 15, 16 y 17). El usuario sólo tiene que parametrizar los bloques de gestión de intercambio FB 1XX (uno por cada enlace). El bloque FB 1XX que gestiona el enlace con “ID 1” tendría la siguiente estructura por ej.: CALL "PUT_GET" , DB100 Verbind_ID:=W#16#1 // ID del enlace ADDR_1_GET:=P#DB11.DBX 0.0 BYTE 100 // El puntero señala a la 1ª áreas de la CPU interlocutora que deben leerse. ADDR_2_GET:=P#DB11.DBX 100.0 BYTE 50 //El puntero señala a la 2ª áreas de la CPU interlocutora que deben leerse. RD_1_GET :=P#DB10.DBX0.0 BYTE 100 // El puntero señala aquella áreas de la CPU propia en las que se depositan los datos leídos de la 1º area. RD_2_GET :=P#DB10.DBX100.0 BYTE 50 // El puntero señala aquella áreas de la CPU propia en las que se depositan los datos leídos de la 2º area. ADDR_1_PUT:=P#DB12.DBX 0.0 BYTE 100 // Puntero señala a la 1ª áreas de la CPU interlocutora en la que se debe escribir. ADDR_2_PUT:=P#DB12.DBX 100.0 BYTE 50 // Puntero señala a la 2º áreas de la CPU interlocutora en la que se debe escribir. RD_1_PUT :=P#DB13.DBX0.0 BYTE 100 //El puntero señala a la 1ª áreas de la CPU propia en las que se depositan los datos que se van a enviar RD_2_PUT :=P#DB13.DBX100.0 BYTE 50 //El puntero señala a la 2ª áreas de la CPU propia en las que se depositan los datos que se van a enviar Start_GET :=M1.0 // Inicio función GET Start_PUT :=M1.1 // Inicio función PUT El DB 100 contiene los parámetros de control de este FB. Sólo hay que tener en cuenta que para el control se utilizarán los bits DB1XX.DBX 104.1 y DB1XX.DBX 104.2, aparte de los de Start GET del FB. Por ej: 2 How to do: Comunicación ETH con PUT/GET CALL FB 101 , DB101 Verbind_ID:=W#16#2 ADDR_1_GET:=P#DB20.DBX 0.0 BYTE 100 ADDR_2_GET:=P#DB20.DBX 100.0 BYTE 50 RD_1_GET :=P#DB18.DBX0.0 BYTE 100 RD_2_GET :=P#DB18.DBX100.0 BYTE 50 ADDR_1_PUT:=P#DB21.DBX 0.0 BYTE 100 ADDR_2_PUT:=P#DB21.DBX 100.0 BYTE 50 RD_1_PUT :=P#DB19.DBX0.0 BYTE 100 RD_2_PUT :=P#DB19.DBX100.0 BYTE 50 Start_GET :=M1.2 Start_PUT :=M1.3 ON DB101.DBX 104.1 ON DB101.DBX 104.2 SPB ende ende: NOP 0 U DB101.DBX 104.1 U DB101.DBX 104.2 SPB loes BEA loes: NOP 0 SET R DB101.DBX 104.1 R DB101.DBX 104.2 S M 1.2 3 How to do: Comunicación ETH con PUT/GET 4