Step 7 Problem mit Hex Eingang eines FC

flummy

Level-2
Beiträge
11
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe mir von der Siemens Seite ein Programm heruntergeladen um Zeitgesteuert eine Funktion auszulösen. Das funktionierte soweit ganz gut ( wenn alle Tage gleich sind und man immer zur gleichen Zeit das Gleiche macht ). Nun wollte ich die Tage ein wenig aufteilen und am Sa / So andere Zeiten als in der Woche steuern. Es funktioniert soweit gut, allerdings nur am WE. D.h. die Hex Zahl für Sa / So stimmt schon mal. Leider finde ich nur die PDF zur Erklärung wieder und nicht mehr die eigentliche Seite bei Siemens :(

Funktion „TSwitch“ (FC 100)

Die Funktion „TSwitch“ ist die Realisierung einer 24-Stunden Zeitschaltuhr.

Über die Vorgabe von Einschaltzeit („OnTime“), Ausschaltzeit („OffTime“)

und der Tage („SwitchDays“) lässt sich die Schaltzeit parametrieren. Dabei

werden die Wochentage, an welchen die Zeitschaltuhr aktiv ist, als

Bitmuster vorgegeben:

Beispielsweise bedeutet der Wert B#16#C (Bit 2 und 3 gesetzt), dass nur
an Montagen und Dienstagen geschaltet wird.
Die Funktion wird nur bearbeitet, wenn der Eingang „Enable“ == „true“ ist.
Ist die Ausschaltzeit kleiner der Einschaltzeit, bedeutet dies, dass über die
Tagesgrenze hinweg geschaltet wird.
z.B. bedeuten

SwitchDays = B#16#80 (nur Samstag),

TimeOn = TOD#23:00:00.000,

TimeOff = TOD#01:00:00.000,

Doku Quelle: https://a248.e.akamai.net/cache.aut...59_Tools/31696259_Uhrzeit_Bausteine_V10_d.pdf

Nun habe ich bei Sa / So: B#16#82 stehen ( was auch funktioniert )
und bei den Wochentagen: B#16#7C stehen ( was nicht funktioniert )

Ich habe bisher noch nicht so viel mit Hex Zahlen zur Formatierung zu tun gehabt, allerdings bin ich mir sicher dass 7C für das Bit 2-6 stehen oder ?
Vorgabe ist:
Bit 7 Samstag
Bit 6 Freitag
Bit 5 Donnerstag
Bit 4 Mittwoch
Bit 3 Dienstag
Bit 2 Montag
Bit 1 Sonntag
Bit 0 unbelegt

Würde mich sehr freuen, wenn mir da jemand auf die Sprünge helfen könnte, wie das genau funktioniert.

Vielen Dank im Voraus
Grüße
Andreas
 
Das Beispielprojekt mit dem FC101 hat aber bei Dir funktioniert?
Gibt der FC100 irgendeinen Fehler aus?
 
Hallo Vierlagig,

sorry, dass meine Antwort jetzt erst kommt. Hab leider viel um die Ohren gehabt.

Ja das Beispielprojekt funltionierte einwandfrei und der gleiche Baustein mit dem Eingang: B#16#82 für Sa / So funktioniert auch einwandfrei, nur die normalen Wochentage eben nicht.

Fehlermeldungen gibt es keine.

Grüße
Andreas
 
ich kann nur feststellen, dass der Baustein mit den Werten B#16#7C oder B#16#78 bei mir wie gewünscht funktioniert.
hast Du am Originalcode des Bausteins Änderungen vorgenommen?

Ist die nicht funktionstüchtige Umgebung die selbe, auf der der Test funktionierte?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mhmmm sehr merkwürdig, wenn 7C bei Dir funktioniert ... :confused:

Testumgebung und die Endgültige ist das Gleiche. Änderungen habe ich keine vorgenommen. Im Gegenteil, ich habe den originalen Baustein sogar noch einmal draufkopiert, um zu schauen ob ich da nicht aus versehen was gemacht habe...
 
Mhmmm sehr merkwürdig, wenn 7C bei Dir funktioniert ... :confused:

Testumgebung und die Endgültige ist das Gleiche. Änderungen habe ich keine vorgenommen. Im Gegenteil, ich habe den originalen Baustein sogar noch einmal draufkopiert, um zu schauen ob ich da nicht aus versehen was gemacht habe...

häng mal dein Projekt als Quelle an.
 
beobachte #tBoWdNormOk
 

Anhänge

  • ohneMontag.jpg
    ohneMontag.jpg
    61,5 KB · Aufrufe: 13
  • mitMontag.jpg
    mitMontag.jpg
    57,7 KB · Aufrufe: 10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

Fehler gefunden ..... Peinlich, aber ich werde es trotzdem erklären ;)

