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

Ergebnis 1 bis 5 von 5

Thema: SCL - AWL Kommando "SRD" in SCL

  1. #1
    Registriert seit
    02.06.2006
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    AWL ist ja so einfach! Oder hat man sich nur schon zu sehr daran gewöhnt. Ich brauch in SCL etwas vergleichbares zur folgenden AWL Anweisung (Schiebe und wenn Positiv dann tue...).

    Code:
    AWL:
            L 1
            T #i
    Loop: L     #MASKE // Maske Bitweise  schieben 
            SRD   1 
            T     #MASKE  // Wenn positiv springe
            JP    chkO 
    //
            CLR    // not active ...
            =     DBX[AR1,P#0.0] // ... so copy to bit
            :
            :
            :
            JU    eoO 
    //
    chkO: NOP 0
    eoO: l #i 
           L 16
           <16
           JC Loop
    Klar fallen mir so einige Lösungen ein, aber die erscheinen mir alle sehr umständlich. Vielleicht hat einer von Euch ja eine "elegante" nicht so aufwendige Lösung. Hab in der Hilfe keinen vergleichbaren Befehl für SRD gefunden. Wäre echt glücklich, wenn Ihr mir helfen könntet. Vielen Dank schon mal

    Gruß
    Floh
    Zitieren Zitieren SCL - AWL Kommando "SRD" in SCL  

  2. #2
    Registriert seit
    06.10.2003
    Beiträge
    3.451
    Danke
    454
    Erhielt 510 Danke für 412 Beiträge

    Standard

    Hallo Floh,

    du scheinst ja voll auf dem SCL-Trip zu sein. Die Schiebe- und Rotierfunktionen nennen sich in SCL:

    SHL
    SHR
    ROL
    ROR

    Bsp.
    TEST_WORD := SHL(IN:=TEST_WORD, N:=1);


    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  3. #3
    Floh ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.06.2006
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Onkel Dagobert,

    Danke für die Antwort. Das mit dem SCL ist nicht freiwillig. Mein chef hat sich in den Kopf gesetzt, dass SCL ja so toll ist, das einige unserer Standardbausteine jetzt von AWL nach SCL konvertiert werden sollen. Ich konnte es ihm nicht ausreden und muß es jetzt ausbaden.
    Die meisten Schwierigkeiten hab ich, wenn es um die Umsetzung von Logik geht, die mit der RLO und STA (englisch) oder STW mit verwenden. Wie zum Beispiel dieses Problem mit dem schieben und dann das herausgeschoben Bit prüfen und zum Sprung verwenden. Siehe das kleine Stückchen Programm am Anfang. Schieben weis ich ja jetzt, aber wie prüfe ich das herausgeschobene Bit für meine If Anweisung .
    Ich glaube die größte Schwierigkeit besteht im Umdenken, da man nicht 1 zu 1 übersetzen darf/kann.
    Daher bin ich froh über jede Hilfe, die von euch kommt!

    Vielen Dank
    Gruß Floh

  4. #4
    Registriert seit
    06.10.2003
    Beiträge
    3.451
    Danke
    454
    Erhielt 510 Danke für 412 Beiträge

    Standard

    Hallo Floh,

    das ist wohl eine Gemeinsamkeit aller Chef's, keine Ahnung haben, immer alles wollen und demzufolge viel zu knapp kalkulieren - kenne ich . Aber vielleicht steckt ja auch ein Kundenwunsch dahinter.

    Wenn es sich um Standardfunktionen handelt wäre es u.U. vielleicht besser, die Funktionen der Bausteine mit eigenen Worten zu formulieren, und ohne Zuhilfenahme der AWL-Vorlage neue Bausteine zu erstellen. Nebenbei hätte man auch gleich eine Funktionsbeschreibung welche man als Kommentar einfügen könnte.

    Die Abfrage des herausgeschobenen Bits könnte man in SCL durch die Abfrage des rechtsstehenden Bits ersetzen.

    Code:
     
    FOR i:=1 TO 32 DO 
      TEMP := ((MASKE AND 1) = 1);
      MASKE := SHR(IN:=MASKE, N:=1);
      ...
    END_FOR;
    Möglich wäre eventuell auch ein Sichten mit dem AT-Befehl auf ein ARRAY of BOOL, welches man dann in der Schleife abfragen könnte.

    Hast du schon eine Lösung für die indirekte Adressierung DBX[AR1,P#0.0] ?


    Gruß, Onkel
    Geändert von Onkel Dagobert (08.06.2006 um 23:35 Uhr)
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  5. #5
    Floh ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.06.2006
    Beiträge
    15
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Onkel,

    Dieses Mal ist es wirklich rein die Idee meines Chefs (Hat glaub ich was mit dem Traum PCS7 und standard S7 Projekte verwenden gleiche Bausteine zu tun, ha ha.. ).
    Er meinte das kann ja nicht so schlimm sein - wir haben doch die Bausteine in AWL.
    Ich hatte schon darauf hingewiesen, dass neu schreiben die einzige vernünftige Möglichkeit ist. Aber die Antwort läßt er nicht gelten. Zusätzlich darf sich das DB Layout nicht ändern, da andere Bausteine und die SCADA daraufzugreifen. Folglich mach ich den ersten Baustein eins zu eins mit AWL, dann kann er sich den Sch... ansehen und vielleicht zur Einsicht kommen.
    Das Ganz sieht jetzt schon abenteuerlich aus mit den vielen Konvertiereungen der Formate, wo man sich bei AWL nicht so große Gedanken machen muss.
    Die inderekte Adressierung glaube ich hab ich im Grif. Lade den UDT vom DB in die Temp und arbeite die meiste Zeit mit den Temp Variablen. Schade nur, dass man dabei den DB nicht indiziert ansprechen kann, weil er ja ansonsten sein Datenformat im DB nicht findet (DB(index).UDT_Var[Ptr_Byte,Ptr_Bit]).
    Ansonsten eben mit DB(index).DX[Ptr_Byte,Ptr_Bit]. Direktes öffnen eine DB und dann anschliesend nur DBX ... zu verwenden geht doch nicht, oder
    Die Lösung für's schieben werd ich einbauen. Viele Dank dafür.
    So also bis zum nächsten Stolperstein.
    Gruß Floh

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 16.03.2012, 18:20
  2. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  3. Antworten: 8
    Letzter Beitrag: 16.05.2008, 11:26
  4. Antworten: 2
    Letzter Beitrag: 14.12.2007, 15:09
  5. Antworten: 4
    Letzter Beitrag: 29.11.2006, 08:59

Lesezeichen

Berechtigungen

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