Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Kopieren von Systembausteinen

  1. #11
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    247
    Danke
    77
    Erhielt 29 Danke für 27 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oder meckert TIA nur, weil Du DT_DAY nicht in Anführungsstrichen " geschrieben hast, jedoch "DT_DAY_offen".
    Könnte auch sein. Das ist mir noch nicht aufgefallen.

    Step7 5.4 ist es egal ob ich an dieser Stelle Anführungszeichen schreibe oder nicht. (habe gerade beide Vatianten ausprobiert / übersetzt .. 0 Fehler)

    Vielleicht liegt es tatsächlich nur an den Anführungszeichen, welche im S7-5.4-Projekt nicht vorhanden waren. Ich meine, die Anführungszeichen um "DT_DAY_offen" sind beim schreiben automatisch gekommen.

    TIA-Experimente kann ich frühestens morgen wieder an meinem Laptop machen. Wenn ich genaueres weiß, melde ich mich.

    Vielen Dank für deine Bemühungen
    Holger

  2. #12
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    247
    Danke
    77
    Erhielt 29 Danke für 27 Beiträge

    Standard

    -Also es lag sicherlich an den Anführungszeichen. Somit dürfte auch das umbenennen der Bausteinfamilie ausreichend sein.

    -Allerdings habe ich es heute nicht geschafft den originalen FC7 erneut in mein Projekt zu kopieren. Habe den Gleichen Rechner verwendet. Baustein kopiert .. Projekt geschlossen .. geöffnet .. nix. Rechner neu gestartet .. FC7 ist nicht sichtbar geworden.

    -Vielleicht ist der FC7 auch ein Sonderfall. Denn sein Funktionsergebnis ist vom Typ DT_DAY. Diesen Typ gibt es in TIA gar nicht mehr (?).

    -
    Step7 5.4 ist es egal ob ich an dieser Stelle Anführungszeichen schreibe oder nicht. (habe gerade beide Vatianten ausprobiert / übersetzt .. 0 Fehler)
    Das gleiche habe ich heute mit V5.5+SP3 versucht. Diese Version ist nicht so tolerant. Es geht hier nur mit Anführungszeichen.


    Ich werde den FC7 abschaffen. Der Wochentag steht ja auch schon im Byte7 des DATE_AND_TIME. Dort werde ich ihn irgendwie herausfiltern...

  3. #13
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Die Dokumentation zum FC7 DT_DAY lässt zwar vermuten, daß er den Wochentag aus dem DATE_AND_TIME-Format extrahiert/herausfiltert, doch das stimmt nicht. ("glaub nicht alles was Siemens dokumentiert") Er errechnet den Wochentag neu aus den Jahr+Monat+Tag-Angaben (allerdings ohne diese auf zulässige Werte zu prüfen). Entgegen der Dokumentation gibt er auch eine rudimentäre Fehlersignalisation über BIE/ENO. Einen eigenen Baustein zu schreiben, der sich auch bei Formatfehlern genau wie der FC7 verhält, wird ohne dessen Quelltext ziemlich schwierig sein.

    Verabschiede Dich von den alten Funktionen und nimm die nun von Siemens vorgesehenen Anweisungen (z.B. T_CONV), auch wenn Du dazu zunächst noch mehr Neues lernen mußt. Es ist ja nicht so, daß es keinen Ersatz für die alten buggy Funktionen gäbe - die müssen wirklich nicht am Leben erhalten werden.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #14
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    247
    Danke
    77
    Erhielt 29 Danke für 27 Beiträge

    Standard

    In TIA-V13 scheint sich Siemens wieder an den Gregorianischen Kalender zu halten. Da gibt es die Funktion DT_To_Int.
    In TIA-V12 gibts die zwar in der Hilfe, jedoch real gibts dort eine neue Buggy-Mond-Funktion Date_To_Int:

    HCopy24.JPG

  5. #15
    Registriert seit
    20.12.2010
    Beiträge
    4
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab mir gerade die Kalenderwoche für ein Projekt berechnen müssen und bin da über diesen Beitrag gestolpert.
    Anstatt der FC 7 kann man sich ja auch einen DTL Datentyp anlegen und dort direkt auf den WEEKDAY zugreifen.
    Wenn man das Datum manipulieren will und den Wochentag, so wie von FC 7 erhalten will, dann muss man den DTL einfach nur in ein DATE und wieder zurück konvertieren, damit der Wochentag im DTL aktualisiert wird.
    sieht dann z. B. so aus:

    Code:
    // lokale Zeit auslesen:
    #RetVal := RD_LOC_T(OUT => #DTL);
    
    // aktueller Wochentag:
    #weekday := USINT_TO_INT(#DTL.WEEKDAY);
    
    // Wochentag vom 01.01. des aktuellen Jahres:
    #DTL.MONTH := 1;
    #DTL.DAY   := 1;
    #DTL          := DATE_TO_DTL(DTL_TO_DATE(#DTL)); // update DTL weekday
    #weekday_1Jan := USINT_TO_INT(#DTL.WEEKDAY);
    lg
    Geändert von Funkymaster (16.09.2015 um 21:40 Uhr)
    softmove - automation die bewegt.
    http://softmove.at

  6. Folgender Benutzer sagt Danke zu Funkymaster für den nützlichen Beitrag:

    holgero (21.02.2015)

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 22.01.2014, 23:31
  2. Inhalt von Datenbausteinen kopieren
    Von minix0 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 24.06.2008, 17:00
  3. Mit Adressregister von Daten von DBx in einen DBy kopieren
    Von iga-graz im Forum Programmierstrategien
    Antworten: 11
    Letzter Beitrag: 15.10.2007, 21:17
  4. von PC Strings in DB kopieren...
    Von joe209 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 04.07.2007, 10:27
  5. Alarmlogging von kopieren
    Von uz71 im Forum HMI
    Antworten: 1
    Letzter Beitrag: 11.12.2006, 15:20

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •