Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: TCP Verbindung zwischen PC und 315 2 PN/DP

  1. #1
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    ich habe gerade ein Problem mit einer 315-2 PN/DP. Ein PC mit einer proprietären Software soll Daten aus dieser SPS holen.
    Beim vorherigen Projekt hatte ich einen CP343 Lean. In diesem musste ich nur Eine TCP-Verbindung Projektieren port 2000 Fetch Passiv S7 Adressierung, und schong konnte der PC alles lesen.

    In der 315-2 PN/DP muss man den Baustein FW_TCP zweimal in den OB1 stellen und zwei Datenbausteine mit den passenden Daten basteln.
    Da ich nicht weiss wie habe ich diesen vom Open Communication Wizard erstellen lassen.
    Der DB für den ersten Aufruf:
    Code:
    DATA_BLOCK "DB300"
    TITLE = Connection Parameters for TCON
    { S7_Optimized_Access := 'FALSE' }
    AUTHOR : SIMATIC
    FAMILY : COMM
    NAME : TCON_PAR
    VERSION : 0.1
       STRUCT 
          OUCW_1 : Struct
             block_length : Word;   // #!Warte_PLC!#
             id : Word;
             connection_type : Byte;
             active_est : Bool;
             local_device_id : Byte;
             local_tsap_id_len : Byte;
             rem_subnet_id_len : Byte;
             rem_staddr_len : Byte;
             rem_tsap_id_len : Byte;
             next_staddr_len : Byte;
             local_tsap_id : Array[1..16] of Byte;
             rem_subnet_id : Array[1..6] of Byte;
             rem_staddr : Array[1..6] of Byte;
             rem_tsap_id : Array[1..16] of Byte;
             next_staddr : Array[1..6] of Byte;
             spare : Word;   // #!Warte_PLC!#
          END_STRUCT;
       END_STRUCT;
    
    
    BEGIN
       OUCW_1.block_length := W#16#0040;
       OUCW_1.id := W#16#0001;
       OUCW_1.connection_type := B#16#01;
       OUCW_1.local_device_id := B#16#02;
       OUCW_1.local_tsap_id_len := B#16#02;
       OUCW_1.local_tsap_id[1] := B#16#D0;
       OUCW_1.local_tsap_id[2] := B#16#07;
       OUCW_1.local_tsap_id[3] := B#16#00;
       OUCW_1.local_tsap_id[4] := B#16#00;
       OUCW_1.local_tsap_id[5] := B#16#00;
       OUCW_1.local_tsap_id[6] := B#16#00;
       OUCW_1.local_tsap_id[7] := B#16#00;
       OUCW_1.local_tsap_id[8] := B#16#00;
       OUCW_1.local_tsap_id[9] := B#16#00;
       OUCW_1.local_tsap_id[10] := B#16#00;
       OUCW_1.local_tsap_id[11] := B#16#00;
       OUCW_1.local_tsap_id[12] := B#16#00;
       OUCW_1.local_tsap_id[13] := B#16#00;
       OUCW_1.local_tsap_id[14] := B#16#00;
       OUCW_1.local_tsap_id[15] := B#16#00;
       OUCW_1.local_tsap_id[16] := B#16#00;
       OUCW_1.rem_subnet_id[1] := B#16#00;
       OUCW_1.rem_subnet_id[2] := B#16#00;
       OUCW_1.rem_subnet_id[3] := B#16#00;
       OUCW_1.rem_subnet_id[4] := B#16#00;
       OUCW_1.rem_subnet_id[5] := B#16#00;
       OUCW_1.rem_subnet_id[6] := B#16#00;
       OUCW_1.rem_staddr[1] := B#16#00;
       OUCW_1.rem_staddr[2] := B#16#00;
       OUCW_1.rem_staddr[3] := B#16#00;
       OUCW_1.rem_staddr[4] := B#16#00;
       OUCW_1.rem_staddr[5] := B#16#00;
       OUCW_1.rem_staddr[6] := B#16#00;
       OUCW_1.rem_tsap_id[1] := B#16#00;
       OUCW_1.rem_tsap_id[2] := B#16#00;
       OUCW_1.rem_tsap_id[3] := B#16#00;
       OUCW_1.rem_tsap_id[4] := B#16#00;
       OUCW_1.rem_tsap_id[5] := B#16#00;
       OUCW_1.rem_tsap_id[6] := B#16#00;
       OUCW_1.rem_tsap_id[7] := B#16#00;
       OUCW_1.rem_tsap_id[8] := B#16#00;
       OUCW_1.rem_tsap_id[9] := B#16#00;
       OUCW_1.rem_tsap_id[10] := B#16#00;
       OUCW_1.rem_tsap_id[11] := B#16#00;
       OUCW_1.rem_tsap_id[12] := B#16#00;
       OUCW_1.rem_tsap_id[13] := B#16#00;
       OUCW_1.rem_tsap_id[14] := B#16#00;
       OUCW_1.rem_tsap_id[15] := B#16#00;
       OUCW_1.rem_tsap_id[16] := B#16#00;
       OUCW_1.next_staddr[1] := B#16#00;
       OUCW_1.next_staddr[2] := B#16#00;
       OUCW_1.next_staddr[3] := B#16#00;
       OUCW_1.next_staddr[4] := B#16#00;
       OUCW_1.next_staddr[5] := B#16#00;
       OUCW_1.next_staddr[6] := B#16#00;
    
    END_DATA_BLOCK

    Der DB für den zweiten Aufruf:
    Code:
    DATA_BLOCK "DB301"
    TITLE = Connection Parameters for TCON
    { S7_Optimized_Access := 'FALSE' }
    AUTHOR : SIMATIC
    FAMILY : COMM
    NAME : TCON_PAR
    VERSION : 0.1
       STRUCT 
          OUCW_1 : Struct
             block_length : Word;   // #!Warte_PLC!#
             id : Word;
             connection_type : Byte;
             active_est : Bool;
             local_device_id : Byte;
             local_tsap_id_len : Byte;
             rem_subnet_id_len : Byte;
             rem_staddr_len : Byte;
             rem_tsap_id_len : Byte;
             next_staddr_len : Byte;
             local_tsap_id : Array[1..16] of Byte;
             rem_subnet_id : Array[1..6] of Byte;
             rem_staddr : Array[1..6] of Byte;
             rem_tsap_id : Array[1..16] of Byte;
             next_staddr : Array[1..6] of Byte;
             spare : Word;   // #!Warte_PLC!#
          END_STRUCT;
       END_STRUCT;
    
    
    BEGIN
       OUCW_1.block_length := W#16#0040;
       OUCW_1.id := W#16#0002;
       OUCW_1.connection_type := B#16#01;
       OUCW_1.local_device_id := B#16#02;
       OUCW_1.local_tsap_id_len := B#16#02;
       OUCW_1.local_tsap_id[1] := B#16#D1;
       OUCW_1.local_tsap_id[2] := B#16#07;
       OUCW_1.local_tsap_id[3] := B#16#00;
       OUCW_1.local_tsap_id[4] := B#16#00;
       OUCW_1.local_tsap_id[5] := B#16#00;
       OUCW_1.local_tsap_id[6] := B#16#00;
       OUCW_1.local_tsap_id[7] := B#16#00;
       OUCW_1.local_tsap_id[8] := B#16#00;
       OUCW_1.local_tsap_id[9] := B#16#00;
       OUCW_1.local_tsap_id[10] := B#16#00;
       OUCW_1.local_tsap_id[11] := B#16#00;
       OUCW_1.local_tsap_id[12] := B#16#00;
       OUCW_1.local_tsap_id[13] := B#16#00;
       OUCW_1.local_tsap_id[14] := B#16#00;
       OUCW_1.local_tsap_id[15] := B#16#00;
       OUCW_1.local_tsap_id[16] := B#16#00;
       OUCW_1.rem_subnet_id[1] := B#16#00;
       OUCW_1.rem_subnet_id[2] := B#16#00;
       OUCW_1.rem_subnet_id[3] := B#16#00;
       OUCW_1.rem_subnet_id[4] := B#16#00;
       OUCW_1.rem_subnet_id[5] := B#16#00;
       OUCW_1.rem_subnet_id[6] := B#16#00;
       OUCW_1.rem_staddr[1] := B#16#00;
       OUCW_1.rem_staddr[2] := B#16#00;
       OUCW_1.rem_staddr[3] := B#16#00;
       OUCW_1.rem_staddr[4] := B#16#00;
       OUCW_1.rem_staddr[5] := B#16#00;
       OUCW_1.rem_staddr[6] := B#16#00;
       OUCW_1.rem_tsap_id[1] := B#16#00;
       OUCW_1.rem_tsap_id[2] := B#16#00;
       OUCW_1.rem_tsap_id[3] := B#16#00;
       OUCW_1.rem_tsap_id[4] := B#16#00;
       OUCW_1.rem_tsap_id[5] := B#16#00;
       OUCW_1.rem_tsap_id[6] := B#16#00;
       OUCW_1.rem_tsap_id[7] := B#16#00;
       OUCW_1.rem_tsap_id[8] := B#16#00;
       OUCW_1.rem_tsap_id[9] := B#16#00;
       OUCW_1.rem_tsap_id[10] := B#16#00;
       OUCW_1.rem_tsap_id[11] := B#16#00;
       OUCW_1.rem_tsap_id[12] := B#16#00;
       OUCW_1.rem_tsap_id[13] := B#16#00;
       OUCW_1.rem_tsap_id[14] := B#16#00;
       OUCW_1.rem_tsap_id[15] := B#16#00;
       OUCW_1.rem_tsap_id[16] := B#16#00;
       OUCW_1.next_staddr[1] := B#16#00;
       OUCW_1.next_staddr[2] := B#16#00;
       OUCW_1.next_staddr[3] := B#16#00;
       OUCW_1.next_staddr[4] := B#16#00;
       OUCW_1.next_staddr[5] := B#16#00;
       OUCW_1.next_staddr[6] := B#16#00;
    
    END_DATA_BLOCK
    Code:
    ORGANIZATION_BLOCK "OB1"
    { S7_Optimized_Access := 'FALSE' }
    VERSION : 0.1
       VAR_TEMP 
          OB1_EV_CLASS : Byte;   // Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
          OB1_SCAN_1 : Byte;   // 1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
          OB1_PRIORITY : Byte;   // 1 (Priority of 1 is lowest)
          OB1_OB_NUMBR : Byte;   // 1 (Organization block 1, OB1)
          OB1_RESERVED_1 : Byte;   // Reserved for system
          OB1_RESERVED_2 : Byte;   // Reserved for system
          OB1_PREV_CYCLE : Int;   // Cycle time of previous OB1 scan (milliseconds)
          OB1_MIN_CYCLE : Int;   // Minimum cycle time of OB1 (milliseconds)
          OB1_MAX_CYCLE : Int;   // Maximum cycle time of OB1 (milliseconds)
          OB1_DATE_TIME : Date_And_Time;   // Date and time OB1 started
          T_NDR : Bool;
          T_Err : Bool;
          T_Mode : Byte;
          T_Status : Word;
       END_VAR
    
    
    BEGIN
    
    NETWORK
    TITLE = 
          A "M_True";
          = %L24.0;
          BLD 103;
          A "M_True";
          JNB Label_7;
          CALL FW_TCP, "FW_TCP_DB"
          (  ENABLE                      := %L24.0 ,
             CONNECT                     := P#DB300.DBX0.0 BYTE 64 ,
             NDR                         := #T_NDR ,
             ERROR                       := #T_Err ,
             MODE                        := #T_Mode ,
             STATUS                      := #T_Status );
    Label_7:      NOP 0;
    NETWORK
    TITLE = 
          A "M_True";
          = %L24.0;
          BLD 103;
          A "M_True";
          JNB Label_8;
          CALL FW_TCP, "FW_TCP_DB_2"
          (  ENABLE                      := %L24.0 ,
             CONNECT                     := "DB301".OUCW_1 ,
             NDR                         := #T_NDR ,
             ERROR                       := #T_Err ,
             MODE                        := #T_Mode ,
             STATUS                      := #T_Status );
    Label_8:      NOP 0;
    NETWORK
    TITLE = 
    END_ORGANIZATION_BLOCK

    Beide Aufrufe haben eigene DBs.

    Beim beobachten bekomme ich T_Err true und Error 16#9
    "
    Im DB300 habe ich Status_Connect 16#80A9 was laut Anleitung "Der Parameter Connect zeicgt auf ein Feld, das nicht die Länge der Verbindungsbeschreibung hat. "


    Ich habe Stunden davor gehockt und Parameter ausprobiert, ich komme nicht dahinter, was falsch ist.

    Muss ich in Netzwerke vielleicht noch eine Connection parametrieren, deren ID noch in den DB muss?

    Aksels
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.
    Zitieren Zitieren TCP Verbindung zwischen PC und 315 2 PN/DP  

  2. #2
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Durch weitere Recherchen bin ich nun überzeugt, dass ich eine Verbindung parametrieren muss. Aber ich komme mit dem TIA V12 nicht zurecht.
    Ich bin in Geräte und Netze -> Netzsicht -> Verbindungen.
    Wenn ich auf Verbindung klicke um den "Verbindungsmodus" zu aktivieren, wird nur eine der beiden SPSen hell. Egal ich klicke diese an und gehe auf Verbindung hinzufügen.
    Ich bekomme einen Dialog in dem alles leer ist.
    Muss ich den PC in die Hardware einfügen?
    Ich habe das mit dem PC-Allgemein-PC-Station probiert mit einem IE Allgemein. Aber kann diesen für die TCP-Verbindung dann nicht auswählen.

    Gruss,
    Aksels


    Gruss,
    Aksels
    Geändert von Aksels (12.06.2013 um 09:43 Uhr)
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Also bei der 315 PN/DP muß man mit Step7 V5.5 die Verbindung für TCP aus dem SPS-Programm heraus aufbauen. Ob das bei TIA anders ist kann ich nicht ganau sagen, aber irgendwie glaube ich das nicht, denn die Hardware ist ja identisch. Ist dazu nochts in der Doku von TIA zu finden? Sind doch höchstens 1500 Seiten!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    Aksels ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.02.2005
    Beiträge
    199
    Danke
    12
    Erhielt 8 Danke für 6 Beiträge

    Standard

    Onlinehilfe und PDFs beschreiben das. Aber ich habe einen allgemeinen PC mit Proprietärer Software. Was muss ich dafür im TIA als Gerät einfügen?
    Oder kann ich die TCP-Verbindung auch unspezifiziert anlegen. Wenn ja, Wie?
    Linux is like a Wigwam: no Windows, no Gates and Apache inside.

  5. #5
    Registriert seit
    29.04.2012
    Beiträge
    195
    Danke
    13
    Erhielt 42 Danke für 37 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Da ich nicht weiss wie habe ich diesen vom Open Communication Wizard erstellen lassen.

    Aber ich komme mit dem TIA V12 nicht zurecht.
    Wie geht denn das? Hast du die DBs im Klassik erzeugt und dann migriert?

    TCP Verbindungen (PN-CPU) lassen sich auch in V11/12 nicht projektieren, das ist also nicht dein Problem.

    Erste Ideen:

    Online schauen, ob der ConnectParam DB:
    1. Wirklich 64Byte hat, 0-62
    2. In block_length eine 40(hex) / 64(dez) steht.

    type = 1 ist irgend ein komischer Kompatibilitätsmodus:

    Die S7-300 CPUs V2.3 unterstützen den TCP (Kompatibilitätsmode).
    Hast du sowas? Wenn nicht, 11 nehmen.


    Code:
       OUCW_1.connection_type := B#16#01;
       OUCW_1.local_device_id := B#16#02;
       OUCW_1.local_tsap_id_len := B#16#02;
       OUCW_1.local_tsap_id[1] := B#16#D1;
       OUCW_1.local_tsap_id[2] := B#16#07;
    //stattdessen:
       OUCW_1.connection_type := B#16#11;
       OUCW_1.local_device_id := B#16#02;
       OUCW_1.local_tsap_id_len := B#16#02;
       OUCW_1.rem_tsap_id_len := B#16#02;// vermutlich egal
       OUCW_1.local_tsap_id[1] := B#16#07;
       OUCW_1.local_tsap_id[2] := B#16#D1;  //gedreht wenn type = 11

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 03.12.2012, 10:51
  2. 315-2 PN/DP Netzwerk? S7-Verbindung und TCP ?
    Von erzteufele im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 25.08.2011, 07:42
  3. Unterschied TCP- und ISO-on-TCP-Verbindung
    Von kassla im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.08.2007, 07:27
  4. 315-2 PN/DP TCP/IP Verbindung?
    Von Jochen Kühner im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 15.05.2007, 18:11
  5. Proble mit S7 TCP Verbindung zwischen S7 300 und 400
    Von Jochen Kühner im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 02.11.2006, 12:15

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •