nichtzyklisch

heini-bb

Level-1
Beiträge
36
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es eine möglichkeit Eingänge bei einer 314CPU nichtzyklisch, ich meine damit mehrmal während eines Zykluses einzulesen, den Wert zu zählen und das Ergebnis dann mit dem nächsten Zyklus bei Wert erreicht auszugen? Ich weis das es eine Zählerkarte gibt,welche mir aber zu teuer ist, deshalb suche ich eine andere Lösung!
 
Hallo heini-bb,
dies wäre mittels des Weckalarmbausteins OB35 möglich. Dieser wird aller 100ms aufgerufen und einmalig abgearbeitet.
Über die Eigenschaften der CPU in der Hardwarekonfiguration kann der Zeitabstand des Aufrufes verändert werden, z.B. auf 10ms.
Der Zeitabstand ist dann fest, also unabhängig vom OB1-Zyklus.

Gruß
raika
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Du kannst den OB35 (Weckalarm) so parametrieren, daß er z.Bsp. alle 5 ms aufgerufen wird. In dem OB liest du das PE (z.Bsp "L PEB 10" für EB 10) ein und machst dann deine Zählung oder was auch immer. Als Letztes im OB1, das wäre dann das Zyklusende schreibst du die entsprechenden Ausgänge.
Die 314 hat doch schnelle Zähler eingbaut, oder, die solltest du besser nutzen.

Ach so, mach das Intervall des OB35 nicht zu kurz, sonst funkt er dir ständig dazwischen.

P.S. Da war einer schneller als ich :p
 
Danke schon mal an euch beide!

@Ralle: Also soweit ich weis hat nur die CPU341C schnelle Zähler, ich habe aber nur eine 314 ohne C, falls diese auch schnelle Zähler hat wäre ich dir dankbar wenn du mir sagen kannst wie ich diese nutze!
 
Hallo,
die CPU 314 hat keine Onboardeingänge und demzufolge auch keine schnellen Zähler (eigentlich Alarmeingänge). Bei der CPU 314IFM kann man die E 126.0 bis E126.3 als Alarmeingänge benutzen, ebenfalls bei der CPU 314C-2DP. Dort kann man alle Onboardeingänge in 4er Gruppen als Prozeßalarmauslöser parametrieren (OB40).

weitere Hinweise unter: http://www.sps-forum.de/phpBB2/viewtopic.php?t=1942

MfG. Rayk :D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen

Ralle schrieb:
Du kannst den OB35 (Weckalarm) so parametrieren, daß er z.Bsp. alle 5 ms aufgerufen wird.

mann sollte aber bedenken wenn mann denn ob35 programmiert und in 5ms interfall aufruft werden pro sek 200 aufrufe abgearbeitet

dadurch wird sich die zykluszeit sicherlich zum schlechten wenden

die frage ist in welchen interfall mann zählen muss

gibt es nicht zähler karten für 300
 
azyklisch

Hallo heini-bb,
gib doch einfach an, welche Zählfrequenz Du erreichen willst. Entweder ist die so klein, dass ein mehrfacher OB35-Aufruf im Zyklus ausreicht, oder die zusätzliche Zählerkarte ist nun mal zwingend erforderlich. Und die Kosten dafür sind in jedem Fall dann geringer, als sich mit irgendwelchen Softwarekrampflösungen aufzuhalten.
Gruss
Question_mark
 
Außer der Möglichkeit mit dem Weckalarm kannst du die Aufrufe wie "L PEBx" auch in das laufende Programm "einstreuen". Die oberste sicher bearbeitbare Signalfrequenz ergibt sich dann aus dem größten zeitlichen Abstand zweier Aufrufe, wenn das Signal "symmetrisch" (50% duty cyycle) ist.. Der Aufwand kann geringer sein, als wenn jedesmal ein Weckalarm oder ein Prozeßalarm erfolgt.
Aber Achtung, wenn die Ausführungszeit des Programms zwischen den Aufrufen schwanken kann, insbesondere durch bedingte Ausführung von Anweisungen und Unterprogrammen, Überspringen von Anweisungsblöcken oder Schleifen variabler Länge.
Die zeitlich "passenden" Stellen für die zusätzlichen Aufrufe lassen sich natürlich durch addieren der (worst case) Ausführungszeiten der dazwischenliegenden Befehle ermitteln. Eine einfache (aber nicht sichere, da "worst case" nicht gegeben) Kontrolle ist, bei jedem Aufruf zusätzlich einen Ausgang durch direkten Peripheriezugrif (T PAB) zu invertieren und die Zeiten auf einem Oszilloskop darzustellen.
Bei jeder Programmänderung müßte diese Kontrolle wiederholt werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also habe die zählfrequenz hochgerechnet und komme im besten falll auf 4kHz., d.h. ich werde nicht um eine Zählerkarte herumkommen! Werde also meinem Chef die schlechte Nachricht machen müssen das man noch eine Karte für 400 Euro braucht!
Danke an euch alle für die Hilfe!
 
heini-bb schrieb:
Gibt es eine möglichkeit Eingänge bei einer 314CPU nichtzyklisch, ich meine damit mehrmal während eines Zykluses einzulesen, den Wert zu zählen und das Ergebnis dann mit dem nächsten Zyklus bei Wert erreicht auszugen? Ich weis das es eine Zählerkarte gibt,welche mir aber zu teuer ist, deshalb suche ich eine andere Lösung!

lies einfach das pew ein
peripherie wird immer direkt gelesen bzw geschrieben.
 
Zurück
Oben