TIA Kopieren von Systembausteinen

holgero

Level-1
Beiträge
255
Reaktionspunkte
30
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen,
ich bin gerade am Anfang meines ersten TIA-V12 – Projektes.

Zunächst habe ich ein paar wichtige Classic-Projekte migriert.
Nun versuche ich mein eigenes, neues Projekt zusammen zu basteln.

Ein Baustein benötigt den S7-Baustein DT_DAY (FC7). Leider gelingt es mir nicht, diesen Baustein in mein Projekt zu kopieren.
Er befindet sich nach dem Migrieren unter Programmbausteine/Systembausteine/Programmressourcen .
Gibt es einen Weg Systembausteine zu kopieren?
Oder finde ich irgendwo eine Bibliothek mit den alten Classic-Bausteinen oder Äquivalenten dazu?

Vielen Dank im Voraus
Holgero
 
Ein Baustein benötigt den S7-Baustein DT_DAY (FC7). Leider gelingt es mir nicht, diesen Baustein in mein Projekt zu kopieren.
Er befindet sich nach dem Migrieren unter Programmbausteine/Systembausteine/Programmressourcen .
Und was gefällt dir daran jetzt genau nicht? TIA entlastet den "normalen" Bausteinordner halt von den Bib-Bausteinen ... ist ja nicht unbedingt schlecht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe nichts an der Ordnerstruktur auszusetzen.
Aber das Symbol von Programmbausteine/Systembausteine/Programmressourcen sieht ziemlich grau aus. Ich bekomme einfach den Baustein nicht von einem Projekt in das andere kopiert (STRG + C ... STRG + V u.ä.).
Bis in die Zwischenablage schafft es der Baustein anscheinend, denn "Einfügen" wird im Menü aktiv.
Nur erscheint der Baustein beim "Einfügen" nicht im Projekt.
Die Eigenschaften des Ordners sind auch grau. Also kann ich auch nichts an einem eventuellen Schreibschutz machen.
:???:
 
Vielleicht hat das ja damit zu tun:

Zitat aus dem Systemhandbuch STEP 7 Professional V12.0
4.1 Projekte in ein TIA-Portal-Projekt migrieren schrieb:
Bausteine aus STEP 7-Bibliotheken
Die Funktionen FC1 - FC40 aus der STEP 7 Classic-Bibliothek "IEC-Standard-Funktionen"
sind im TIA-Portal nicht mehr verfügbar. Aufrufe der Standardfunktionen werden während der
Migration in Aufrufe der entsprechenden Erweiterten Anweisungen umgewandelt.​

Harald
 
Also so sieht das in meinen Projektordnern aus:

HCopy13.jpg HCopy14.jpg

Schade dass ich damitanscheinend nicht arbeiten kann, wie ich möchte.
Ich möchte ja kein Klassic-Projekt fertig machen und dann migrieren. Sondern ich möchte schon richtig TIA programmieren (dabei aber auch etwas altes verwenden).
:icon_eek:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibt es einen Weg Systembausteine zu kopieren?
Vielleicht kann man die als "Erweiterte Anweisungen" bezeichneten "System"bausteine tatsächlich nicht in ein Projekt kopieren. Vielleicht erscheinen die da automatisch sobald man sie verwendet?
Wie ist das wenn Du eine Programmstelle mit dem Aufruf eines solchen Bausteins von einem Projekt in ein anders kopierst?


finde ich irgendwo eine Bibliothek mit den alten Classic-Bausteinen oder Äquivalenten dazu?
z.B. Übersicht zu "Datum und Uhrzeit"-Funktionen
Welche Funktionen stehen jeweils in STEP 7 V5.5 und im TIA Portal für die Bearbeitung der Datentypen DT und DTL zur Verfügung?
SIMATIC S7-300/400/1200/1500 Vergleichsliste Programmiersprachen


Ich möchte ja kein Klassic-Projekt fertig machen und dann migrieren. Sondern ich möchte schon richtig TIA programmieren (dabei aber auch etwas altes verwenden).
Traust Du den neuen TIA-Anweisungen nicht? ;)

Du könntest versuchsweise mit Step7-classic die IEC-Bausteine in eine S7-3xx CPU laden und mit TIA aus der CPU in ein TIA-Projekt holen - was macht TIA da? Ändert TIA das Anwenderprogramm indem es die IEC-Bausteine "verschwinden" läßt oder sind die dann wie normale nicht-Siemens-Bausteine verwendbar/kopierbar?

Wenn Du die IEC-Bausteine auch unter TIA verwenden willst, so reicht es vermutlich, wenn Du in Step7-classic in den Baustein-Eigenschaften die Familie umbenennst, z.B. von "IEC" zu "IEC_V5X". Dann sollte TIA die Bausteine beim migrieren nicht mehr erkennen und Dich verwenden lassen (allerdings geht dabei die Verbindung zur Bausteinhilfe verloren).
Wenn Du den Bausteinschutz entfernt hast für das Umbenennen der Bausteineigenschaften, dann kannst Du bei der Gelegenheit auch gleich mal nachschauen, was die Bausteine wirklich tun und diverse Fehler beseitigen, wenn Du magst. Oder, damit niemand in diese Versuchung kommt, nach dem Umbenennen den Bausteinschutz wieder aktivieren.

