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

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

Thema: AWL vs. FUP

  1. #1
    Registriert seit
    13.06.2006
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi!
    Bin gerade von Mitsubishi in die Siemens-Welt eingetaucht und soll nun S7-300 CPUs programmieren. Nun habe ich einen Haufen fragen.
    Gleich mal was elementares.
    Ich bin dabei alle Anlagenteile in FBs zu implementieren.
    Diese werden dann im OB1 aufgerufen und mit den div. Signalen "verdrahtet". Mir gefällt der FUP-Stil da er sehr übersichtlich ist. Nachdem ich aber aus der AWL(STL)-Welt komme porgrammiere ich gerne in AWL. Wenn ich nun einen FB in FUP einfüge und dann auf AWL umstelle sehe ich das für die Eingänge immer solche Teile erstellt werden:
    [code]
    BLD 103
    U M 100.1
    = L 28.1
    [code]
    Warum wird im FUP Modus immer der eingang auf einen L-bereichsvaribale gelegt und diese dann am FB abgeschlossen anstatt gleich das Signal anzuschliessen.
    Wenn ich den FB via AWL einfüge ist dies nämlich kein problem.
    Zitieren Zitieren AWL vs. FUP  

  2. #2
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Der BLD Befehl bewirkt rein garnichts, er wir nur im KOP oder FUP Editor zur Umwandlung nach AWL und zurück benutzt.
    Genauso wie der Befehl =L 28.1

    Also alles nur zur Umwandlung, man kann die L und BLD Befehle auch löschen. Dann kann man nur nicht mehr nach FUP oder KOP umschalten. Es funktioniert aber weiterhin

    marlob

  3. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    Der Befehl = L28.1
    bewirkt sehr wohl etwas, wie der Fragesteller schon festgestellt hat wird der eigentliche FB-Eingang mit einer Temporärvariable blelegt.
    Warum das von Siemens allerdings so aufwendig gemacht ist, weiß nur Siemens.

    Der BLD oder NOP Befehl ist allerdings wirklich nur zur Umwandlung zwischen AWL und KOP/FUP.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard

    @Pimsti

    Ich denke mal, siemens schafft damit die Möglichkeit, ganze Verknüpfungen an einen Eingang des FB zu hängen und das dann in FUP darzustellen. Das Ganze wird dann über das von dir gezeigte Konstruckt aufgedröselt, so daß es in AWL schön nacheinander dasteht. Leider ist das für AWL-Programmierer nicht so das Richtige, außerdem werden die Temp-Variablen öfter umgruppiert, wenn man Netzwerke mit neuen Bausteinen einfügt. Ich hab mit eigentlich angwöhnt, die Bausteinaufrufe selbst immer in ein AWL-Netzwerk zu setzen (Baustein in AWL mit CALL etc. aufrufen), Der ist zwar nicht mehr in FUP darstellbar, aber meine eingenen Temp-Variablen kann ich da übersichtlicher ranschreiben.
    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. #5
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    @MSB
    Du hast recht, das der Befehl = L28.1 etwas bewirkt. Die Variable L28.1 kommt ja schliesslich 2x mal vor einmal als Zuweisung und einmal als UND-Verknüpfung
    Der BLD Befehl bewirkt ja schliesslich auch etwas und zwar die Umwandlung nach FUP/KOP, nur Programmtechnisch ist er uninteressant, genau wie die Befehle mit der lokalen Variable und darum kann man sie meistens!! auch löschen ohne die Funktionaltät zu verändern.

  6. #6
    Noch ein Gast Gast

    Lächeln

    M.E. solltest du einen problemorientierten Ansatz wählen:

    - bei einfachen Lade- und Transferoperationen ist
    AWL sicher besser, weil du dir den z.T. unnötigen
    Overhead (BLD-Anweisungen) etc. sparst

    - bei gemischten UND vor ODER vor UND-Verknüpfungen
    ist FUP sicher die bessere Alternative, sonst geht
    man leicht im Klammerwald verloren.

    - auch bei Rechen- und Transferoperationen (außer MOVE)
    ist es sinnvoll, FUP zu verwenden, weil der Compiler
    dann eine Typprüfung vornehmen kann. Diese Prüfung
    kann aber auch lästig sein, wenn du z.B. 16 Freigabe-
    bits gemeinsam in einem Wort verarbeiten willst. Ein
    boolsches Array 1-16 lässt sich nicht direkt in ein
    WORD transferieren.

    - du solltest versuchen, deinen Code immer möglichst
    lokal zu halten, also Lokaldaten benutzen (aber un-
    bedingt im Bausteinkopf deklarieren und nicht abso-
    lut zugreifen, weil es sonst zu Doppelbelegungen
    kommen kann, wenn der KOP/FUP/AWL-Editor wie in deinem
    Beispiel selbständig L-Daten belegt) und in FBs auch
    lokale statische Variablen.
    M, MB, MW, MD nur für wirklich globale Variablen,
    z.B. zur Übergabe zwischen verschiedenen Programm-
    teilen einer Maschine.

    - reinen AWL-Code für systemnahe Programmierung (z.B.
    Zerlegung und Zusammenbau von Pointern) möglichst in
    gekapselten Funktionen.

    - SCL für Programme mit Schleifen und vielen Verzweigungen
    (IF, CASE, ...) vor allem beim Arbeiten mit UDTs und in
    Instanz-DBs, denn da kannst du in AWL kaum einen Ge-
    schwindigkeitsvorteil rausholen. Die indizierten Zugriffe
    über die Adressregister sind leider etwas kompliziert,
    weil Siemens hier vergessen hat, einige Adressierungs-
    arten in Hardware zu gießen.

    Gruß G.
    Zitieren Zitieren Problemorientierte Programmierung ...  

  7. #7
    Pimsti ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    13.06.2006
    Beiträge
    12
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Aber wenn ich einmal AWL z.B im OB1 oder einen anderen FB brauche dann wird ja alles in AWL dargestellt oder?
    Oder gibt es einen Möglichkeit einzelne Netzwerke in AWL und einzelne in FUP darzustellen?
    Wenn nicht ist FUP für mich hinfällig da ich immer wieder kurze Sachen in AWL implementieren will

  8. #8
    Registriert seit
    30.08.2003
    Beiträge
    2.196
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Hallo,

    die Sache wird wie Ralle geschrieben hat benutzt um Vorverknüpfungen vor den Parametern zu ermöglichen. Hat man reine AWL-Aufrufe dann sind diese nicht mehr in KOP/FUP darstellbar. Dafür gibt es den KOP-Konverter.

    www.sps-concept.de/tools/kop_konverter.htm

    MfG
    André Räppel
    Zitieren Zitieren Awl  

  9. #9
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.732
    Danke
    314
    Erhielt 1.520 Danke für 1.282 Beiträge

    Standard

    Der Bausteineditor stellt alles was er aus irgend einen Grund nicht auf KOP/FUP übersetzen kann in AWL dar, es kann also durchaus sein, das das eine Netzwerk in AWL ist, und das nächste in KOP/FUP.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  10. #10
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.336
    Danke
    27
    Erhielt 130 Danke für 117 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Früher bei S5 gabs mal den AWL-Befehl.
    Dadurch wurde dann ein Netzwerk explizit in AWL dargestellt und nicht in KOP oder FUP. Obs das heute noch gibt glaube ich kaum, da es eigentlich unnötig wurde.

    Ebenfalls sind die versch. BLD-Befehle interne Befehle zur Bild-Steuerung im Editor. Das gabs bei S5 auch schon. War ganz nett bei der Programmeingabe. Z.B. BLD255 Text wurde dann so umgewandelt, das ein neus Netzwerk erzeugt wurde mit der Überschrift "Text". Da gab es dann noch einige mehr!

    Die NOP's (NOP 0) sind Nulloperations Befehle.

    NOP 0 (Operation NOP mit dem Operand "0") führt keine Funktion aus und beeinflußt die Statusbits nicht. Der Operationscode enthält ein Bitmuster mit 16 Nullen. Die Operation ist nur für das Programmiergerät (PG) wichtig, wenn ein Programm angezeigt wird.

Lesezeichen

Berechtigungen

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