S5 95U ob13 als genauer Takt für Zähler

automatnix

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
seit ca. 4 Std. versuche ich mit dem OB 13 (default Werte) meinen Zähler 13 nach vorne zu bewegen.
Beim Googeln habe ich zwar die tollsten Codes gefunden, aber das ist mir zuhoch.
Ich kann es einfach nicht, da ich mich mit FB, MW und DW nicht auskenne.
Was Siemens in der Anleitung schreibt bleibt mir ein Rätsel.
Ich hatte den OB 13 auch schon gepeinigt, daß die SPS auf STOP ging.

Mit einen selbst gebauten Takt habe ich schon den Mintuentakt für meine Uhr hingebracht, aber der drifftet mir durch meine Prozesszeit übelst ab.

Ich brauch einfach einen Codeschnippel für den OB 13, der mir meinen Zähler 13 immer wieder bis zehn hochzählt. Ich checke dann im PB 13 ob der Zähler > 4 ist und schon habe ich einen sauberen Takt, den ich nur noch auf Minutenlänge trimmen muß.

Oder kann ich die S5 nie als Mutteruhr verwenden, weil zu viel abweichung zu erwarten ist?

Ja, Grrrr..... Ich brauche ein Stück Code :TOOL:

Viele Grüße vom
Automatnix
 
Beim Googeln habe ich zwar die tollsten Codes gefunden, aber das ist mir zuhoch.
Ich kann es einfach nicht, da ich mich mit FB, MW und DW nicht auskenne.
Was Siemens in der Anleitung schreibt bleibt mir ein Rätsel.
Ich hatte den OB 13 auch schon gepeinigt, daß die SPS auf STOP ging.
Hallo,
spontaner Tip: laß die Finger von der SPS.

Alles was Du brauchst steht hier drin:
Automatisierungsgerät S5-95U Anleitung
Automatisierungsgerät S5-90U/S5-95U Systemhandbuch
doch wenn Du das nicht annähernd verstehst, dann ist das Thema SPS wohl nichts für Dich.

Oder kann ich die S5 nie als Mutteruhr verwenden, weil zu viel abweichung zu erwarten ist?
So ist es. Mehrere Minuten Abweichung pro Tag wären mir zu ungenau. Wie genau brauchst Du es denn?
Man könnte zwar die Uhr der CPU mit einer externen genauen Uhr synchronisieren, doch das ist noch vieeeeel komplizierter als OB13.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,
erst mal Dnke, daß Du Dich meiner annimmst.

Die pdf's habe ich mir schon gezogen, aber das hilft mir in der Tat nichts.
Erschreckend für Dich dürfte sein, daß bei mir im Haus 2 Stck 100er U CPU 102 laufen und die Bude steuern. Aber ich habe bisher nur U O S R T und Z benötigt.

Es hat ja auch etwas gedauert, bis mir klar wurde, daß die 102er keinen OB13 hat, weil Sie keine Uhr hat. Also nehme mann eine 95U.

Dann war der Plan:

;ob13

UN M 13.0
S M 13.0

SPA PB2
BE


;PB2
U M 13.0
ZV Z 13

L Z 13
L KZ 009
>=F
R Z 13

U M 13.0
R M 13.0
BE

Allerdings Zählt da nichts. Für Dich klar, für mich nicht.

Ich habe dann gelesen ...http://www.sps-forum.de/showthread.php?t=4232...wie das gehen soll.
Natürlich nicht bei mir bzw. ist mir nicht klar, wie ich den gewonnenen Takt zum weiterverarbeiten verwenden kann.

Nice2Have sollte sie so genau wie eine Armbanduhr gehen. 2x im Jahr muß ich eh wegen Sommer-/Winterzeit manuell ran.

Viele Grüße vom
Automatnix:sad:
 
Erschreckend für Dich dürfte sein, daß bei mir im Haus 2 Stck 100er U CPU 102 laufen und die Bude steuern. Aber ich habe bisher nur U O S R T und Z benötigt.
Hallo Automatnix,
das klingt doch schon ganz anders als Dein pessimistisches EP. Stelle Dein Licht doch nicht so unter den Scheffel. Du kannst ja doch schon viel.
icon14.gif


Dann war der Plan:

;ob13

UN M 13.0
S M 13.0

SPA PB2
BE


;PB2
U M 13.0
ZV Z 13

