PCS 7 Baustein TIMER_P an WinCC

Benny

Level-1
Beiträge
37
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe ein Problem mit dem mit dem Baustein FB 5 TIMER_P in PCS 7. Ich verwende zur Zeit folgende Softwarestände:
PCS 7 V7.1 + SP3
WinCC Runtime V7.0 + SP2 + Upd4

Ich möchte jetzt gerne die Variabeln (Zeiten) die ich an den Timer Baustein angeschlossen habe in meinem WinCC Projekt verwenden, bzw. dynamisieren. Das Ziel soll sein, dass beispielsweise die Zeit für die ablaufende Einschaltverzögerung individuell später von der Runtime aus eingestellt werden kann. Um jetzt Variablen für WinCC "sichtbar" zu machen, sollte doch von S7 Seite her die Einstellung Bedienen und beobachten unter den Eigenschaften selektiert sein, oder irre ich mich da? Unter den Eigenschften des TIMER_P im CFC-Plan ist allerdings genau diese Möglichkeit (Haken bei Bedienen- und Beobachten) nicht möglich, sonder das Feld ist grau hinterlegt.
Fakt ist, das meine Variablen für die ganzen Motorbausteine die ich verwende beim Laden und übersetzen schön in WinCC angelegt werden, die für den TIMER_P baustein aber nicht. Ich kann mir jetzt zwar einen DB anlegen und den dafür verwenden, aber ich dachte das müsste doch bei PCS 7 auch auf dem "direkten" Weg gehen (wie bein den Motorbausteinen).

Hat jemand vielleicht eine Idee wie ich meine Anschlüsse/Variablen vom TIMER_P Baustein direkt in WinCC dynamisieren und somit meine Zeitan später in der Runtime einstellen kann?


Gruß Benny
 
Soo einfach ist das nicht.
Bei den anderen Bausteinen ist dies möglich, da diese bzw. entsprechende Variablen für das B&B vorgesehen wurden. Dies ist beim Timer_P nicht der Fall.
Daher kannst Du Dir entweder einen selbst schreiben oder wie Du bereits erläutert hast einfach eine Variable B&B fähig machen und auf den Timer verschalten.
Beachte jedoch, dass die Zeitänderung nur für den nächsten Neustart und des Timers gilt. Daher solltest Du die Eingabe während der Timer läuft sperren oder eben doch einen eigenen schreiben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antwort,

es ist zwar nicht das was ich hören wollte, aber das was ich vermutet habe...
Aber was genau meisnt du mit damit "Beachte jedoch, dass die Zeitänderung nur für den nächsten Neustart und des Timers gilt. Daher solltest Du die Eingabe während der Timer läuft sperren oder eben doch einen eigenen schreiben."
Genau das möchte ich nämlich eigentlich damit machen. Ziel ist über den Timer einen Motor anzusteuern, der sagen wir mal alle Zeit X für Y Minuten Läuft. Die entsprechenden Werte X und Y sollen vom WinCC jeder Zeit verändert werden können. Wenn das erst beim nächsten Zähl-zyklus übernommen wird ist das völlig OK und für mich auch normal. Oder was meinst du in diesem Fall mit sperren? Oder hast du gar eine einfachere oder bessere Idee wie so eine einfache Schaltung zu realisieren ist?

Gruß Benny
 
Aber was genau meisnt du mit damit "Beachte jedoch, dass die Zeitänderung nur für den nächsten Neustart und des Timers gilt. Daher solltest Du die Eingabe während der Timer läuft sperren oder eben doch einen eigenen schreiben."

Änderung der Timerzeit ist nicht möglich, während der Timer läuft. siehe F1 zum TIMER_P...

Grundsätzlich sind erstmal nur technologische Bausteine, z.B. Motor Ventil usw. bedien und beobachtungsfähig. AND/OR Timer usw. nicht, macht ja auch keinen Sinn, die ganzen Variablen dafür im WinCC Server pauschal anzulegen und die Bausteine noch komplexer zu gestallten. Ausserdem sind diese Steuerungsbausteine oft auch nur FCs oder auch nur erzeugter Code, wo das schon prinzipiell nicht geht, da es ja keinen DB gibt.

Verwendest Du die APL? Wenn ja dann zur Einstellung der Zeit von der Visu den OpAnl (FB1865) verwenden und als Timer den TimerP (FB1810) (auch für UND/ODER die APL verwenden...) damit der Signalstatus im Struct auch konsequent mit durchgeschaltet wird.

