von FUB in SCL umwandeln ?

feelix1

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
bin neu hier und auch anfänger in SPS.....
Ich habe ein problem und zwar habe ich ein programm geschrieben allerdings im FUB und jezz wollte ich fragen ob man es irgendwie umwandeln könnte in eine SCL-Quelle ?:confused:

danke schonmal im vorraus

gruß
feelix1
 
Hallo,
"FUB" = FUP (Funktionsplan) oder FBS:cool:
ohne weitere Handarbeit kann eine AWL Quelle nicht in SCL umgewandelt werden.
Warum willst du als Anfänger gleich mit mit SCL loslegen?
mfg.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja FUP xD

ja weil wir in der schule schon ne weile SPS haben und jezz anfangen mit SCL...
und ich blick da noch nich so ganz durch!
müssen grad ein Projekt machen und das im SCL schreiben....
gibt es keine möglichkeit FUP in SCL umzuwandeln, irgendwie ? :)

gruß
feelix1
 
Nein, dafür gibt es keinen Knopf. Das müßt ihr schon selber schreiben.
Auch in die andere Richtung nicht.
 
hmm schade.....
problem is auch dass ich nicht weiss wie ich anfangen soll und ich kann nichts mit INT_TO_REAL und was es sonst gibt anfangen kann oO

Da is meine Frage, wie fange ich überhaupt an ? :D

gruß felix
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Diese Funktion würde auch kein Sinn machen.

Aber wenn Du Unterstützung beim Einstieg in SCL brauchst, kannst Du hier gerne Deine Fragen stellen ;o)
 
ja wie faengt man an ?
was muss man beachten?

ich weiss hört sich alles bisschen dumm an aber wäre trotzdem nett wenn ihr mir da bisschen helfen könntet!:rolleyes:

ps: zotos , wieso würde es kei sinn machen ? man wäre doch viel schneller wenn man einfach das geschriebene vom FUP in SCL umwandelt könnte... anstatt alles neu zu schreiben :) oder seh ich das falsch ?
 
Zuletzt bearbeitet:
1. rechner aus
2. wissen was man tun will
3. aufschreiben was man wie tun will
4. eingänge, ausgänge definieren
5. interne variablen definieren
6. rechner einschalten
7. scl-editor starten (falls vorhanden, ansonsten tuts das notepad auch)
8. baustein-gerüst einfügen

für einen FB z.B. sieht das so aus

Code:
FUNCTION_BLOCK FBxxx

VAR_INPUT
  //Eingänge des FB
  
END_VAR

VAR_OUTPUT
  //Ausgänge des FB
   
END_VAR

VAR_TEMP
  // temporäre Variablen

END_VAR
VAR
  // statische Variablen

END_VAR

  // Anweisungsteil
  ;
END_FUNCTION_BLOCK
9. baustein entsprechend der überlegungen programmieren
 
Zuletzt bearbeitet:
habs aber so gemeint ^^ sorry :p

und ich hab noch ne frage und zwar wenn ich meine ganzen Eingänge und Ausgänge da rein schreibe wie muss ich die benennen ?
also sprich:

FUNCTION_BLOCK FBxxx

VAR_INPUT
//Eingänge des FB

E124.1 END_IF; <---- irgendwie so ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Strichpunkt ; bzw das Semikolon schließt Anweisungen ab. Für den Programmier des Kompilers ist das eine Erleichterung und findet sich in vielen Hochsprachen wieder.

Der Code Ausschnitt von Dir macht aber keinen Sinn. Was willst Du machen?

Hier noch ein Link zu einem SCL-Einsteiger PDF den der Kollege marlob mal ins Forum gestellt hat: http://www.automation.siemens.com/download/internet/cache/3/1309985/pub/de/c02_s7scl.pdf
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich danke euch für die schnelle hilfe!
IMHO der beste Weg zum einstieg sind kleine Schritte (Aufgaben). Wenn Du eine klare Aufgabe definiert hast, überlegst Du Dir wie man diese Lösen könnte und löst diese. Dann lohnt es sich zur Kontrolle die Aufgabenstellung UND die eigene Lösung hier rein zu stellen dann kann man Dir am effizientesten helfen.

Zum Beginn wären einfache Aufgabe wie z.B. das Umrechnen von °C in °F wohl sinnvoll.
 
ich weiss trotzdem noch nich, wie ich die Ausgänge und Eingänge benennen muss ?!


FUNCTION_BLOCK FBxxx

VAR_INPUT
//Eingänge des FB

E125.1 END_IF; <---- irgendwie so ?

in dem fall steht das hier bei mir so:

Beschreibung: horz_ein
Physik Adresse: BOOL
Symbolischer Adresse: E125.1

also kann ich dann die adresse E125.1 als eingang so in die SCL-Quelle schreiben ?
 
Zuletzt bearbeitet:
...
Symbolischer Adresse: E125.1
...
Das ist eine absolute Adresse!

Absolute Adressierung ist zwar scheiße aber Du kannst im Anweisungsteil direkt auf Eingänge zugreifen.
z.B.
A10.3 := E123.4 AND E123.5;

Wenn der Eingang E123.4 UND der Eingang E123.5 jeweils TRUE sine wird der Ausgang A10.3 auch TRUE.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich glaube du verstehst meine Frage nich ganz :-D

oder ich versteh nich was du meinst :D

Ich muss doch meine ein und ausgänge in die SCL quelle schreiben richtig ?
wenn ja, WIE ? xD

wie müssen diese ein und ausgänge heissen ? wie ist der Befehl dafür?
 
Zuletzt bearbeitet:
ein beispiel-baustein ...skaliert einen analogeingang, gibt real aus, kann mit offset belegt werden oder einen festen wert ausgeben:

Code:
FUNCTION FC1620 : VOID 
TITLE='SCALE_AI'
//ANALOG INPUT 0..20mA OR 4..20 mA
//DATE:     15.02.2008
//AUTHOR:   4lagig
//VERSION:  V0.1 BasicVer
AUTHOR:'4lagig'
FAMILY:'RealGF'

VAR_INPUT
  analog_in : WORD; //Analogeingang
  scale_max : REAL; //Skalierungsobergrenze
  scale_min : REAL; //Skalierungsuntergenze
  offset : REAL; //Offset
  force_value : REAL; //Wert der bei force_on auf Ausgang gelegt werden soll
  force_on : BOOL; //force_value auf Ausgang schalten
END_VAR

VAR_OUTPUT
  error : BOOL; //Drahtbruch oder Überlauf (1=OK)
  value : REAL; //skalierter und mit Offset versehener Ausgang 
END_VAR

VAR_TEMP
 analog_temp_int : INT;
 analog_temp_real : REAL;
 delta : REAL;
END_VAR

analog_temp_int := WORD_TO_INT(analog_in);
analog_temp_real := INT_TO_REAL(analog_temp_int);

IF force_on 
  THEN error := 1;
       value := force_value;
       RETURN;
  ELSE
      IF (analog_temp_int < 32767) AND (analog_temp_int > -1728)
        THEN error := 1;
             delta := scale_max - scale_min;
             value := ((analog_temp_real * delta) / 27648) + scale_min + offset;
        ELSE error := 0;
      END_IF;
END_IF;
   
END_FUNCTION
 
Zurück
Oben