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

Ergebnis 1 bis 6 von 6

Thema: Beckhoff CP mit IDS Acos750 über IEC 60870-5-104

  1. #1
    Registriert seit
    13.10.2009
    Beiträge
    32
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Ausrufezeichen


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    Ich bin dabei eine IEC 60870-5-104 Schnittstellenverbindung aufzubauen. Diese soll Daten zwischen einem Beckhof Panel(CP6601) und einer IDS SPS(acos750) tauschen. Ich hab alles soweit eingerichtet, doch die Daten werden leider nicht ausgetauscht. Weis jemand woran dies liegt?

    Hier mein Projekt:


    Die IDS SPS ist Master, das Beckhoff Panel Save (TCPIP Server ist auf Beckhoffpanel installiert)
    Es wird hier zunächst versucht nur einen Boolschen Wert vom Slave an den Master zu senden.

    Code:
    für beide sind folgende Parameter eingestellt:
    
    max. unquitierte ADPUs bei Übertragung (k) : 12
    max. empfangene ADPUs bei Übertragung (w) : 8
    Verbindungstimeout (t0): 30s
    Quittierungstimeout (t1): 15s
    Quittierungstimeout (t2): 10s
    Verbindungstest Timeout (t3): 20s
    Übertragungsursache (Cause of Transfer size): 2 octets
    Geräteadressengröße (Common ASDU address size): 2 octets
    Informationsobjektadressengröße (Information object adress size): 3 octets
    Geräteadresse (Common ASDU adress): 7
    
    auf Beckhoffseite ist des weiteren folgendes eingestellt (wofür ich auf IDS Seite keine Einstellmöglichkeit fand):
    
    Originator address: 1
    Max. APDU length: 253
    Local port address: 2404
    Local host adress: 192.168.253.97 (dies ist die eigene IP des Slave Bedienteils)
    
    auf IDS-Seite ist des weiteren folgendes eingestellt:
    
    IP des Slave(Zieladresse): 192.168.253.97
    Die beiden SPS-Programme:

    IDS-SPS:


    Beckhoff SPS:
    Code:
    PROGRAM MAIN
    VAR
        AODB    : ARRAY[0..1] OF ST_IEC870_5_101AODBEntry; (* Application object data base (only two data points) *)
    
        hServer    : T_HSERVER;(* server connection handle *)
        server    : FB_IEC870_5_104Slave; (* IEC 60870-5-104 slave function block instance *)
        init    : BOOL := TRUE;
    
        SPI        AT%MX0.0 : BOOL;(* Single point information (data point used in monitoring direction slave->master) *)
        SCS        AT%MX1.5 : BOOL;(* Single command state (data point used in control direction master->slave) *)
    
    
        timer : TON := ( IN := TRUE, PT := t#1s );
    END_VAR
    
    
    
    
    IF init THEN
        init := FALSE;
    
        (* Create server handle *)
        F_CreateServerHnd(     '', (* own TwinCAT netID, empty string = local *)
                            '192.168.253.97', (* own (slave) IP address *)
                            2404,(* own (slave) port number *)
                            LISTEN_MODE_CLOSEALL OR CONNECT_MODE_ENABLEDBG, (* close all previous opened socket connections and enable debug output *)
                            TRUE,(* enable connection *)
                            hServer );
    
        server.sysPara.asduAddr     := 7; (* Configure common ASDU address *)
        server.sysPara.dbgMode     := IEC870_DEBUGMODE_DEVSTATE (*OR IEC870_DEBUGMODE_ASDU OR IEC870_DEBUGMODE_LINKLAYER*);(* enable output of device state change messages *)
    
        (* Configure one single point in monitoring direction *)
        F_iecInitAOEntry(     M_SP_NA_1, (* type is single point *)
                        4161, (* information object address *)
                        IEC870_GRP_INROGEN, (* interrogation group *)
                        0,(* multiplier (not used) *)
                        MAP_AREA_MEMORY,(* map this single point value FROM PLC memory area (buffer) *)
                        0, (* map FROM byte offset *)
                        0, (* map FROM bit offset *)
                        AODB[0] );(* data base array element to initialize *)
    
        (* Configure one single command in control direction *)
        F_iecInitAOEntry(     C_SC_NA_1, (* type is single command *)
                        24578,(* information object address *)
                        0, (* group (not used) *)
                        0, (* multiplier (not used) *)
                        MAP_AREA_MEMORY, (* map this single command value TO PLC memory area (buffer) *)
                        1, (* map TO byte offset *)
                        5, (* map TO bit offset *)
                        AODB[1] ); (* data base array element to initialize *)
    ELSE
        (* execute IEC slave function block *)
        server(     pInputs         := 0, (* not used *)
                cbInputs         := 0, (* not used *)
                pOutputs     := 0, (* not used *)
                cbOutputs     := 0, (* not used *)
                pMemory     := ADR( %MB0 ),(* memory buffer where the data point values are mapped to and from *)
                cbMemory     := 2, (* 2 byte size *)
                pData         := 0, (* not used *)
                cbData         := 0, (* not used *)
                pAOEntries     := ADR( AODB ),
                cbAOEntries     := SIZEOF( AODB ),
                hServer         := hServer, (* server connection handle *)
                bEnable         := TRUE );
    
        (* Check for device errors, remove them and log message to the TwinCAT System Manager log view *)
        REPEAT
            server.system.device.errors.RemoveError();
            IF server.system.device.errors.bOk THEN
                ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'IEC60870-5-104 slave error: 0x%s',
                            DWORD_TO_HEXSTR( server.system.device.errors.getError.nErrId, 8, FALSE) );
            END_IF
        UNTIL NOT server.system.device.errors.bOk
        END_REPEAT
    
    END_IF
    timer( IN := TRUE );
    IF timer.Q THEN
        timer( IN := FALSE );
    
        SPI := NOT SPI;
    
    END_IF
    In AcosET (Hardwareparametrierung für Ids SPS) habe ich mir hierfür folgendes Informationsobjekt erstellt(der blau markierte Datenpunkt):



    Wer kennt des Retsels Lösung? Vielendank schonmal für die Mühe
    Geändert von Netwalker (17.11.2010 um 11:39 Uhr)
    Zitieren Zitieren Beckhoff CP mit IDS Acos750 über IEC 60870-5-104  

  2. #2
    Registriert seit
    22.05.2005
    Ort
    sonniges Maifeld
    Beiträge
    1.067
    Danke
    77
    Erhielt 205 Danke für 159 Beiträge

    Standard

    Wie lang ist denn die ASDU auf der Beckhoff-Seite ? 1 oder 2 Byte ?

    Aber mal grundsätzlich: Warum muss die Verbindung zu dem Panel über 104 gemacht werden ? Da bietet sich Modbus/TCP doch eher an - und die 750er ist ja sehr kommunikativ

    Edit: Ich hab mir grad mal AcosET geöffnet, deine blau markierte Testmeldung hat die ASDU 1 ?!?
    Geändert von Lars Weiß (16.11.2010 um 18:33 Uhr)
    "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen" - Erich Kästner

  3. #3
    Registriert seit
    13.10.2009
    Beiträge
    32
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Lars Weiß Beitrag anzeigen
    Wie lang ist denn die ASDU auf der Beckhoff-Seite ? 1 oder 2 Byte ?

    Aber mal grundsätzlich: Warum muss die Verbindung zu dem Panel über 104 gemacht werden ? Da bietet sich Modbus/TCP doch eher an - und die 750er ist ja sehr kommunikativ

    Edit: Ich hab mir grad mal AcosET geöffnet, deine blau markierte Testmeldung hat die ASDU 1 ?!?
    Bei meiner Markierten Meldung ist die zweite Spalte die Geräteadresse. Ich geh mal davon aus dass mit Geräteadresse die ADSU gemeint ist. Diese steht wie oben zu sehen auf 1. Nun hab ich auf Beckhoffseite die ASDU ebenfalls auf 1 gestellt. das ergebnis war, dass ich am Ausgang byQual (für die Informationsobjektqualität) des Empfangsbausteins auf IDS-Seite "128" angezeigt bekomme. Daten empfange ich allerdings noch nicht.

    Das ganze schaut online auf IEC-Seite nun folgendemasen aus:


    Zur länge der ASDU-Adresse auf der Beckhoffseite:
    Laut Beschreibnung des verwendeten Beispielprogramms von Beckhoff ist die ASDU-Adresse 2 octet lang, aber ich selbst hab leider nicht gefunden wo dies definiert ist.

    Muss ich für die Kommunikation über Modbus/TCP bestimmte Bausteine bei Beckhoff erwerben oder sind die schon in Freien Bibliotheken verfügbar?

  4. #4
    Registriert seit
    22.05.2005
    Ort
    sonniges Maifeld
    Beiträge
    1.067
    Danke
    77
    Erhielt 205 Danke für 159 Beiträge

    Standard

    Ich hatte leider noch keine 750er in der Hand. Ich frage mich ob die eine Meldung, die du in der 750 als UZE von einer UST empfangen möchtest, überhaupt im ACOS angelegt werden muss.

    Hattest du eine Schulung ?
    "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen" - Erich Kästner

  5. #5
    Registriert seit
    13.10.2009
    Beiträge
    32
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Laut Ids muss sie wohl angelegt werden.

    Schulung hatte ich leider keine, da es so Zeitnah wie ich das brauche keine gab.
    Auf das Panel von Beckhoff kommt keine Highlight Zentrale von IDS sondern eine Visu aus TwinCAT PLC. Sprich mir geht es erst mal nur um den nakten Datenaustausch zwischen den beiden SPS Laufzeiten (Beckhoff -> Ids).

  6. #6
    Registriert seit
    13.10.2009
    Beiträge
    32
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Den Fehler, weshalb ich keien Verbndung über die IEC 60870-5-104 aufbauen konnte, habe ich gefunden. Es lag an der Falschen Lizens für das CP66. Dies geschah aufgrund eines Missverständnisses in der Bezeichnung. Bei Beckhoff werden die Teilnehmer mit Master und Slave bezeichnet und bei Ids mit Server und Client. Mir war nicht bekannt, dass Master = Client und Slave = Server giltet. Nun habe ich die richtige Lizens und kann die Verbindung aufbauen. Die Übertragung der Daten ist allerdings immer noch fehlerbehaftet. Diesbezüglich werde ich jedoch einen neuen Thread auf machen, weil das hier sonst zu kompliziert wird und man sich sonst zu weit in die Vorgeschichte einlesen müsste.

Ähnliche Themen

  1. Iec 60870-5-104
    Von poti2 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 03.03.2011, 22:36
  2. IEC 60870-5-104 Datenübertragung gestört
    Von Netwalker im Forum CODESYS und IEC61131
    Antworten: 5
    Letzter Beitrag: 08.12.2010, 14:55
  3. Kommunikationstreiber für IEC 60870-5-104
    Von Benjamin im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.05.2010, 13:44
  4. IEC 60870-5-101 an S7-300 Anbinden?
    Von eYe im Forum Feldbusse
    Antworten: 3
    Letzter Beitrag: 02.03.2010, 10:35
  5. Kraftwerksprotokoll IEC 60870-5-103
    Von eYe im Forum Feldbusse
    Antworten: 4
    Letzter Beitrag: 11.01.2010, 13:17

Stichworte

Lesezeichen

Berechtigungen

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