TIA DT_TO_INT gibt es nicht in SCL

Ist leider so. :-(
Das habe ich auch schon an den Siemens Support weitergegeben.
Die meinten leider auch nur: Ist halt so. :sb2:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
das lustige ist es war schon beim V11 so. Ich dachte mittlerweile haben die das behoben. Anscheinend wollen die die alten Steuerungen nicht mehr unterstützen.
 
Kann man das Produkt nicht zurückgeben, wenn es nicht das tut was es soll? Ich wundere mich ja, wie Leute mit diesem verbuggten Haufen Mist eine funktionsfähige Anlage in Betrieb nehmen können.

Falls du noch Step 7 hast, würde ich mir die Standard-Bibliothek nehmen. Bei allem Bausteinen den Schutz entfernen, die Header-Informationen ändern und dann als eigene Bibliothek ins Tia-Portal importieren. Dann kannst du die Bausteine so verwenden wie es auch in Step7-SCL möglich war. Ohne TIA-Bug-Magic.
 
Hi all

was soll den ein DT_TO_INT eigentlich sein? Die Sekunden seit 1990? Oder Millisekunden, oder Fortnights???

DT ist Datum und Uhrzeit in einem BCD-Gewurstel. Damit kann man nix vernünftiges anfangen. Das taugt nicht zum Rechnen, das taugt nicht zum Darstellen. Was haben die in den späten 90ern eigentlich geraucht ...

Ein DT ist 8 Bytes lang. Achtung Byte 7 ist zweigeteilt. Im DT findet sich als BCD folgendes:
0: Jahr 16#90 steht für 1990 16#89 steht für 2089
1: Monat 16#1 .. 16#12, d.h. 10 ist verboten
2: Tag
3: Stunde
4: Minute
5: Sekunde
6: hundertstel Sekunden
7h: tausendstel Sekunden
7l: Wochentag

DT_TO_INT liefert in Step7 V5 den Wochentag. Warum heißt die Funktion dann nicht Weekday()?
DT_TO_INT macht also nix weiter als DT[7] & 16#0F.

Also auf deine Variable vom Typ DT mit AT ein ARRAY[0..7] OF BYTE drauf legen und aus dem 7ten Byte die tausendstel Sekunden wegunden.

Dafür braucht es doch keine Funktion.

Wer ein 1200 oder 1500 hat, der wandle das DT nach DTL und kommt

'n schön' Weekday auch
HB
 
Zuviel Werbung?
-> Hier kostenlos registrieren
was soll den ein DT_TO_INT eigentlich sein? Die Sekunden seit 1990? Oder Millisekunden, oder Fortnights???

Das gleiche was der FC7 DT_DAY aus der IEC-Standard-Bibliothek macht, er gibt den aktuellen Wochentag (So, Mo, Di, usw.) zurück. Durchaus nicht unnütz, und vor allem auch in der TIA-Hilfe so beschrieben.
In FUP wird der Baustein auch aufgerufen, nur ist es unmöglich den Aufruf von DT_DAY in SCL selber zu machen, weil das Programm meint es müsse meine Eingaben korrigieren.
 
Hi Thomas

also du rufst eine Systemfunktion auf, um ein aktuelles DT zu bekommen, bei dem der SFC für ein korrektes DT also mit richtigem Wochentag gesorgt hat um dann nochmals einen FC aufzurufen der den korrekten Wochentag ignoriert um einen korrekten Wochentag auszurechnen.

Man kann das so machen

'n schön' Tach auch
HB
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein DT kann auch von woanders her stammen als aus einem SFC. Wenn man z.B. die Siemens Anleitung für WinCC verwendet um ein DT in die SPS zu schreiben, wird der Wochentag nicht mit runtergeschrieben. Vom Prinzip ist das auch eine redundante Information. Ohne Grund wird Siemens die Auswertung in dem Baustein wohl nicht gemacht haben. Ich verwende den FC zumindest gelegentlich mal.

Ob die Funktion nun sinnvoll ist oder nicht, ändert aber nichts am grundlegenden Fehler im TIA-Portal. Vor allem wenn man so einen offensichtlichen Fehler beim Hersteller einfach ignoriert.
 
Das gleiche was der FC7 DT_DAY aus der IEC-Standard-Bibliothek macht, er gibt den aktuellen Wochentag (So, Mo, Di, usw.) zurück. Durchaus nicht unnütz
Absolut, ich habe den auch oft verwendet.
Falls du noch Step 7 hast, würde ich mir die Standard-Bibliothek nehmen. Bei allem Bausteinen den Schutz entfernen, die Header-Informationen ändern und dann als eigene Bibliothek ins Tia-Portal importieren. Dann kannst du die Bausteine so verwenden wie es auch in Step7-SCL möglich war. Ohne TIA-Bug-Magic.
Unser Thomas wie immer ein Fuchs. ;)
Welche Header-Informationen muss ich ändern?
 
Welche Header-Informationen muss ich ändern?

Ist eigentlich noch einfacher.
Ein Step7 Projekt mit dem FC7 DT_DAY zu einem TIA-Projekt migrieren. Ist in dem TIA-Projekt in dem man den FC verwenden will schon ein DT_DAY unter den Systembausteinen vorhanden, muss dieser vorher gelöscht werden. Dann den DT_DAY aus migrierten in das eigene Projekt rüberkopieren. Dann lässt sich der DT_DAY wie gehabt verwenden ohne dass einem TIA dazwischenfunkt. Wenn man dann den T_CONV aufruft, wird über TIA-Magic nochmal ein eigener DT_DAY mit anderem Namen eingefügt. Der Baustein ist dann doppelt in der CPU.

Ich habe vor dem Migrieren nur den Bausteinschutz entfernt, evtl. gehts ja auch ohne.
 
Zurück
Oben