Step 5 Operation "P" in Step 5

stefan93

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich bin in einem bestehenden S5-Programm über die Operation P gestolpert.

Die Programmzeilen lauten folgendermaßen

U(
P D 3.0
O M 101.0
)
U M113.7
= M113.4

Laut Handbuch bedeutet der Befehl "Bit auf Signalzustand 1 prüfen".
Gibt es da einen Vorteil bzw. Unterschied gegenüber einem einfachen UND/ODER Befehl?

Gruß stefan93
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo , das wird meiner Meinung nach genutzt (wenn der Datenbaustein der weiter oben schon aufgeklappt wurde) um ein Bit eines Datenwortes aus dem Datenbaustein auf 1 abzufragen an einem UND/ODER Befehl. In der S5 kann man ja glaube ich nicht wie in der S7 zum Beispiel einen DB300.DBX3.1 abfragen.
 
Ich habe dieses "P D ..." noch nie verwendet, aber wie verknüpft das eigentlich? UND oder ODER oder ... oder ist das quasi eine "erzwungene" Erstabfrage (direktes Laden des Operanden in das VKE ohne mit dem vorhandenen VKE zu verknüpfen)?
 
Wäre die Funktion nicht die gleiche:

U(
O D 3.0
O M 101.0
)
U M113.7
= M113.4
??

Ich habe den Vorteil des Befehls "P" noch nicht verstanden!
 
oder ist das quasi eine Erstabfrage (direktes Laden des Operanden in das VKE ohne mit dem vorhandenen VKE zu verknüpfen
Konnte sein.

Die Beschreibung von P:
Bit eines Datenwortes (DB/DX) auf Signalzustand "1" abfragen
wenn man vergleicht mit die Bescreibung von U:
UND-Verknüpfung: Abfrage einses Bits im Datenbaustein (DB/DX) auf Signalzustand "1"

edit: Gibt es auch eine N Befehl ?
Bit eines Datenwortes (DB/DX) auf Signalzustand "0" abfragen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der S5 kann man ja glaube ich nicht wie in der S7 zum Beispiel einen DB300.DBX3.1 abfragen.
Damit wird das ziemlich sicher nichts zu tun haben. P D x.x und U D x.x oder O D x.x verwenden alle den zuletzt/davor mit AUF aufgeschlagenen DB
 
Es antwortet nicht die Frage, warum nicht U D3.0 anstatt P D3.0 ?
P geht nur in Funktionsbausteinen, und nur in ein 948 CPU. Es ist dieselbe Ausführungszeit.
Was ist die Vorteil von P ?
Wobei sich bezüglich der Ausführungszeit die Geister scheiden.
@Ralle hat "vor kurzem" mal eine Antwort zu dem Thema verfasst und meinte in dieser, dass der P Befehl viel CPU Zeit benötigt.
 
Wobei sich bezüglich der Ausführungszeit die Geister scheiden.
@Ralle hat "vor kurzem" mal eine Antwort zu dem Thema verfasst und meinte in dieser, dass der P Befehl viel CPU Zeit benötigt.
Die Ausführungszeiten von P und U sind beide 0.77us in die 948 CPU.

Ich denke die Vorteil wäre dass P ist mehr 'Sicher' als U.
In S5 AWL (und auch in S7 AWL) gibt es den Gefahr dass man von Versehen die vorigen Netzwerk nicht korrekt beendet, damit wird die VKE in die nächste Netzwerk 'mit geschleppt'.
Mit eine gezwungene Erstabfrage hat man diese Problem nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wäre die Funktion nicht die gleiche:

U(
O D 3.0
O M 101.0
)
das "P D 3.0" macht die Erstabfrage deutlicher sichtbar
Code:
U(
P D 3.0     <--- so sieht man deutlich, dass das garantiert eine Erstabfrage ist
O M 101.0
)

U(
O D 3.0     <--- so würde man das normalerweise machen
O M 101.0
)

U(
U D 3.0     <--- ! das ist auch ein O ! (*)
O M 101.0
)
(*) ich meine mich zu erinnern, dass es evtl. mal S5-CPU gab, wo die Erstabfrage bzw. der Beginn einer Verknüpfung zwingend mit "U ...." sein musste. :unsure: Das könnte aber auch ein oft erzählter Mythos sein. 🤷‍♂️
 
Ich lese das so:
CPU 945: U mit Operand E A M T Z dauert 0,1µs, mit Operand S oder D dauert es 0,35µs
Ich glaube, Du hast recht. Ich dachte, die Aufteilung auf zwei Zeilen erfolgte aus Platzgründen, aber weiter unten bei den Speicheroperationen erfolgt auch eine Aufteilung auf zwei Zeilen und da hätte der Platz dicke gereicht.
Sorry für den Blödsinn, ich muss mir echt abgewöhnen zu versuchen zu Sachen, wo ich eigentlich gar keine Ahnung habe, eine Antwort zu schreiben. Manchmal liege ich zwar richtig, aber meist kommt leider Blödsinn raus.
 
Zurück
Oben