- Beiträge
- 24.288
- Reaktionspunkte
- 7.711
-> Hier kostenlos registrieren
Das ist dann aber eigentlich nicht ein Zähler, sondern 2 Zähler die die selbe Merkvariable gemeinsam verwenden.
Harald
Harald
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Außerdem lässt sich die nur unübersichtlich zurücksetzen.Das ist dann aber eigentlich nicht ein Zähler, sondern 2 Zähler die die selbe Merkvariable gemeinsam verwenden.
Harald
Vielleicht ist damit gemeint, daß "ausdrücklich" keine S7-Zähler verwendet werden sollen? Sondern selber was gebastelt werden soll?Ein Hinweis war die benutzung von MOVE-Anweisungen.
Meine Deutung ist:Vielleicht ist damit gemeint, daß "ausdrücklich" keine S7-Zähler verwendet werden sollen? Sondern selber was gebastelt werden soll?
Das Aufgabenbuch, so nenne ich es mal, bezieht sich auf FUP. Da ich mir jedoch AWL aneignen muss, versuche ich diese so gut es geht in AWL umzusetzen. Das es in AWL keinen MOVE-Befehl gibt, sondern dies über Laden und Transferbefehl erfolgt, musste ich auf diese Art jetzt erfahren ^^Ich bin ganz Deiner Meinung, Michael.
MOVE in einem AWL-Programm. Das klingt aber nicht nach einer "Aufgabe". Das klingt nach einem Versuch, sich selbständig anhand einer Aufgabe einzuarbeiten. Die Bereitschaft des TE sehe ich als gegeben. Vielleicht übernimmt er sich einwenig mit der selbstgestellten Aufgabe?
![]()
![]()
Warum eigentlich lautet der Titel des Threads "1 Zähler für 2 Behälter Füllmengen" und laut Beschreibung sollen dann verschieden große Pakete auf 2 Paletten verteilt werden?
Das ist Taktik: weil wir alle wissen, dass z.Z. keine Paletten erhältlich sind (allenfalls als Bausätze ohne die zugehörigen Nägel?) und es sich deshalb nur um "gedachte Paletten" handeln kann. Der Begriff "Behälter" ist einfach nicht so negativ (vor-)belastet ... da wagt man es eher, einmal in den Thread hineinzuschauen.Anschließend werden diese auf 2 verschiedenen Paletten, abhängig der Paketgröße, abgestellt. Auf der für kleine Pakete gedachten Palette passen 8, auf die für große Pakete 5 Pakete.
Ein ganz anderer Denkansatz:
Da die 10er stufe nicht überschritten wird:
- bei einem Kleinen Päckchen +1
- bei einem großen Päckchen +10
und dann Vergleichen auf
- kleine Päckchen hinten eine 8
- Große Päckchen >= 50
> Bedingung erfüllt:
Zahl Minus 8 bzw. Minus 50
Mfg
Ein ganz anderer Denkansatz:
Wie willst Du mit einem S7-Zähler "+10" oder "-8" oder "-50" realisieren?...
- bei einem großen Päckchen +10
...
Zahl Minus 8 bzw. Minus 50
hmm .. überlesen.genau so wie schon im Post #19 von mir vorgeschlagen
Das hatte ich mir inzwischen auch überlegt und mir jetzt hohe Pakete (statt grosser Pakete) und flache Pakete (statt kleiner Paket) ausgedacht sowie eine Anordnung von 3 LichtSchranken.LS klein und nicht LS groß = DW_kleines Paket
LS klein und LS groß = DW_großes Paket.
Dieses Prinzip habe ich auch beibehalten.Dann wären es 2 Datenwörter aber nur ein Zähler.
L 0
U M0.1 // BCD-ZählWert hohe Pakete rücksetzen <-
SPBN SKRH
T DB1.DW1 // BCD-ZählWert hohe Pakete
SKRH U M0.2 // BCD-ZählWert flache Pakete rücksetzen <-
SPBN SKRF
T DB1.DW2 // BCD-ZählWert flache Pakete
SKRF ON E0.1 // LS1 unten <-
ON E0.3 // LS3 unten <-
R M0.0 // FlankenMerker
SPB END
U M0.0 // FlankenMerker
SPB END
S M0.0 // FlankenMerker
UN E0.2 // LS2 oben <-
L DB1.DW1 // BCD-ZählWert hohe Pakete lesen und ...
SPB CNT
L DB1.DW2 // BCD-ZählWert flache Pakete lesen und ...
CNT CLR
S Z1 // ... in "UniversalZähler" ...
ZV Z1
SET
S Z1 // ... vorbesetzen und ...
ZV Z1 // ... um 1 weiterzählen und ...
LC Z1 // ... im BCD-Code auslesen und ...
U E0.2 // LS2 oben <-
SPB STO2
T DB1.DW1 // ... unter BCD-ZählWert hohe Pakete abspeichern
SPA END
STO2 T DB1.DW2 // ... unter BCD-ZählWert flache Pakete abspeichern
END BE
Um flache und hohe Pakete unterscheiden zu können, werden drei
LichtSchranken folgendermassen angeordnet:
LS2
/
/
LS1 / LS3
/ / /
/ / /
Z Y / LS2 /
| / / . /
| / / . /
|/ LS1 . LS3
o---X
|<---x--->|<---x--->|
LS2 ist horizontal (X) genau zwischen LS1 und LS3 angebracht, aber so
hoch (Z), dass sie nur durch hohe Pakete unterbrochen wird.
LS1 und LS3 sind tiefer angebracht und "sehen" sowohl flache als auch hohe Pakete.
Der horizontale Abstand x zwischen LS1 und LS2 bzw. zwischen LS2 und
LS3 wird möglichst gross 1) gewählt, aber maximal so gross 2), dass ein Drittel
der Länge des kürzesten Pakets in x-Richtung nicht überschritten wird.
1) Um möglichst grosse ToleranzBereiche in x zu erhalten, so dass die mehr oder weniger senkrechten Kanten der Pakete einem keine Streiche spielen. Und auch nicht eine lange ZyklusZeit in Kombination mit einer schnellen Bewegunng der Pakete.
2) Dahinter steckt wieder die Idee von einem A-B-Signal, möglichst gleichmässige zeitliche Abstände zwischen den SignalFlanken anzustreben, damit auch bei höheren Geschwindigkeiten keine vermeidbaren Probleme durch zu lange ZyklusZeiten entstehen.
Mit einem selbstgebasteltem Zähler kommst Du mit 2 LS aus. Bei S7 Zähler brauchst Du 3 LS.
Ich ahne, dass ich noch irgendeine einfache Lösung übersehen habe. Aber Deine Lösung habe ich nicht wirklich verstanden.Ich hätte die beiden vorderen Lichtschranken zum detektieren genommen, welches Datenwort ich in den Zähler lade.
Zweifellos.Beim selbstgebastelten genügt eine #temp-variable da detektieren, lade DW in temp_Variable addiere 1 dazu und speichere in DW ein Durchlauf sind.
Hmmm, wer braucht "mehrere Durchläufe" (= Zyklen?), um einen S7-Zähler ...Beim S7 Zähler ... Hier komme ich aber nicht mehr mit einer #temp_Variable aus, da es mehrere Durchläufe sind. Also Statisch oder Global.
...
CLR // VKE = 0
S Z1 // ... in "UniversalZähler" ... <===<<< "Vorbereitung" der pos. Flanke für's Setzen
ZV Z1 // <===<<< "Vorbereitung" der pos. Flanke für's VorwärtsZählen
SET // VKE = 1
S Z1 // ... vorbesetzen und ... <===<<< hier die pos. Flanke für's Setzen und danach erst
ZV Z1 // ... um 1 weiterzählen und ... <===<<< hier die pos. Flanke für's VorwärtsZählen
LC Z1 // ... im BCD-Code auslesen und ... <===<<< das Auslesen des BCD-Code
...
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen