ich hab einen Windows Rechner an der eine Siemens S7 hängt, an dieser hängt ein drehgeber 5000 Impulse.
ich habe mich mit Python Snap 7 mit der S7 verbunden und lese die Bits aus.
ich möchte nun die Impulse des drehgeber auswerten.
so das es mir quasie anzeigt wie schnell in m/min etwas läuft.
könnt ihr mir helfen bzw gibt es dazu schon was...
Drehgeber an SPS
-
- User
- Beiträge: 90
- Registriert: Dienstag 22. Mai 2018, 07:15
Ok hab es hinbekommen
Danke
Danke
-
- User
- Beiträge: 90
- Registriert: Dienstag 22. Mai 2018, 07:15
So hier mal den Code so wie ich es gemacht habe, Bezeichnungen werden noch angepasst
Allerding bräucht ich jetzt eine Stupser wie ich nun
die länge Zähle.
aller 1. Sekunde wird die Funktion aufgerufen. nun Rechne ich ja "speedbyte" / x das entspricht dann eine länge z.B. 1m nach dem nächsten Aufruf der Funktion ist es wieder 1m der dazu kommt also das Ergebniss währe ja dann 2m usw. solage bis ein Signal kommt und dann wir es wieder bei 0 bzw 1 los.
Code: Alles auswählen
def wheel_speed(self):
speed2 = "0"
try:
plc = snap7.client.Client()
plc.connect("192.168.150.3",0,1)
con = plc.get_connected()
print ("Connect", con)
byte = plc.db_read(1,1,55)
speedbyte = get_int(byte,0,43)
x = int(impulse) #entspricht 25000
t = int(gesamtzeit) #entspricht 60
speed = speedbyte/x*t
speed2 = str(speed)
print(speed)
except Exception as ex:
print("Verbindungsfehler")
self.restart = self.after(1000, self.wheel_speed)
Allerding bräucht ich jetzt eine Stupser wie ich nun
die länge Zähle.
aller 1. Sekunde wird die Funktion aufgerufen. nun Rechne ich ja "speedbyte" / x das entspricht dann eine länge z.B. 1m nach dem nächsten Aufruf der Funktion ist es wieder 1m der dazu kommt also das Ergebniss währe ja dann 2m usw. solage bis ein Signal kommt und dann wir es wieder bei 0 bzw 1 los.
Ich verstehe die Frage nicht, weil Kontext fehlt. `impulse` ist nirgends definiert, ebensowenig `gesamtzeit`. Warum sind das nicht schon Zahlen, oder vielleicht doch? `speed2` wird dagegen definiert, aber nirgends benutzt.
-
- User
- Beiträge: 90
- Registriert: Dienstag 22. Mai 2018, 07:15
also speed2 wir verwendet um den Wert auf ein Kabel zu setzen.... hab ich hier weggelassen.
Also "speedbyte" gibt die Aktuellen Impulse des drehgeber in 1 Sek aus. wird quasi aus der SPS ausgelesen. einfachhalber würde ich für meine Frage den Wert auf 22500 festlegen.
"x" ist der Wert der Impulse die ich für 1m brauche der liegt bei 25000 Impulse des Drehgebers für einen Meter.
wenn ich jetzt "speedbyte" / "x" rechne komme ich auf 0,9m nach 1000ms wird wieder "speedbyte" und "x" abgefagt. (speedbyte kann sich ändern).
Das Ergebnis möchte ich dann auf die 0,9m des ersten durchlaufen addieren. und genauso mit dem 3, 4 usw. Durchlauf der Funktion.
so das nach 10 Sekunden quasi bei gleichbleibenden Impuldsen.
9m ausgegeben wird....
hoffe man versteht jetzt die Erklärung.
könnte jetzt nach jedem Durchlauf den Wert in eine Datei schreiben und beim nächsten wieder auslesen, glaub aber das ist nicht die beste Lösung
Also "speedbyte" gibt die Aktuellen Impulse des drehgeber in 1 Sek aus. wird quasi aus der SPS ausgelesen. einfachhalber würde ich für meine Frage den Wert auf 22500 festlegen.
"x" ist der Wert der Impulse die ich für 1m brauche der liegt bei 25000 Impulse des Drehgebers für einen Meter.
wenn ich jetzt "speedbyte" / "x" rechne komme ich auf 0,9m nach 1000ms wird wieder "speedbyte" und "x" abgefagt. (speedbyte kann sich ändern).
Das Ergebnis möchte ich dann auf die 0,9m des ersten durchlaufen addieren. und genauso mit dem 3, 4 usw. Durchlauf der Funktion.
so das nach 10 Sekunden quasi bei gleichbleibenden Impuldsen.
9m ausgegeben wird....
hoffe man versteht jetzt die Erklärung.
könnte jetzt nach jedem Durchlauf den Wert in eine Datei schreiben und beim nächsten wieder auslesen, glaub aber das ist nicht die beste Lösung
-
- User
- Beiträge: 90
- Registriert: Dienstag 22. Mai 2018, 07:15
ja aber hab Probleme damit es zu übergeben! Also auf Deutsch ich weis nicht wie ich den wert speicher bzw. übergegebe.
Da deine Variablen magisch auftauchen und die Funktion aussieht, als würde sie in eine Klasse gehören, sich aber so nicht verhält, kann dir das keiner sagen.
Du musst schon mehr Code zeigen.
Was ist denn "self" auf das Sirius3 bereits hingewiesen hat?
Du musst schon mehr Code zeigen.
Was ist denn "self" auf das Sirius3 bereits hingewiesen hat?
- __blackjack__
- User
- Beiträge: 13110
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Die Ausnahmebehandlung gehört da so nicht hin. Es kann nicht sein das *jede* Ausnahme sinnvoll mit der Ausgabe dieses Textes behandelt werden kann!
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman