Step 7 AWL Anweisung Erklärung

malbouzan

Level-2
Beiträge
54
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe diese Anweisung in einem FC :

U L 0.1
= L 2.0
BLD 103
U L 0.0
= L 2.1
BLD 103
U L 0.2
= L 2.3
BLD 103
U E 0.2
= L 2.6
BLD 103
CALL FB 101 , DB141
Thermokontakt :=L1.0
Motorschutz :=L1.1
Stoerung_Umr :=
Taster :=L1.3
Automatik_Ein :=
Automatik_Aus :=
Haube :=L1.6
Freigabe :=M141.3
Antrieb :=M141.1
Bit_1 :=
Bit_0 :=
Meldeleuchte :=
Meldung_Thermo :=
Meldung_MSchutz:=
NOP 0

leider in Temp keine Deklaration eingetragen, ist leer.
sobald ich ändere das Baustein oder neue Anweisungen einfüge funktioniert das nicht mehr und ändert sich den Ausgang gar nicht.
was meinte der Programmierer damit. zum Beispiel : Taster kommt aus HMI Panel aber hier steht L1.3 , warum kein DB Oder Merker bit?
das sieht so aus, keine Kommentare. der Programmierer ist nicht erreichbar und ich muss diese selbe Änderung vornehmen ,Gruß und danke im Voraus für Support.

beigefügt Screenshot von FC.

FC141_2.PNG


FC141_1.PNG
 
Der Baustein ist in FUB erzeugt worden und dann wurde auf AWL umgeschaltet so sieht es aus. Aber die Lokaladressen in den NW stimmen nicht überein. Beschrieben werden 2. Und am fb sind 1. Adressen.

Lokaldaden sind wie Schmiermerker nur halt in den FC gültig. Normalerweise legt man erst die Temporären an und dann arbeitet man symbolisch.
Hier hat sich dein Programmierer KnowHow Schutz eingebaut durch Verwirrung und schlechter Doku.
Am besten FC kopieren und dann anfangen jedes bit zurückverfolgen wo es gesetzt wird und dann alles beschriften.
 
Zuletzt bearbeitet:
Funktioniert das Programm zurzeit ?
Gehe zu verwendungstelle geht nicht bei Lokaldaten
Meine Vermutung das die Lokaladressen von 1.? Auf 2.? Geändert werden muss.
Das wäre zumindest für mich logisch. Dann sollte der baustein auch auf FUB umschaltbar sein
 
Ja, das original Programm funktioniert einwandfrei, aber ich möchte ändern und das geht nicht und funktioniert nicht mehr.
der baustein ist umschaltbar auf fub.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
das Baustein ist umgeschaltet auf FUB . und das besser jetzt und zeigt dass l0.1,l02,l03 am eingänge von FB101.
aber bei Änderung am Taster änder sich der Ausgang nicht am Antrieb, wie kann ich weiter.?
danke noch mal für Hilfe
 
Deklariere im FC in TEMP:
Code:
Motorschutz   : BOOL : 0.0
Thermokontakt : BOOL : 0.1
Taster        : BOOL : 0.2
Wenn Du nun in Netzwerk 4 so änderst:
L2.0, L2.1, L2.3, L2.6
zu
L1.0, L1.1, L1.3, L1.6
(oder andersrum wie von SPS-Bitschubser vorgeschlagen funktioniert auch, das wird dann vom FUP-Editor zu L1.x korrigiert)

dann kann der Code wieder in FUP dargestellt werden (so sah er vermutlich früher mal aus), aber Vorsicht! nun ändert sich die Funktion des Codes!

Das Netzwerk 4 wurde nach der Umschaltung zu AWL unsachgemäß (oder absichtlich?) manuell geändert (4x L1.x zu L2.x geändert), so daß der Aufruf des FB101 nicht mehr mit den in den Netzwerken 1 bis 3 vorverknüpften Signalen funktioniert. Die mit L1.0 bis L1.6 beschalteten FB-Eingänge bekommen vor der Änderung zufällig alle 0-Werte, es können aber auch andere "zufällige" Werte auftreten, je nachdem, was der/die Bausteine vor dem Aufruf des FC mit dem TEMP-Bereich anstellen. Was für ein Baustein wird vor dem FC aufgerufen und was macht der mit den Lokaldaten L1.0 bis L1.6?
Kann es sein daß der hier gesteuerte Antrieb gar nicht (mehr) existiert? (und deshalb relativ egal ist was der Code tut)
Gibt es in dem SPS-Programm weitere Aufrufe des FB101, womöglich sogar mit dem DB141 als IDB?

Was für eine CPU ist das eigentlich?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
sobald ich ändere das Baustein oder neue Anweisungen einfüge funktioniert das nicht mehr und ändert sich den Ausgang gar nicht.
Funktioniert denn der Code von Beitrag #1? Ist das der originale Code aus der Steuerung? Oder wurde der Code da schon von Dir geändert?

