Exaktes Timing

borromeus

Level-1
Beiträge
2.271
Reaktionspunkte
329
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte ein Wort bitweise im exakten Takt von 16Hz an einem Digitalausgang ausgeben.
Mit exakt meine ich eine Abweichung von +/- 0,4 % Zeitabweichung.

Sprich mein Wort schaut zB so aus:

1101010111010111

und nun möchte ich alle 62,5 ms das rechte Bit auf einen Ausgang schieben. Danach ist 10s lang nichts und dann geht das Spiel von vorne los.

Die Hardware ist eine 313C DP.
Mir ist bis dato nichts besseres eingefallen als die PWM zu verwenden und einen "schnellen" Ausgangs-Kanal auf einen Eingang zu verdrahten, und mit dessen Flanken- Prozessalarm das Weiterschieben zu veranlassen, habe es aber noch nicht so programmiert.... (der Ausgang sollte auf ca 200us genau sein).

Hat wer eine Idee wie das besser oder genauer geht?
 
Hallo!

Sehe dir mal den OB 20 und den zugehörigen SFC32 an. Mit dem kannst du das realisieren indem du den SFC 32 im OB 20 aufrufst und dadurch nach bestimmter Zeit den OB 20 wieder neu startest.
Aber ich glaube das der SFC 32 nur ganze ms kann also nicht 62,5! :???:
Die Ausgänge musst du halt direkt über das PAW auf die Ausgänge schreiben das es zur richtigen Zeit aktualisiert wird.

godi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich glaube nicht das es mit der Kombination SFC32/OB20 in der Genauigkeit funktionieren wird; erstens wie bereits von godi erwähnt wegen der 1ms Auflösung; zweitens weil der Timer nach Ablauf jedesmal neu gestartet werden muß und man sich somit ein zusätzliches Delay einhandelt; dann lieber OB35 (weiß aber nicht, ob die 313C 1 Millisekunde unterstützt)

einfacher wäre es mit einer VIPA 313SC (313-5BF03)
siehe http://www.vipa.de/de/produkte/system-300s/detail/article/136/cpu-313sc/
hier gibt es einen OB29 im 500 us Takt
 
ggf. kannst du eine FM 352 mißbrauchen

6ES7352-1AH01- NOCKENSTEUERWERK --- FM 352, ELEKTRONISCH INKL. PROJEKTIERPAKET AUF CD 692,50 EUR

32 Nockenspuren: 13 direkt auf Onboard-Digitalausgänge geführt.


interner Takt 1us - glaube ich gelesen zu haben


...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn es nicht durch "Missbrauch" der FM252 klappen sollte, wie vorgeschlagen von IBFS, dann kann man es 100% sicher und relativ einfach mit einer FM352-5 High Speed Boolean Prozessor realisieren. Dann wird es nur eine Frage des Geldes und wie "wirklich" wichtig eine Lösung ist. Preis ist ähnlich glaube ich. Dies hat auch eine Takt von 1µs und eine Auflösung für Ein- und Ausgänge von 10µs.

Eine Warnung, die FM352-5 hat eine sehr hohe Lernkurve (dagegen ist die Nordwand der Eiger nichts!), aber wenn nötig kann ich hier helfen, da ich das alles schon hinter mich habe.
 
Zuletzt bearbeitet:
Die FM352-5 hat eine hohe Lernkurve ? Was soll das denn heißen ? Wenn ich die Besonderheiten der Schnittstelle beachte, ist das mit die einfachse Baugruppe, die Siemens hat... Programmierung in KOP/FUP und dazu noch pfeilschnell... Ich möchte behaupten, dass jemand der KOP/FUP beherrscht die Baugruppe innerhalb von einem Tag programmieren kann !
 
Hi borromeus

Hast du mehr infos für uns ?

Um was für eine Anwendung handelt es sich ?

Ein Austausch eines Teiles, das die letzten 20 Jahre elektronisch so funktionierte. Es wird ein Messwert in BCD- Format 3x4 Bit + 2 Start und 2 Stoppbit (also 16 Bit) mittels eines Bits zu einer Auswerteeinheit, weit entfernt, "getrommelt". Die Auswerteeinheiten werden nicht getauscht.
Es stellte sich heraus, dass wenn das Telegramm statt 1 s zB 1,01 s dauert checkt die Auswerteeinheit das nicht, bzw es verschieben sich Bits.

Das ganze gibt es natürlich sehr oft.....

Ich werde mal die Sache mit der PWM ausprobieren, die sollte auf 200us genau sein.....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Austausch eines Teiles, das die letzten 20 Jahre elektronisch so funktionierte. Es wird ein Messwert in BCD- Format 3x4 Bit + 2 Start und 2 Stoppbit (also 16 Bit) mittels eines Bits zu einer Auswerteeinheit, weit entfernt, "getrommelt". Die Auswerteeinheiten werden nicht getauscht.
Es stellte sich heraus, dass wenn das Telegramm statt 1 s zB 1,01 s dauert checkt die Auswerteeinheit das nicht, bzw es verschieben sich Bits.

Das ganze gibt es natürlich sehr oft.....

Ich werde mal die Sache mit der PWM ausprobieren, die sollte auf 200us genau sein.....

was heißt sehr oft? sehr oft in einer anlage (an einer SPS) oder in vielen Anlagen?
 
Hi

