Analogwertverarbeitung mit SCL

PapaDjango

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

sitzte seit Tagen vor einer S7-300 (CPU 315) und dem Step7 und möchte eine einfache Analogauswertung programmieren mit dem Skalierungsbaustein FC105.

Wie funktioniert das einlesen des PEW320 und PEW322 und der Skalierung von 0 bis 10 V.

Die Einstellung des mit dem Leuchtband (siehe Bild) angezeigten Sollpegels "minimum" erfolgt mit dem Stellknopf. Hierzu muß der Kippschalter s6 in die Mittelstellung geschaltet, so wird der zu diesem Zeitpunkt vom Leutband angezeigte Pegel Als Sollwert "max abgespeichert werden.

Das selbe gilt, dann auch für den Schalter s7 der den wert "min" abspeichern soll.

Wenn die schalter s6 und s7 betätigt werden, sollen die abgespeicherten Pegel auf dem Leuchtband angezeigt werden.

Vielen Dank für eure Hilfe im voraus
 

Anhänge

  • Bild0059.jpg
    Bild0059.jpg
    360,7 KB · Aufrufe: 48
Hi,

Die Funktion Werte skalieren (SCALE) wandelt einen ganzzahligen Wert (IN) in einen Realzahlenwert um, der in physikalischen Einheiten zwischen einem unteren und einem oberen Grenzwert (LO_LIM und HI_LIM) skaliert wird. Das Ergebnis wird in den Parameter OUT geschrieben.

zu finden in der Onlinehilfe. ;)

Was hast Du bis, jetzt Programmiert?

Gruss Daniel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

Beispielaufruf im OB1:
Code:
ORGANIZATION_BLOCK OB1 (* CYCL_EXC *)
TITLE = 'Main Program Sweep (Cycle)'
VERSION : '0.1'

VAR_TEMP
  OB1_EV_CLASS : BYTE ; //Bits 0-3 = 1 (Coming event), Bits 4-7 = 1 (Event class 1)
  OB1_SCAN_1 : BYTE ; //1 (Cold restart scan 1 of OB 1), 3 (Scan 2-n of OB 1)
  OB1_PRIORITY : BYTE ; //Priority of OB Execution
  OB1_OB_NUMBR : BYTE ; //1 (Organization block 1, OB1)
  OB1_RESERVED_1 : BYTE ; //Reserved for system
  OB1_RESERVED_2 : BYTE ; //Reserved for system
  OB1_PREV_CYCLE : INT ;  //Cycle time of previous OB1 scan (milliseconds)
  OB1_MIN_CYCLE : INT ; //Minimum cycle time of OB1 (milliseconds)
  OB1_MAX_CYCLE : INT ; //Maximum cycle time of OB1 (milliseconds)
  OB1_DATE_TIME : DATE_AND_TIME ; //Date and time OB1 started
END_VAR

BEGIN

  "MW2" := SCALE(IN := "PEW320"
                 ,HI_LIM := 100.0  // für z.B. 100%
                 ,LO_LIM := 0.0    // für z.B. 0%
                 ,BIPOLAR := FALSE
                 ,OUT := "MD10"
                 );
   
  "MW4" := SCALE(IN := "PEW322"
                 ,HI_LIM := 100.0  // für z.B. 100%
                 ,LO_LIM := 0.0    // für z.B. 0%
                 ,BIPOLAR := FALSE
                 ,OUT := "MD14"
                 );
   
END_ORGANIZATION_BLOCK

die Symbole müssen in der Symboltabelle entsprechend eingegeben werden.

z.B.
Code:
MD10    MD     10    REAL
MD14    MD     14    REAL
MW2    MW      2    WORD
MW4    MW      4    WORD
PEW320    PEW   320    INT
PEW322    PEW   322    INT
SCALE    FC    105    FC    105

Gruss Daniel
 
Zurück
Oben