Hext Byte Vergleichen

Lars1234

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Liebe Gemeinschaft,
Ich habe folgendes Problem und zwar habe ich bei meiner Abschlussprüfung eine Erkennung von schwarzen und weissen Werkstücken. Jetzt habe ich gesagt ist wenn das Werkstück Weiss ist dann schreib aus einem Datenbaustein1 in einen Datenbaustein2 den Wert b#16#77 und schiebe den Wert mit jedem Schritt einen Datenbausteinbyte höher. und am Ende meiner Schrittkette wollte ich einen Vergleicher einbauen der dann erkennt oder der Wert nun b#16#77 für Weiss oder b#16#55 für schwarz. Meine Frage mit welchem Baustein funktioniert das ?

Liebe Grüße Lars
 
Freiwillige vor falls sie das verstehen....

Was heisst: "dann schreib aus einem Datenbaustein1 in einen Datenbaustein2 den Wert b#16#77 "
Wenn Du weisst dass es B#16#77 ist, was suchst Du im Baustein1?

Wie lange soll das gehen? Wieviel Werkstücke können es sein?
Was heisst: "und am Ende meiner Schrittkette wollte ich einen Vergleicher einbauen der dann erkennt oder der Wert nun b#16#77 für Weiss oder b#16#55 für schwarz"
Was willst Du da Ende feststellen? Den letzten Wert? Anzahl weiss/schwarz?

Bitte formulier das nochmal bzw. vielleicht haben es andere ja ohnehin verstanden.... ;-)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... wollte ich einen Vergleicher einbauen der dann erkennt oder der Wert nun b#16#77 für Weiss oder b#16#55 für schwarz. Meine Frage mit welchem Baustein funktioniert das ?
Wozu willst Du da einen vorgefertigten Baustein:
77 laden
Wert laden
=?
ja -> weißes Werkstück, Sprung zum Ende Vergleich
nein ->
55 laden
=?
ja -> schwarzes Werkstück, Sprung zum Ende Vergleich
nein -> was ist hier los? Sprung zu mach wat
Ende Vergleich
Wo ist das Problem?
 
Also ich schreibe einen Festwert in Datenbaustein 1 DB1.Dbb0 den wert B#16#77 und in den DB1.Dbb1 den Wert B#16#55.
Jetzt wird Erkannt ob das Werkstück ein Weisses oder schwarzes ist. Bei einem Weissen Werkstück wird ein Merker M8.0 gesetz. Bei einem schwarzem Werkstück einen Merker M8.1. Wenn M8.0 gesetz ist wird der EN eingang von einem Move Befehl gesetz und der Wert B#16#55 wird in DB5.Dbb0 geschrieben. So auch bei dem Merker M8.1 nur mit dem Wert B#16#77. Merker M8.0 und M8.1 können nicht Gleichzeitig gesetz werden nur nach einander. Wenn der 1 Schritt anfängt wird von einem neuem Move Befehl der EN gesetz. Die Farbe des Werkstück was in Schritt 1 bearbeitet wird, wird dann von DB5.DBB0 nach DB5.DBB1 geschrieben. Das geht bis zum letzten Schritt und jetzt will ich im letzten Schritt einen Vergleicher haben der mir sagt ob das Werkstück schwarz oder weiss ist. Damit ich die Teile sotiert kann.
Ich muss in FUP Programmieren
Schuldigung für die erste Fomulierung hoffe die hier ist besser :D
 
Zuletzt bearbeitet:
Also ich schreibe einen Festwert in Datenbaustein 1 DB1.Dbb0 den wert B#16#77 und in den DB1.Dbb1 den Wert B#16#55.
Jetzt wird Erkannt ob das Werkstück ein Weisses oder schwarzes ist. Bei einem Weissen Werkstück wird ein Merker M8.0 gesetz. Bei einem schwarzem Werkstück einen Merker M8.1. Wenn M8.0 gesetz ist wird der EN eingang von einem Move Befehl gesetz und der Wert B#16#55 wird in DB5.Dbb0 geschrieben. So auch bei dem Merker M8.1 nur mit dem Wert B#16#77. Merker M8.0 und M8.1 können nicht Gleichzeitig gesetz werden nur nach einander.
...
Wenn Du vom Nachbarn eine größere Anzahl Eimer mit weißer und schwarzer Farbe bekommst, schreibst Du dann auch erst zwei Zettel auf denen "weiß" und "schwarz" steht, packst die in ein Schubfach und öffnest dann jedesmal, wenn Du festgestellt hast, ob weiße oder schwarze Farbe im Eimer ist, dieses Schubfach, um weiß bzw. schwarz abzuschreiben?

