AWL-code

hast recht. das kommt davon wenn mal mal eben auf die schnelle was vermitteln will :oops:

so gehts
Code:
L 0 //vorbelegen mit nicht aktiv 

U A 0.0 
UN E 0.0 
SPB m001 
SPA m002 
m001: L 1 //fehler 
m002: nop 0 

U A 0.0 
U E 0.0 
SPB m003
SPA m004
m003: L 2 //ok 
m004: nop 0 

T DB10.DBB1
 
Zuviel Werbung?
-> Hier kostenlos registrieren
volker schrieb:
Code:
U A 0.0 
UN E 0.0 
SPB m001 
SPA m002 
m001: L 1 //fehler 
m002: nop 0
Die Sequenz wird zumindest für einen SPS-Zyklus eine Fehler liefern. Und zwar genau dann, wenn das PAA erstmalig gesetzt wird und das PAE noch nicht aktualisiert wurde. Sollte dies ein Problem darstellen, dann wird das Ganze noch etwas schwieriger.
 
Rainer Hönle schrieb:
[Die Sequenz wird zumindest für einen SPS-Zyklus eine Fehler liefern. Und zwar genau dann, wenn das PAA erstmalig gesetzt wird und das PAE noch nicht aktualisiert wurde. Sollte dies ein Problem darstellen, dann wird das Ganze noch etwas schwieriger.

ja, das ist richtig.

man kann das aber umgehen, indem man die abfrage vor die zuweisung der ausgange schreibt.
zumindest theoretisch.

aber ob das praktisch klappt ist.....
am besten wäre wahrscheinlich das kurz zeitzuverzögern.
 
Eine weitere Alternative wäre noch ein Flankenmerker, der den Fehler im ersten Zyklus nach dem Setzen des Ausgangs entsprechend unterdrückt. Dies spart dann die (teilweise knappen) Zeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
U(
UN M 1.1
L S5T#1S
SE T 1
NOP 0
NOP 0
NOP 0
U T 1
)
L S5T#1S
SE T 2
NOP 0
NOP 0
NOP 0
U T 2
= M 1.1



U M 1.1
ZR Z 1
U M 1.1
L C#20
S Z 1
NOP 0
NOP 0
NOP 0
NOP 0


U Z 1
U T 1
= A 0.0
= A 0.1
= A 0.2
= A 0.3
= A 0.4


L 0 //vorbelegen mit nicht aktiv

U A 0.0
UN E 0.0
SPB m001
SPA m002
m001: L 1 //fehler
BEB
m002: NOP 0

U A 0.0
U E 0.0
SPB m003
SPA m004
m003: L 2 //ok
m004: NOP 0

T "Eingang".InputA0


Das ist momentan mein Code.

Nun muss ich alle 5 ein/ausgänge auf dem display anzeigen. kann ich jetzt diese routine bei allen 5 so machen wie oben?

zusätzlich sollte das programm anhalten falls ein fehler anliegt, und dann auf dem display das attribut 3 anzeigen => blinken

ich würde dies mit einem BEB lösen, ist das zulässig oder gäbe es dazu eine andere möglichkeit?

grüsse rüdiger
 
Anonymous schrieb:
L 0 //vorbelegen mit nicht aktiv

U A 0.0
UN E 0.0
SPB m001
SPA m002
m001: L 1 //fehler
BEB
m002: NOP 0

U A 0.0
U E 0.0
SPB m003
SPA m004
m003: L 2 //ok
m004: NOP 0

ende: T "Eingang".InputA0


Das ist momentan mein Code.

Nun muss ich alle 5 ein/ausgänge auf dem display anzeigen. kann ich jetzt diese routine bei allen 5 so machen wie oben?

zusätzlich sollte das programm anhalten falls ein fehler anliegt, und dann auf dem display das attribut 3 anzeigen => blinken

ich würde dies mit einem BEB lösen, ist das zulässig oder gäbe es dazu eine andere möglichkeit?

grüsse rüdiger

das mit dem beb wird nicht klappen, denn dann erfolgt kein transfer in Eingang".InputA0. besser du machst dort ein spa ende.

ja, du kannst das bei allen 5 so machen.
wobei der obere teil mit dem blinken ja schon für alle 5 ist. du musst also nur die auswertung dazumachen.
 
genau das ist mir jetzt passiert, wenn ich 5 eingänge abfragen will kommt
ein SF-Fehler. wie kann man das umgehen wenn das programm bis zu 30 ein / ausgänge abfragen muss??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wieso kommt ein sf?

wenn du 30 eingänge hast, machst du die auswertung halt 30 mal.
Code:
// auswertung eingang 1
L 0 //vorbelegen mit nicht aktiv 

U A 0.0 
UN E 0.0 
SPB m001 
SPA m002 
m001: L 1 //fehler 
m002: NOP 0 

U A 0.0 
U E 0.0 
SPB m003 
SPA m004 
m003: L 2 //ok 
m004: NOP 0 

T "Eingang".InputA0 

// auswertung eingang 2
L 0 //vorbelegen mit nicht aktiv 

U A 0.1
UN E 0.1 
SPB m011 
SPA m012 
m011: L 1 //fehler 
m012: NOP 0 

U A 0.1 
U E 0.1 
SPB m013 
SPA m014 
m013: L 2 //ok 
m014: NOP 0 

T "Eingang".InputA1
 
@ volker, na ja hät ich ich ne zeile früher von dir gelesen hätte es von anfang an geklappt.. :wink:

danke für die tipps!
 
Zurück
Oben