TIA maximale zykluszeit errechnen für Interrupt

Credofire

Level-1
Beiträge
640
Reaktionspunkte
35
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
wie kann ich die maximale Zykluszeit errechnen die erlaubt ist, dass ich nicht auf interrupts zugreifen muss?
Ich habe beispielsweise ein Maschine, bestehend aud ein Messermotor und ein Hydraulikzylinder. Wenn der Messermotor einen bestimmten Winkelbereich hat, darf der Kolben nicht vorpressen. Der Messermotor läuft maximal mit 200 U/min. das ergibt 300 ms pro Umdrehung. Mein gesamtes Programm hat eine Zykluszeit von 6-9 µs. jetzt hat mir aber der Verfasser des Programms mal gesteckt, das die maximale Zykluszeit nur 3-4 µs sein dürfte, wenn ich dieses Taktverhalten des Zylinders ohne Interrupt realisieren wollte.
Ich kam leider nicht mehr dazu zu fragen, wie und warum das so ist. ich wäre jetzt davon ausgegangen, das bei 9 µs ja bummelig 33 Zyklen durchlaufen und es funktionieren sollte.

kann mir bitte jemand nen Tip geben wie ich das berechnen kann?

Vielen Dank
Credo
 
Was erlaubt ist, hängt doch nur von deinem Anwendungsfall ab. Deine Angaben sagen ja noch nichts darüber aus, wie genau der Hydraulikzylinder auf die Motorposition zu reagieren hat. Also, wann soll der Kolben vorpressen und wann nicht und wie ungenau muß das ganze sein. Je genauer in Abhängigkeit von der Position, umso kürzer muß auch die Zykluszeit sein.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also bevor im Nebel herumgestochert wird, würde ich ein Weg - Zeit Diagramm der einzelnen Bauteile aufzeichnen.
Daraus kannst du erkennen, wie groß die Unterschiede ziwschen den einzelnen Bewegungen sein dürfen.

3-4 µs sind eigentlich kein Einsatzbereich für eine PLC.
Das sollten externe Steuerungen machen, die spezial auf diesen Anwendungsbereich gebaut wurden.

Nach 2 Wochen kommen neue Wünsche und Anforderungen vom Kunden. (eine PLC kann ja mal eben ein Excel Sheet oder eine DB verwalten und in jedem Fall eine Abb zum Fernsteuern bedienen sind ja Computer).:ROFLMAO:


bike
 
Hallo,
du schreibst hier von Mikrosekunden - meinst aber sicherlich Millisekunden ...
Ansonsten : dein Zylinder hat mit Sicherheit auch noch ein Trägheits-Verhalten. Nur davon, dass die SPS schaltet, ist ja noch nicht der Zylinder selbst beeinflusst. Ich denke, dass das das Problem ist ...

Gruß
Larry
 
Das Messer deckt angenommen eine Winkel von 30° ab. angenommen der Beobachtungszeitpunkt liegt bei 0°. Sobald das messer nun die 0° position erreicht, muss der Vorschub möglichst abrupt stoppen. Leider weis ich jetzt die Reaktionsgeschwindigkeit des Sensors nicht, der die Anwesenheit des Messers misst.

edit: Ich versuche das mit den Diagrammen mal
 
Wie die Vorredner hier schon schreiben:
Da ist noch mehr zu berücksichtigen, als nur das Programm, welches auch für die Zukunft noch Zeitreserven haben muß (und für Fehlerinterrupts ebenso, wie für die Kommunikation mit dem Leitsystem/derVisualisierung).

Denn wenn Du mit so kleinen Zeitbereichen arbeitest (ich hoffe auch, daß Du nicht im µs, sondern im ms-Bereich arbeitest), dann mußt Du die Zeiten der ganzen Kette bedenken:
Sensor-Schaltzeit
Signalübertragung (analog oder per Bus)
Wandlungszeiten der Karte (speziell bei Analogsignalen, z.B. zur Positionserfassung)
Toleranzen der Signale (welche sich damit eventuell auf den Bereich auswirken, in dem der Zylinder gestoppt sein muß)
Übertragungszeiten von der Peripherie zur CPU
Programmlaufzeit
Übertragung zur Peripherie
Wandlungszeiten für die Ausgabe
Trägheitsmomente

Du siehst, wenn es um extrem kleine Verarbeitungszeiten geht, mußt Du auch alle Schritte in der Bearbeitungskette bedenken, die darauf Auswirkung haben.
Möglicherweise mußt Du sogar Bewegungen vorausberechnen, um rechtzeitig den Befehl zum Stoppen zu geben, damit die Signalausgabe und die Trägheitsmomente berücksichtigt sind.
 
Bei deinen Innterupt kommt es grundsätzlich noch darauf an wie du diesen erfasst.
Geht dieser über den Bus, kann es je nach Auslastung schnell 3-7 ms dauern, bis dieser
überhaubt ausgelöst wird.
 
Zurück
Oben