Step 7 AWL Problem

stepper7

Level-1
Beiträge
245
Reaktionspunkte
9
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich hab hier ein kleines Problem, vielleicht hat jemand einen Tip.
Der Baustein ist in AWL und wird nur 1x kurz aufgerufen bzw. abgearbeitet um ein Ventil für ein Zylinder (A14.2) anzusteuern.
Ich wollte kurz bevor der Ausgang gesetzt wird einen Sensor abfragen (E5.0).
Nur leider funktioniert das nicht, der Zylinder fährt nicht vor, obwohl der Sensor E5.0 aber das Signal liefert.
Die Anlage bleibt stehen und nix passiert mehr, ich habe das Gefühl der Sensor E5.0 kommt einwenig verzögert nach dem der Baustein aufgerufen und bearbeitet wird und dann ist bereits alles zu Spät weil ganz unten eine BEA Anweisung steht. Kann das sein ?
Wenn alles stehen bleibt, steht die Abarbeitung an dem oberen BEB stehen und der Baustein läuft aber.
Eine Idee wie man das lösen kann ?


Netzwerk5: Zylinder Presse

VRIF: U "Mat112Term"
O "Mat112AttVer"
BEB
S "Mat112AttVer"
L "DBInputMattoni".MATTONI[112].PARSPEC
L 0
==I
R A14.2
L "DBInputMattoni".MATTONI[112].PARSPEC
L 1
==I
U E5.0 // Sensor Abfrage
S A14.2 // Ventil Zylinder Presse
BEA
 
Zuletzt bearbeitet:
Das liegt warscheinlich an deinem BEB in Zeile 3.
Du solltest dir abgewöhnen, Programm diser Art zu erstellen - sie sind immer sehr schwer zu debuggen. Besser immer alles abarbeiten und dafür die Bedingungen sauber verriegeln ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist ein italienisches Programm wurde vor 10 Jahren gemacht :(
Ja an dem BEB bleibt die Abarbeitung hängen und der untere Teil wird nicht nicht mehr abgearbeitet..stimmt..Baustein läuft aber...
Aber wie kann ich das lösen ?
Noch dazu kommt, das ich absolut nicht finde wo dieser Baustein aufgerufen wird. In den Referenzdaten/Programmstruktur sind in diese FCs alle mit durchgestrichem Kästchen. (siehe Bild ganz unteren FC)
Wie und was wurde denn da gemacht ? Hab ich noch so gesehen.

Bildschirmfoto 2016-03-18 um 20.52.11.jpg
 
Zuletzt bearbeitet:
Ich würde mal nachsehen, wo diese Variablen

"Mat112Term"
O "Mat112AttVer"

gesetzt bzw. zurückgesetzt werden.
Offensichtlich sorgt die ja dafür, dass der Baustein nicht mehr bearbeitet wird.
Nun könnte man das Setzen/Zurücksetzen evtl. mit dem E5.0 verknüpfen.
Da muß man ein bisschen probieren, da diese Art der Programmierung tatsächlich eher ungünstig ist.
 
Zuletzt bearbeitet:
Unter dem BEB wird ja "Mat112AttVer" gesetzt.
stimmt..geht das wenn man U E5.0 damit verknüpft ?
Also:

BEB
U E5.0
S "Mat112AttVer"


hier noch mal ein Netzwerk davor wo die andere Variabel gesetzt wird glaub zur Überwachung.

Netzwerk 4
UN "Mat112AttVer"
SPB VRIF
L "DBInputMattoni".MATTONI[112].PARSPEC
L 0
==I
U "S2_6"
UN "S2_5"
UN "PassoPasso1"
S "Mat112Term"
L "DBInputMattoni".MATTONI[112].PARSPEC
L 1
==I
U "S2_5"
UN "S2_6"
U T 112
UN "PassoPasso1"
S "Mat112Term"
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde folgendes mal probieren (ohne Garantie, also bitte nichts kaputtmachen, ich kenne ja deine Maschine nicht ;-) )