Gruß.

PS: TIMER_P (FB5) ist kein spezieller PCS7 Bausetin sondern gehört zur CFC-Library (was es auch ohne PCS7 bei Installation von CFC unter Step7 gibt)
 
Zuletzt bearbeitet:
Danke für die Antwort, ich habe das eben mal soweit getestet. (Ja ich verwende APL)
Das funktioniert soweit, das ich Daten zwischen WinnCC und dem CFC hin und her schicke. Allerdings finde ich diese Art der Motor-Zeit-Schaltung ziemlich kompliziert. Gibt es denn keine einfachere Möglichkeit, wie man in WinCC Laufzeiten für den Einschlatzeitpunkt (sowie die Dauer der Motorlaufzeit) einstellen kann? Es wäre natürlich sehr geil wenn dies in einem Time-Format hh:mm:ss gehen würde. Sprich man gibt in WinCC in einem Feld einfach nur ein 00:30:00 und der Motor läuft somit bei pos. Flanke nach 30 Minuten.
Bin dahingehend gerade etwas überfragt. Hat da jemand ne Idee?
Ich denke das solche Zeitsteuerungen doch nichts ungewöhliches sind, oder irre ich mich da..

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hmm,

der OpAnl hat halt real Format. aber bisher bin ich damit immer ausgekommen, da der einzustellende Zeitbereich ja oft nicht riesig variiert. Nimmst halt als Einheit h, min, oder sek. Je nachdem was bessert passt, muss der Benutzer dann 0,5h 30min oder 1800sek eingeben... dann noch im CFC umrechnen in Sek (der Eingang des TimerP will Sek), fertig. wo ist das Problem?

Gruß.cfc_timerp.PNG

PS: PCS7 ist nicht WinCC... Wenn man auch alle Vorteile und Möglichkeiten von PCS7 nutzen will/muss, sollte man auch erstmal die Bausteine der APL nutzen bzw. wenn man etwas benötigt, was in der APL so nicht gibt, dann einen eigenen Baustein im APL-Style schreiben....

Die Vorgehensweise "ich leg da mal nen EA-Feld in WinCC an, und schau mal, mit welcher Variablen ich das verbinde": das ist nicht PCS7...
 

Anhänge

  • cfc_timerp.PNG
    cfc_timerp.PNG
    55,7 KB · Aufrufe: 24
Zuletzt bearbeitet:
Ja das habe ich ja auch genau so gemacht, hab aber halt mit 60 multipliziert um auf die Sekunden zu kommen.

Aber mein letztes kleines Problem ist halt folgendes. Die Restlaufzeit vom Timer lege ich mir auf den Prozesswert (PV_In) vom OpAnl (den passenden Namen habe ich in WinCC im Bildgeändert). Nur würde ich ja an dieser Stelle die 1800 Sekunden wieder nehemen und durch 60 teilen um auf meine Minuten zu kommen. Damit kommen aber nach dem Komma die Sekunden von 0...99 raus und nicht von 0..60, was eher unschön ist. Ich weiß das ich es jetzt sehr genau nehme, aber aus diesem Grund war ja meine Frage ob es hier an der Stelle keinen Baustein gibt der sowas in der Art schon automatisch im Time-Format. Ich finde das auf diesem Wege zwar schon gut und verständlich, dachte nur es geht vielleicht auch einfacher.
Aber ich werde das jetzt gnau so machen wie du es beschrieben hast und mich nicht mehr länger daran aufhalten.

Danke für den Tipp!!!


Gruß
 
Naja, einfach ist halt Ansichtssache :)

Dass 1,50min gleich 1min 30sek sind und nicht gleich 1min und 50sek, ist sicherlich uns klar aber nicht immer jedem Bediener... da hast Du schon recht...

evtl. nur eine Kommastelle anzuzeigen könnte das Verständnis erhöhen...


viel Spass mit PCS7,

Gruß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja, einfach ist halt Ansichtssache :)

Dass 1,50min gleich 1min 30sek sind und nicht gleich 1min und 50sek, ist sicherlich uns klar aber nicht immer jedem Bediener... da hast Du schon recht...

evtl. nur eine Kommastelle anzuzeigen könnte das Verständnis erhöhen...

Genau so habe ich es jetzt auch vor. Damit es da auch ja keine Probleme gibt.
icon6.png


Gruß
 
