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

Seite 2 von 8 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 72

Thema: Probleme mit SFC 14 / SFC 15 in FB

  1. #11
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja ist doch gut so, jetzt kannst du doch für jede achse ein FB
    oder einen FC machen. Und dann da nur für diese Achse die
    Daten übertragen.

    Wenn du jetzt z.b. mein Beispiel nimmst, legst du einen FB an
    in diesen FB Deklariest du für jede Achse einmal den UDT dann
    fütterst im FB die Achsen mit Daten und rufst dann für jede
    Achse den FC auf.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  2. #12
    smartie ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.07.2005
    Beiträge
    298
    Danke
    27
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Ok, ich habe mir jetzt die "Mühe" gemacht deinen Code mal als Quelle zu importieren und sehe das ich den Code wohl doch eher falsch verstanden habe.

    Ich habe jetzt FC2 in meinem Programm, dass ist dein FC.

    Der benötigt nun einen Datenzeiger.
    Hier muss nun wohl die Adresse des DB mit dem UDT angegeben werden.

    Soweit verstehe ich es noch. Problematisch wirds nun mit dem UDT.
    UDT habe ich bisher noch nicht verwendet.

    Ich habe einen DB angelegt in dem ich eine Variable vom Typ UDT1 angelegt habe.
    Ich hoffe das ist richtig so?

    Aber nun komm ich nicht weiter. Wie beschreibe ich denn nun meinen Datenbaustein?
    Vor allem weiß ich nicht wie ich denn nun die IO Adresse angebe.

    Und meine FB´s müssen ja auch noch die Daten vom Servo bekommen,
    ich will ja in jedem FB alle Informationen vom Servo haben.
    Angehängte Grafiken Angehängte Grafiken

  3. #13
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    hier ein Beispiel wie ich es mit Instanzen in einen FB gemacht habe,
    eigentlich brauchst du das nur erweitern und anpassen.
    Unter VAR steht der UDT jeweils für jede Achse, die Daten stehen
    später in den zugehörigen Instanzdatenbaustein.


    Code:
    FUNCTION_BLOCK "Movieaxis"
    TITLE =Movieaxies
    VERSION : 0.1
     
    VAR
      Achse_1 : "SEW_SBP_Daten"; 
      Achse_2 : "SEW_SBP_Daten"; 
      Achse_3 : "SEW_SBP_Daten"; 
      Achse_4 : "SEW_SBP_Daten"; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =Achse 1
    //I_O Adresse stellen
          L     256; 
          T     #Achse_1.DRIVE_IO_ADDRESS; 
    //Achse Vorwärts tippen
          U     M     10.0; 
          =     #Achse_1.JOG_PLUS_MODE; 
    //Bausteinaufruf
          CALL "SEW_SBP" (
               Daten_Zeiger             := #Achse_1);
    NETWORK
    TITLE =Achse 2
    //I_O Adresse stellen
          L     272; 
          T     #Achse_2.DRIVE_IO_ADDRESS; 
    //Achse Vorwärts tippen
          U     M     11.0; 
          =     #Achse_2.JOG_PLUS_MODE; 
    //Bausteinaufruf
          CALL "SEW_SBP" (
               Daten_Zeiger             := #Achse_2);
    END_FUNCTION_BLOCK
    Geändert von rostiger Nagel (13.02.2010 um 11:38 Uhr)
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  4. #14
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Smartie,
    in den Beispiel sind alle Achsen in einen FB und einen Instanz DB.
    Du kannst natürlich jetzt für jede Achse auch einen eigenen FB
    mit Aufruf erzeugen. Oder einen Global DB machen wo die Daten von
    den Achsen drinstehen.

    Die Beispiele sind nur eine Hilfe und ein wenig zum Nachdenken anregen.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  5. #15
    smartie ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.07.2005
    Beiträge
    298
    Danke
    27
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Ok, jetzt wirds langsam deutlicher.

    Der FC2 der die Kommunikation mit der Achse steuert wird in jedem FB aufgerufen.

    Was du ja vorhin schon geschrieben hast (ich aber leider nicht so ganz verstanden habe):
    Wenn du jetzt z.b. mein Beispiel nimmst, legst du einen FB an in diesen FB Deklariest du für jede Achse einmal den UDT dann
    fütterst im FB die Achsen mit Daten und rufst dann für jede Achse den FC auf.
    Ich glaube aber ich hab jetzt so langsam mal kapiert wie es gehen könnte.

    Gruß smartie
    Geändert von smartie (13.02.2010 um 11:55 Uhr)

  6. #16
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Aber bitte beachte das du den FC nur einmal für jede Achse aufrufst.
    Sonst ist in etwas wie eine Doppel zuweisung von einen Ausgang, hier
    ein Beispiel wie ich das meinen.

    Code:
     
    U E 0.0
    = A 1.0
     
    U E 0.1
    = A 1.0
    in diesen Beispiel kann der Ausgang nur über E 0.1 gesetzt werden
    der Eingang E 0.0 hat keine auswirkung.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  7. #17
    smartie ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.07.2005
    Beiträge
    298
    Danke
    27
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Schon klar.

    Ich würde dann jetzt einen FB schreiben der die Kommunikation mit den Achsen handelt (und die Daten in die 4 DB´s mit dem UDT schreibt).

    In meinen FB´s die die Funktionen der Achsen steuern greife ich dann auf die Daten aus den 4 DB´s zu.

    Ich denke so müsste es doch gehen, oder?

  8. #18
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    wunderbar....
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  9. #19
    smartie ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.07.2005
    Beiträge
    298
    Danke
    27
    Erhielt 18 Danke für 15 Beiträge

    Standard

    Puh, schwere Geburt.

    Aber mal was gunrundsätzliches zum Thema UDT:

    Wennn ich einen Datenbaustein anlege und als Variable den Typ UDT festlege
    dann sieht man ja wenn man diesen DB öffnet nur die eine Variable vom Typ UDT.

    Wenn man dann also später mal wissen will was in diesem DB so alles steht dann muss man also noch zusätzlich den UDT öffnen.

    Ist das richtig so oder geht das auch einfacher?

    Gruß smartie

  10. #20
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    du kannst die Ansicht umschalten unter den Menü Ansicht,
    zwischen Deklarationsicht und Datensicht.
    In der Datensicht siehst du es dann aufgelöst. Beim Deklarieren
    ist es ganz angenehm, die UDT nicht aufgelöst zu sehen, so
    ist der Baustein übersichtlicher.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  11. Folgender Benutzer sagt Danke zu rostiger Nagel für den nützlichen Beitrag:

    smartie (13.02.2010)

Ähnliche Themen

  1. Bus Probleme
    Von KR-TKD im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 15.06.2011, 16:37
  2. CPU 315 F 2PN/DP DI Probleme
    Von Joke im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 12.05.2009, 21:10
  3. Probleme über Probleme!
    Von tom_2802 im Forum Simatic
    Antworten: 25
    Letzter Beitrag: 12.06.2008, 22:19
  4. Probleme mit ALM
    Von Larry Laffer im Forum PC- und Netzwerktechnik
    Antworten: 4
    Letzter Beitrag: 08.03.2008, 18:13
  5. Probleme mit OPC
    Von ILW im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 01.11.2007, 12:37

Lesezeichen

Berechtigungen

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