Also wozu der DB, in dem die 55 bzw. 77 steht, wenn Du doch weißt, was eingetragen werden soll?
Trag' doch direkt in Abhängigkeit Deiner Merker M8.0 bzw M8.1 die Werte 55 bzw. 77 in Deinen DB.
Und bitte daran denken, wenn Du Integer verwenden solltest, daß so ein 16bit-Wert zwei Byte belegt. (Die meisten SPS-Typen tun sich mit Ein-Byte-Werten schwer.)


...
Wenn der 1 Schritt anfängt wird von einem neuem Move Befehl der EN gesetz. Die Farbe des Werkstück was in Schritt 1 bearbeitet wird, wird dann von DB5.DBB0 nach DB5.DBB1 geschrieben. Das geht bis zum letzten Schritt ...
Das ist ein sogenannter FIFO-Speicher (First In, First Out) und wurde schon mehrfach hier im Forum beschrieben.
Wichtig ist dafür, das man weiß, wieviele Schritte man speichern will. Deshalb hat borromeus danach gefragt.
Ach ja, dieser Teil wird mit FUP sicher schwierig. Das wäre ein guter Grund, sich mit AWL, SCL o.ä. zu befassen.


... und jetzt will ich im letzten Schritt einen Vergleicher haben der mir sagt ob das Werkstück schwarz oder weiss ist. Damit ich die Teile sotiert kann. ...
Diese Funktionsweise hab' ich in meinem ersten Post beschrieben.


...
Schuldigung für die erste Fomulierung hoffe die hier ist besser :D
Nicht wirklich.


Also starte erst mal -> zeig' dann hier, was Du hast und Dir wird sicher auch weiter geholfen.
Nur Komplettlösungen sind äußerst selten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja das Problem ist was du meinst ist richtig kann man so machen die Merker dirket setzten, aber aufgrund der anordnung der Sensoren und Taktfrequenz der kommenden Werkstücken geht das nicht. Das problem ist wenn das Werkstück abgeholt wird, kann schon das nächste da liegen. Das Heißt, es kommt ein weisses Teil. Das wird abgeholt und bevor es abgelegt wird, kann schon ein schwarzes da liegen. In Verbindung mit einem Schiebregister ist das extrem Konpliziert. Es geht nur darum das ich einen DBxy.Dbbxy mit einem anderen DBcc.DBBcc vergleiche ob die Gleich sind mehr möchte ich gar nicht.
 
...
In Verbindung mit einem Schiebregister ist das extrem Konpliziert.
...
Ja, deswegen machen das auch nur Hinz und Kunz mit 'nem FIFO, weil das so kompliziert ist.
Und deswegen schaffen sich auch die wenigsten 'ne Fließbandproduktion an.
:confused:


...
Es geht nur darum das ich einen DBxy.Dbbxy mit einem anderen DBcc.DBBcc vergleiche ob die Gleich sind mehr möchte ich gar nicht.
Langsam werd' ich so verwirrt, wie borromeus.
Ist doch das, was ich in meinem ersten Post geschrieben habe, nur das ich den einen DB weggelassen habe, weil er überflüssig ist.
Also noch mal:
DBcc.DBBcc (77) laden
DBxy.Dbbxy (Wert) laden
=?
ja -> weißes Werkstück, Sprung zum Ende Vergleich
nein ->
DBcc.DBBdd (55) laden
=?
ja -> schwarzes Werkstück, Sprung zum Ende Vergleich
nein -> was ist hier los? Sprung zu mach wat
Ende Vergleich
Geht auch in FUP, aber ich kann nicht so gut zeichnen.:rolleyes:
 
und das geht mit diesem Hex byte ?
weil ich habe unter diesen Vergleicher Bausteinen das nicht gefunden 1byte mit einem anderem vergleichen.
Ich habe schon ein Schieberegiester Programmiert nur es funktioniert bei dieser Anlage nicht so richtig zumindest man hat schnell fehler drin. Es ist im grunde genommen ja nicht schwer.
Das hat mich so irritiert diese 77 weil da steht ja im DB als Hex B#16#77 und du hast eine Dezimalzahl oder nicht ?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das kommt darauf an, was Du für 'ne SPS hast. Eine S7-200 hat da z.B. Befehle für.
Die meisten CPUen arbeiten aber lieber mit INT, also zwei Byte. Aber was spricht dagegen, einen Int-Wert von 55 bzw. 77 in den DB einzutragen?
Mußt dann nur anders adressieren.

PS: Hex ist kein Problem, wird eh' alles binär gespeichert.
;)
 
joar stimmt eigentlich. Das mache ich dann auch so manchmal sieht man den Wald voll Bäume nicht :/
Ich habe ein S7-314 man müsste sein Schieberegister komplett selber programmieren. Ich habe mit meinem Lehrer gesprochen und auf Grund einer sehr sehr doof anordnung von Sensoren ist es extrem schwer und er hat mir auch erklärt das in diesem besonderem Fall meine Lösung deutlich einfacher und Sinnvoller ist.
 
Zurück
Oben