Jetzt muss ich an der Stelle aber doch nochmal nachhaken. Wie gestaltet sich denn das Ganze, wenn ich jetzt sage meine Motoren sollen zur Uhrzeit X (z.B. 8 Uhr Morgens) angehen und Abends um 20 Uhr wieder aus. Die Uhrzeiten möchte ich aber in WinCC variabel anstellen können. Die Frage die sich mir jetzt stellt ist eher wie bekomme ich einen Wert von WinCC als TOD (Time of Day) oder DATE AND TIME oder ähnliches in den CFC Plan um ihn dort zu verschalten?

Bin da bei PCS 7 ehrlich gesagt etwas überfragt.

Gruß
 
Wieso in PCS7 überfragt?
Alles was in WinCC geht, funktioniert auch in PCS7. Ist nicht immer schön, aber solange es Ausnahmen bleiben finde ich es auch völlig i.O.

Noch schnell zum Timer, da hatte ich mir einen selbst geschrieben, da ich keine Lust hatte dem Bediener zu sagen, dass es erst für den nächsten Zyklus gilt. Das kann der sich eh nicht behalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Jetzt muss ich an der Stelle aber doch nochmal nachhaken. Wie gestaltet sich denn das Ganze, wenn ich jetzt sage meine Motoren sollen zur Uhrzeit X (z.B. 8 Uhr Morgens) angehen und Abends um 20 Uhr wieder aus. Die Uhrzeiten möchte ich aber in WinCC variabel anstellen können. Die Frage die sich mir jetzt stellt ist eher wie bekomme ich einen Wert von WinCC als TOD (Time of Day) oder DATE AND TIME oder ähnliches in den CFC Plan um ihn dort zu verschalten?

Bin da bei PCS 7 ehrlich gesagt etwas überfragt.

Gruß

frag mal Deinen Siemens-Vertreter nach der "Industry Library" da sind Bausteine für Wochenprogramm mit dabei und angeblich auch für PCS7 kostenlos. Weiss allerdings nicht, ob auch für die "alte" Version 7.1 SP3. Für PCS7 8.0 gibts die jedenfalls...

https://eb.automation.siemens.com/g...ge=de&regionURL=/BG&activetab=product#topAnch

Wochenschaltuhr_IndustryLibrary.png

Gruß.
 
Zuletzt bearbeitet:
Noch schnell zum Timer, da hatte ich mir einen selbst geschrieben, da ich keine Lust hatte dem Bediener zu sagen, dass es erst für den nächsten Zyklus gilt. Das kann der sich eh nicht behalten.

Ja, da hab ich mich auch schon mehrfach drüber aufgeregt, dass beim TIMER_P als Einschalt-/Ausschaltverzögerung die Zeit nicht zur Laufzeit übernommen wird. Was auch immer die Programmierer sich dabei gedacht haben:confused:

Leider ist das mit dem selbstgeschriebenen Bausteinen auch nicht so einfach, da bei unseren PCS7 Anlagen vom Kunden gefordert vorrangig Standardbausteine (CFC-Library, PTE400) eingesetzt werden sollen...

Gruß.
 
frag mal Deinen Siemens-Vertreter nach der "Industry Library" da sind Bausteine für Wochenprogramm mit dabei und angeblich auch für PCS7 kostenlos. Weiss allerdings nicht, ob auch für die "alte" Version 7.1 SP3. Für PCS7 8.0 gibts die jedenfalls...

https://eb.automation.siemens.com/g...ge=de&regionURL=/BG&activetab=product#topAnch
Gruß.

Also die IL hab ich hier leider nicht drauf, werde da aber mal nachfragen ob das denn Möglich ist. Das wäre ja natürlich die mit Abstand schönste und auch beste Sache. Danke für den Tipp.
Aber gibt es auch einfach nur die Möglichkeit mit einem Baustein in PCS 7 eine Uhrzeit in WInCC eingeben zu können und diese dann mit der Systemzeit zu vergleichen? Die Systemzeit kann ich mir ja über den SFC 1 READ_CLK holen. Ich möchte halt in WinCC einfach eine Uhrzeit eingeben können, die ich dann im CFC Baustein verarbeiten kann.

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Möglichkeit mit einem Baustein in PCS 7 eine Uhrzeit in WInCC eingeben zu können

Ich kenne keinen mitgelieferten Baustein. Und wenn Du in der Bibliothek oder Dokumentation keinen gefunden hast, wirds dann auch keinen geben.