[...]
Allerdings Zählt da nichts.
Das Vorwärtszählen ZV erhöht den Zählerwert nur bei steigender Flanke des VKE.
In Deinem PB2 ist M13.0 immer gesetzt -> also keine Flanke -> also kein Zählen.

Rufe den PB2 im OB1 auf statt im OB13 und schon zählt Dein Zähler. :)

Kleine Schönheitsfehler sind aber noch drin:
L Z 13
L KZ 009
>=F
"L Z 13" lädt den Zählerwert dual codiert (normale Festpunktzahl), "LC Z 13" lädt den Zählerwert BCD-Codiert. "L KZ 009" lädt eine BCD-codierte Zahl. Für einen sinnvollen Vergleich müssen beide Operanden im selben Format vorliegen. Von 0 bis 9 besteht aber kein Unterschied zwischen Dual-codiert und BCD-codiert, deshalb funktioniert Dein Code auch so gemischt.

Dein Zähler Z13 teilt den OB13-Takt nur durch 9, gewollt ist aber sicher durch 10. Vergleiche mit >F statt >=F oder lade 10 statt 9.
Code:
     [COLOR="Blue"]L[/COLOR]   Z  13
     L   [COLOR="blue"]KF +9[/COLOR]
     >F

;oder

     [COLOR="blue"]LC[/COLOR]  Z  13
     L   [COLOR="blue"]KZ 009[/COLOR]
     >F

;oder

     L   Z  13
     L   [COLOR="blue"]KF +10[/COLOR]
     [COLOR="blue"]>=F[/COLOR]

;...

Wenn der Aufruf Deines OB13 im DB1 alle 100ms parametriert ist, dann kannst Du den OB13-Takt z.B. so weiter untersetzen:
Code:
     U   M  13.0     von OB13 gesetzt
     R   M  13.0
     ZV  Z  13       zaehlt OB13-Aufrufe alle 100ms

     L   Z  13
     L   KF +10
     >=F
     R   Z  13
     =   M  13.1     Sekundenpuls 1 Zyklus lang

     U   M  13.1     *
     ZV  Z  14

     L   Z  14
     L   KF +60
     >=F
     R   Z  14
     =   M  13.2     Minutenpuls 1 Zyklus lang
( * das "U M 13.1" kann man auch weglassen, so ist es aber verständlicher)

Harald

PS: Wenn es dann bei Dir läuft, dann berichte doch mal, wie genau Deine 95U-Uhr läuft.
 
Mit einen selbst gebauten Takt habe ich schon den Mintuentakt für meine Uhr hingebracht, aber der drifftet mir durch meine Prozesszeit übelst ab.

Oder kann ich die S5 nie als Mutteruhr verwenden, weil zu viel abweichung zu erwarten ist?
Sag mal, geht es dir um einen Betriebsstundenzähler ansonsten stell ich mir die Frage wie du mit einem Minutentakt eine Uhr (Mutteruhr) nachstellen willst (Tage, Monate, Jahre)?

> Eine 95U hat doch schon eine interne Uhr im Rucksack, aktivierbar (inklusive Korrekturfaktor) durch den DB1. <
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe eine uhr in der s5 (allerdings eine 115u) am laufen.
geht schon recht genau, allerdings erst seit ich einen
"korrekturfaktor" programmiert habe.

dabei wird im zeit-ob nur ein merkerbyte hochgezählt:

100ms-ob:

L MB180 zähler f. 1/10s
L LK +1
+F
T MB180


im normalen, zyklischen Programm werte ich dann diesen
1/10 sekunden-zähler aus:

L MB180 zähler f. 1/10s
L LK +10 warten bis eine sekunde voll ist
<F
SPB NWE

L MB180 zähler f 1/10s
L KF+10 um eine sekunde zurückstellen
-F
T MB180

L MB181 sekundenzähler
L KF +1 um eine sekunde erhöhen
+F
T MB181

diese drei anweisungsblöcke wiederholen sich dann für minute,
stunde ...

der korrekturfaktor wird über einen zweiten zähler (sekunden)
ermittelt, der dann alle x sekunden den 1/10sekundenzähler
manipuliert (z.b. alle 1568s um 1/10s reduzieren).

damit erreiche ich eine gangenauigkeit von ca. +-1 minute
in 3 monaten.
 
Hallo,