Wenn Du den Code so änderst:
Code:
      U     L      1.0
      =     L      2.0
      BLD   103
      U     L      1.1
      =     L      2.1
      BLD   103
      U     L      1.3
      =     L      2.3
      BLD   103
      U     L      1.6
      =     L      2.6
      BLD   103
      CALL  FB   101 , DB141
       Thermokontakt  :=L2.0
       Motorschutz    :=L2.1
       Stoerung_Umr   :=
       Taster         :=L2.3
       Automatik_Ein  :=
       Automatik_Aus  :=
       Haube          :=L2.6
       Freigabe       :=M141.3
       Antrieb        :=M141.1
       Bit_1          :=
       Bit_0          :=
       Meldeleuchte   :=
       Meldung_Thermo :=
       Meldung_MSchutz:=
      NOP   0
dann kannst Du die Ansicht auf FUP umstellen und Anweisungen hinzufügen, und der Code müsste trotzdem wie vorher funktionieren. Du darfst nur nicht L1.0, L1.1, L1.3, L1.6 verändern. Aber wie bereits im Beitrag #14 geschrieben, funktioniert der Code abhängig davon, was andere Bausteine vorher im TEMP anstellen - das ist völlig unsauber programmiert.

Harald
 
Zuletzt bearbeitet:
Danke Harald,
Das hat geklappt jetzt, ich muss nur den Eingang Haupe setzten(muss true sein)
Ich habe geprüft mit Plcsim und mache morgen vor Ort an der Anlage.
Ich bedanke mich sehr für hilfreiche Tipps
 
sobald ich ändere das Baustein oder neue Anweisungen einfüge funktioniert das nicht mehr und ändert sich den Ausgang gar nicht.
(...)
der Programmierer ist nicht erreichbar und ich muss diese selbe Änderung vornehmen
Ja, das original Programm funktioniert einwandfrei, aber ich möchte ändern und das geht nicht und funktioniert nicht mehr.
das Baustein ist umgeschaltet auf FUB . und das besser jetzt und zeigt dass l0.1,l02,l03 am eingänge von FB101.
aber bei Änderung am Taster änder sich der Ausgang nicht am Antrieb, wie kann ich weiter.?
Was für eine Änderung musst Du vornehmen?

Bist Du sicher, daß Dein Antrieb durch diesen Programmcode von Beitrag #1 gesteuert wird?
Gehören die in den Netzwerken davor und dahinter verarbeiteten Eingänge und Variablen zu dem Antrieb? Werden sie vielleicht auch noch anderswo nochmal verwendet?

Der Code in Beitrag #1 ist fehlerhaft und funktioniert so nicht. Der FB101 verarbeitet Eingangsvariablen aus dem TEMP-Bereich (L1.0, L1.1, L1.3, L1.6), denen zuvor NICHTS zugewiesen wurde. In den TEMP-Variablen stehen Werte, die durch einen anderen Baustein da quasi "zufällig" (oder ganz fies absichtlich) hinterlassen werden. (oder dem FB sind die übergebenen Werte egal?)

Wird der FB101 noch öfter im Programm aufgerufen? Vielleicht sogar mit dem DB141 als IDB?
Vergleiche andere Aufrufe des FB101 mit dieser Programmstelle. So wie andere funktionierende Programmstellen sollte diese Programmstelle vermutlich auch aussehen, vermutlich wie ich in #14 beschrieben habe, hier nochmal ausführlich:
Code:
      U     L      0.1
      =     L      1.0
      BLD   103
      U     L      0.0
      =     L      1.1
      BLD   103
      U     L      0.2
      =     L      1.3
      BLD   103
      U     E      0.2
      =     L      1.6
      BLD   103
      CALL  FB   101 , DB141
       Thermokontakt  :=L1.0
       Motorschutz    :=L1.1
       Stoerung_Umr   :=
       Taster         :=L1.3
       Automatik_Ein  :=
       Automatik_Aus  :=
       Haube          :=L1.6
       Freigabe       :=M141.3
       Antrieb        :=M141.1
       Bit_1          :=
       Bit_0          :=
       Meldeleuchte   :=
       Meldung_Thermo :=
       Meldung_MSchutz:=
      NOP   0
Hast Du ältere Projekt-Versionen/Archive, wo der Code noch nicht so aussah? Warum wurde der Code geändert? Wir wissen nicht, ob der Code aus Versehen oder absichtlich so verstümmelt ist.

Um die kaputte Programmstelle von #1 zu reparieren, mußt Du verstehen was der Code tun SOLL, und ihn dann anpassen bis er auch so funktioniert.


Oder wird der FB101 nur einmal oder wenige Male aufgerufen und tut womöglich gar nicht das was er vorgibt zu tun? Könnte es sein, daß da KnowHow-Schutz eine Rolle spielt? Verwendet der FB101 indirekte Adressierung um Eingangswerte zu lesen?

Harald
 
Zurück
Oben