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

Ergebnis 1 bis 4 von 4

Thema: Datenübertragung über I/O zwischen 2 S5 Steuerungen

  1. #1
    Gast Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo bin auf der Suche nach einem guten Dekanstoß, zur Datenübertragung über I/O´s (möglichst wenige ist doch klar). Es geht um eine Anlage mit 2 CPU´s an denen ich die Fertigungstückzahl und eine Auftragsnummer übergeben will, es sind ca. 6 Datenwörter.

    Bin für jeden Vorschlag dankbar.

    Mfg M. Meier
    Zitieren Zitieren Gelöst: Datenübertragung über I/O zwischen 2 S5 Steuerungen  

  2. "Da gibt es viele Ansätze.
    Zu erstmal eine paar Fragen:
    -Muss es eine Bidirektionale Kommunikation sein?
    -Können die 6 Datenwörter immer auf einen schlag übertragen werden?"


  3. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Da gibt es viele Ansätze.
    Zu erstmal eine paar Fragen:
    -Muss es eine Bidirektionale Kommunikation sein?
    -Können die 6 Datenwörter immer auf einen schlag übertragen werden?
    If you open your Mind too much, your Brain will fall out.

  4. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Hier mal was aus "Alten" Zeiten:

    Code:
     
    FB199
    ;Datenuebertragung
    NAME: DATEN   
    BEZ : M/S  DKC
    BEZ : ENAB EBI   ;Aktivieren
    BEZ : STRI DKF   ;Startadresse Input
    BEZ : STRO DKF  ;Staradresse Output
    BEZ : LEN  DKF   ;Anzahl zu übertragender Byte
    BEZ : ZBYI EBY   ;Zählbyte Input
    BEZ : DBYI EBY   ;Datenbyte Input
    BEZ : ZBYO ABY  ;Zählbyte Output
    BEZ : DBYO ABY  ;Datenbyte Output
    BEZ : DTN  B       ;Datenbaustein für Zähler
    BEZ : ZYKL DKF   ;Verzugszyklen, bis Daten eingelesen werden
     
     L KF +0
     T MW 200
     T MW 202
     T MW 204
     T MW 206
     T MW 208
     T MW 220 ;alle Zwischenmerker auf Null
     B =DTN 
     LW =M/S  ;pruefen, ob
     L KC MA ;Masterzelle
     !=F  ;ja,
     = M  220.0 ;dies ist die Masterzelle
     UN =ENAB ;wenn Enable aus, dann alles
     SPB =NULL ;NULL
     L =ZBYI ;Eingang Nummer
     T MW 206 ;zwischenmerken
     L KF +0
     >F  ;groesser Null
     SPB =DAT1 ;Datenuebertragung laeuft
       ;ZBYI ist Null
     L DW 0 ;gemerktes letzes ZBYI
     L KF +1 ;+ 1
     +F
     U =ENAB ;wenn Start
     U M  220.0 ;an Masterzelle
     SPB =STRT ;dann 1. Byte uebertragen
     SPA =END1
       ;***************************
       ;das naechste Zaehlbyte darf
       ;immer nur 1 groesser sein
       ;***************************
    DAT1: L DW 0 ;letztes bearbeitetes ZBYI
     L KF +1 ;1 erhoehen
     +F
     T MW 208 ;zwischenmerken
     LW =LEN  ;Laenge
     L MW 208
     >=F  ;nicht ueberschritten,
     SPB =NEXT ;dann normal weiter
       ;wenn Ueberlauf, dann weiter
     L KF +1 ;mit 1
    NEXT:
     L MW 206 ;zwischengemerktes ZBYI
     ><F  ;nicht gleich,
       ;dann fehlerhaftes ZBYI,
       ;oder kein neues ZBYI
     SPB =ENDE ;-->Sprung ans Ende
       ;sonst normal weiter
     L MB 206 ;ZBYI zwischengemerkt
     LW =LEN  ;Anzahl
     >F  ;ueberschritten ?
     SPB =ENDE
       ;Uebernehmen Eingangsdaten
       ;-------------------------
     L DW 1 ;Xx Zyklus Verzug schon erledigt
     LW =ZYKL ;Anzahl Verzugszyklen erreicht ?
     <F  ;nein,
     SPB =SET1 ;dann 1 weiterer Zyklus Verzug
       ;Daten werden eingelesen
    WEIT:   ;-----------------------
     L MW 206 ;ZBYI zwischengemerkt
     LW =STRI ;Beginn Eingangsbereich
     +F
     L KF +1 ;- 1, da Eingang Nummer
     -F  ;1 = 0.EW
     T MW 200 ;Parameter zwischenmerken
     L =DBYI ;Eingang Daten
     B MW 200 ;Parameter= ZBYI+EING
     T EB 0 ;nach Eingang uebertragen
       ;Daten wurde uebergeben
     L MW 206 ;ZBY zwischengemerkt
     T DW 0 ;merken in DW0
     L KF +0 ;0 in
     T DW 1 ;Zykusverzug eintragen
       ;Uebergeben Ausgangsdaten
       ;------------------------
     L KF +0 ;wenn Slave, nicht erhoehen = 0
     UN M  220.0 ;Slavezelle
     SPB =SLAV ;dann nicht Ausgang um 1
       ;erhoehen
     L KF +1 ;wenn Master, erhoehen = 1
    SLAV: L MW 206 ;ZBYI zwischengemerkt
     +F  ;0(Slave) oder 1(Master) addieren
    STRT: T MW 202 ;Zwischenmerken
     LW =LEN  ;Max. Anzahl ueberschritten ?
     <=F  ;nein,
     SPB =OK   ;dann normal weitermachen
     L KF +1 ;sonst mit erstem Byte
     T MW 202 ;weitermachen
    OK  : L MW 202 ;neue Eingang Nummer uebergeben
     T =ZBYO ;an Ausgang Nummer
     LW =STRO ;Beginn Ausgangsbereich
     L MW 202 ;Ausgang Nummer
     +F
     L KF +1 ;-1, da Ausgang Nummer
     -F  ;1 = O.AW
     T MW 204 ;Parameter zwischenmerken
     B MW 204 ;Parameter= ZBYO + AUSG - 1
     L AB 0 ;von Ausgang uebernehmen
     T =DBYO ;nach Ausgang Daten uebertragen
       ;Zeit zuruecksetzen
       ;fuer naechstes Byte
    END1: SPA =ENDE
    NULL:   ;loeschen der Ausgangsdaten
     L KF +0 ;--------------------------
     T =ZBYO
     T =DBYO
     T DW 0
     T DW 1
       ;loeschen aller Eingangsdaten
       ;----------------------------
     L KF +1 ;mit 1 gehts los
     T MW 202 ;Zwischenmerken
    LOOP: L MW 202
     LW =STRI ;Beginn Eingangsbereich
     +F
     L KF +1 ;- 1, da Eingang Nummer
     -F  ;1 = 0.EW
     T MW 200 ;Parameter zwischenmerken
     L KF +0 ;Eingang Daten = Null
     B MW 200 ;Parameter= ZBYI + EING - 1
     T EB 0 ;nach Eingang uebertragen
     L MW 202 ;naechstes Byte loeschen
     L KF +1
     +F
     T MW 202 ;Zwischenmerken
     LW =LEN  ;Anzahl Bytes
     >F  ;erreicht ?
     SPB =ENDE
     SPA =LOOP
    SET1:
     L DW 1 ;Zaehler Verzugszyklen
     L KF +1 ;um 1
     +F  ;erhoehen
     T DW 1 ;wird ausgefuehrt
    ENDE:
     BE
    Aufruf Masterzelle:

    Code:
     
     UN A  113.7
     L KT 015.1
     SE T  126
     U T  126
     S A  113.7
     SPA FB 199
    NAME: DATEN   
    M/S : KC MA
    ENAB: A 113.7
    STRI: KF +20
    STRO: KF +20
    LEN : KF +3
    ZBYI: EB 120
    DBYI: EB 121
    ZBYO: AB 120
    DBYO: AB 121
    DTN : DB 199
    ZYKL: KF +1
    Aufruf Slavezelle:

    Code:
     
     SPA FB 199
    NAME: DATEN   
    M/S : KC SV
    ENAB: E 81.7
    STRI: KF +20
    STRO: KF +20
    LEN : KF +3
    ZBYI: EB 88
    DBYI: EB 89
    ZBYO: AB 88
    DBYO: AB 89
    DTN : DB 199
    ZYKL: KF +3
    DB199:

    Code:
     
    0: KF +0 ;letztes bearbeites ZBYI
    1: KF +0 ;1 Zyklus Verzug 0=nein; 1=ja
    2: KF +0 ;Reserve
    Es ging darum über 2 Byte Eingänge und 2 Byte Ausgänge Daten auszutauschen. Die Daten sollten wieder auf Eingänge gehen und von Ausgängen kommen. Statt dessen könnte man auch Daten eines DB austauschen. Es gibt jeweils ein Zählbyte und ein Datenbyte.
    Das Ganze hat damals problemlos funktioniert, gibt sicherlich noch Bessere Ansätze, aber als Denkanstoß sollte es ausreichen.
    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

  5. #4
    Gast Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von zotos
    Da gibt es viele Ansätze.
    Zu erstmal eine paar Fragen:
    -Muss es eine Bidirektionale Kommunikation sein?
    -Können die 6 Datenwörter immer auf einen schlag übertragen werden?

    Die Daten müssen nur von der ersten CPU zur Zweiten übertragenwerden, die Erste bekommt die Daten vom PC.

    Gruß
    M. Meier

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 17.11.2010, 10:17
  2. ADS Kommunikation zwischen Beckhoff Steuerungen
    Von peraho im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 09.09.2009, 08:00
  3. Antworten: 10
    Letzter Beitrag: 21.01.2008, 09:01
  4. Datenübertragung über Ethernet fehlerhaft
    Von CrazyCat im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 17.02.2006, 08:24
  5. Datenübertragung über Profibus an Regler
    Von lefrog im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 16.10.2005, 19:53

Lesezeichen

Berechtigungen

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