ich möchte ein Wort bitweise im exakten Takt von 16Hz an einem Digitalausgang ausgeben.
Mit exakt meine ich eine Abweichung von +/- 0,4 % Zeitabweichung.

Sprich mein Wort schaut zB so aus:

1101010111010111

Wird die "Sache" seriell ausgegeben
(Ich denke schon, da 1 Ausgang)

Dementsprechend ist der Pegel 24 Volt GS ?

Hast du ein Diagram des Protokkolls / Signalverlauf ?
(Gemessen mit Oszilograph)



Es stellte sich heraus, dass wenn das Telegramm statt 1 s zB 1,01 s dauert checkt die Auswerteeinheit das nicht, bzw es verschieben sich Bits.
Was passiert bei 0,95 Sekunden und so.


Das sind einzelne Messungen die an vielen Orten km-weit entfernt ihre Daten an eine Zentrale schicken.
Eine Messung=eine SPS
KM-Weit ?
Skepsis, solltest du mit Spannungspegel fahren ! ?

Ist das Signal eine Stromschleife ?

Siehe oben --> Wenn du uns eine Aufzeichnung an der Quelle und am Ziel mit hilfe eines Oszilographen machen kannst, würden wir mehr wissen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Austausch eines Teiles, das die letzten 20 Jahre elektronisch so funktionierte. Es wird ein Messwert in BCD- Format 3x4 Bit + 2 Start und 2 Stoppbit (also 16 Bit) mittels eines Bits zu einer Auswerteeinheit, weit entfernt, "getrommelt". Die Auswerteeinheiten werden nicht getauscht.
Es stellte sich heraus, dass wenn das Telegramm statt 1 s zB 1,01 s dauert checkt die Auswerteeinheit das nicht, bzw es verschieben sich Bits.

Das ganze gibt es natürlich sehr oft.....

Ich werde mal die Sache mit der PWM ausprobieren, die sollte auf 200us genau sein.....

vielleicht hab ich ja bisher die pulsweitenmodulation falsch verstanden; ich gebe einen Wert vor, der abhängig vom gegebenen Impuls/Pausenverhältnis ausgegeben wird. die pulse sind aber immer gleich; ich kann keinen Wert vorgeben, der dann wie bei einem UART seriell rausgetaktet wird
 
Hi



Wird die "Sache" seriell ausgegeben
(Ich denke schon, da 1 Ausgang)

Dementsprechend ist der Pegel 24 Volt GS ?

Hast du ein Diagram des Protokkolls / Signalverlauf ?
(Gemessen mit Oszilograph)



Was passiert bei 0,95 Sekunden und so.


KM-Weit ?
Skepsis, solltest du mit Spannungspegel fahren ! ?

Ist das Signal eine Stromschleife ?

Siehe oben --> Wenn du uns eine Aufzeichnung an der Quelle und am Ziel mit hilfe eines Oszilographen machen kannst, würden wir mehr wissen.
seriell: ja genau
24V ja
Osziprotokoll habe ich, wie es sein sollte.
bei 0,95 gehts auch nicht
keine Stromschleife,
Skepsis ist angebracht aber umsonst, da es seit 20 Jahren so funktioniert.
 
vielleicht hab ich ja bisher die pulsweitenmodulation falsch verstanden; ich gebe einen Wert vor, der abhängig vom gegebenen Impuls/Pausenverhältnis ausgegeben wird. die pulse sind aber immer gleich; ich kann keinen Wert vorgeben, der dann wie bei einem UART seriell rausgetaktet wird

Ach so,
na ich meinte das so: die CPU313 hat eine technologische Funktion, die hat 3 oder 4 Ausgänge die schnell sind.
Da kann ich in der Hardwarekonfig einen dieser Ausgänge als PWM definieren mit 0,1 ms Auslösung.
Taktdauer 62,5 ms
Dann lege ich zB ein 50% Signal drauf das heisst ich habe alle 62,5 ms eine Flanke am Eingang, wenn ich den Ausgang am Eingang schalte... und mit dem Eingang löse ich einen Prozessalarm aus.... und in diesem OB schiebe ich die Bits am Ausgang weiter. So habe ich mir das gedacht....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi


@VIPANER
vielleicht hab ich ja bisher die pulsweitenmodulation falsch verstanden; ich gebe einen Wert vor, der abhängig vom gegebenen Impuls/Pausenverhältnis ausgegeben wird. die pulse sind aber immer gleich; ich kann keinen Wert vorgeben, der dann wie bei einem UART seriell rausgetaktet wird
Dachte/denke ich eigentlich auch.

http://de.wikipedia.org/wiki/Pulsweitenmodulation
 
hallo,
das mit der PWM ist keine schlechte Idee. ... und mann kann ja mit den Werten der PWM "spielen", falls es nicht genau ist.
Ich kenn jetzt nicht die Zykluszeit deiner CPU. Könnte man diese künstlich konstant hochsetzen auf 62.5 ms, so das das Signal im Zyklus gebildet wird und rausgeschrieben?
Wenn es nicht nur bei der CPU bleiben muß gäbe es ja noch andere Möglichkeiten mit nachgeschalteter Elektronik.
Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... und bei den Entfernungen kann, denke ich, ein Trennverstärker auch nicht schaden und wenn dieser dann die Signale von der SPS puffert und getimet weitergiebt...
... oder vor der Zentrale die Signale sammeln und getimet übergeben...
Thomas
 
Zurück
Oben