@Harald:
Danke für die Infos, ich gehe mal tippen. Das mit dem LC ist gut, ich habe mich schon gewundert, warum der ab 9 zickt. Auf die BCD-Idee bin ich schon gekommen, hatte aber keine Lösung dafür.
Der m13.0 in meinem PB2 wird noch mit r m13.0 gelöscht, sieht man nur nicht, ist im [...] Fenster verschwunden.
Vielen Dank erst mal ....

@Paule:
Ich habe eine 75 cm Bahnhofsuhr erstanden und die läuft nur mit Muttertakt.(1 Impuls/Min. auf den Drehanker, Polwendung und Teilerkette macht die 100U schon.)
Gei... teil, aber ich hätte nicht geglaubt, daß ein sauberer Sekunden oder Minutentakt so problematisch ist.
Einstellen kann ich ganz banal mit 2 Schaltern "Sleep" und "Fast Forward" an der 100er.

@tnt369:
Es macht sich bei mir optimismus breit. Aber die Codeschnippel muß ich mir erst mal sortieren. Ich seh schon, ich muß mich mit MW befassen :)

@alle:
Vielen Dank Leute, ich geh dann mal bauen. Ich melde mich wieder, mit einem ?Erfolgsbericht?

Danke
Automatnix:TOOL:
 
Der m13.0 in meinem PB2 wird noch mit r m13.0 gelöscht, sieht man nur nicht, ist im [...] Fenster verschwunden.
Das habe ich wohl gesehen, es spielte aber in Deinem Programmentwurf keine Rolle, weil er im OB13 vor dem PB2-Aufruf garantiert wieder gesetzt wird und dadurch im PB2 immer gesetzt ist. Es sei denn, Du hättest den PB2 im OB13 UND im OB1 aufgerufen - dann wäre der M13.0 beim Aufruf aus dem OB1 gelöscht und Dein Zähler hätte gezählt.
Es reicht aber völlig, im OB13 nur den M13.0 zu setzen und den PB2 nur im OB1 aufzurufen.

Es macht sich bei mir optimismus breit.
[...]
Ich melde mich wieder, mit einem ?Erfolgsbericht?
Ja, bitte berichte von Deinem Ergebnis. Viel Erfolg.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
wie tnt schon schrieb ist der ob13 leider nicht so genau wie man sich das wünscht.

die 95u hat eine echtzeituhr. viel eleganter ist es diese zu nutzen.
 

Anhänge

  • cpu-uhr.txt
    3,6 KB · Aufrufe: 70
Alles anders, aber jetzt Funzt es ..

Hallo Leute,

erst mal sorry, es hat etwas gedauert. Ich mußte 2 Wochen ins Krankenhaus.
Hatte aber den Vorteil, daß ich viel Zeit hatte mich mit den S5 Anleitungen zu beschäftigen.

Der 1. Versuch:(100U-CPU 102)
Von einem LED-Radiowecker die Doppelpunkt-LED angezapft und auf einen SPS-Eingang gelegt. Sekundentakt hochgezählt und bla bla ....
Zeiger im Minutentakt vorwärts bewegt. Sieht gut aus, driftet aber mit der SPS auslastung auch ab. Nachts fast garnicht, tagsüber bis zu 2 Min in der Stunde. Also ....

Der 2. Versuch:(95U)
Man nehme die intern Uhr. Kotze etwas herum bis sie läuft. (Merkerwort geht jetzt für mich, DB's habe ich noch immer nicht geschnallt.)
Und plötzlich ist alles ganz einfach ...
Solange die Sekunde im Merkerbyte < 3 ist gebe ich Saft auf meine Zeiger-Dreh-Spule. (2 Sekunden braucht er schon, ist ja ein FETTER Zeiger)
In der Sekunde >=5 und <=6 schalte ich einen Merker-Stromstoßschalter um, damit ich die Umpolung für die Zeigerspule hinbekomme.

Wenn wegen Auslastung mal eine Sekunde übersprungen würde, habe ich immer noch Reserve. Sowas gibt Abzüge in der B-Note, aber es geht.

Seit einer Woche läuft's stabil! Jeah! *ROFL*


Sommer-/Winterzeit interessiert mich ja nicht, da ich immer nur den Sekunden bereich brauche.

Euch möchte ich für die Unterstützung und Denkanstöße danken.
Ich finde es Super, daß Ihr auch denen helft, die eher wenig Plan von einer SPS haben.

Vielen Dank

Automatnix
 
Zurück
Oben