Ich hab' das mal mit dem FC7 DT_DAY für Dich gemacht, siehe angehängtes Step7-V5x-Projekt. Probiere mal, ob Du den in TIA nach dem Migrieren normal verwenden kannst. (ich habe jetzt kein TIA zur Verfügung)

Harald
 

Anhänge

  • IEC_DT_DAY_for_TIA.zip
    23,3 KB · Aufrufe: 42
Vielen Dank PN/DP,

du hast dich ja ganz schön ins Zeug gelegt.

Vielleicht erscheinen die da automatisch sobald man sie verwendet?
Nein

Alles weitere probiere ich jetzt bzw. in den nächsten Tagen....


Da werde ich wohl über kurz oder lang die Bausteine FC1 - FC40 "ausrotten" ;-)

Danke, bis bald
Holgero
 
Willst du das Projekt denn auch auf eine andere CPU wie 1200/1500 migrieren?
Bei denen werden die diversen Standardfunktionen nicht mehr wie bei der 300/400 über in AWL geschriebene Funktionen realisiert, sondern sind direkt im Betriebssystem der SPS integriert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
1. Es geht erst mal um ein 300er Projekt. Aber da das folgende wahrscheinlich eine 1500er bekommt, ist es schon sinnvoll, sich von den alten Bausteinen zu verabschieden.

2. Dass die Bausteine nicht kopiert werden können war ein Irrtum ! :oops: Der FC 7 wurde kopiert, aber die Ordneransicht von Programmbausteine/Systembausteine/Programmressourcen wird nicht korrekt aktualisiert. Beim löschen werden die Bausteine zwar entfernt, aber beim Einfügen nicht dargestellt. -> TIA12 schließen .. öffnen und die kopierten Bausteine sind da.

3. Trotzdem will das TIA-Portal diese Bausteine nicht. Ich vermute es liegt am Bausteinname (oder am Bausteinname und an der Bausteinfamilie) .

Egal welchen FC7 DT_DAY ich verwende (Original oder den von PN/DP) und egal in welchem Ordner er sich befindet - immer das gleiche:

HCopy15.jpg

Wogegen es mit dem FC7 DT_DAY_offen von PN/DP funktioniert:

HCopy17.jpg


Ich werde jetzt mal die Original-Bausteine einfach nur umbenennen und migrieren. Mal sehen ob das geht....
 
Sollte die Erkennung der IEC-Bausteine im TIA tatsächlich nur über den symbolischen Name und/oder die FC-Nummer funktionieren?
Reicht womöglich ein simples umbenennen?
Eigentlich unglaublich.

Der als Anwenderbaustein akzeptierte "DT_DAY_offen" unterscheidet sich vom abgewiesenen "DT_DAY" nur im symbolischen Name, in der Bausteinnummer (FC107 statt FC7) und dem Baustein-Schutz.

Der originale FC7 DT_DAY und die von mir manipulierten Versionen haben in Step7 V5.5 diese Baustein-Attribute:
Code:
                  original    abgewiesene  akzeptierte
                  IEC-DT_DAY  Version      Version
----------------------------------------------------------
Name (Header)   : DT_DAY      DT_DAY       DT_DAY
Familie         : IEC         [COLOR="#FF0000"]IEC_V5X[/COLOR]      [COLOR="#FF0000"]IEC_V5X[/COLOR]
Autor           : SIMATIC     SIMATIC      SIMATIC
Version (Header): 1.2         1.2          1.2
Know How Schutz : ja          ja           [COLOR="#FF0000"]nein[/COLOR]
Bausteinnummer  : FC7         FC7          [COLOR="#FF0000"]FC107[/COLOR]
symbolisch. Name: "DT_DAY"    "DT_DAY"     [COLOR="#FF0000"]"DT_DAY_offen"[/COLOR]
Wenn auch nur eins der ersten 3 nicht stimmt, dann müßte TIA den Baustein eigentlich nicht mehr als DEN IEC-Baustein FC7 DT_DAY ansehen und ihn wie einen normalen Anwenderbaustein behandeln.

Du kannst ja mal die Attribute ändern bis TIA die nicht mehr als IEC-Bibliotheksbausteine ansieht.
Oder meckert TIA nur, weil Du DT_DAY nicht in Anführungsstrichen " geschrieben hast, jedoch "DT_DAY_offen".

Harald
 
Zuletzt bearbeitet:
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
 
Zuviel Werbung?
-> Hier kostenlos registrieren
-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...
 
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
 
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
 
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
 
Zuletzt bearbeitet:
Achtung, da verbirgt sich ein kleiner Fehler im Detail.
Die Konvertierung zum Typ DATE und zurück beschränkt die Nutzung der Min/Max Jahre vom Typ DTL (1970 - 2262) auf die Min/Max Jahre von DATE (1990 - 2169).
Wer die komplette Bandbreite der Jahre von DTL braucht, sollte zur Konvertierung den Typ LDT verwenden.

Code:
#DTL := LDT_TO_DTL(DTL_TO_LDT(#DTL));

lg
 
Zurück
Oben