Code:
[COLOR=#333333]Netzwerk 4[/COLOR]
[COLOR=#333333]UN "Mat112AttVer"[/COLOR]
[COLOR=#333333]SPB VRIF[/COLOR]
[COLOR=#333333]L "DBInputMattoni".MATTONI[112].PARSPEC[/COLOR]
[COLOR=#333333]L 0[/COLOR]
[COLOR=#333333]==I  [/COLOR]
[COLOR=#333333]U "S2_6"[/COLOR]
[COLOR=#333333]UN "S2_5"[/COLOR]
[COLOR=#333333]UN "PassoPasso1"[/COLOR]
[COLOR=#333333]S "Mat112Term"[/COLOR]
[COLOR=#333333]L "DBInputMattoni".MATTONI[112].PARSPEC[/COLOR]
[COLOR=#333333]L 1[/COLOR]
[COLOR=#333333]==I  [/COLOR]
[COLOR=#333333]U "S2_5"[/COLOR]
[COLOR=#333333]UN "S2_6"[/COLOR]
[COLOR=#333333]U T 112[/COLOR]
[COLOR=#333333]UN "PassoPasso1"
[/COLOR][COLOR=#ff0000][B]U E 5.0[/B][/COLOR]
[COLOR=#333333]S "Mat112Term"[/COLOR]


[COLOR=#333333]Netzwerk5: Zylinder Presse[/COLOR]

[COLOR=#333333]VRIF: U "Mat112Term"[/COLOR]
[COLOR=#333333]O "Mat112AttVer"[/COLOR]
[COLOR=#333333]BEB  [/COLOR]
[COLOR=#333333][/COLOR][COLOR=#ff0000][B]//[/B][/COLOR][COLOR=#333333]S "Mat112AttVer"[/COLOR]
[COLOR=#333333]L "DBInputMattoni".MATTONI[112].PARSPEC[/COLOR]
[COLOR=#333333]L 0[/COLOR]
[COLOR=#333333]==I  [/COLOR]
[COLOR=#333333]R A14.2
[/COLOR][B][COLOR=#ff0000]S "Mat112AttVer"[/COLOR][/B]
[COLOR=#333333]L "DBInputMattoni".MATTONI[112].PARSPEC[/COLOR]
[COLOR=#333333]L 1[/COLOR]
[COLOR=#333333]==I  [/COLOR]
[COLOR=#333333]U E5.0 // Sensor Abfrage[/COLOR]
[COLOR=#333333]S A14.2 // Ventil Zylinder Presse
[/COLOR][B][COLOR=#FF0000]S "Mat112AttVer"[/COLOR][/B]
[COLOR=#333333]BEA[/COLOR]
 
Na ja, abwarten und erst mal probieren. Wer weiß, ob sich daraus nicht wieder andere nette "Nebeneffekte" ergeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es eine Möglichkeit anhand meines Anhanges oben (Programmstruktur) herauszufinden wie und wo dieser FC aufgerufen wird ?
Die unteren FC´s sind mit durchgestrichenem Kästchen, werden aber im Programmzyklus aufgerufen wenn sie gebraucht werden.
Habe sowas noch nie gesehen.
 
Gab es da nicht die Möglichkeit des Indirekten Aufrufs?

Call FC[MyNumber]

Dazu gab es hier im Forum mal eine Diskussion.
Hab mich damit eher kaum beschäftigt, da ich das für problematisch halte, siehe deine Suche.
Du könntest mal das gesamte Programm als eine Quelle speichern und dann darin nach allen denkbaren FC-Aufrufen suchen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Ralle
Testen darf ich erst nächste Woche mit Deiner Idee, aber ich habe gefunden wie die Bausteine aufgerufen werden.
Der Einrichter sagte mir, er hätte mal gesehen das die Monteure ein Programm Namens F-Chart benutzen um die Schrittkette ggf. schnell ändern zu können. Das kann man dann auf die CPU laden. uui..
Hab ich noch nie was von gehört. Kennt jemand sowas ?
Den Baustein Manager habe ich gefunden, den ich mal hier zeige. Gestore bedeutet "Manager" auf Deutsch.

Netzwerk 1

AUF "DbGestore1"
UN M [DBD 1022] // VERIFICA SE MATTONE SEQ.PRINC. TERMINATO
U DBX 1020.3 // VERIFICA SE MATTONE SEQ.PRINC. ATTIVO
CC FC [DBW 1008] // CHIAMATA MATTONE SEQ.PRINC.
AUF "DbGestore1"
UN M [DBD 1026] // VERIFICA SE MATTONE PARALLELO 1 TERMINATO
U DBX 1020.0 // VERIFICA SE MATTONE PARALLELO 1 ATTIVO
CC FC [DBW 1010] // CHIAMATA MATTONE PARALLELO 1
AUF "DbGestore1"
UN M [DBD 1030] // VERIFICA SE MATTONE PARALLELO 2 TERMINATO
U DBX 1020.1 // VERIFICA SE MATTONE PARALLELO 2 ATTIVO
CC FC [DBW 1012] // CHIAMATA MATTONE PARALLELO 2
AUF "DbGestore1"
UN M [DBD 1034] // VERIFICA SE MATTONE PARALLELO 3 TERMINATO
U DBX 1020.2 // VERIFICA SE MATTONE PARALLELO 3 ATTIVO
CC FC [DBW 1014] // CHIAMATA MATTONE PARALLELO 3

Netzwerk 2
AUF "DbGestore2"
UN M [DBD 1022] // VERIFICA SE MATTONE SEQ.PRINC. TERMINATO
U DBX 1020.3 // VERIFICA SE MATTONE SEQ.PRINC. ATTIVO
CC FC [DBW 1008] // CHIAMATA MATTONE SEQ.PRINC.
AUF "DbGestore2"
UN M [DBD 1026] // VERIFICA SE MATTONE PARALLELO 1 TERMINATO
U DBX 1020.0 // VERIFICA SE MATTONE PARALLELO 1 ATTIVO
CC FC [DBW 1010] // CHIAMATA MATTONE PARALLELO 1
AUF "DbGestore2"
UN M [DBD 1030] // VERIFICA SE MATTONE PARALLELO 2 TERMINATO
U DBX 1020.1 // VERIFICA SE MATTONE PARALLELO 2 ATTIVO
CC FC [DBW 1012] // CHIAMATA MATTONE PARALLELO 2
AUF "DbGestore2"
UN M [DBD 1034] // VERIFICA SE MATTONE PARALLELO 3 TERMINATO
U DBX 1020.2 // VERIFICA SE MATTONE PARALLELO 3 ATTIVO
CC FC [DBW 1014]
 
Zurück
Oben