TIA Zähler, Schieberegister

  • Ersteller Ersteller Gelöschtes Mitglied 138026
  • Erstellt am Erstellt am
G

Gelöschtes Mitglied 138026

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin Anfänger im Thema SPS.

Ich verwende eine 1215 FC.

Ich möchte eine Kurzschlussprüfung durchführen (ca. 40 Leitungen).

Dabei möchte ich Ausgänge mit einer Frequenz von 100 oder mehr Hertz schalten.
Problem sind nicht die Eingänge, sondern die Durchlaufdauer des Programms.

Ich habe das Weiterschalten mit einem Zähler und einer Schiebefunktion versucht.
Problem ist, dass diese das Programm langsam machen.

Gibt es eine Möglichkeit dieses Problem zu lösen?

Vielen Dank!
LG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab es leider aktuell nicht zur Verfügung.

Im OB1 hab ich einen Frequenzgenerator aus der Bibliothek.
und in nem FC ist:
Netzwerk 1: ROR weiterschalten mit nem Merker vom Frequenzgeneratur; Schaltet ein Merkerdoppelwort MD30 mit 00…01 immer weiter
Netzwerk 2: Boolscher = Baustein zum anschalten von z.B. M30.0
 
Ich möchte eine Kurzschlussprüfung durchführen (ca. 40 Leitungen).

Dabei möchte ich Ausgänge mit einer Frequenz von 100 oder mehr Hertz schalten.
100 Hz -> ZyklusZeit 5 ms, wenn TastVerhältnis 1:1.
Welches TastVerhältnis benötigst Du? Musst Du unterschiedliche TastVerhältnisse realisieren? In welchem Bereich?
Von 100 oder mehr Hertz. Wie viel mehr Hertz?
Problem sind nicht die Eingänge, ...
Welche Eingänge? Du willst die (ca. 40) Ausgänge auf Eingänge verdrahten und die EingangsSignale verarbeiten?
Falls ja -> ZyklusZeit halbieren.
... sondern die Durchlaufdauer des Programms.
Ich habe das Weiterschalten mit einem Zähler und einer Schiebefunktion versucht.
Problem ist, dass diese das Programm langsam machen.
:unsure: Der Zähler und die SchiebeFunktion machen das Programm langsam?
Wenn man das schafft, ein Programm durch einen Zähler und eine SchiebeFunktion langsam zu machen, dann ist das allerdings ein (selbstgemachtes) Problem. ;)
Welche ZyklusZeit hast Du aktuell und welche strebst Du an?
Was soll das Programm denn "nebenbei" noch alles tun, ausser die (ca. 40) Ausgänge ein- und auszuknippsen?
Gibt es eine Möglichkeit dieses Problem zu lösen?
Welches Problem? Was hast Du denn mit dem Zähler und der SchiebeFunktion angestellt, falls Du damit das o.g. Problem meinst?

Sollen die ca. 40 Ausgänge evtl. gleichzeitig mit unterschiedlichen Frequenzen und/oder TastVerhältnissen angesteuert werden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was soll das Programm denn "nebenbei" noch alles tun, ausser die (ca. 40) Ausgänge ein- und auszuknippsen?
Ja die oben Beschriebene Überwachung läuft in einem FC, welcher sich in einem etwas größerem FC befindet, also könnte das die Zykluszeit beeinflussen.
Sorry, das ich so blöd Frage, aber ist es möglich einen normalen CTU mit z.B. 600 Hz Hochzählen zu lassen?
Würde ich mein Programm schneller laufen lassen, wenn der FC der Überwachung im OB1 läuft. -> Problem ist, dass die beiden FCs im Prinzip "parallel" laufen sollen?

LG
 
