TIA UDT und DB's aus SCL generieren - Classic Quellen benutzen

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen!

Frage an wissende:
Kann ich in einer 1513 CPU UDTs und DBs aus einer SCL-Quelle generieren ?
Kann ich dafür einfach eine Quelle im Classic schreiben, und die dann im TIA importieren und übersetzen ?

Mit Bausteinen kann ich soetwas ja nicht machen, es gibt dann immer Compiler-Gemeckere. Er versteht dann noch nichtmals die Variablenbezeichner ohne #.

Thanx im Voraus
 
Du kannst DB aus Classic quellen in TIA wieder verwenden.
Es ist dann aber eine AWL Quelle.
Du musst nichts machen mit #

In TIA gibt es auch die Quelle für UDT's. diese Quelldatei hat als Endung .udt

Die seht dann so zum Beispiel so aus:

Code:
 TYPE "Feedback_Valve_Single"
TITLE = Rückmeldungen_Ventil_Einfach
VERSION : 0.1
//Rückmeldungen Ventil Einfach
   STRUCT
      Valve_OPEN : Bool;   // Valve feedback OPEN
      Valve_CLOSED : Bool;   // Valve feedback CLOSED
      Valve_P_OPEN : Bool;   // Valve feedback P OPEN
      Valve_P_CLOSE : Bool;   // Valve feedback P CLOSE
      Valve_Failure : Bool;   // Valve feedback Failure
      Reserve_05 : Bool;   // Reserve_05
      Reserve_06 : Bool;   // Reserve_06
      Reserve_07 : Bool;   // Reserve_07
   END_STRUCT;
END_TYPE

Wenn du der classic UDT auf diese weise anlegst und dann umbenennt nach .udt kännte es klappen.
Direkt im Classic eine UDT quelle geht glaube ich nicht.

Bram
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mit Bausteinen kann ich soetwas ja nicht machen, es gibt dann immer Compiler-Gemeckere. Er versteht dann noch nichtmals die Variablenbezeichner ohne #.
:confused:
Bei mir funktioniert das prinzipiell.
Quelle eingefügt, per Doppelklick im Editor geöffnet, mit Ersetzen alle Rauten # rausgelöscht (außer von Zeitangaben natürlich!) und gespeichert.
Anschließend Baustein aus Quelle erzeugt -> keinerlei Gemecker.


Einige Sachen kann aber TIA einfach (ich hoffe auf noch) nicht.
Z.B. bei der Variablendeklaration mittels Konstanten:
Code:
CONST
    Spalten:= 7;                                                                              // Anzahl Spalten
    Zeilen := 6;                                                                              // Anzahl Zeilen
END_CONST

VAR_IN_OUT
    SPIELZUEGE: ARRAY [1 .. [COLOR=#ff0000]Spalten * Zeilen[/COLOR], 0 .. 3] OF INT;                                 // Speicher Spielzüge (max. 7 x 6 = 42 Spielzüge,
...
 
Danke für die nützlichen Hinweise.

Funktionieren denn solche Attribute ?

Code:
InUnit { S7_m_c := 'true'; S7_edit := 'para'; S7_unit := '' }: INT  := 1001;                                                                                   // Engineering units of In
  InPV { S7_edit := 'para'; S7_dynamic := 'true'; S7_m_c := 'true'; S7_xm_c := 'Value,true;'; S7_xqc := 'Value,true;' }: STRUCT     // Actual measured process value
   Value : REAL;                                                                                                                                                                        // Value
   ST : BYTE  := B#16#80;                                                                                                                                                        // Signal Status
  END_STRUCT;
Code:
  RatHiLim { Op_Level := '2'; S7_edit := 'para'; S7_m_c := 'true'; S7_dynamic := 'true' }: REAL  := 1.000000e+002;    // Ratio High Limit
  RatLoLim { Op_Level := '2'; S7_edit := 'para'; S7_m_c := 'true'; S7_dynamic := 'true' }: REAL ;                               // Ratio Low Limit
  OutHiLim { Op_Level := '2'; S7_edit := 'para'; S7_m_c := 'true'; S7_dynamic := 'true' }: REAL  := 1.000000e+002;    // Out High Limit
  OutLoLim { Op_Level := '2'; S7_edit := 'para'; S7_m_c := 'true'; S7_dynamic := 'true' }: REAL ;                               // Out Low Limit
Code:
SelFp1 { BLK_Jump := '1'; S7_visible := 'false' }: ANY ;    // Select Faceplate 1
SelFp2 { BLK_Jump := '1'; S7_visible := 'false' }: ANY ;    // Select Faceplate 2

Und weiß einer vielleicht, ob es irgendwann wieder CFC gibt, damit man für 1500 nicht alles neu schreiben muss, was man im CFC entwickelt hat.
 
Zuletzt bearbeitet:
In die V14 gibt es (Noch) kein CFC.
Aber die CFC Attribute sind schon vorhanden.
Im Eigenschaften --> Allgemein --> Attribute.

Ein Übersicht kann ich im Moment auch nicht finden.
Wenn mann aber eine Quelle daraus generiert sehen in der Quelle die Attribute so aus.

Code:
 VAR_INPUT 
      Test_Bool { CFC_ForTest := 'true'; CFC_EnableTagReadback := 'true'; CFC_EnumerationTexts := 'true'; CFC_Configurable := 'true'; CFC_Interconnectable := 'true'} : Bool;

      Test_Real { CFC_Visible := 'false'; CFC_Configurable := 'false'; CFC_Interconnectable := 'false'} : Real;
   END_VAR
 
Zurück
Oben