TIA TIA V14 SCL Problem mit Migration von S7/300 S_ODT Parameterversorgung

röhrengertl

Level-2
Beiträge
237
Reaktionspunkte
12
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Gemeinde! :cool:

Ich bin gerade dabei ein recht Umfangreiches S7/300 Pgm zu migrieren auf TIA14SP1.
Nun das meiste habe ich geschafft. Leider hänge ich jetzt an dem S_ODT fest!

In Step7 V5.5 SCL übersetzt er nachfolgendes Programm ohne Probleme.
In TIA 14 meckert er an der Parameterversorgung des zweiten S_ODT er möchte mit Parameter S: versorgt werden und dann noch mit TV:

Wo liegen hier die Unterschiede? :confused:

Code:
FUNCTION Taktzeitmessung : DINT

TITLE = 'Taktzeitmessung'
//
// Der Baustein bestimmt die Taktzeit einer Maschine und berechnet
// die Takte pro Minute bzw pro Stunde
//
VERSION : '1.0'
AUTHOR  : Ht
NAME    : name
FAMILY  : SCL
// Bausteinparameter
VAR_INPUT
  Trigger_fuer_Messung : BOOL;  // Wechsel von 0 nach 1 bestimmt Anfang
                                // und Ende der Messung
  Start: BOOL;                  // Bestimmt optional den Anfang der Messung
  _Timer    : TIMER;            // Timer für Messung
  Zeit_0_bis_10_s : BOOL;       // Zu messende Zeit liegt zwischen 0 und 9,99 s
  Zeit_0_bis_100_s : BOOL;      // Zu messende Zeit liegt zwischen 0 und 99,9 s
  Zeit_0_bis_1000_s : BOOL;     // Zu messende Zeit liegt zwischen 0 und 999 s
END_VAR

VAR_IN_OUT
  Taktzeit : DINT;              // Taktzeit in ms
  Takte_pro_Minute : INT;       // Takte pro Minute * 10
  Takte_pro_Stunde : DINT;      // Takte pro Stunde * 10
  Trigger_fuer_Messung_alt : BOOL;  // Speicher für Trigger
  Start_alt : BOOL;                 // Speicher für Startsignal
END_VAR


VAR_TEMP
  Maxzeit : S5TIME;             // Zeitwert für Timer
  Abgelaufene_Zeit : S5TIME;    // Timerwert bei Ende Messung
  Flanke_Trigger : BOOL;        // Flanke des Triggersignals
  Flanke_Start : BOOL;          // Flanke des Startsignals  
END_VAR
  

// Flankebildung
  Flanke_Trigger := Trigger_fuer_Messung AND NOT Trigger_fuer_Messung_alt;
  Flanke_Start := Start AND NOT Start_alt;
// Speicher für Flanken  
  Trigger_fuer_Messung_alt := Trigger_fuer_Messung;
  Start_alt := Start;

  
  // Maximale Zeitdauer setzen
      IF Zeit_0_bis_10_s THEN
      Maxzeit := T#9s990ms;
      
      ELSIF Zeit_0_bis_100_s THEN
      Maxzeit := T#99s900ms;
      
      ELSIF Zeit_0_bis_1000_s THEN
      Maxzeit := T#999s;
      END_IF;
      
      
// Timer als Einschaltverzögerung Starten
  Abgelaufene_Zeit :=S_ODT(T_NO:=_Timer, 
                     S:= NOT Flanke_Trigger AND NOT Flanke_Start,
                     TV:=Maxzeit);

// Bei Flanke Messung durchführen  
  IF Flanke_Trigger THEN
 
  Abgelaufene_Zeit := S_ODT(T_NO:=_Timer);         // ************ Ab hier happert´s **********************
   
  Taktzeit := TIME_TO_DINT (S5TI_TIM(IN :=  Maxzeit)) 
              - TIME_TO_DINT (S5TI_TIM(IN := Abgelaufene_Zeit));
  Takte_pro_Minute := REAL_TO_INT(600000 / Taktzeit);
  Takte_pro_Stunde := REAL_TO_DINT(36000000.0 / DINT_TO_REAL(Taktzeit));
  
  END_IF;
// Rückgabewert  
  Taktzeitmessung := Taktzeit;
  Taktzeit := Taktzeit;
END_FUNCTION


Danke im voraus
 
Ich habe jetzt nicht versucht, das nachzustellen ...
Allerdings hält sich dein 2.Aufruf des S_ODT ja auch nicht an die Spielregeln desselben. Warum S7-Cassic-SCL das schluckt verstehe ich auch nicht. Aus meiner Sicht hat TIA da schon Recht.
Es stellt sich mir allerdings die Frage, warum du hier überhaupt mit diesem Timer arbeitest und nicht mit einem IEC-Timer ...

Ansonsten ist mir noch aufgefallen, dass du der Variablem MaxZeit, die als S5Time definiert ist, ein T#-Wert zuweisst (also Time). Das wäre auch schon nicht korrekt. Das sollte dann an der Stelle auch aus meiner Sicht S5T# heissen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja da hast Du recht, ich habe das Projekt so bekommen und muss mich erst selber durchkämpfen. Das SCL wird wohl die Parameter des ersten benutzen?
Ich schau mir das mal in der Simulation an. Habe schon bemerkt das bei TIA14 SCL es etwas genauer zugeht.

Da muss ich wohl noch mehr umstellen! :ROFLMAO:
 
Zurück
Oben