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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: auf DB in SCL zugreifen

  1. #1
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo. Habe folgendes Problem.

    Möchte in einem SCL FC auf einen bestimmten DB zugreifen. Diesen DB möchte ich als Variable von außen übergeben. Ist das möglich, wenn ja wie?
    Zitieren Zitieren auf DB in SCL zugreifen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    Hallo,
    deine DB-Nr muß als WORD vorhanden sein oder du hast sie dahin umgewandelt. Dann geht es mit :
    Code:
    myWORD := WORD_to_BLOCK_DB(my_DB).DW(myIndex) ;
    Gruß
    LL

  3. #3
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    funktioniert irgendwie nicht, oder mache ich es falsch?

    Code:
     
    FUNCTION FC302 : VOID
    VAR_INPUT 
    Datenlaenge : INT; 
    Quell_DB : WORD;
    Quelloffset : INT;
    Ziel_DB : WORD;
    Zieloffset : INT;   
    END_VAR
    VAR_TEMP
        // temporäre Variablen
    END_VAR
    VAR
        // statische Variablen
    i : INT;
    END_VAR
    FOR i := 0 TO Datenlaenge -1 DO
    Ziel_DB.DBB[Zieloffset + i] := Quell_DB.DBB[Quelloffset + i];
    END_FOR;
     
        // Anweisungsteil
        ;
    END_FUNCTION
    Zitieren Zitieren ???  

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    ... wenn du es so machen willst, dann muß dein Parameter vom Typ BLOCK_DB (und nicht WORD) sein. In dem Fall übergibst du dann dem Baustein auch als Wert (z.B.) DB10 und nicht 10 um an den DB10 zu kommen.

    .. wenn du nur die Zahl übergeben willst, so mußt du aus der Zahl erst einen BLOCK_DB machen (siehe mein voriger Beitrag).

    Gruß
    LL

  5. #5
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Ich habe es jetzt so gemacht wie ich es gepostet habe und habe die eingangsvariable vom Typ Block_DB gemacht. bekomme jetzte an der Stelle:

    Code:
     
    Ziel_DB.DBB[Zieloffset + i] := Quell_DB.DBB[Quelloffset + i];
    die Fehlermeldung: Ungültige Variable
    Zitieren Zitieren Ok  

  6. #6
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Danke es funktioniert jetzt. Wie bekomme ich denn eine Hilfe für meinen erstellten FC hin? geht das, oder muss ich eine Beschreibung in den SCL Baustein direkt als Kommentar reinschreiben?
    Zitieren Zitieren Funktioniert  

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von Bensen83 Beitrag anzeigen
    Wie bekomme ich denn eine Hilfe für meinen erstellten FC hin?
    http://support.automation.siemens.co...iew/de/8786360
    kapitel 3
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    ... was stellst du dir unter Hilfe vor ?
    Wenn du z.B. folgendes machst :
    Code:
    FUNCTION FC302 : VOID
    VAR_INPUT 
    Datenlaenge : INT;  // Größe des Datenbereichs
    Quell_DB : WORD;  // Datenbaustein Quell-Daten
    Quelloffset : INT;
    Ziel_DB : WORD;
    Zieloffset : INT;   
    END_VAR
    die rot markierten Kommentar-Texte würden dir z.B. eine Benutzer-Hilfe bei der Verwendung des Bausteins ermöglichen ...

    Gruß
    LL

    Nachsatz:
    Falls sich meine Antwort ganz oder teilweise mit der von 4L überschneiden sollte ... ich hatte den Beitrag schon eine Weile fertig ... bin dann aber abgelenkt worden und nicht dazu gekommen ihn abzuschicken ...
    Geändert von Larry Laffer (17.02.2010 um 15:35 Uhr)

  9. #9
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Da wir gerade dabei sind, gibts da noch irgend etwas, wie ich folgendes Realisieren kann: ( am besten, dass ich z.B. EB100 & AB100 oder so übergebe).

    Ich möchte eine Anfangsadresse der Eingangs und Ausgangsperipherie übergeben und dann in dem SCL Baustein z.B. 10 darauf folgende Ausgangsbytes ansprechen, also quasi den übergebenen Parameter mit nem index hochzähen. geht sowas?
    Zitieren Zitieren Weitere Funktionen  

  10. #10
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    stichwort: datentyp ANY

    aber in SCL ist das nicht wirklich komfortabel zu handhaben...
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Mit C# auf OPC zugreifen
    Von Bensen83 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 25.09.2010, 13:58
  2. Mit C# auf SPS zugreifen
    Von Red-Sh4nks im Forum Hochsprachen - OPC
    Antworten: 22
    Letzter Beitrag: 04.06.2010, 18:10
  3. IN SCL auf dbx zugreifen
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 14.03.2010, 13:11
  4. Auf S5 über H1 zugreifen
    Von repök im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 15.03.2009, 14:25
  5. Mit Any-Pointer auf PAW zugreifen?
    Von merlin im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.06.2007, 20:51

Lesezeichen

Berechtigungen

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