Ich habe den FC 100 insg. 4 mal benutzt 2x für die Ausführung Mo - Fr und 2x für Sa - So. Da er an allen Tagen das Gleiche machen soll nur zu unterschiedlichen Zeiten, habe ich als Ausgang den gleichen genommen. und genau hier ist das Problem. Der erste Baustein beschreibt den M 20.0 mit einer 1 ( weil ja heute Montag ist ) und der 2. ( Vom Sa / So ) überschreibt ihn direkt wieder mit einer null, weil ja heute kein Sonntag ist *grmpfs*

Vielen Dank trotzdem, dass Du Dir die Mühe gemacht hast, Dir das anzuschauen. Weil ich so wenig mit Hex Zahlen als Eingangbedingung zu tun hatte, habe ich mich so sehr auf die Hex Zahl versteift, dass ich vor lauter Bäumen den Wald nicht gesehen hab und nen ich denke mal typischen Anfängerfehler gemacht hab.

Grüße
Andreas
 
Danke für den Link :)

Grundsätzlich habe ich mich ja daran gehalten. Der Ausgang wird so oder so nur an einer Stelle angesteuert. Es gibt natürlich dafür mehrere Möglichkeiten .... auch die zwei Möglichkeiten von der Zeitsteuerung wurden dabei bedacht. Was ich natürlich nicht bedacht habe ist, dass es auch mehrere unterschiedliche Zeitsteuerungen sein könnten.
Nun habe ich das Ganze gelöst und für jeden Ausgang vom FC100 einen eigenen Merker genommen, der dann in der entsprechenden Abfrage weiterverarbeitet wird und wenn die Vorraussetzungen erfüllt sind, wird der Ausgang auch gesetzt.....

Dennoch danke noch mal für deine Mühe :)

Grüße
Andreas
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Nun habe ich bei Sa / So: B#16#82 stehen ( was auch funktioniert )
und bei den Wochentagen: B#16#7C stehen ( was nicht funktioniert )

Ich habe bisher noch nicht so viel mit Hex Zahlen zur Formatierung zu tun gehabt, allerdings bin ich mir sicher dass 7C für das Bit 2-6 stehen oder ?
Vorgabe ist:
Bit 7 Samstag
Bit 6 Freitag
Bit 5 Donnerstag
Bit 4 Mittwoch
Bit 3 Dienstag
Bit 2 Montag
Bit 1 Sonntag
Bit 0 unbelegt

Würde mich sehr freuen, wenn mir da jemand auf die Sprünge helfen könnte, wie das genau funktioniert.
Auch wenn's nicht die Ursache war - warum gibst Du den Wert nicht binär an, wenn Du mit dem Hex-Werten nicht so gut klar kommst?
Dem SPS-Programm ist die Darstellungsweise egal und die SPS selbst verarbeitet eh' nur Binär-Werte, sprich "Strom fließt oder fließt nicht".
Die Angabe in Hex, Dez, Oktal oder Binär (oder was es sonst noch so gibt) ist also in erster Linie für den Programmierer gedacht, um Zusammenhänge besser erfassen zu können, stellt aber letztendlich immer den gleichen Wert dar.


In Deinem konkreten Fall wäre das also für:
Code:
[FONT=courier new]Sa & So = B#2#11000000 und
Mo - Fr = B#2#00111110 oder ohne führende Nullen
Mo - Fr = B#2#111110[/FONT]


PS: Der Editor müsste das dann sogar automatisch von Binär zu Hex umrechnen!?
:confused:
 
Zuletzt bearbeitet:
Hallo Hucki,

In Deinem konkreten Fall wäre das also für:
Code:
[FONT=courier new]Sa & So = B#2#11000000 und
Mo - Fr = B#2#00111110 oder ohne führende Nullen
Mo - Fr = B#2#111110[/FONT]

Vielen Dank für Deinen Einwand, das wird morgen direkt mal getestet, ob er das denn dann auch übernimmt bzw. automatisch umrechnet. Aber wenn man die obere Belegung zugrunde legt, wäre dann nicht
Code:
[FONT=courier new]Sa & So = B#2#10000010 und
Mo - Fr = B#2#01111100 [/FONT]
diese Belegung richtig ? ( Weil Bit 7 der Samstag ist dann gehts runter bis Bit 1 Sonntag )

Grüße
Andreas
 
Ja, natürlich.
Hatte jetzt mit Montag statt Sonntag begonnen, sorry.


PS: Wollte nur testen, ob Du auch aufpasst.
:p
 
Zurück
Oben