Bleibt also nur die Möglichkeit einen selbst zu schreiben. Falls Du dass noch nie gemacht hast, kann das aber lange dauern. Auf jeden Fall den SPS-Baustein mit SCL schreiben (Attribute sind hier das Zauberwort, damit AS-OS-Übersetzen ordentlich klappt). In WinCC dann das passende Anwenderobjekt dazu kreiren. Und falls notwendig die passenden Faceplates im APL-Stile... Das wird dann wirklich etwas kompliziert.

Ne grobe Anleitung gibts hier:
http://support.automation.siemens.com/DE/view/de/59062870

http://support.automation.siemens.com/DE/view/de/24449702

Gruß.
 
Boaaahhh.......

das das hier so kompliziert ist hätte ich nicht gedacht. Ich meine es ist doch bestimmt keine seltenheit Dinge Uhrzeitgesteuert zu schalten, wundert mich daher das es da soetwas nicht in PCS 7 gibt. (Abgesehen von der IL) Mit Bausteinen schreiben in PCS 7 habe ich eher wenig Erfahrung und ich glaube das dauert jetzt an dieser Stelle einfach zu lange. In Step 7 einfach einen neuen FC erstellen, der dann an anderen Stellen wieder aufgerufen wird ist ja noch OK, aber hier wird mir das glaub ich zeitlich einafach zu viel. Trotzdem Danke für die nützlichen Hinweise. Muss mal schauen wie ich es jetzt mache.

Gruß
 
Hallo,
eine Möglichkeit wäre, du erzeugst die einen eigenen FB sozusagen als Aufrufumgebung (der Baustein macht nichts anderes als den Timer_P aufrufen), in den du den Timer_P als Multiinstanz einbaust.
Die Ein-/ Ausgabeschnittstelle deines eigenen Baustein baust du entsprechend der des Timer_P auf und markierst die Ein-/Ausgänge und deinen Baustein mit den Benötigten B&B Attributen.
Dann die Ein/Ausgänge deines FB's mit dem eingebauten Baustein Timer_P verbinden, fertig....

Gruß
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich glaube sein Problem ist, in WinCC ein EA-Feld mit einem Uhrzeitformat anzulegen. Ich kenn das so nicht, also muss man 3 EA-Felder für Stunde, Minute, Sekunde verwenden. Die in nem Anwenderobjekt und mit 3 Real oder Int Variablen anlegen. Wenn man ne Ein und Ausschaltzeit braucht sinds schon 6 Variablen.
Der SPS-Baustein muss dann die 6 Werte mit der CPU-Zeit vergleichen und dann das Ein-Signal für den Motor generieren.

Eigentlich machbar, nur für PCS7 sollte man auf die PCS7-Konformität achten. Sonst funktioniert die eine oder andere PCS7-Funktionalität nicht mehr wie gewünscht.

Man kann PCS7 auch nur als Step7 und WinCC betrachten, und alles herkömmlich machen. Nur dann muss ich auch kein (teures) PCS7 kaufen.

PCS7 ist nix, was man mal so eben macht, zumindest nicht wenn man PCS7-konform arbeiten will/muss. PCS7 steht und fällt mit den eingesetzten technologischen Bausteinen. Vor Version 7.1 wurde da werksseitig so gut wie nix mitgeliefert. Mit dem Ergebnis, dass viele Anlagen auf Step7/WinCC Art programmiert wurden:confused: oder man eine Bibliothek zusätzlich kaufen musste (oft PTE400 von Siemens).

In der IL sind zusätzliche Bausteine integriert, genau aus dem Grund, weil sie standardmäßig nicht enthalten sind...

Gruß.
 
OK....
aber in der ursprünglichen Fragestellung ging es darum, dass Übersetzen keine WinCC Variablen angelegt werden. Jedenfalls habe ich das so verstanden. Wie du schon erwähnt hast, gibt es, selbst wenn WinCC Variablen angelegt werden noch kein entsprechenden Template und Faceplate Baustein auf WinCC Seite. Die müsste man sich dann auch selbst bauen, wenn man PCS7 konform bleiben will...

Gruß
 
in der ursprünglichen Fragestellung ging es darum, dass Übersetzen keine WinCC Variablen angelegt werden.

Jo, dass hatten wir aber schon gelöst, indem wir die Timerzeit mit dem OpAnl eingeben. Nur jetzt will Benny auch noch Start- und Stopzeit als Uhrzeit (17:31:25 Uhr) von der Visu verändern, und das geht mit OpAnl nicht...

Gruß
 
Zurück
Oben