... ist es möglich einen normalen CTU mit z.B. 600 Hz Hochzählen zu lassen?
Man kann grundsätzlich einen "normalen CTU" mehrfach pro SPS-Zyklus hochzählen, aber muss es unbedingt ein "normaler CTU" sein?
Man kann eine beliebige numerische Variable hochzählen, indem man jeweils eine 1 auf die Variable draufaddiert.
Wozu benötigst Du den Zähler? Wozu den SchiebeBefehl bzw. den RotationsBefehl (s. #3)?
Im OB1 hab ich einen Frequenzgenerator aus der Bibliothek.
Welche Frequenzen verspricht dieser FrequenzGenerator denn produzieren zu können?
Würde ich mein Programm schneller laufen lassen, wenn der FC der Überwachung im OB1 läuft.
:unsure: ?
-> Problem ist, dass die beiden FCs im Prinzip "parallel" laufen sollen?
Der Trick dabei ist das "im Prinzip". Nichts läuft wirklich "parallel", aber alles läuft "quasi" bzw. scheinbar parallel.
Durch ...
- die zyklische Bearbeitung des Programms und
- das Kopieren des "ProzessAbbilds der Ausgänge" auf die Ausgänge und
- das Kopieren der Eingänge ins "ProzessAbbild der Eingänge"
... zwischen jeweils zwei aufeinanderfolgenden Zyklen werden ...
- die Eingänge quasi parallel eingelesen
- das Programm seriell komplett abgearbeitet und
- die Ausgänge quasi parallel ausgegeben.
Dadurch ensteht natürlich ein mehr oder weniger grobes zeitliches Raster, in dem die Eingänge abgefragt und die Ausgänge nach der Bearbeitung des Programms ausgegeben werden.
Für die "normalen" Aufgaben einer SPS ist dieses Verfahren sehr gut geeignet.
Um einen FrequenzGenerator mit einer SPS zu "bauen" eher nicht. Daher die obige Frage "Welche Frequenzen verspricht dieser FrequenzGenerator denn produzieren zu können?"
Man kann aber während eines SPS-Zyklus (zwischen dem Kopieren der Eingänge ins PAE und dem Kopieren des PAA in die Ausgänge) mit "PeripherieBefehlen" unverzüglich Eingänge abfragen bzw. Ausgänge schalten. Als die CPUs im Vergleich zu heute noch recht "behäbig" waren, musste man davon gelegentlich Gebrauch machen. Aber das Programm kann auch leicht "ausarten", wenn man den normalen Weg verlässt.
Die Nutzung von ZeitAlarmen drängt sich auf, um sozusagen einen (oder mehrere) weiteren, quasi-parallelen zyklischen Thread zu nutzen.
Aber, ob dies für einen ...
ich bin Anfänger im Thema SPS.

Ich verwende eine 1215 FC.
... , der zudem noch eine F-CPU(?) programmieren soll, ein geeignetes Projekt ist?
Du selbst wirst so einiges "parallel" in Dich aufsaugen und verarbeiten müssen, um den Überblick nicht zu verlieren.

Angefangen hatten wir mit einer Frequenz von 100 Hz mit einem nicht näher definierten TastVerhältnis. Mittlerweile ist schon von 600 Hz die Rede, während wir immer noch rätseln dürfen, ob ein TastVerhältnis von 1:1 OK wäre und wenn nicht, welche dann?

Wenn Du im OB1 z.B. ...
Code:
Ausgangxy := NOT Ausgangxy ;
... programmierst, welche Frequenz erhältst Du dann am Ausgangxy?

Wie lange soll ein Ausgang mit z.B. 100 Hz hin- und hergeschaltet werden? Wieviele Perioden der Frequenz?
 
Zuletzt bearbeitet:
Man kann grundsätzlich einen "normalen CTU" mehrfach pro SPS-Zyklus hochzählen, aber muss es unbedingt ein "normaler CTU" sein?
Man kann eine beliebige numerische Variable hochzählen, indem man jeweils eine 1 auf die Variable draufaddiert.
Nein muss es grundsätzlich nicht, gibt es dabei einen Vorteil?
Welche Frequenzen verspricht dieser FrequenzGenerator denn produzieren zu können
Verwende einen der LGF Bibliothek1668211047556.png
Ich muss die Ausgänge nacheinander Schalten, ein Ausgang soll eine Schaltzeit von 10 Hz haben bei 40 Ausgängen => mit 400 Hz den Zähler schalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nein muss es grundsätzlich nicht, gibt es dabei einen Vorteil?
Wie so oft im Leben: "kommt drauf an, was man damit machen will". Der CTU kann nur den WerteBereich 0...999, muss im BCD-Code geladen werden (wenn überhaupt), und die Zähl-, Setz und Rücksetz-Eingänge haben eine FlankenErkennung. Je nach Anforderungen, kann ein CTU manchmal den einen oder anderen Vorteil ausspielen, manchmal spricht aber das eine und/oder andere dagegen, ihn zu verwenden.
In diesem Fall, wenn mehrfach pro Zyklus der ZählerStand um 1 erhöht werden soll, ist das Liefern der Zähl-Impulse eher umständlich/aufwändig.
Verwende einen der LGF BibliothekAnhang anzeigen 64914
Na, immerhin scheint jetzt die Frage nach dem TastVerhältnis (pulsePauseRatio = 1.0) geklärt zu sein.
Ich muss die Ausgänge nacheinander Schalten, ein Ausgang soll eine Schaltzeit von 10 Hz haben bei 40 Ausgängen => mit 400 Hz den Zähler schalten.
Deute ich das richtig? Es sollen pro Sekunde 10 Ausgänge nacheinander aktiviert werden? Bzw. die 40 Ausgänge innerhalb von 4 s?

In welcher GrössenOrdnung liegt denn nun Deine ZyklusZeit?
 
Deute ich das richtig? Es sollen pro Sekunde 10 Ausgänge nacheinander aktiviert werden? Bzw. die 40 Ausgänge innerhalb von 4 s?
Nein die 40 Eingänge sollen nacheinander aktiviert werden, das umschalten soll mit 400 Hertz geschehen, dadurch wird jeder Eingang einzeln gesehen mit 10 Hertz geschalten.
In welcher GrössenOrdnung liegt denn nun Deine ZyklusZeit?
Kann ich leider aktuell nicht sagen.
In diesem Fall, wenn mehrfach pro Zyklus der ZählerStand um 1 erhöht werden soll, ist das Liefern der Zähl-Impulse eher umständlich/aufwändig.
findet man irgendwo wie das erhöhen zwischen der Zyklen funktioniert? allerdings müssen ja dann auch die Ausgänge während des Zyklus geschalten werden, oder?
 
Die Simulation sagt überhaupt nichts über die reale Zykluszeit aus.
Da musst du dein Programm schon auf ne Steuerung spielen.
Bei deinen 400Hz muss man schon auf die Verzögerungen der Baugruppen und evtl. Buslaufzeiten achten.
Da ist die reine Zykluszeit des Programms nicht mehr das allein Bestimmende.
Ich würde da erstmal den Oszi auspacken und schauen, was mit der Hardware überhaupt möglich ist.
 
Wie kommst Du auf die 100 Hz Schaltfrequenz? Wo kommt diese Anforderung her?
Was ist außen an den SPS-Ausgängen angeschlossen? Kann diese Elektrik mit 100 Hz arbeiten? Z.B. Relais können nicht mit 100 Hz schalten. Wie lange braucht die Elektrik, bis eine Reaktion auf Änderung der SPS-Ausgänge an SPS-Eingängen feststellbar ist?
Mit welchen Eingängen/Ausgängen/Baugruppen willst Du die 100 Hz verarbeiten/schalten? Schaue in die technischen Daten der Baugruppen im Handbuch, da sollte die maximale Schaltfrequenz oder -zeiten drinstehen, ob Deine Hardware das überhaupt kann.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Da wäre jetzt überhaut mal die Hardwareseite interessant.
Was willst du da überhaupt machen?

Kurzschlusspüfung? von was

oder geht es darum:
Kabelbaum oder ähnliches mit 40 Adern und du willst jetzt Ader für Ader High setzen und schauen ob die richtige High wird?
 
Zurück
Oben