Home

SCL für S7-300/400 - Bausteine programmieren (PDF

image

Contents

1. I e Sesiesisis ISHBHR en Debugger ES E ES S a o tp tp Automatisierungssystem S7 300 400 Bild 1 4 SCL Debugger SCL bietet dazu zwei verschiedene Testmodi an das schrittweise Beobachten Hier wird der logische Programmablauf nachvollzogen Sie k nnen den Programmalgorithmus Anweisung f r Anweisung ausf hren und in einem Ergebnisfenster beobachten wie sich die dabei bearbeiteten Variableninhalte ndern das kontinuierliche Beobachten Damit k nnen Sie eine Gruppe von Anweisungen innerhalb eines Bausteins der Quelldatei testen W hrend des Testlaufs werden die Werte der Variablen und Parameter in chronologischer Abfolge angezeigt und sofern m glich zyklisch aktualisiert STEP 7 Basispaket Die SCL Entwicklungsumgebung bietet die M glichkeit Funktionen des STEP 7 Basispakets wie Anzeigen und ndern des Betriebszustandes der CPU und Einstellen der Uhrzeit direkt von SCL aus zu verwenden 1 6 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms Entwerfen Kapitel bersicht Die Praxis zeigt Am einfachsten und schnellsten programmieren Sie wenn Sie die Aufgabe strukturieren also in einzelne eigenst ndige Teile zerlegen Dabei unterst tzt Sie SCL Denn mit SCL k nnen Sie Einzelbausteine rationell und effizient entwerfen Dieses Kapitel beschreibt anhand eines B
2. DEZIMAL ZIFFERNFOLGE DEZIMAL Minuten ZIFFERNFOLGE m gt DEZIMAL DEZIMAL 5 ZIFFERNFOLGE ZIFFERNFOLGE Sekunden DEZIMAL DEZIMAL T p ZIFFERNFOLGE D ZIFFERNFOLGE Millisekunden Der Einstieg in die Dezimaldarstellung ist nur bei noch nicht definierten Zeiteinheiten m glich FEEFEE Bild 11 15 Syntax Dezimaldarstellung Beispiele G ltige Angaben sind IME 20 5D f r 20 5 Tage IME 45 12M f r 45 12 Minuten T 300MS f r 300 Millisekunden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 11 11 Vereinbarung von Konstanten und Sprungmarken Die Stufendarstellung verwenden Sie wenn Sie Ihre Zeitdauer als eine Sequenz von Tagen Stunden Minuten Sekunden oder Millisekunden angeben m ssen siehe Bild 11 16 Das Weglassen einzelner Komponenten ist erlaubt Eine Komponente mu aber mindestens angegeben werden Stufendarstellung DEZIMAL a DEZIMAL A I ZIFFERNFOLGE ZIFFERNFOLGE Tage Stunden DEZIMAL e DEZIMAL Q al ZIFFERNFOLGE ZIFFERNFOLGE er Minuten Sekunden DEZIMAL ni ZIFFERNFOLGE M9 Q gt Millisekunden Bild 11 16 Syntax Stufendarstellung G ltige Angaben sind TIME 20D_12H TIME 20D_10H_25M_10s IME 200S_20MS SCL f r
3. FUNCTION_BLOCK FB3 VAR ZEIT_1 DATE_AND_TIME STRUKTUR1 STRUCT ZEIT_2 DATE_AND_TIME ZEIT_3 DATE_AND_TIME END_STRUCT END_VAR BEGIN Zuweisung einer Konstanten zu einer Z DATE_AND_TIME Variable EIT_1 DATE_AND_TIME 1995 01 01 12 12 12 2 STRUKTUR1 ZEIT_3 DT 1995 02 02 11 11 11 Zuweisung einer Strukturkomponente zu einer DATE_AND_TIME Variablen ZEIT_1 STRUKTUR1 ZEIT_2 Zuweisung einer DATE_AND_TIME Variable zu einer DATE_AND_TIME Strukturkomponente If ZEIT_1 lt STRUKTUR1 ZEIT_3 THEN STRUKTUR1 ZEIT_3 ZEIT_1 END_IF END_FUNCTION_BLOCK Beispiel 14 5 Wertzuweisungen f r DATE_AND_TIME Variablen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 14 9 Wertzuweisungen 14 7 Wertzuweisungen mit Absolutvariablen f r Speicherbereiche Absolutvariable Die Absolutvariable referenziert die g ltigen Speicherbereiche einer CPU Bei der Wertzuweisung haben Sie die drei in Kapitel 12 beschriebenen M glich keiten diese Bereiche anzusprechen Absolutvariable Operandenkennzeichen Speicher Gr en Bild 14 2 Syntax Absolutvariable Zuweisung Sie k nnen mit Ausnahme der Peripherieeing nge und Eing nge ber das Proze abbild jeder Absolutvariablen eine typengleiche Variable oder einen typengleichen Ausdruck zuweisen Beispiel Die Wertzu
4. Bild 7 2 Beispiel f r eine lexikalische Regel G ltige Beispiele nach dieser dargestellten Regel w ren R_REGLER3 _A_FELD _100_3_3_10 Ung ltige Beispiele aus den oben genannten Gr nden sind 1_1AB RR__20 AB Bei syntaktischen Regeln z B Bild 7 3 haben Sie Formatfreiheit m Einfache Variable Konstante gt Bild 7 3 Beispiel f r eine syntaktische Regel G ltige Beispiele nach dieser dargestellten Regel w ren VARITABLE_1 100 SCHALTER FALSE VARIABLE_2 3 2 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 7 3 Allgemeine SCL Grundbegriffe 7 2 Der SCL Zeichensatz Buchstaben Ziffern Sonstige Zeichen Weitere Informationen 7 4 SCL benutzt aus dem Teilbereich des ASCII Zeichensatzes e die Klein und Gro buchstaben von A bis Z e die arabischen Ziffern O bis 9 e Leerzeichen ASCH Wert 32 und alle Steuerzeichen ASCH 0 31 einschlie lich des Zeilenendezeichens ASCH 13 Diese Zeichen haben in SCL eine festgelegte Bedeutung u lt gt Sie finden im Anhang A eine detaillierte Auflistung aller verwendbaren Zeichen sowie eine Zuordnung wie SCL diese Zeichen interpretiert SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 7 3 Reservierte W rter Bedeutung Schl sselw rter AND EN
5. Funktions Datentyp Ein Datentyp Aufgabe name gangsparameter Funktionswert ROUND REAL DINT Runden Bilden einer DINT Zahl TRUNC REAL DINT Abschneiden Bilden einer DINT Zahl Die unterschiedliche Wirkungsweise demonstrieren die folgenden Beispiele e ROUND e ROUND e TRUNC e TRUNC 3 14 Ak 3 56 3 14 3 56 Hier wird daher ist Hier wird daher ist Hier wird daher ist Hier wird daher ist SCL f r S7 abgerundet das Ergebnis aufgerundet das Ergebnis abgeschnitten das Ergebnis abgeschnitten das Ergebnis 300 400 Bausteine programmieren C79000 G7000 C522 01 SCL Standardfunktionen und Standardfunktionsbausteine 18 3 Numerische Standardfunktionen Funktionalit t Liste der allgemeinen Funktionen Liste der logarithmischen Funktionen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Jede numerische Standardfunktion hat einen Eingangsparameter Das Ergebnis ist immer der Funktionswert Jede der Tabellen 18 5 18 6 bzw 18 7 spezifiziert eine Gruppe von numerischen Standardfunktionen durch die Funktionsnamen und die Datentypen Der Datentyp ANY_NUM steht f r INT DINT oder REAL Allgemeine Funktionen sind die Funktionen zur Berechnung des absoluten Betrages des Quadrats oder der Quadratwurzel einer Gr e Tabelle 18 5 Allgemeine Funktionen Funktionsname Datentyp Ein
6. Pr 7 String Zeichen unterbrechung i Zeichen 97 Zeichen Fluchtsymbol oder druckbares Zeichen a gt Steuerzeichen P oder L oder R oder T Hexadezimal Hexadezimal ziffer ziffer Ersatzdarstellung im Hexacode SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 B 5 Lexikalische Regeln Tabelle B 2 Literale Fortsetzung Regel Stringunterbrechung Syntaxdiagramm Zeilen horizo Leerzeichen blank umburch linefeed Wagenr cklauf carriage return Seitenumbruch formfeed page oder ntaler Tabulator tabulator Formatierungs zeichen Kommentar m m TIME_OF_DAY DATUM gt Datumsangabe ZEITDAUER TIME Dezimaldarstellung gt gt T Stufendarstellung H Dezimaldarstellung Sa J ede Zeiteinheit z B Stunden Minuten darf nur 1 x angegeben werden Die Reihenfolge Tage Stunden Minuten Sekunden Millisekunden ist einzuhalten TAGESZEIT TOD Tageszeitangabe DATUM UND ZEIT DATE_AND_TIME DT Datumsangabe H Tageszeitangabe B 6 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Lexikalische Regeln Tabell
7. SCL f r S7 300 400 Bausteine programmieren 2 8 C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 34 Festlegung der Ein Ausgabe Schnittstelle bersicht Bild 2 4 zeigt die Ein Ausgabeschnittstelle Beachten Sie bitte da bei der byteweisen Ein Ausgabe oben das niederwertige Byte und unten das h herwertige Byte ist Bei der wortweisen Ein Ausgabe dagegen ist es umgekehrt Netz cPu l teil 314 Automati 2 3 Speicheradresse sierungs 3 S Eingabe 0 system EI lt Ausgabe 4 Byte1 Eingabe Ausgabe Eingabebaugruppe Kanal 0 1 a 2 2 Byte0 3 fe 4 5 5 R 6 7 Byte1 0 bis 7 Ausgabebaugruppe Kanal 0 bis 7 Byte0 Be n A Be 0 bis 7 lt Bedeutung bernahme des Me werts Ansto Sortieren und Berechnen Ergebniswahl Wurzel oder Quadrat Ausgabewahl Me wert oder Ergebnis Codierung Bit 0 Codierung Bit 1 Codierung Bit 2 bernahme der Codierung Eingabebyte Me wert Bedeutung h herwertiges Byte des Ausgabeworts Bits 8 bis 15 nur bei Quadratberechnung ben tigt sonst 0 niederwertiges Byte des Ausgabeworts Bits 0 bis 7 Me wert oder Ergebnis Wurzel oder Quadrat Bild 2 4 Anzeigen und Bedienelemente SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 9 Entwerfen eines SCL Programms 2 3 5 Bausteine Bausteine programmieren Wenn die Schnittstellen definiert sind k nnen Sie
8. SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 1 Zeiten und Z hler 17 1 Z hlfunktionen berblick Aufruf Funktionwert 17 2 STEP7 stellt eine Reihe von Standard Z hlfunktionen zur Verf gung Diese Z hler k nnen Sie in Ihrem SCL Programm verwenden ohne sie zuvor ver einbaren zu m ssen Sie m ssen sie lediglich mit den erforderlichen Parametern versorgen STEP 7 bietet folgende Z hlfunktionen an e Aufw rtsz hler Counter Up e Abw rtsz hler Counter Down e Auf und Abw rtsz hler Counter Up Down Z hlfunktionen werden aufgerufen wie Funktionen Die Funktionsbezeichnung kann berall anstelle eines Operanden in einem Ausdruck eingesetzt werden solange der Typ des Funktionsergebnisses mit dem des ersetzten Operanden kompatibel ist Tabelle 17 1 Funktionsnamen der Z hlfunktionen Funktionsname Bedeutung S_CU Aufw rtsz hler Counter Up S_CD Abw rtsz hler Counter Down S_CUD Auf und Abw rtsz hler Counter Up Down Der Funktionwert R ckgabewert der an die Aufrufstelle zur ckgegeben wird ist der aktuelle Z hlwert BCD Format im Datentyp WORD Informationen hierzu finden Sie im Kapitel 17 1 1 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Zeiten und Z hler Aufrufparameter Die Aufrufparameter mit ihrer Bezeichnung und Bedeutung f r alle 3 Z hlfunk tionen fin
9. SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung A 7 bersicht Non Terminale Definition Ein Non Terminal ist ein zusammengesetztes Element das durch eine weitere Regel beschrieben wird Das Non Terminal wird durch einen Kasten dargestellt Der Name im Kasten entspricht dem Regelnamen der weiterf hrenden Regel Non Terminal lt Regelname gt Regelname beliebig Bild A 6 Non Terminal Das Element kommt in den lexikalischen und den syntaktischen Regeln vor A 8 bersicht Token Definition bersicht A 14 Ein Token ist ein zusammengesetztes Element das in den syntaktischen Regeln als Grundelement verwendet wird und in den lexikalischen Regeln erkl rt wird Das Token wird durch ein Rechteck dargestellt Der NAME in Gro buchstaben entspricht dem Regelnamen der weiterf hrenden lexikalischen Regeln ohne Rechteck Token lt Regelname gt Regelname immer in Gro buchstaben Bild A 7 Token Die definierten Token stellen Bezeichner dar die als Ergebnisse der lexikali schen Regeln ermittelt wurden Diese Token beschreiben die e Bezeichner e Namensvergabe bei SCL e Vordefinierten Konstanten und Flags SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung A 9 Bezeichner Bezeichner in SCL Mit Bezeichnern k nnen Sie Sprachobjekte von SCL ansprechen Tabelle A 10 informi
10. END_FUNCTION_BLOCK Beispiel 18 4 Konvertierung wegen unzul ssigem Datentyp SCL f r S7 300 400 Bausteine programmieren 18 6 C79000 G7000 C522 01 SCL Standardfunktionen und Standardfunktionsbausteine Das Beispiel 18 5 zeigt die Konvertierung bei Ein und Ausgaben an die Pe ripherie FUNCTION_BLOCK FB40 VAR radius_ein WORD radius INT END_VAR BEGIN radius_ein EBO WORD_TO_INT radius_ein Konvertierung bei Wechsel in eine andere Typklasse radius Wert kommt von der Eingabe und wird zur Weiterberechnung konvertiert radius Radius flaeche Kreisdaten flaeche ABO WORD_TO_BYTE INT_TO_WORD radius Radius wird r ckgerechnet aus der Fl che und liegt in Integer vor Zur Ausgabe wird der Wert zuerst in eine andere Typklasse INT_TO_WORD und dann in einen weniger m chtigen Typ WORD_TO_BYTE konvertiert END_FUNCTION_BLOCK Beispiel 18 5 Konvertierung bei Ein und Ausgaben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 18 7 SCL Standardfunktionen und Standardfunktionsbausteine Funktionen zum Runden und Abschneiden 18 8 Zu den Datentyp Konvertierungen z hlen auch die Funktionen zum Runden und Abschneiden von Zahlen Tabelle 18 4 zeigt die Namen Datentypen f r den Eingangsparameter und den Funktionswert und Aufgaben dieser Funktionen Tabelle 18 4 Funktionen zum Runden und Abschneiden
11. 13 14 15 12 5 Indizierter Zugriff auf CPU Speicherbereiche 20 0 12 6 Datenbausteine 2222eeen nennen nennen een een nennen 12 7 Absoluter Zugriff auf Datenbausteine 2useenseeenen nn 12 8 Indizierter Zugriff auf Datenbausteine 222s seen 12 9 Strukturierter Zugriff auf Datenbausteine 222nseenreen nen Ausdr cke Operatoren und Operanden Heuuseeunen nennen nen 13 1 Operatore n 40u UA ee 13 2 Syntax von Ausdr cken 222222222 sense nnne een nennen 13 2 1 Operanden norsk ie 13 3 Arithmetische Ausdr cke 222202222 een een nennen nennen 13 4 Exponenten ars ser ee en 13 5 Vergleichsausdr cke 222222s sen eennne een nennen nennen 13 6 Logische Ausdr cke 2222 22eees nee eee rennen een ern nnn Wertzuweisungen zuunseneneen nennen nennen nennen nenn 14 1 Dersichi netter seen 14 2 Wertzuweisungen mit Variablen eines elementaren Typs 14 3 Wertzuweisungen mit Variablen vom Typ STRUCT und UDT 14 4 Wertzuweisungen mit Variablen vom Typ ARRAY 22 22 sn 14 5 Wertzuweisungen mit Variablen vom Typ STRING 14 6 Wertzuweisungen mit Variablen vom Typ DATE_AND_TIME 14 7 Wertzuweisungen mit Absolutvariablen f r Speicherbereiche 14 8 Wertzuweisungen mit globalen Variablen 222n22n nennen Kontrollanweisungen suesnuennnnne nun nn
12. Datenbaustein Baustein zur Ablage von Anwenderdaten Anwenderdefinierter Baustein zur Ablage eines anwenderdefinierten Datentyp Datentyps FB Funktionsbaustein Baustein mit der M glichkeit zur Parameter bergabe und mit Ged chtnis Speicher DB SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 1 3 Produkt bersicht Vorgefertigte Nicht jede Funktion m ssen Sie selbst programmieren Sie k nnen auch auf Bausteine vorgefertigte Bausteine zur ckgreifen Sie sind im Betriebssystem der Zentralbaugruppen oder in Bibliotheken S7lib des STEP 7 Basispakets vor handen und k nnen z B f r die Programmierung von Kommunikations funktionen genutzt werden Im einzelnen sind das folgende Bausteinarten PoE Bausteinart Funktion zung SFC Systemfunktion Eigenschaften wie eine Funktion FC SFB Systemfunktionsbaustein Eigenschaften wie ein Funktionsbaustein FB Mischbarkeit der Bausteine die mit SCL programmiert sind k nnen Sie mit AWL KOP und Bausteine FUP Bausteinen mischen Das bedeutet da ein mit SCL programmierter Baustein einen anderen Baustein der in AWL KOP oder FUP programmiert ist aufrufen kann Entsprechend k nnen SCL Bausteine auch in AWL KOP und FUP Programmen aufgerufen werden Die Programmiersprachen von STEP 7 und SCL als Optionspaket erg nzen sich somit optimal R ck bersetz SCL Bausteine k nnen im konkreten Anwendungsfall in die barkeit STEP
13. BEGIN Anweisungsteil END_FUNCTION_BLOCK p Bild 8 10 Syntax Funktionsbaustein FB Geben Sie nach dem Schl sselwort FUNCTION_BLOCK als FB Bezeichnung das Schl sselwort FB und dahinter die Bausteinnummer oder nur den symbolischen Namen des FB an Beispiele FUNCTION_BLOCK FB10 FUNCTION_BLOCK MOTOR_1 Der FB Vereinbarungsteil dient zur Festlegung der bausteinspezifischen Daten Die zul ssigen Vereinbarungsbl cke entnehmen Sie bitte dem Kapitel 8 4 Be achten Sie da der Vereinbarungsteil auch den Aufbau des zugeordneten In stanz DB bestimmt Beispiele CONST KONSTANTE 5 END_CONST VAR WERT1 WERT2 WERT3 INT END_VAR SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei Beispiel Beispiel 8 2 zeigt den Quellcode f r einen Funktionsbaustein Die Eingangs und Ausgangsparameter hier V1 V2 sind hier mit Anfangswerten vorbelegt FUNCTION_BLOCK FB11 VAR_INPUT Vi INT 7 END_VAR VAR_OUTPUT V2 REAL 3 14 END_VAR VAR DURCHLAUF_1 INT END_VAR BEGIN IF V1 7 THEN DURCHLAUF_1 V1 V2 FC2 TESTWERT DURCHLAUF_1 Aufruf der Funktion FC2 mit Parameterversorgung durch die statische Variable DURCHLAUF_1 END_IF END_FUNCTION_BLOCK Beispiel 8 2 Beispiel eines Funktionsbausteins SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8
14. SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 01 Syntaktische Regeln Tabelle C 5 Syntax des Anweisungsteils Fortsetzung Regel Syntaxdiagramm Einfache Variable BEZEICHNER H Variablenname oder Parametername strukturierte gt Variable gt einfaches Feld Strukturierte Variable BEZEICHNER H Bezeichner ist am Anfang Variablenname oder Parametername einfaches gt Feld gt nach dem Punkt O Komponentenname SCL f r S7 300 400 Bausteine programmieren C 12 C79000 G7000 C522 01 Syntaktische Regeln C 5 Wertzuweisungen Tabelle C 6 Syntax der Wertzuweisungen Regel Syntaxdiagramm Ausdruck Operand logischer Ausdruck Basisoperator Ausdruck H Vergleichs operator Arithmetischer Basisoperator Potenz gt Ausdruck Exponent u Ausdruck un res Plus un res Minus NOT Negation D Ausdruck Q Einfacher Ausdruck A einfacher einfache gt Ausdruck O Multiplikation Einfache Multiplikation einfache gt Multiplikation Q MOD Konstante Fe einfacher Ausdruck SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 C 13 Syntaktische Regeln Tabe
15. 222222nneeeeneee nenn 16 4 Implizit definierte Parameter 222nuseenenee nennen nenn 17 Z hler und Zeiten nn race nee 17 1 Zahltunktionen aussen nn 17 1 1 Eingabe und Auswertung des Z hlerwerts 222222 ese nennen 17 1 2 Aufw rtsz hlen Counter Up 2 2uansseeneeeen nennen nenn 17 1 3 Abw rtsz hlen Counter Down 22 2s nananana aaan 17 1 4 Auf Abw rtsz hlen Counter Up Down 22eensseenene nn 17 1 5 Beispiel f r die Funktion S_CD Abw rtsz hler 17 2 Zeitfunktionen TIMER 2222ees seen 17 2 1 Eingabe und Auswertung des Zeitwerts 22222ess seen nennen 17 2 2 Zeit als Impuls starten z2 0 se Rasen nennen nn nn nn nen 17 2 3 Zeit als verl ngerten Impuls starten 2n22sneeee nennen nenn 17 2 4 Zeit als Einschaltverz gerung starten 222nuseenseeenen nenn 17 2 5 Zeit als speichernde Einschaltverz gerung starten 17 2 6 Zeit als Ausschaltverz gerung starten 222nuseenseeenen nn 17 2 7 Programmbeispiel f r einen verl ngerten Impuls 22er22 0 17 2 8 Auswahl des richtigen Zeitglieds 222222neeeeneeee nenn 18 _SCL Standardfunktionen z2uuneenenannnnn nennen nn nn nun nen 18 1 Konvertierung von Datentypen 2ue22neeee nennen een 18 2 Standardfunktionen f r Datentyp Konvertierungen 18 3 Numerische Standardfunktionen 22 2 sssneneenen nennen 18 4 Bitstring Standardfunk
16. e Sequenz Folge von Bl cken e Option berspringbarer Zweig e Iteration Wiederholung von Zweigen e Alternative Verzweigung Ein Block ist ein Grundelement oder ein Element das wiederum aus Bl cken zusammengesetzt ist Folgendes Bild zeigt die Symbolarten die den Bl cken entsprechen JCJ l Grundelement das nicht weiter erkl rt Zusammengesetztes Element werden mu das durch weitere Syntax Hier handelt es sich um druckbare diagramme beschrieben wird Zeichen und Spezialzeichen Schl sselw rter und vordefinierte Bezeichner Die Angaben zu diesen Bl cken sind unver ndert zu bernehmen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Was bedeutet Formatfreiheit Lexikalische Regel Syntaktische Regel Bei der Eingabe von Quelltexten sind sowohl die syntaktischen Regeln als auch lexikalischen Regeln zu beachten Die lexikalischen und syntaktischen Regeln sind in den Anh ngen B und C detailliert beschrieben Formatfreiheit bedeutet da Sie zwischen den Regel bl cken Formatierungszeichen wie Leerzeichen Tabulatoren und Seiten wechsel sowie Kommentare einf gen k nnen Bei den lexikalischen Regeln z B nach Bild 7 2 haben Sie keine Format freiheit Wenn Sie die eine lexikalische Regel anwenden m ssen Sie die Angaben unver ndert bernehmen D Buchstabe 4 Q4 Buchstabe Unterstrich Unterstrich L Ziffer
17. Das Ausgangssignal wechselt nur von 0 auf 1 wenn das Eingangssignal von 1 auf 0 wechselt Das Ausgangssignal bleibt f r die programmierte Zeit auf 1 Die Zeit wird gestartet wenn das Eingangssignal von 0 auf 1 wechselt Bild 17 8 Auswahl des richtigen Zeitgebers 17 22 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 SCL Standardfunktionen bersicht SCL stellt Ihnen f r die L sung h ufig auftretender Aufgaben eine Reihe von Standardfunktionen zur Verf gung die Sie in Ihren SCL Bausteinen aufrufen k nnen Kapitel bersicht Im Kapitel finden Sie auf Seite 18 1 Konvertierung von Datentypen 18 2 18 2 Standardfunktionen f r Datentyp Konvertierung 18 3 Numerische Standardfunktionen 118 9 18 4 Bitstring Standardfunktionen 18 11 SCL f r S7 300 400 Bausteine programmieren 18 1 C79000 G7000 C522 01 SCL Standardfunktionen und Standardfunktionsbausteine 18 1 Konvertierung von Datentypen bersicht Implizite Datentyp Konvertierungen 18 2 Wenn Sie zwei Operanden ungleichen Datentyps miteinander verkn pfen oder Variablen Ausdr cke zuweisen m ssen Sie im Einzelfall die Vertr glichkeit der beteiligten Datentypen beachten In folgenden F llen sind falsche Ergebnisse zu erwarten beim Wechsel in eine andere Typklasse z B von einem Bitdatentyp in einen numerischen Datentyp e beim Wechsel innerhalb einer Typkl
18. Standard SFC Systemfunktion funktionsname oder Pa symbolscher Name e im Compiler realisierte Standardfunktion FB Parameter Eingangs Zuweisung Durc Zuw hgangs eisung FC Parameter Ausdruck Eingangs Zuweisung Ausgangs Durchgangs Zuweisung Q SCL f r S7 300 400 Bausteine programmieren C 16 C79000 G7000 C0522 01 Syntaktische Regeln Tabelle C 7 Syntax der Aufrufe Fortsetzung Regel Eingangszuweisung Syntaxdiagramm Aktualparameter Ausdruck TIMER BEZEICHNUNG Parametername des Eingangsparameters Formalparameter Z HLER BEZEICHNUNG BAUSTEIN BEZEICHNUNG Ausgangs Durch gangszuweisung erweiterte Parametername des Ausgangs oder Durchgangsparameters Formalparameter Aktualparameter Durchgangszuweisung erweiterte Parametername des Durchgangsparameters Formalparameter Aktualparameter SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Syntaktische Regeln C 7 _ Kontrollanweisungen Tabelle C 8 Syntax der Kontrollanweisungen Regel IF Anweisung Vergessen Sie nicht das Schl sselwort END_IF mit Semikolon abzuschlie Ben WB Syntaxdiagramm Bedingung Ausdruck THEN Anwelzunge ic Bedingung Ausdruck THEN
19. Variablenname Parametername oder Komponenten name 2 1 Systemattribute f r Parameter Bild 10 1 Syntax Variablendeklaration Beispiele f r g ltige Deklarationen sind WERT1 REAL oder falls es mehrere Variablen desselben Typs gibt WERT2 WERT3 WERT4 INT FELD ARRAY 1 100 1 10 OF REAL SATZ STRUCT MESSFELD ARRAY 1 20 OF REAL SCHALTER BOOL END_STRUCT Es sind alle in Kapitel 9 behandelten Datentypen zugelassen Hinweis Reservierte W rter die nur in SCL G ltigkeit haben k nnen Sie als Bezeichner vereinbaren indem Sie das Zeichen voranstellen z B FOR Das kann n tzlich sein wenn Sie Aktualparameter an Bausteine bergeben wollen die in einer anderen Sprache z B AWL erstellt wurden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung lokaler Variablen und Bausteinparameter 10 3 Prinzip Initialisierung Statische Variablen Eingangsparameter und Ausgangsparameter eines FBs k nnen bei der Vereinbarung mit einem Wert vorbesetzt werden Diese Vorbesetzung erfolgt mit einer Wertzuweisung nach der Datentypangabe Wie das Syntaxdiagramm 10 2 zeigt k nnen Sie entweder e einer einfachen Variablen eine Konstante oder e einem Feld eine Initialisierungliste zuweisen Initialisierung ___Konstane gt ER Feld T Initialisierungsl
20. Zeiten und Z hler Beispiel Beispiel 17 3 zeigt ein Beispiel der Z hlfunktion S_CD FUNCTION_BLOCK ZAEHLEN VAR_INPUT MEINZAEHLER COUNTER ND_VAR VAR_OUTPUT ERGEBNIS INT END_VAR VAR SETZEN BOOL RUECKSETZEN BOOL BCDWERT WORD Zaehlerstand BCD BINWERT WORD Zaehlerstand bin r VORBESETZUNG WORD ND_VAR BEGIN A0 0 1 SETZEN E0 2 RUECKSETZEN E0 3 sal m VORBESETZUNG 16 0089 BCDWERT S_CD C_NO MEINZAEHLER abw rtsz CD E0 0 5 SETZEN PV VORBESETZUNG R RUECKSETZEN CV BINWERT G I AOT ERGEBNIS WORD_TO_INT BINWERT Weiterverarb als Ausgangsparameter AW4 BCDWERT An Ausgabe zur Anzeige END_FUNCTION_BLOCK Beispiel 17 3 Beispiel f r eine Z hlfunktion SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 9 Zeiten und Z hler 17 2 Zeitfunktionen TIMER berblick Zeiten sind Funktionselemente in Ihrem Programm die zeitgesteuerte Abl ufe ausf hren und berwachen STEP7 stellt eine Reihe von Standard Zeit funktionen zur Verf gung auf die Sie mit SCL zugreifen k nnen Mit Zeit operationen k nnen Sie in Ihrem Programm e Wartezeiten einstellen e berwachungszeiten erm glichen e Impulse erzeugen e Zeiten messen Aufruf Die Zeitfunktio
21. e Zugriff von innen d h im Anweisungsteil des Funktionsbausteins in dessen Vereinbarungsteil die Variable deklariert wurde Dies ist im Kapitel 14 Wertzuweisung erkl rt e Zugriff von au en ber den Instanz DB ber die indizierte Variable DBx variable DBx ist die Datenbausteinbezeichnung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung lokaler Variablen und Bausteinparameter 10 6 Tempor re Variablen bersicht Vereinbarungs block VAR_TEMP END_VAR Beispiel Zugriff Tempor re Variablen geh ren lokal zu einem Codebaustein und belegen keinen statischen Speicherbereich Ihr Wert bleibt nur w hrend eines Bausteinablaufs erhalten Auf tempor re Variablen kann au erhalb des Bausteins in dem die Variablen deklariert wurden nicht zugegriffen werden Sie sollten Daten dann als tempor re Daten vereinbaren wenn Sie diese nur zur Speicherung von Zwischenergebnissen bei der Bearbeitung Ihres OB FB oder FC ben tigen Tempor rer Variablenblock Variablen VAR_TEMP deklaration END_VAR gt Keine Initialisierung m glich Bild 10 7 Syntax Tempor rer Variablenblock Dieser Vereinbarungsblock ist Bestandteil eines FB FC oder OB Dabei werden innerhalb der Variablendeklaration Variablennamen und Datentypen angegeben siehe Kapitel 10 2 Bei Beginn der Ausf hrung eines OB FB oder FC ist der Wert der tempor ren Daten nicht definiert Eine Initialisierung
22. eo 12 Dr cken Sie F1 um Hilfe zu erhalten e NM E Bild 4 2 Komponenten des SCL Fensters SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 4 3 Bedienen von SCL nderungen der Komponenten Anpassen der Funktionsleiste Anpassen der Haltepunktleiste Anpassen der Statuszeile Anpassen der Entwicklungs umgebung Erzeugen von Bausteinen Anpassen des Compilers Anpassen des Editors 4 4 Sie haben die M glichkeit folgende Komponenten an Ihre pers nlichen Anforderungen anzupassen e Anzeige der Funktionsleiste e Anzeige der Haltepunktleiste e Anzeige der Statuszeile Die Anzeige der Funktionsleiste k nnen Sie ein oder ausschalten Aktivieren bzw deaktivieren Sie dazu den Men befehl Ansicht gt Funktionsleiste Ein H kchen hinter dem Men befehl zeigt an ob der Befehl gerade aktiviert ist oder nicht Auch die Anzeige der Haltepunktleiste k nnen Sie ein oder ausschalten Aktivieren bzw deaktivieren Sie dazu den Men befehl Ansicht gt Halte punktleiste Ein H kchen hinter dem Men befehl zeigt an ob der Befehl gerade aktiviert ist oder nicht Auch die Anzeige der Statuszeile k nnen Sie ein oder ausschalten Aktivieren bzw deaktivieren Sie dazu den Men befehl Ansicht gt Status zeile Ein H kchen hinter dem Men befehl zeigt an ob der Befehl gerade aktiviert ist oder nicht Der
23. DWORD Ausgabe des berechneten Ergebnisses messwert_aus DWORD Ausgabe des zugeh rigen Me werts SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 7 Entwerfen eines SCL Programms AUSWERTEN Der FB ERFASSEN ruft den FB AUSWERTEN auf Als gemeinsame Daten haben die beiden FBs das zu sortierende Me wertefeld Deshalb wird dieses als Durchgangsparameter deklariert F r die Rechenergebnisse Wurzel und Quadrat wird ein strukturiertes Feld als Ausgangsparameter angelegt Formalparameter siehe Tabelle 2 2 Tabelle 2 2 _ Formalparameter von AUSWERTEN Name Datentyp Deklarations Beschreibung typ sortier ARRAY VAR_IN_OUT Me wertefeld entspricht dem puffer OF REAL Ringpuffer rechen ARRAY VAR_OUTPUT Feld f r Ergebnisse puffer OF STRUCT Struktur mit den Komponenten wurzel und quadrat vom Typ INT SORT und Die Funktionen werden von AUSWERTEN aufgerufen Sie ben tigen einen QUADRAT Eingabewert und liefern ihr Ergebnis als Funktionswert siehe Tabelle 2 3 Tabelle 2 3 Formalparameter und Funktionswerte von SORT und QUADRAT Name Datentyp Deklarations Beschreibung typ wert REAL VAR_INPUT Eingabe f r SORT SORT REAL Funktions Wurzel des Eingabewerts wert wert INT VAR_INPUT Eingabe f r QUADRAT QUADRAT INT Funktions Quadrat des Eingabewerts wert
24. Das Programm wird dann ausgef hrt bis der erste Haltepunkt erreicht wird Die Anzahl der aktiven Haltepunkte ist CPU abh ngig e CPU 416 maximal 4 aktive Haltepunkte m glich e CPU 414 maximal 2 aktive Haltepunkte m glich e CPU 314 keine aktiven Haltepunkte m glich Einzelschritt Wenn die Testfunktion Haltepunkte aktiv gestartet ist K nnen Sie folgende funktionen Funktionen durchf hren e N chste Anweisung ausf hren Fortsetzung um eine Anweisung dient zur Ausgabe der Variablenwerte e Fortsetzen Fortsetzung bis zum n chsten aktivierten Haltepunkt e Ausf hren bis Markierung Fortsetzung bis zu einer Textmarke in der Quelle die Sie definieren Hinweis Beachten Sie da die maximale Anzahl der aktiven Haltepunkte nicht berschritten wird wenn Sie die Men befehle N chste Anweisung ausf hren oder Ausf hren bis Markierung benutzen da diese implizit einen Haltepunkt setzen und auch aktivieren SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 6 5 Testen eines Programmes Wie benutzen Sie Stellen Sie vor Testbeginn sicher da die in Kapitel 6 1 genannten Voraus Haltepunkte setzungen erf llt sind Nun k nnen Sie mit der Funktion Haltepunkte aktiv aktiv Ihr Programm in der CPU in Einzelschritten testen Folgende schrittweise Beschreibung und die Darstellung im Bild 6 1 zeigt Ihnen die Vorgehens weise 1 23 6 6 W hlen Sie das Fenster aus das die Quelle de
25. KNOW_HOW_PROTECTED vorgenommen wurde Ordner auf der Benutzeroberfl che des SIMATIC Managers der ge ffnet werden kann und weitere Beh lter und Objekte enthalten kann Die Bausteinarchitektur von STEP 7 kennt folgende Bausteinarten Organisationsbausteine Funktionsbausteine Funktionen Datenbausteine sowie Systemfunktionsbausteine Systemfunktionen Systemdatenbausteine und anwenderdefinierte Datentypen Baustein Starten eines Bausteins im STEP 7 Anwenderprogramm Organisations bausteine werden grunds tzlich vom Betriebssystem aufgerufen alle anderen Bausteine werden vom STEP 7 Anwenderprogramm aufgerufen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Bausteinklasse Bezeichner BCD Darstellung Blockstatus C CASE Anweisung Codebaustein CONTINUE Anweisung D Daten global Datenbaustein DB Daten statisch Bausteine unterteilt man ihrem Inhalt entsprechend in zwei Klassen Codebausteine und Datenbausteine Mit Bezeichnern werden Sprachobjekte von SCL angesprochen Es gibt folgende Klassen Standardbezeichner vordefinierte Namen und Schl ssel w rter Absolutbezeichner bzw Operandenkennzeichen frei w hlbare Namen z B f r Variablen und Sprungmarken oder in einer Symboltabelle erzeugte symbolische Namen Bei STEP 7 erfolgt die CPU interne Angabe von Zeiten und Z hlern nur im BCD Format BCD steht f r Bin r Code f r Dezimalzahlen
26. ZAHL1 an die Variable Statuswort3 STATUSWORT3 DB11 ZAHL1 ZAHL2 Zuweisen eines Worts mit Index ADRESSE aus DB11 an eine Variable indizierter Zugriff FOR ADRESSE 1 TO 10 BY 1 DO STATUSWORT2 ADRESSE DBI1 DW ADRESSE END_FOR Beispiel 14 8 Wertzuweisungen f r globale Variablen eines DB SCL f r S7 300 400 Bausteine programmieren 14 12 C79000 G7000 C522 01 Kontrollanweisungen bersicht Nur wenige Bausteine k nnen Sie so programmieren da alle Anweisungen bis zum Bausteinende in Folge hintereinander ablaufen Im Regelfall werden in Abh ngigkeit von Bedingungen nur bestimmte Anweisungen ausgef hrt Alternativen oder auch mehrfach wiederholt Schleifen Die programm technischen Mittel hierzu sind die Kontrollanweisungen innerhalb eines SCL Bausteins Kapitel bersicht Im Kapitel finden Sie auf Seite U 7 15 2 IF Anweisung 15 3 CASE Anweisung 15 4 FOR Anweisung 15 8 15 5 WHILE Anweisung 15 10 15 6 REPEAT Anweisung 15 11 15 7 CONTINUE Anweisung 15 12 15 8 EXTIT Anweisung 15 13 15 9 GOTO Anweisung 15 10 RETURN Anweisung 15 16 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15 1 Kontrollanweisungen 15 1 bersicht Auswahl In Programmen tritt h ufig das Problem auf da in Abh ngigkeit von anweisungen bestimmten Bedingungen verschiedene Anweisungen durchgef hrt werden s
27. ffnen an W hlen Sie im Dialogfeld ffnen das gew nschte Projekt und das zugeh rige S7 Programm aus Stellen Sie sicher da der Filter SCL Quelle eingestellt ist und w hlen Sie den Quellbeh lter aus Im Dialogfeld werden alle SCL Quellen des S7 Programms angezeigt W hlen Sie das gew nschte Objekt aus und best tigen Sie mit OK oder mit einem Doppelklick auf die Quelle Quellen die Sie mit einem Standardeditor erzeugt haben k nnen Sie auf die gleiche Weise ffnen nachdem Sie sie mit dem SIMATIC Manager in das Projekt importiert haben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 5 3 Programmieren mit SCL 5 3 Eingeben von Vereinbarungen Anweisungen und Kommentaren bersicht Eine SCL Quelle m ssen Sie nach fest vereinbarten syntaktischen Regeln eingeben Diese Regeln sind Bestandteil der Sprachbeschreibung und sind komplett im Anhang aufgef hrt proj1 SIMATIC 300 Station 1 CPU314 1 quelle1 FUNCTION_BLOCK FB11 VAR 1 1INT Feld ARRAY 1 10 1 20 OF REAL REGLER ARRAY 1 3 1 4 OF INT 54 736 83 77 1289 10362 385 2 60 37 7 103 END_VAR BEGIN Bild 5 2 SCL Quelle Regeln Beachten Sie folgende Konventionen bei der Eingabe e In einer SCL Quelle k nnen beliebig viele Codebausteine FB FC OB Datenbausteine DB und anwenderdefinierte Datentypen UDT formu liert werden wobei jede Bausteinart typ
28. 0 ist 17 1 3 Abw rtsz hlen Counter Down Beschreibung Funktionsweise SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Mit dem Z hler Counter Down k nnen Sie nur Abw rts Z hloperationen durchf hren Tabelle 17 4 Funktionsweise Abw rtsz hler Operation Abw rts z hlen Funktionsweise Der Wert des Z hlers wird um 1 vermindert wenn der Signalzustand an Eingang CD von 0 auf 1 wechselt und der Z hlwert gr er als 0 ist Z hler setzen Wenn der Signalzustand an Eingang S von 0 auf 1 wechselt wird der Z hler mit dem Wert des Eingangs PV gesetzt Ein solcher Signal wechsel ist immer erforderlich um einen Z hler zu setzen R cksetzen Der Z hler wird r ckgesetzt wenn Eingang R 1 ist Das R cksetzen des Z hlers setzt den Z hlwert auf 0 Z hler Eine Signalzustandsabfrage an Ausgang Q ergibt 1 wenn der abfragen Z hlwert gr er als 0 ist Die Abfrage ergibt 0 wenn der Z hlwert gleich 0 ist 17 7 Zeiten und Z hler 17 1 4 Auf Abw rtsz hlen Counter Up Down Beschreibung Funktionsweise Mit dem Z hler Counter Up Down k nnen Sie sowohl Auf als auch Abw rts Z hloperationen ausf hren Bei Gleichzeitigkeit von Vorw rts und R ckw rts Z hlimpulsen werden beide Operationen bearbeitet Der Z hlwert bleibt unver ndert Tabelle 17 5 Funktionsw
29. 1 an Ausgang Q ergibt 1 wenn fragen der Signalzustand an Eingang S 1 ist oder die Zeit l uft Aktuellen Zeit Der aktuelle Zeitwert kann am Ausgang BI und durch den wert abfragen Funktionswert S_OFFDT abgefragt werden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Zeiten und Z hler 17 2 7 Programmbeispiel f r einen verl ngerten Impuls Beispiel S_PEXT Beispiel 17 6 zeigt ein Programm f r die Anwendung der Zeifunktion verl ngerter Impuls FUNCTION_BLOCK ZEITGEBER VAR_INPUT MEINEZEIT TIM END_VAR VAR_OUTPUT ERGEBNIS S5TIM ND_VAR VAR SETZEN BOOL RUECKSETZEN BOOL BCDWER S5STIME Zeitb u Restwert BCD codiert BINWERT WORD Zeitwert bin r VORBESETZUNG SSTIME ND_VAR BEGIN A0 0 1 SETZEN E0 0 RUECKSETZEN EO 1 VORBESETZUNG T 25S Eu Po e CI zal sa BCDWERT S_PEXT T_NO MEINEZEIT S SETZEN TV VORBESETZUNG R RUECKSETZEN BI BINWERT Q A0 7 T ERGEBNIS BCDWERT Weiterverarbeitung als Ausgangsparameter AW4 BINWERT An Ausgabe zur Anzeige END_FUNCTION_BLOCK Beispiel 17 6 Beispiel einer Zeitfunktion SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 21 Zeiten und Z hler 17
30. 16 1 Aufruf von Funktionen und Funktionsbausteinen 16 1 Aufruf und Parameter bergabe Parameter Beim Aufruf von Funktionen oder Funktionsbausteinen findet ein Daten bergabe austausch zwischen dem aufrufenden und dem aufgerufenen Baustein statt Die Parameter die bergeben werden sollen m ssen im Aufruf als Parameterliste angegeben werden Die Parameter werden in Klammern geschrieben Mehrere Parameter werden durch Kommata getrennt Prinzip Im folgenden Beispiel eines Funktionsaufrufs werden je ein Eingangs Durch gangs und Ausgangsparameter angegeben Parameterliste gt FC31 E_Par 3 D_Par LAENGE A_Par Quersumme Aktueller Eingangs parameter Aktueller Durch gangsparameter Aktueller Aus gangsparameter Funktionsname Bild 16 1 Prinzip der Parameter bergabe Die Angabe der Parameter hat die Form einer Wertzuweisung siehe Bild 16 2 Durch diese Wertzuweisung weisen Sie den Parametern die Sie im Verein barungsteil des aufgerufenen Bausteins definiert haben Formalparametern einen Wert Aktualparameter zu Aktualparameter Formalparameter 3 E_Par LAENGE amp D_Par Quersumme A_Par Bild 16 2 Wertzuweisung innerhalb der Parameterliste Formalparameter Die Formalparameter sind die Parameter die der Baustein beim Aufruf erwartet Sie sind lediglich Platzhalter f r die Aktualparameter die dem Baustein beim Aufruf bergeben
31. Bild 13 1 Syntax Ausdruck Das Ergebnis eines Ausdrucks k nnen Sie e einer Variablen zuweisen e als Bedingung f r eine Kontrollanweisung verwenden e als Parameter f r den Aufruf einer Funktion oder eines Funktionsbausteins verwenden Die Auswertungsreihenfolge eines Ausdrucks ist abh ngig von e der Priorit t der beteiligten Operatoren e der Links Rechts Reihenfolge e der vorgenommenen Klammerung bei Operatoren gleicher Priorit t SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 3 Anweisungen Ausdr cke und Operatoren Regeln Beispiele 13 4 Die Verarbeitung der Ausdr cke erfolgt nach bestimmten Regeln Die Operatoren werden entsprechend ihrer Priorit t bearbeitet Operatoren gleicher Priorit t werden von links nach rechts bearbeitet Das Voranstellen eines Minuszeichens vor einen Bezeichner ist gleich bedeutend mit der Multiplikation mit 1 Arithmetische Operatoren d rfen nicht direkt aufeinander folgen Deshalb ist der Ausdruck a b ung ltig aber a b erlaubt Das Setzen von Klammerpaaren kann den Operatorenvorrang au er Kraft setzen d h die Klammerung hat die h chste Priorit t Ausdr cke in Klammern werden als einzelne Operanden betrachtet und immer als erstes ausgewertet Die Anzahl von linken Klammern mu mit der Anzahl von rechten Klammern bereinstimmen Arithmetische Operationen k nnen nicht auf Zeichen oder logischen Daten angewendet werd
32. IN IF OK THEN Die Addition verlief korrekt L3 Rh ELSE Die Addition verlief fehlerhaft END_IF Beispiel 10 7 Verwendung der OK Flags SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung von Konstanten und 1 1 Sprungmarken bersicht Kapitel bersicht SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Konstanten sind Daten die einen festen Wert besitzen der sich zur Programm laufzeit nicht ndern kann Wenn der Wert der Konstanten durch die Schreib weise ausgedr ckt wird spricht man von Literalkonstanten Eine Vereinbarung von Konstanten ist nicht notwendig Sie haben aber die M glichkeit im Vereinbarungsteil symbolische Namen f r die Konstanten zu vergeben Sprungmarken stehen f r die Namen von Sprungzielen innerhalb des Anweisungsteil des Codebausteins Symbolische Namen von Konstanten sowie die Sprungmarken werden jeweils getrennt in eigenen Vereinbarungsbl cken vereinbart Im Kapitel finden Sie auf Seite Ka 2 11 2 Literale 11 3 Schreibweisen f r Integer und Realzahlliterale 11 4 11 4 Schreibweisen f r Character und Stringliterale 11 7 11 5 Schreibweisen f r Zeitangaben 11 10 11 6 Sprungmarken 11 14 Vereinbarung von Konstanten und Sprungmarken 11 1 Konstanten Anwendung von Konstanten Vereinbarung sym bolischer Namen Beispiel Schreibweisen In Wertzuweisungen und Ausdr cken werden
33. Installieren und Deinstallieren der Autorisierung erforderliche Programm AUTHORS Die Anzahl der m glichen Autorisierungen ist durch einen Autorisierungs z hler auf der Autorisierungsdiskette festgelegt Bei jeder Autorisierung wird der Z hler um 1 erniedrigt Wenn er den Wert Null erreicht hat ist mit dieser Diskette keine weitere Autorisierung mehr m glich Weitere Hinweise und Regeln f r den Umgang mit Autorisierungen finden Sie im Benutzerhandbuch 231 N Vorsicht Beachten Sie die Hinweise in der Datei LIESMICH TXT auf der Autorisierungsdiskette Bei Nichtbeachtung besteht die Gefahr da die Autorisierung unwiderruflich verloren geht Autorisierung bei Sie sollten die Autorisierung vornehmen wenn Sie im Rahmen der Erst der Erstinstallation installation durch eine entsprechende Meldung dazu aufgefordert werden vornehmen Gehen Sie so vor 1 Legen Sie die Autorisierungsdiskette ein wenn die entsprechende Aufforderung angezeigt wird 2 Quittieren Sie anschlie end die Aufforderung Die Berechtigung wird auf ein physikalisches Laufwerk bertragen d h Ihr Rechner merkt sich da Sie eine Berechtigung haben SCL f r S7 300 400 Bausteine programmieren 3 2 C79000 G7000 C522 01 Installieren der SCL Software Autorisierung Wenn Sie die SCL Software starten und keine Autorisierung vorhanden ist sp ter so erhalten Sie eine entsprechende Meldung Um die Autorisierung durchf hren nachtr glich vorzune
34. Parameter versorgt wird ERGEBNIS FC85 EN MEIN_ENABLE PAR_1 27 FC85 wurde nicht ausgef hrt da MEIN_ENABLE gleich FALSE gesetzt wurde Aeir END_FUNCTION_BLOCK Beispiel 16 8 Verwendung von EN SCL f r S7 300 400 Bausteine programmieren 16 20 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen Ausgangs Jeder Funktionsbaustein und jede Funktion besitzt den implizit definierten parameter ENO Ausgangsparameter ENO der vom Datentyp BOOL ist Am Ende der Ausf hrung eines Bausteines wird der gerade aktuelle Wert des OK Flags in ENO abgelegt Unmittelbar nach dem Aufruf eines Bausteines k nnen Sie anhand des Wertes von ENO berpr fen ob alle Operationen im Baustein richtig abgelaufen sind oder ob es zu Fehlern gekommen ist Beispiel Folgendes Beispiel veranschaulicht den Gebrauch des Parameters ENO FUNCTION_BLOCK FB57 RRE Ks BEGIN Aufruf eines Funktionsbausteines FB30 DB30 X1 10 X2 10 5 berpr fung ob im aufgerufenen Baustein alles in Ordnung abgelaufen ist T IF ENO THEN alles in Ordnung EEE ELSE Fehler aufgetreten daher Fehlerbehandlung RE END_IF less VER END_FUNCTION_BLOCK Beispiel 16 9 Verwendung von ENO Beispiel Folgendes Beispiel zeigt eine Verkettung von EN und ENO EN und ENO k nnen auch verkettet verwendet werden FB30 DB
35. Prinzip Ein Funktionsbaustein mit einer FOR Schleife k nnte wie in Beispiel 16 1 aus sehen In den Beispielen wird angenommen da in der Symboltabelle f r den FB17 das Symbol TEST vereinbart ist FUNCTION_BLOCK TEST VAR_INPUT ENDWERT INT Eingangsparameter END_VAR VAR_IN_OUT Iol REAL Durchgangsparameter END_VAR VAR_OUTPUT CONTROL BOOL Ausgangsparameter END_VAR VAR INDEX INT END_VAR BEGIN CONTROL FALSE FOR INDEX 1 TO ENDWERT DO Iol IQI 2 IF IOl gt 10000 THEN CONTROL TRUE END_IF END_FOR END_FUNCTION_BLOCK GI Beispiel 16 1 Beispiel eines FB Aufruf Zum Aufrufen dieses FB k nnen Sie eine der folgenden Varianten w hlen Vorausgesetzt wird da VARIABLE1 im aufrufenden Baustein als REAL Variable vereinbart ist Absoluter Aufruf globale Instanz FB17 DB10 ENDWERT 10 IOl VARIABLEI Symbolischer Aufruf globale Instanz TEST TEST_1 ENDWERT 10 IQO1 VARIABLEIl Beispiel 16 2 Beispiel FB Aufruf mit Instanz Datenbaustein Ergebnis Nach der Ausf hrung des Bausteins steht der f r den Durchgangsparameter IQ1 ermittelte Wert in VARIABLE1 zur Verf gung SCL f r S7 300 400 Bausteine programmieren 16 10 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen Ausgangwert lesen Die m glichen Varianten den Ausgangsparameter CONTROL zu lesen s
36. SCL f r S7 300 400 Batch Compiler Debugger Bild 1 1 Entwicklungsumgebung von SCL SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Produkt bersicht 1 2 Welche Vorteile bietet Ihnen SCL H here Program Mit SCL werden alle Vorteile einer h heren Programmiersprache angeboten miersprache SCL enth lt aber auch einige Eigenschaften die speziell zur Unterst tzung von strukturierter Programmierung entworfen wurden z B e die Bausteinstruktur von STEP 7 e vorgefertigte Bausteine e Kompatibilit t zu STEP 5 Bew hrte SCL ist optimal auf die L sung aller Aufgaben zugeschnitten die bei Bausteinstruktur Automatisierungsprojekten anfallen so da Sie zusammen mit STEP 7 in von STEP 7 allen Phasen des Projekts effektiv arbeiten k nnen SCL unterst tzt insbesondere das Bausteinkonzept von STEP 7 und erm glicht daher neben AWL KOP und FUP die normkonforme Programmierung von Bausteinen OB FC FB DB UDT SFC SFB STEP 7 Bausteine Bausteinarten Die STEP 7 Bausteine sind durch ihre Funktion ihre Struktur oder ihren Verwendungszweck abgegrenzte Teile eines Anwenderprogramms Mit SCL k nnen Sie die folgenden Bausteine erstellen Bausteinart Funktion zung Organisations Schnittstelle zwischen Betriebssystem und baustein Anwenderprogramm Baustein mit der M glichkeit zur Parameter bergabe ohne Ged chtnis Funktion
37. Setzen kann paarweise entfallen e Die Parameterentsorgung ist optional Sie k nnen auf Q und BI mittels einer Wertzuweisung zugreifen e Der Ergebniswert im SSTIME Format ist immer der Funktionswert Hinweis Die Namen der Funktionen sind in SIMATIC und IEC Mnemonik gleich SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Zeiten und Z hler Beispiel Aufruf von Zeitfunktionen Beispiel 17 5 veranschaulicht den Aufruf der Zeitfunktionen FUNCTION_BLOCK FB2 VAR currTime S5time biVal word actFlag bool END VAR BEGIN currTime S_ODT T_NO T10 S TRUE TV T ls R FALSE BI bival Q actFlag currTime S_ODTS T_NO T11 S M0 0 TV T l1s R MO 1 BI biVal Q actFlag currTime S_OFFDT T_NO T12 S E0 1 amp actFlag TV T 1s R FALSE BI bival Q actFlag currTime S_PEXT T_NO T13 S TRUE TV T 1s R E0 0 BI biVal Q actFlag currTime S_PULSE T_NO T14 S TRUE TV T 1s R FALSE BI bivVal Q actFlag END_FUNCTION_BLOCK Beispiel 17 5 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufruf von Zeitfunktionen 17 13 Zeiten und Z hler 17 2 1 Eingabe und Auswertung des Zeitwerts berblick Format Eingabe Auswertung 17 14 F r die Eingabe des Vorbesetzungswertes bzw f r die Auswertung des Funktionsergebnisses im BCD Code ben tigen Sie die in
38. als OB Bezeichnung das Schl sselwort OB und dahinter die Bausteinnummer oder einfach den symbolischen Namen des OB an Beispiele ORGANIZATION_BLOCK OB14 ORGANIZATION_BLOCK UHRZEITALARM Jeder OB ben tigt zum Ablauf grunds tzlich 20 byte Lokaldaten f r seine Startinformation Sie k nnen je nach den Anforderungen des Programms in dem OB zus tzliche tempor re Variablen deklarieren Die Beschreibung der 20 byte Lokaldaten entnehmen Sie bitte 235 Beispiel ORGANIZATION_BLOCK OB14 UHRZEITALARM VAR_TEMP HEADER ARRAY 1 20 OF BYTE 20 byte f r Startinfo END_VAR Die brigen zul ssigen Vereinbarungsbl cke f r OBs entnehmen Sie bitte Kapitel 8 4 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei 8 10 Aufbau eines Datenbausteins DB bersicht DB Bezeichnung DB Vereinbarungsteil Der Datenbaustein DB enth lt globale anwenderspezifische Daten auf die alle Bausteine im Programm zugreifen sollen Jeder FB FC oder OB kann aus diesen DB lesen oder schreiben Den Aufbau von Datenbausteinen die nur bestimmten FBs zugeordnet sind die Instanz DB finden Sie in Kapitel 12 Datenbaustein DATA_BLOCK BESE ININe DB Vereinbarungsteil f BEGIN DB Zuweisungsteil END_DATA_BLOCK Bild 8 13 Syntax Datenbaustein DB Geben Sie nach dem Schl sselwort DATA_BLOCK als DB Bezeichnung das
39. befehl Extras gt Einstellungen und klicken Sie im Dialogfeld Einstellungen das Register Compiler an Die Optionen k nnen Sie durch Mausklick ein bzw ausschalten Einstellungen x Baustein erzeugen Compiler Editor 7 Objectcode erstellen Maximale Fehlerzahl 99 Y_ Objectcode optimieren Maximale Stringl nge 253 Eeldgrenzen berwachen Geschachtelte Kommentare zulassen Debug Info erstellen OK Flag setzen Abbrechen bernehmen Hilfe Bild5 3 Dialogfeld Einstellungen Register Compiler SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Programmieren mit SCL Optionen Baustein erzeugen Den bersetzungs vorgang ansto en Die Optionen haben die folgenden Bedeutungen e Maximale Fehleranzahl Der Compiler bricht die bersetzung einer SCL Quelle ab wenn die angegebene Anzahl von Fehlern erreicht ist e Objectcode erstellen Auf einem AS ablauff higen Code erzeugen ja nein e Objectcode optimieren K rzeren Code erzeugen Wenn die Option De bug Info erstellen gew hlt ist sind nicht alle Optimierungen m glich e Feldgrenzen berwachen Zur Laufzeit berpr fen ob Feldindizes in dem laut Vereinbarung f r das Feld zul ssigen Bereich liegen Wenn ein Feldindex den zul ssigen Bereich berschreitet wird das OK Flag auf FALSE gesetzt vorausgesetzt die Option OK Flag setzen ist aktiviert Debug Info erstellen Test Informa
40. byte wort und doppelwort weise Der Merkerbereich kann vom Anwender zum Speichern von Zwischenergebnissen verwendet werden Die Mnemonik ist eine abgek rzte Darstellung der Operanden und der Programmieroperationen im Programm z B steht E f r Eingang STEP 7 unterst tzt die IEC Darstellung die auf der englischen Sprache basiert und die SIMATIC Darstellung die auf der deutschen Darstellung der Operationen und den Konventionen f r SIMATIC Adressierung beruht Bei der Verwendung von Multiinstanzen enth lt der Instanz Datenbaustein die Daten f r mehrere Funktionsbausteine einer Aufrufhierarchie Ein Nonterminal ist ein zusammengesetztes Element das durch eine weitere lexikalische oder syntaktische Regel beschrieben wird Nutzdaten werden zwischen einer Zentralbaugruppe und Signalbaugruppe Funktionsbaugruppe und Kommunikationsbaugruppen ber das Proze abbild oder ber Direktzugriffe ausgetauscht Nutzdaten k nnen sein Digitale und analoge Ein Ausgangssignale von Signalbaugruppen Steuer und Status informationen von Funktionsbaugruppen Offline bezeichnet den Betriebszustand bei dem das Programmierger t keine Verbindung mit dem Automatisierungssystem hat physikalisch logisch Die OK Variable dient dazu die korrekte oder inkorrekte Ausf hrung einer Bausteinbefehlsfolge zu vermerken Sie ist global vom Typ BOOL Online bezeichnet den Betriebszustand bei dem das Programmierger t mit dem Automatisierungssy
41. gt Kontinuierlich beobachten Diese Anweisung ist eine Verzweigungsanweisung Sie dient abh ngig vom Wert eines Auswahlausdrucks der 1 aus n Auswahl eines Programmteils Ein Codebausteinen ist bei SIMATIC S7 ein Baustein der einen Teil des STEP 7 Anwenderprogramms enth lt Im Gegensatz dazu enth lt ein Daten baustein nur Daten Es gibt folgende Codebausteine Organisationsbausteine OB Funktionsbausteine FB Funktionen FC Systemfunktionsbausteine SFB und Systemfunktionen SFC Beendet eine Laufschleife und beginnt sie mit dem n chsten Wert der Lauf variable Globale Daten sind Speicherbereiche der CPU die von jeder Programmstelle aus ansprechbar sind z B Merker Datenbausteine DB sind Datenbereiche im Anwenderprogramm die Anwenderdaten enthalten Auf Datenbausteine kann von allen Code bausteinen aus zugegriffen werden Datenbausteine die einem bestimmten FB Aufruf zugeordnet sind hei en Instanz Datenbausteine Statische Daten sind Lokaldaten eines Funktionsbausteins die im Instanz Datenbaustein gespeichert werden und deshalb bis zur n chsten Bearbeitung des Funktionsbausteins erhalten bleiben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 3 Glossar Daten tempor r Datentyp Datentyp anwenderdefiniert Datentyp deklaration Datentyp elementar Datentyp zusammengesetzt Deklarationstyp Durchgangspara meter D Parame ter Glossar 4 Temp
42. r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen 9 3 bersicht Zusammengesetzte Datentypen SCL unterst tzt folgende zusammengesetzte Datentypen Tabelle 9 3 Zusammengesetzte Datentypen Datentyp Beschreibung Definiert einen Bereich mit 64 bit 8 byte Dieser Datentyp DATE_AND_TIME speichert in bin rcodiertem Dezimalformat Datum und Uhrzeit DT und ist in SCL bereits vordefiniert Definiert einen Bereich f r eine Zeichenfolge von maximal 254 STRING Zeichen Datentyp CHAR Definiert ein Feld aus Elementen eines Datentyps entweder ARRAY elementar oder zusammengesetzt Definiert eine Gruppierung von beliebig kombinierten STRUCT Datentypen Sie k nnen ein Feld aus Strukturen oder auch eine Struktur aus Strukturen und Feldern definieren SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen 9 3 1 Datentyp DATE_AND_TIME bersicht Wertebereich Der Datentyp DATE_AND_TIME setzt sich zusammen aus den Datentypen DATE und TIME Er definiert einen Bereich mit 64 bit 8 bytes f r die Angabe von Datum und Uhrzeit Der Datenbereich speichert die folgenden Informationen ahr Monat Tag Stunden Minuten Sekunden Millisekunden DATE_AND_TIME DATE_AND_TIME Datumsangabe H Tageszeitangabe gt DT Bild 9 1 Syntax DATE_AND_TIME Tabelle 9 4 Bitbreite und Wertebereich Typ Schl sselwort Bit Wert
43. tigte Datenbereiche z B Puffer f r Kommunikation abgelegt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 13 Glossar T Terminal U bersetzen bersetzung quellorientiert UDT V Variable Variablen deklaration Variablentabelle Vereinbarungsteil Glossar 14 Ein Terminal ist ein Grundelement einer lexikalischen oder syntaktischen Regel das nicht durch eine weitere Regel sondern verbal erkl rt wird Ein Terminal kann z B ein Schl sselwort oder nur ein einzelnes Zeichen sein Erzeugen eines lauff higen Anwenderprogramms aus einer Quelle Bei der quellorientierten Eingabe wird erst beim bersetzen auf eventuelle Eingabefehler gepr ft Ein ablauff higer Code wird erst erzeugt wenn keine Fehler mehr vorhanden sind Datentyp anwenderdefiniert Eine Variable definiert ein Datum mit variablem Inhalt das im STEP 7 Anwenderprogramm verwendet werden kann Eine Variable besteht aus einem Operanden z B M 3 1 und einem Datentyp z B Bool und kann mit einem Symbol z B BAND_EIN gekennzeichnet werden Die Variable wird im Vereinbarungsteil deklariert Die Variablendeklaration umfa t die Angabe eines symbolischen Namens eines Datentyps und evtl eines Vorbelegungswerts und eines Kommentars In der Variablentabelle werden die Variablen zusammengestellt die beobachtet und gesteuert werden sollen inkl der zugeh rigen Format angaben Hier werden die Lo
44. 13 Aufbau einer SCL Quelldatei 8 8 Aufbau einer Funktion FC bersicht FC Bezeichnung Datentyp spezifikation FC Vereinbarungsteil Anweisungsteil 8 14 Eine Funktion FC ist ein Codebaustein dem kein eigener Speicherbereich zugeordnet ist Eine FC ben tigt daher keinen Instanz DB Im Gegensatz zu einem FB kann eine Funktion ein Funktionsergebnis R ckgabewert an den Aufrufpunkt zur ckliefern Die Funktion kann daher wie eine Variable in einem Ausdruck verwendet werden Funktionen vom Typ VOID haben keinen R ck gabewert Funktion Datentyp spezifikation FC BEZEICHNUNG C ee BEGIN N Anweisungsteil END_FUNCTION 5 Bild 8 11 Syntax Funktion FC Geben Sie nach dem Schl sselwort FUNCTION als FC Bezeichnung das Schl sselwort FC und dahinter die Bausteinnummer oder nur den symbolischen Namen der FC an Beispiele FUNCTION FC100 FUNCTION DREHZAHL Hier geben Sie den Datentyp des R ckgabewertes an Zugelassen sind dabei alle Datentypen die in Kapitel 9 beschrieben sind mit Ausnahme der Datentypen STRUCT und ARRAY Die Angabe eines Datentyps entf llt wenn mit VOID auf den R ckgabewert verzichtet wird Die zul ssigen Vereinbarungsbl cke entnehmen Sie bitte Kapitel 8 4 Innerhalb des Anweisungsteils mu dem Funktionsnamen das Funktions ergebnis zugewiesen werden Eine g ltige Anweisung innerhalb einer Funktion mit der Beze
45. 13 2 veranschaulichen Beachten Sie dabei da der Exponent insbesondere auch mit erweiterten Variablen gebildet werden kann Exponent gt Erweiterte Variable gt il DEZIMAL ZIFFERNFOLGE DEZIMAL ZIFFERNFOLGE O Bild 13 6 Syntax Exponent MESSWERT 2 Potenzausdruck DIFFERENZ x DB1l0 EXPONENT Potenzausdruck SUMME FC100 Potenzausdruck Beispiel 13 5 Potenzausdr cke mit verschiedenen Exponenten SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 9 Anweisungen Ausdr cke und Operatoren 13 5 Vergleichsausdr cke Definition Vergleichs operationen Regeln 13 10 Ein Vergleichsausdruck ist ein mit Vergleichsoperatoren gebildeter Ausdruck vom Typ BOOL Vergleichsausdr cke werden durch Kombinationen von Operanden desselben Typs oder derselben Typklasse mit den in Bild 13 7 aufge f hrten Operatoren gebildet Vergleichsoperator Bild 13 7 Syntax Vergleichsoperator Vergleichsoperatoren vergleichen ihre beiden Operanden bez glich ihres numerischen Wertes 1 Operand Operator 2 Operand gt boolescher Wert Als Ergebnis erh lt man einen Wert der entweder wahr oder falsch ist Der Wert ist wahr TRUE falls der Vergleich erf llt ist und falsch FALSE wenn er nicht erf llt ist Die folgenden Regeln m ssen bei der Bildung von Vergleichsausdr cken beach
46. 18 Zeit als Impuls starten 17 16 Zeit als speicherne Einschaltverz gerung star ten 17 19 Zeit als verl ngerten Impuls starten 17 17 17 15 1 Zeitbasis Aufl sung 17 15 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Stichwortverzeichnis Zeitbasis f r S5 TIME 17 15 Zeiten Komponenten 17 14 berblick 17 22 Zeitoperationen Zeit als Ausschaltverz gerung starten 17 20 Zeit als Einschaltverz gerung starten 17 18 Zeit als Impuls starten 17 16 Zeit als speichernde Einschaltverz ge rung starten 17 19 Zeit als verl ngerten Impuls starten 17 17 Zeitwert 17 14 Bereich 17 14 17 22 Syntax 17 14 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Zeitfunktionen 17 10 Zeittypen 9 3 Zeitwert Syntax 17 14 Ziffernfolge 11 4 Zugriff auf globale Daten 12 2 12 3 Zugriffsart bersicht 12 2 Zusammenfassung Daten global vereinbaren 12 1 Zusammengesetzte Datentypen 7 13 9 4 Zuweisung einfacher Variablen 14 3 Zuweisungszeichen 14 2 Index 7 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 SE 2 02 007 7000 0700 0000 0000 0000 0000 0000 00000000000 000000000000 000000000000 An Siemens AG AUTE 146 stliche Rheinbr ckenstr 50 76181 Karlsruhe Absender Ihr Name Ihre Funktion Ihre Firma Stra e Ort Telefon Bitte kreuzen Sie Ihren zutreffenden In
47. 3 Kontrollanweisungen 15 2 IF Anweisung Prinzip Ausf hrung 15 4 Die IF Anweisung ist eine bedingte Anweisung Sie bietet eine oder mehrere Optionen und w hlt eine gegebenenfalls auch keine ihrer Anweisungsteile zur Ausf hrung an IF Anweisung u Ausdruck THEN Anwersungs Bedingung Bedingung j ELSIF Ausdruck THEN A Anweisungs I ELSE Sil g END_IF gt Bild 15 1 Syntax IF Anweisung Die Ausf hrung der bedingten Anweisung bewirkt die Auswertung der angegebenen logischen Ausdr cke Ist der Wert eines Ausdrucks TRUE so gilt die Bedingung erf llt bei FALSE als nicht erf llt Die IF Anweisung wird nach den folgenden Regeln bearbeitet 1 Ist der Wert des ersten Ausdrucks TRUE so wird der nach THEN folgende Anweisungsteil ausgef hrt andernfalls werden die Ausdr cke in den ELSIF Zweigen ausgewertet 2 Falls in den ELSIF Zweigen kein boolescher Ausdruck TRUE ist wird die Anweisungsfolge bei ELSE ausgef hrt oder keine Anweisungsfolge falls der ELSE Zweig nicht vorhanden ist Es d rfen beliebig viele ELSIF Anweisungen vorhanden sein Beachten Sie da die ELSIF Zweige und oder der ELSE Zweig fehlen k nnen Diese F lle werden behandelt als w ren diese Zweige mit leeren Anweisungen vorhanden Hinweis Beachten Sie da die Anweisung END_IF mit einem Semikolon abzuschlie en ist SCL f r S
48. 4 werden diese Datenelemente unmittelbar nach dem Schl ssel wort STRUCT in der Komponentendeklaration angegeben Insbesondere kann ein Datenelement des Datentyps STRUCT selbst wieder strukturiert sein Damit ist die Schachtelung von Strukturen zul ssig In Kapitel 10 erfahren Sie wie Sie auf die Daten einer Struktur zugreifen k nnen STRUCT Datentypspezifikation Komponenten STRUCT deklaration 5 END_STRUCT Bild 9 4 Syntax STRUCT Datentypspezifikation Das ist eine Auflistung der verschiedenen Komponenten zu einer Struktur Nach dem Syntaxdiagramm 9 5 besteht diese Auflistung aus e bis n Bezeichnern e dem zugeordneten Datentyp e einer optionellen Vorbesetzung mit Anfangswerten Komponentendeklaration Datentyp Datentyp D gt BEZEICHNER spezifikation gt initialisierung Komponenten name Bild 9 5 Syntax Komponentendeklaration Das ist der Name eines Strukturelements f r das die nachfolgende Datentyp spezifikation gelten soll SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen Datentyp Sie k nnen optionell nach der Datentypspezifikation ein einzelnes Struktur initialisierung element mit einem Anfangswert belegen Diese Zuordnung erfolgt ber eine Wertzuweisung und ist in Kapitel 10 beschrieben Beispiel Das Beispiel zeigt ihnen eine m gliche Definition eines STRUCT Datentyps STRUCT ANFANG Komponentendeklaration Al INT A2
49. 5 Kontinuierlich beobachten Referenzdaten erzeugen Variablen beobachten steuern 6 8 Testmodi Debugger Text Dateien Struktur TIMER Parametertyp Timer und Counter 9 12 Titelzeile 4 3 U ber geben von Parametern Parametertypen 7 13 9 12 bersetzungsvorgang bersicht Daten global Anwenderdaten 12 2 Speicherbereiche CPU 12 2 Installation Zugriffsart 12 2 UDT Aufruf Definition 8 19 Elemente Unterbrechung eines Strings Unterprgrammbearbeitung 8 11 V Variable tempor re Variablen beobachten steuem ig amp statische 7 1410 210 8 Pa nen a Daten AN Zusammenfassung 12 1 Vereinbarte Datenbereiche 12 2 Index 6 Vereinbarung Labels 11 14 Sprungmarken Vereinbarungsbl cke 10 3 FB 8 12 8 14 OB 8 16 Vereinbarunsgsteil Vergleiche Vergleichsausdruck 1 Verkn pfung logisch Verwendung GOTO rechte WwW Wertzuweisung 8 11 14 1 Felder 1 globale Tee ander ate en 14 11 globale Sn 14 10 Strukturen an 4 Teilfelder 14 6 WHILE Amici 1S2 10 15 2 15 10 Wiederholungsanwei 4521340 verlassen Windows 95 1 Z Z hlen abw rts aufw rts aufw rts abw rts 17 8 Z hlerwert Auswertung Eingabe 17 6 Z hlfunktionen 17 2 Zeichenliterale druckbare Zeichen 11 8 nicht druckbare Zeichen 11 7 11 9 Zeichentypen Zeilenkommentar Zeit als Ausschaltverz gerung starten 17 20 Zeit als Einschaltverz gerung starten 17
50. 7 Programmiersprache AWL Anweisungsliste r ck bersetzt werden Die R ck bersetzung nach SCL ist nicht m glich Kompatibilit t mit Bausteine die Sie mit SCL in STEP 5 programmiert haben sind von einigen STEP5 Ausnahmen abgesehen aufw rtskompatibel d h diese Bausteine k nnen auch mit SCL f r STEP 7 editiert bersetzt und getestet werden Programmier SCL unterst tzt durch moderne Methoden des Software Engineerings die methoden strukturierte Programmierung Erlernbarkeit SCL ist mit etwas Erfahrung in einer h heren Programmiersprache leicht erlernbar denn das Repertoire der in SCL zur Verf gung stehenden Sprachkonstrukte orientiert sich an h heren Programmiersprachen SCL f r S7 300 400 Bausteine programmieren 1 4 C79000 G7000 C522 01 Produkt bersicht 1 3 Leistungsmerkmale der Entwicklungsumgebung Editor Der SCL Editor ist ein Texteditor mit dem beliebige Texte bearbeitet werden k nnen Die zentrale Aufgabe die Sie mit ihm durchf hren ist das Erzeugen und Bearbeiten von Quelldateien f r STEP 7 Programme In einer Quelldatei k nnen Sie einen oder mehrere Bausteine programmieren Baustein 1 Baustein i Quelldatei j Quelldatei 1 Bild 1 2 SCL Editor Der SCL Editor erlaubt das Editieren einer kompletten Quelldatei mit einem oder mehreren Bausteinen das Editieren einer bersetzungssteuerdatei mit der Sie das bersetzen mehrerer Quelldat
51. BLOCK_DB und TIMER FUNCTION FC100 VOID VAR_IN_OUT in out ANY ND_VAR VAR_TEMP ret INT END_VAR BEGIN Efes ret SFC20 DSTBLK out SCRBLK in LEEF END_FUNCTION 2 FUNCTION_BLOCK FB100 VAR ii1 INT aa bb ARRAY 1 1000 OF REAL END_VAR BEGIN VE FC100 in aa out bb la END_FUNCTION_BLOCK Beispiel 9 4 Datentyp ANY SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 9 15 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung lokaler Variablen und Bausteinparameter bersicht Lokale Variablen und Bausteinparameter sind Daten die innerhalb eines Code bausteins FC FB OB vereinbart werden und nur f r diesen Codebaustein G ltigkeit haben Dieses Kapitel informiert Sie ber die Vereinbarung und die Initialisierung dieser Daten Kapitel bersicht Im Kapitel finden Sie auf Seite 10 1 bersicht 10 2 Variablendeklaration 10 4 10 3 Initialisierung 10 5 10 4 Instanzdeklaration 10 5 Statische Variablen 10 8 10 6 Tempor re Variablen 10 9 10 7 Bausteinparameter 10 10 10 8 Flags OK Flag 10 12 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 10 1 Vereinbarung lokaler Variablen und Bausteinparameter 10 1 bersicht Einteilung der Variablen Einteilung der Bausteinparameter Flags OK Flag 10 2 Tabelle 10 1 zeigt in welche Kategorien sich die lokalen Variablen einte
52. Bausteine im Betriebszustand STOP ist vorteilhaft da beim berschreiben eines alten Programms im Betriebszustand RUN Fehler entstehen k nnen Gehen Sie folgenderma en vor 1 W hlen Sie den Men befehl Zielsystem gt Laden 2 Ist der Baustein schon im RAM der CPU vorhanden best tigen Sie nach R ckfrage ob der Baustein berschrieben werden soll SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 5 9 Programmieren mit SCL 5 7 Erstellen einer bersetzungssteuerdatei bersicht bersetzungs steuerdatei Erstellen bersetzen 5 10 Die bersetzung von mehreren SCL Quellen k nnen Sie automatisieren indem Sie eine bersetzungssteuerdatei anlegen F r Ihr STEP 7 Projekt k nnen Sie eine bersetzungssteuerdatei anlegen Dort tragen Sie die Namen von SCL Quellen ein die sich im Projekt befinden Diese SCL Quellen sollen in einem Batchlauf bersetzt werden Das Erstellen f hren Sie in folgenden Schritten durch e Beim Erzeugen einer Datei mit Neu oder beim ffnen m ssen Sie den Filter f r bersetzungssteuerdatei anlegen e Die Datei mit der Sie jetzt arbeiten hat als spezielles Kennzeichen die Extension inp e Wenn Sie diese Datei bersetzen werden die ber ihre Namen angegebenen Dateien der Reihe nach bersetzt Beim bersetzen werden die erzeugten Bausteine im Beh lter Bausteine des S7 Programms abgelegt SCL f r S7 300 40
53. Bausteinfreigabe SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung einer Sprungmarke Tabelle A 7 SCL Schl sselw rter und vordefinierte Bezeichner alphabetisch geordnet Schl sselw rter Beschreibung Syntaktische Regel ENO Fehlerflag des Bausteins END_CASE Abschlu der CASE Anweisung CASE Anweisung END_CONST Abschlu bei Definition von Konstanten Konstantenblock END_DATA_BLOCK Abschlu des Datenbausteins Datenbaustein END_FOR Abschlu der FOR Anweisung FOR Anweisung END_FUNCTION Abschlu der Funktion Funktion END_FUNC Abschlu des Funktionsbausteins Funktionsbaustein TION_BLOCK END_IF Abschlu der IF Anweisung IF Anweisung END_LABEL Abschlu des Sprungmarkenblocks Sprungmarkenblock END_TYPE Abschlu des UDT Anwenderdefinierter Datentyp END_ORGANIZA Abschlu des Organisationsbausteins Organisationsbaustein TION_BLOCK END_REPEAT Abschlu der REPEAT Anweisung REPEAT Anweisung END_STRUCT Abschlu der Spezifikation einer Struktur Struktur Datentyp Spezifikation END_VAR Abschlu eines Deklarationsblocks tempor rer Variablenblock statischer Variablenblock Parameterblock END_WHILE Abschlu der WHILE Anweisung WHILE Anweisung EXIT Direkter Ausstieg aus der Schleifenbearbeitung EXIT FALSE Vordefinierte boolesche Konstante Logische Bedingung nicht erf llt Wert gleich 0 FOR Einleitung der Kontrollanweisung
54. Beschreibung Funtktionsweise 17 20 Bei einem Signalzustandswechsel von 0 nach 1 am Starteingang S erscheint am Ausgang Q der Zustand 1 Wechselt der Zustand am Starteingang von 1 nach 0 wird die Zeit gestartet Erst nach Ablauf der Zeitdauer nimmt der Aus gang den Signalzustand 0 an Der Ausgang wird also verz gert abgeschaltet Bild 17 7 veranschaulicht die Funktionsweise des Zeitgliedes Zeit als Aus schaltverz gerung starten Eingangssignal E 2 1 lt A A40 S_OFFDT Ausgangssignal e t Zeit als Ausschaltverz gerung Bild 17 7 Zeitglied Zeit als Ausschaltverz gerung starten Tabelle 17 14 Funktionsweise Zeit als Ausschaltverz gerung starten Operation Funktionsweise Zeit starten Die Operation Zeit als Ausschaltverz gerung starten startet die angegebene Zeit wenn der Signalzustand am Starteingang S von 1 auf 0 wechselt Es ist immer ein Signalwechsel erforderlich um die Zeit freizugeben Zeit neu starten Die Zeit wird wieder neu gestartet wenn der Signalzustand an Ein gang S erneut von 1 auf 0 wechselt z B nach dem R cksetzen Laufzeitfestlegen Die Zeit l uft mit dem Wert der an Eingang TV angegeben ist R cksetzen Wechselt der R cksetzeingang R von 0 auf 1 w hrend die Zeit l uft wird die Zeit zur ckgesetzt Signalzustand ab Eine Signalzustandsabfrage nach
55. Familie eines Bausteins k nnen Sie mit Hilfe von Schl sselw rtern angeben berschrift mE OO en EC Version DEZIMAL DEZIMAL CH Q EA ZIFFERNFOLGE Bausteinschutz KNOW_HOW_PROTECTI Author max 8 Zeichen C BEZEICHNER gt Name max 8 Zeichen C BEZEICHNER gt Bausteinfamilie max 8 Zeichen BEZEICHNER gt Bild 8 4 Syntax Bausteinattribute SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 5 Aufbau einer SCL Quelldatei Systemattribute f r Bausteinen k nnen Sie au erdem noch Systemattribute z B f r die Leit Bausteine technikprojektierung zuweisen Systemattribute f r Bausteine max 24 Zeichen BEZEICHNER aunors eichen Bild 8 5 Syntax Systemattribute f r Bausteine Tabelle 8 2 zeigt welche Systemattribute f r Bausteine Sie bei SCL vergeben k nnen Tabelle 8 2 Systemattribute f r Bausteine Attribut Dieses Attribut vergeben Sie wenn Een Bausteintyp S7_m_c true false der Baustein von einem Bedien und Beobachtungsger t aus bedient oder beobachtet werden soll S7_tasklist tasknamel der Baustein au er in zyklischen taskname2 etc Organisationsbausteinen auch in anderen OBs z B Fehler oder Anlauf OBs auf gerufen werden soll S7_block big small der Baustein an einem Bedien und FB FC view Beobachtungsger t in gro em oder kleinem Format dargeste
56. Hilfe Da e ej jej X Eef cll x ARAR E Dr cken Sie F1 um Hilfe zu erhalten a 4 Bild 4 1 SCL Fenster Hinweis N here Informationen ber Standardbedienungen und optionen von Windows 95 finden Sie in Ihrem Windows Benutzerhandbuch oder online im Windows 95 Lernprogramm SCL f r S7 300 400 Bausteine programmieren 4 2 C79000 G7000 C522 01 Bedienen von SCL 4 2 Anpassen der Bedienoberfl che bersicht Titelzeile Men leiste Funktionsleiste gt Arbeitsbereich Statuszele Die SCL Fenster bestehen wie andere STEP 7 Fenster aus den folgenden Standardkomponenten siehe Bild 4 2 e Titelzeile enth lt den Fenstertitel und Symbole f r die Fenstersteuerung e Men leiste enth lt alle Men s die im Fenster zur Verf gung stehen e Funktionsleiste enth lt Symbole ber die Sie h ufig verwendete Befehle schnell ausf hren k nnen e Arbeitsbereich enth lt die verschiedenen Fenster in denen Sie den Programmtext editieren oder Compiler und Testinformationen ablesen k nnen e Statuszeile zeigt den Status und weitere Informationen zum ausgew hlten Objekt an SCL S7 Bausteine programmieren Datei Ansicht Hilfe a osal a aef en X
57. MOD DIV kx Arithmetische Operatoren Potenzoperator Ausdruck NOT Logische Operatoren Negation Ausdruck Operand AND amp OR XOR Logische Basisoperatoren Logischer Basisoperator lt gt lt gt lt gt Vergleichsoperator Vergleichsoperator SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung A 5 Schl sselw rter und vordefinierte Bezeichner Schl sselw rter und Vordefinierte Bezeichner In Tabelle A 7 finden Sie Schl sselw rter von SCL und vordefinierte Bezeichner alphabetisch aufgelistet Dazu wird eine Beschreibung sowie die syntaktische Regel aus Anhang C angegeben in der sie als Terminale verwendet werden Schl sselw rter sind generell unabh ngig von der Mnemonik Tabelle A 7 SCL Schl sselw rter und vordefinierte Bezeichner alphabetisch geordnet Schl sselw rter Beschreibung Syntaktische Regel AND Logischer Operator Logischer Basisoperator ANY Bezeichnung f r ANY Datentyp Parameter Datentyp Spezifikation ARRAY Einleitung der Spezifikation eines Arrays Array Datentyp Spezifikation danach folgt zwischen und die Indexliste BEGIN Einleitung Anweisungsteil bei Codebausteinen Organisationsbaustein Funktion oder Initialisierungsteil bei Datenbaustein Funktionsbaustein Datenbaustein BLOCK_DB Bezeichnung f r Datentyp BLOCK_DB Para
58. Peripherie direkt Wort PEBx PIBx Eingang Peripherie direkt Byte PEDx PIDx Eingang Peripherie direkt Doppelwort PEWx PIWx Eingang Peripherie direkt Wort PEWx PIWx Eingang Peripherie direkt Wort PEWx PIWx Eingang Peripherie direkt Wort x Zahl zwischen 0 und 65535 absolute Byteadresse y Zahl zwischen 0 und 7 Bitnummer G ltige Beispiele sind E1l O MW10 PAW5 DB20 DW3 1 Diese Operandenkennzeichen gelten nur zusammen mit der Angabe des Datenbausteins SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 76 Zahlen bersicht Integerzahlen Integerzahlen als bin r oktal oder hexadezimale Zahl Realzahlen 7 10 Zahlen k nnen in SCL unterschiedlich geschrieben werden Eine Zahl kann wahlweise ein Vorzeichen einen Dezimalpunkt oder einen Exponenten beinhalten Die folgenden Aussagen gelten f r alle Zahlen e Kommata und Leerzeichen d rfen nicht innerhalb einer Zahl vorhanden sein e Zur optischen Trennung ist der Unterstrich _ erlaubt e Der Zahl kann wahlweise ein plus oder minus vorangestellt werden Falls kein Vorzeichen bei der Zahl steht wird sie als positiv angenommen e Zahlen d rfen bestimmte Maximal und Minimalwerte nicht ber bzw unterschreiten Eine Integerzahl enth lt weder einen Dezimalpunkt noch einen Exponenten Somit ist eine Integerzahl einfach eine Folge von Ziffern die wahlweise mit einem Vorzeichen be
59. Position der Markierung wird implizit ein Haltepunkt gesetzt und aktiviert Die CPU geht in den Betriebszustand RUN ber Beim Erreichen der Markierung h lt sie erneut und markiert diesen Haltepunkt Um die Variableninhalte anzuzeigen m ssen Sie wieder den Men befehl Test N chste Anweisung ausf hren w hlen Gehen Sie zur ck nach 2 wenn Sie mit ver nderten Haltepunkten weiter testen wollen Bei 2 k nnen sie neue Haltepunkte setzen oder auch vor handene Haltepunkte l schen W hlen Sie den Men befehl Test gt Haltepunkte aktiv an um die Testschleife zu unterbrechen Wenn Sie keine weiteren Anweisungen in der Quelle testen wollen been den Sie den Test indem Sie den Men befehl Test Test beenden w hlen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Testen eines Programmes Testablauf in Einzelschritten Neue Haltepunkte ja Beginn SCL Quelle Fenster der Haltepunkte setzen SCL Quelle bzw l schen 3 Einzelschrittablauf Haltepunkte aktiv starten z 4a Variableninhalte ausgeben N chste Anweisung ausf hren geteiltes Fenster Einzelschrittfunktion 4b Zum n chsten Haltepunkt Fortsetzen Beobachten der SCL Quelle Ausf hren bis Markierung 4c Zum Haltepunkt an Markierung ja wiederholen nein Einzelschrittablauf unterbrechen ja wiederholen nein 6 Fensterteilun
60. Proze abbild Bit EB IB Eingang ber Proze abbild Byte ED ID Eingang ber Proze abbild Doppelwort EW IW Eingang ber Proze abbild Wort EX TX Eingang ber Proze abbild Bit M M Merker Bit MB MB Merker Byte MD MD Merker Doppelwort MW MW Merker Wort MX MX Merker Bit PAB POB Ausgang Peripherie direkt Byte PAD POD Ausgang Peripherie direkt Doppelwort PAW POW Ausgang Peripherie direkt Wort PEB PIB Eingang Peripherie direkt Byte PED PID Eingang Peripherie direkt Doppelwort PEW PIW Eingang Peripherie direkt Wort SCL f r S7 300 400 Bausteine programmieren A 12 C79000 G7000 C522 01 Formale Sprachbeschreibung Baustein schl sselw rter Werden f r die absolute Adressierung von Bausteinen verwendet Die Tabelle ist nach der SIMATIC Mnemonik sortiert die entsprechende IEC Mnemonik wird dazu angegeben Tabelle A 9 _Bausteinschl sselw rter sowie Z hler und Zeitglied SIMATIC IEC Speicher Pr fix oder Datenbaustein Mnemonik Mnemonik DB DB Datenbaustein Data_Block FB FB Funktionsbaustein Function_Block FC FC Funktion Function OB OB Organisationsbaustein Organization_Block SDB SDB Systemdatenbaustein System_Data_Block SFC SFC Systemfunktion System_Function SFB SFB Systemfunktionsbaustein System_Function_Block T T Zeitglied Timer UDT UDT globaler bzw anwenderdefinierter Datentyp Userdefined_Data_Type Z C Z hler Counter
61. S7 300 400 Bausteine programmieren 11 12 C79000 G7000 C522 01 Vereinbarung von Konstanten und Sprungmarken Tageszeit Eine Tageszeit wird durch den Pr fix TIME_OF_DAY oder TOD eingeleitet siehe Bild 11 17 TAGESZEIT TIME_OF_DAY I Tageszeitangabe TOD Bild 11 17 Syntax Tageszeit Die Tageszeitangabe erfolgt durch die Angabe der Stunden Minuten und der Sekunden die durch Doppelpunkt zu trennen sind Die Angabe der Milli sekunden ist optional Sie wird durch einen Punkt von den anderen Angaben getrennt Bild 11 18 zeigt die Syntax der Tageszeitangabe Tageszeitangabe DEZIMAL 3 DEZIMAL gt ZIFFERNFOLGE ZIFFERNFOLGE Stundenangabe Minutenangabe DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE Sekundenangabe Millisekundenangabe Bild 11 18 Syntax Tageszeitangabe G ltige Angaben sind Tageszeitangabe UHRZEIT1 TIME_OF_DAY 12 12 12 2 UHRZEIT2 OD 11 11 11 200 Datum und Zeit Eine Datums und Zeitangabe wird durch den Pr fix DATE_AND_TIME oder DT eingeleitet siehe Bild 11 19 Sie ist ein aus der Datumsangabe und der Tageszeitangabe zusammengesetztes Literal DATUM UND ZEIT DATE_AND_TIME Datumsangabe 5 Tageszeitangabe DT Bild 11 19 Syntax Datum und Zeit Das Beispiel verdeutlicht die Angabe von Datum und Zeit Tageszeitangabe UHRZEIT1 DA
62. STRING 254 A3 ARRAY 1 12 OF REAL Komponentennamen Datentypspezifikationen S ENDE Komponentendeklaration END_STRUCT Beispiel 9 1 Definition eines STRUCT Datentyps SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 9 9 Datentypen 9 4 Anwenderdefinierter Datentyp UDT bersicht UDT Bezeichnung Datentyp spezifikation Verwendung eines UDT 9 10 Einen Datentyp UDT definieren Sie als Baustein siehe Kapitel 8 Dieser Datentyp ist nach seiner Definition im gesamten Anwenderprogramm verwend bar und somit ein globaler Datentyp Sie k nnen diese Datentypen mit seiner UDT Bezeichnung UDTx x steht f r eine Nummer oder unter einem zugeord neten symbolischen Namen im Vereinbarungsteil eines Bausteins oder Daten bausteins verwenden Anwenderdefinierter Datentyp UDT Struktur TYPE Datentyp END_TYPE BEZEICHNUNG spezifikation Bild 9 6 Syntax Anwenderdefinierter Datentyp UDT Eine Vereinbarung eines UDT wird durch das Schl sselwort TYPE eingeleitet gefolgt vom Namen des UDT UDT Bezeichner Der Name des UDT kann entweder absolut d h durch einen Standardnamen der Form UDTx x ist eine Nummer angegeben werden oder es kann ein symbolischer Name verwendet werden siehe auch Kapitel 8 Nach der UDT Bezeichnung folgt die Spezifikation des Datentyps Hier ist nur die STRUCT Datentypspezifikation siehe Kapitel 9 3 4 zugelassen STRUCT END_S
63. Schl sselwort DB und dahinter die Bausteinnummer oder einfach den symbolischen Namen des DB an Beispiel DATA_BLOCK DB20 DATA_BLOCK MESSBEREICH Im DB Vereinbarungsteil definieren Sie die Datenstruktur des DB Einer DB Variablen kann entweder ein strukturierter Datentyp STRUCT oder ein anwenderdefinierter Datentyp UDT zugeordnet werden DB Vereinbarungsteil T BEZEICHNUNG ZZ Struktur Datentyp spezifikation li Bild 8 14 Syntax DB Vereinbarungsteil Beispiel DATA_BLOCK DB20 STRUCT Vereinbarungsteil WERT ARRAY 1 100 OF INT END_STRUCT BEGIN Anfang Zuweisungsteil El ND_DATA_BLOCK Ende Datenbaustein SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 17 Aufbau einer SCL Quelldatei DB Zuweisungsteil Beispiel 8 18 Sie k nnen die Daten die Sie im Vereinbarungsteil vereinbart haben f r Ihren speziellen Anwendungsfall mit einzelnen DB spezifischen Werten anpassen Der Zuweisungsteil beginnt mit dem Schl sselwort BEGIN und besteht dann aus einer Folge von Wertzuweisungen mit folgender Syntax DB Zuweisungsteil Fr Einfache Variable H Konstante G gt Bild 8 15 Syntax DB Zuweisungsteil Hinweis Bei der Vergabe von Anfangswerten Initialisierung der Angabe von Attribu ten und der Angabe von Kommentaren innerhalb eines DB gilt die Syntax von AWL Informationen ber
64. Spezialzeichen beschrieben wird Schl sselw rter und Vordefinierte Bezeichner Die Angaben zu diesen Bl cken sind unver ndert zu ber Token nehmen ung lt Regelname gt Regelname immer in Gro buchstaben Zusammengesetztes Element das in den syntaktischen Regeln als Grundelement verwendet wird und in den lexikalischen Regeln erkl rt wird Bild A 2 Symbolarten von Bl cken SCL f r S7 300 400 Bausteine programmieren A 2 C79000 G7000 C522 01 Formale Sprachbeschreibung Regeln Die Regeln die Sie f r den Aufbau Ihres SCL Programms verwenden K nnen sind in die Stufen lexikalische und syntaktische Regeln eingeteilt Lexikalische Die lexikalischen Regeln beschreiben die Struktur der Elemente Token die bei Regeln der Lexikalanalyse des Compilers bearbeitet werden Daher ist die Schreibweise nicht formatfrei und die Regeln sind streng einzuhalten Das bedeutet insbesondere e Einf gen von Formatierungszeichen ist nicht erlaubt e Block und Zeilenkommentare k nnen nicht eingef gt werden e Attribute zu Bezeichnern k nnen nicht eingef gt werden BEZEICHNER gt C Buchstabe Bar Buchstabe jy Unterstrich Unterstrich Bild A 3 Beispiel f r lexikalische Regel Das Beispiel zeigt die lexikalische Regel BEZEICHNER Sie beschreibt den Aufbau eines Bezeichners Namen z B MESS_FELD_12 SOLLWERT_B_1 Syntaktische Aufbauend auf
65. als lokale Instanz SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 3 Aufruf von Funktionen R ckgabewert Im Gegensatz zu den Funktionsbausteinen liefern Funktionen als Ergebnis den R ckgabewert Aus diesem Grund k nnen Funktionen wie Operanden behandelt werden Eine Ausnahme bildet die Funktion mit dem R ckgabewert vom Typ VOID In der folgenden Wertzuweisung wird z B die Funktion ABSTAND mit bestimmten Parametern aufgerufen LAENGE ABSTAND X1 3 Yl 2 T R ckgabewert ist ABSTAND Die Funktion berechnet den R ckgabewert der den gleichen Namen tr gt wie die Funktion und gibt ihn an den aufrufenden Baustein zur ck Dort ersetzt der Wert den Funktionsaufruf Der R ckgabewert kann in folgenden Elementen einer FC oder eines FB verwendet werden e in einer Wertzuweisung e in einem logischen arithmetischen oder Vergleichsausdruck e als Parameter f r einen weiteren Funktionsbaustein Funktions Aufruf Eine Ausnahme bilden die Funktionen vom Typ VOID Sie haben keinen R ck gabewert und k nnen somit nicht in Ausdr cken verwendet werden Bild 16 10 veranschaulicht die Syntax eines Funktionsaufrufs Funktionsaufruf FC BEZEICHNUNG FC Parameter SFC gt BEZEICHNUNG Q BEZEICHNER Standardfunktionsname oder symbolischer Name FC Funktion SFC Systemfunktion im Compiler realisier
66. an eine Variable gibt es zwei Varianten Sie k nnen komplette Felder oder Teilfelder referenzieren Ein Komplettes Feld referenzieren Sie indem Sie den Variablennamen des Feldes angeben feldname_1 Ein einzelnes Feldelement wird mit dem Feldnamen gefolgt von Indexwerten in eckigen Klammern angesprochen F r jede Dimension steht ein Index zur Verf gung Sie werden durch Komma getrennt und ebenfalls in eckige Klammern eingeschlossen Ein Index mu ein arithmetischer Ausdruck vom Datentyp INT sein feldname_1 2 feldname_1 4 5 Ein komplettes Feld ist einem anderen Feld zuweisbar wenn sowohl die Daten typen der Komponenten als auch die Feldgrenzen kleinst und gr tm gliche Feldindizes bereinstimmen G ltige Zuweisungen sind feldname_1 feldname_2 Eine Wertzuweisung f r ein zul ssiges Teilfeld erhalten Sie indem Sie in den eckigen Klammern hinter dem Namen des Feldes von rechts beginnend Indizes weglassen Damit sprechen Sie einen Teilbereich an dessen Dimensionsanzahl gleich der Anzahl der weggelassenen Indizes ist Daraus ergibt sich da Sie in einer Matrix zwar Zeilen und einzelne Komponen ten aber keine Spalten geschlossen referenzieren k nnen geschlossen hei t von bis G ltige Zuweisungen sind feldname_1 i feldname_2 j feldname_1 i ausdruck bezeichner_1 feldname_1 i SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Wertzuweisungen Die Wer
67. angezeigt Das Ab fragen geschieht w hrend der Beobachtungsbereich durchlaufen wird und bewirkt meist eine Verl ngerung der Zykluszeiten Damit Sie diese Verl ngerung beeinflussen k nnen bietet SCL zwei verschiedene Testumgebungen an Testumgebung Proze In der Testumgebung Proze schr nkt der SCL Debugger den maximalen Beobachtungsbereich so ein da die Zykluszeiten beim Testvorgang die realen Ablaufzeiten des Prozesses nicht oder nur unwesentlich berschreiten Testumgebung Labor In der Testumgebung Labor wird der Beobachtungsbereich lediglich durch die Leistungsf higkeit der angeschlossenen CPU begrenzt Die Zykluszeiten k nnen sich jedoch gegen ber dem realen Proze verl ngern wobei der maximale Beobachtungsbereich gr er ist als in der Testumgebung Proze SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 6 3 Testen eines Programmes Wie verwenden Sie Gehen Sie folgenderma en vor um die Funktion Kontinuierlich Kontinuierlich beobachten auszuf hren nr baobachten 1 Stellen Sie sicher da die in Kapitel 6 1 genannten Voraussetzungen erf llt sind 2 W hlen Sie das Fenster aus das die Quelle des zu testenden Programms enth lt 3 Wenn Sie die voreingestellte Testumgebung Proze ndern wollen w hlen Sie den Men befehl Test gt Testumgebung gt Labor 4 Positionieren Sie die Einf gemarke in der Zeile des Qu
68. auch gelesen werden Durchgangsparameter Durchgangsparameter bernehmen beim Aufruf den aktuellen Wert einer Variablen verarbeiten diesen und legen anschlie end die Ergebnisse wieder in der gleichen Variablen ab Der SCL Compiler bietet ein Flag an das zur Erkennung von Fehlern bei der Ausf hrung von Programmen in der CPU dient Es ist eine lokale Variable vom Typ BOOL mit dem vordefinierten Namen OK SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung lokaler Variablen und Bausteinparameter Variablen und Tabelle 10 3 zeigt da jeder Kategorie der lokalen Variablen oder Parameter ein Parameter eigener Vereinbarungsblock und ein eigenes Schl sselwortpaar zugeordnet ist yereinbarung Jeder Block enth lt die Deklarationen die f r diesen Vereinbarungsblock erlaubt sind Er darf im Vereinbarungsteil des Bausteins nur einmal vorkommen wobei die Reihenfolge dieser Bl cke beliebig ist Die in einem Baustein zugelassenen Vereinbarungsbl cke sind in der Tabelle 2 10 3 mit einem x gekennzeichnet Tabelle 10 3 _Vereinbarungsbl cke f r lokale Variablen und Parameter Daten Syntax FB FC OB VAR Statische Variable X xD END_VAR VAR_TEMP Tempor re Variable X X X END_VAR Bausteinparameter als VAR_INPUT Ei X X ingangsparameter END_VA VAR_OUTPUT Ausgangsparameter X X END_VAR VAR_IN_OUT Durchgangsparameter X X END_VA
69. benutzen Anwenderdefinierter Datentyp dr Struktur TYPE Datentyp END_TYPE BEZEICHNUNG Spezifikation Bild 8 16 Syntax Anwenderdefinierter Datentyp UDT Geben Sie nach dem Schl sselwort TYPE das Schl sselwort UDT und dahinter eine Nummer oder einfach den symbolischen Namen des UDT an Beispiele YPE UDT10 YPE VERSORGUNGSBLOCK Die Spezifikation des Datentyps erfolgt immer mit Hilfe einer STRUCT Daten typspezifikation Der Datentyp UDT kann in den Vereinbarungsbl cken von Codebausteinen oder in Datenbausteinen verwendet bzw DB zugeordnet werden Die zul ssigen Vereinbarungsbl cke und weitere Informationen entnehmen Sie bitte dem Kapitel 9 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 19 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen bersicht Kapitel bersicht SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Ein Datentyp ist die Zusammenfassung von Wertebereichen und Operationen zu einer Einheit SCL besitzt wie die meisten anderen Programmiersprachen vordefinierte d h in die Sprache eingebaute Datentypen Dar berhinaus kann der Programmierer zusammengesetzte und anwenderdefinierte Daten typen bilden Im Kapitel finden Sie auf Seite 9 1 bersicht 9 2 9 2 Elementare Datentypen 9 3 9 3 Zusammengesetzte Datentypen 9 4 9 3 1 Datentyp DATE_AND_TIM
70. bietet jedoch nur eine Verarbeitungsm glichkeit des Datentyps ANY an das Weiterreichen an unterlagerte Bausteine In SCL k nnen Sie Operanden der folgenden Datentypen als Aktual parameter zuordnen e Elementare Datentypen Sie geben die absolute Adresse oder den symbolischen Namen des Aktual parameters an e Zusammengesetzte Datentypen Sie geben den symbolischen Namen der Daten mit zusammengesetztem Datentyp an z B Felder und Strukturen e Datentyp ANY Dies ist nur m glich wenn der Operand ein Formalparameter vertr g licher Parameterart ist e Datentyp NIL Sie geben einen Nullpointer an e Zeiten Z hler und Bausteine Sie geben den Bezeichner an z B T1 Z20 oder FB6 Der Datentyp ANY ist f r formale Eingangsparameter Durchgangsparameter von FBs und FCs und f r Ausgangsparameter von FCs erlaubt Hinweis Wenn Sie beim Aufruf eines FB oder einer FC einen Formalparameter vom Typ ANY mit einer tempor ren Variablen versorgen d rfen Sie diesen Parameter in dem aufgerufenen Baustein nicht an einen weiteren Baustein durchreichen Die Adressen der tempor ren Variaben verlieren beim Durchreichen Ihre G ltigkeit SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 9 13 Datentypen POINTER 9 14 In SCL besteht die M glichkeit Bausteinparameter vom Datentyp POINTER zu vereinbaren wobei beim Aufruf eines solchen Bausteins diese Parameter mit Operanden beliebigen Datentyps verso
71. darauf da die Laufzeit der Schleifen nicht zu lang wird da sonst die CPU mit Quittungsverzug in STOP geht SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15 7 Kontrollanweisungen 15 4 FOR Anweisung Prinzip Ausf hrung 15 8 Eine FOR Anweisung oder auch Wiederholungsanweisung f hrt eine An weisungsfolge in einer Schleife aus wobei einer Variablen der Laufvariablen fortlaufend Werte zugewiesen werden Die Laufvariable mu der Bezeichner einer lokalen Variablen vom Typ INT oder DINT sein FOR Anweisung Anfangs Basis FOR Zuweisung Ausdruck f r Startwert f r Endwert Basis Anweisungs 2 Ausdruck _DO teil 2 f r Schrittweite Bild 15 4 Syntax FOR Anweisung Die Definition einer Schleife mit FOR schlie t die Festlegung eines Start und Endwertes mit ein Beide Werte m ssen typgleich mit der Laufvariablen sein Die FOR Anweisung wird nach folgenden Regeln bearbeitet 1 Beim Start der Schleife wird die Laufvariable auf den Startwert gesetzt und nach jedem Schleifendurchlauf um die angegebene Schrittweite erh ht positive Schrittweite oder erniedrigt negative Schrittweite solange bis der Endwert erreicht ist 2 Bei jedem Durchlauf wird berpr ft ob die Bedingung startwert lt Endwert erf llt ist Ist die Bedingung erf llt wird die Anweisungsfolge ausgef hrt ist die Bedingung nicht erf llt wird die Schleife
72. den lexikalischen Regeln wird in den syntaktischen Regeln die Regeln Struktur von SCL beschrieben Im Rahmen dieser Regeln k nnen Sie Ihr SCL Programm formatfrei erstellen SCL Programm Syntaktische formatfrei Regeln nicht formatfrei Lexikalische Regeln Bild A 4 Regelstufen und Formatfreiheit SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 A 3 Formale Sprachbeschreibung Formales Semantik A 4 Jede Regel hat einen Regelnamen der vorangestellt ist Wenn die Regel in einer bergeordneten Regel verwendet wird so taucht der Regelname in einem Rechteck auf Ist der Regelname in Gro buchstaben geschrieben so handelt es sich um ein Token das in den lexikalischen Regeln beschrieben wird In den Regeln kann nur der formale Aufbau der Sprache dargestellt werden Die Bedeutung d h Semantik geht nicht immer daraus hervor Deshalb wird an wichtigen Stellen Zusatzinformation neben die Regeln geschrieben Beispiele daf r sind e bei gleichartigen Elementen mit unterschiedlicher Bedeutung wird ein Zusatznamen angegeben z B in Regel Datumsangabe bei DEZIMAL ZIFFERNFOLGE Jahr Monat oder Tag Der Name deutet auf die Verwendung hin e Wichtige Einschr nkungen werden neben den Regeln vermerkt z B bei Symbol da es in der Symboltabelle definiert werden mu SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung A 2 bersicht Terminale Defin
73. des Diagnosepuffers die Ursache f r den Betriebszustand STOP feststellen k nnen den Inhalt der Stacks der CPU abfragen k nnen Insbesondere der Unterbrechungsstack ist eine wichtige Hilfe bei der Fehlersuche sich ber die technischen Daten der CPU informieren K nnen die Uhrzeit und das Datum der CPU auslesen k nnen die Zykluszeit der CPU feststellen k nnen sich ber die in der CPU enthaltenen Bausteine informieren k nnen Informationen zur Kommunikation der CPU abfragen k nnen Bei diesen Funktionen mu die CPU online sein SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Teil 3 Sprachbeschreibung Allgemeine SCL Grundbegriffe Aufbau einer SCL Quelldatei Datentypen Vereinbarung lokaler Variablen 10 und Bausteinparameter Vereinbarung von Konstanten 11 und Sprungmarken _ N Vereinbarung globaler Daten Ausdr cke Operatoren und Operanden _ 25 Wertzuweisungen 0 A Kontrollanweisungen Aufruf von Funktionen und Funktionsbausteinen Ba e gt Z hler und Zeiten SCL Standardfunktionen Aufrufschnittstelle oo N SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe bersicht Sie erfahren in diesem Kapitel welche Sprachmittel Ihnen SCL zur Verf gung stellt und wie Sie mit diesen Sprachmitteln umgehen k nnen Beachten Sie da hier nur die Grundkonzepte und notwendigen Definitione
74. die Datentyp Konvertierungs Funktionen der Klasse A dar Diese Funktionen setzt der Compiler implizit ab oder Sie k nnen sie explizit angeben Das Ergebnis ist immer definiert Tabelle 18 2 Datentyp Konvertierungs Funktionen der Klasse A Funktionsname BOOL_TO_BYTE BOOL_TO_DWORD BOOL_TO_WORD BYTE_TO_DWORD BYTE_TO_WORD Konvertierungsregel Erg nzung f hrender Nullen CHAR_TO_STRING Transformation in einen String der L nge 1 der das gleiche Zeichen enth lt DINT_TO_REAL Transformation in REAL entsprechend IEEE Norm Der Wert kann sich wegen der anderen Genauigkeit bei REAL ndern INT_TO_DINT Das h herwertige Wort des Funktionswertes wird bei einem negativen Eingangsparameter mit 16 FFFF sonst mit Nullen aufgef llt Der Wert bleibt gleich INT_TO_REAL Transformation in REAL entsprechend IEEE Norm Der Wert bleibt gleich WORD_TO_DWORD Erg nzung f hrender Nullen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 18 3 SCL Standardfunktionen und Standardfunktionsbausteine Liste der Konvertierungs Funktionen Klasse B 18 4 Tabelle 18 3 stellt die Datentyp Konvertierungs Funktionen der Klasse B dar Diese Funktionen m ssen Sie explizit angeben Das Ergebnis kann auch un definiert sein wenn die Gr e des Zieldatentyps unzureichend ist Sie k nnen diesen Fall entweder selbst berpr fen indem Sie eine Gren
75. f r den Auswahlausdruck dar Der Auswahl Ausdruck mu einen Wert vom Typ INTEGER liefern 2 Bei bereinstimmung wird der der Liste zugeordnete Anweisungsteil ausgef hrt 3 Der ELSE Zweig ist optional Er wird ausgef hrt wenn der Vergleichsvor gang keine bereinstimmung ergibt Hinweis Beachten Sie da die Anweisung END_CASE mit einem Semikolon ab zuschlie en ist SCL f r S7 300 400 Bausteine programmieren 15 6 C79000 G7000 C522 01 Kontrollanweisungen Wertliste Regeln Beispiele Sie enth lt die erlaubten Werte f r den Auswahl Ausdruck Werrtliste Integerzahl Wert Wert Bild 15 3 Syntax Wertliste Bei der Formulierung der Wertliste m ssen Sie beachten da e jede Wertliste mit einer Konstanten einer Konstantenliste oder einem Konstantenbereich beginnen kann e die Werte innerhalb der Werteliste INTEGER Werte sein m ssen e jeder Wert nur einmal vorkommen darf Beispiel 15 2 veranschaulicht den Gebrauch der CASE Anweisung Die Variable TW ist regelgem vom Typ INTEGER CASE TW OF 1 DISPLAY OVEN_TEMP 23 DISPLAY MOTOR_SPEED 3 DISPLAY GROSS_TARE AW4 16 0003 4 10 DISPLAY INT_TO_DINT TW AW4 16 0004 11 13 19 DISPLAY 99 AW4 16 0005 ELSE DISPLAY 0 TW_ERROR 1 END_CASE Beispiel 15 2 CASE Anweisung Hinweis Achten Sie
76. in S7 verf gbaren OB bearbeiten Sie entnehmen den Datenbl ttern zu Ihrer CPU welche OB Ihnen zur Verf gung stehen Weitere Informationen entnehmen Sie der Online Hilfe sowie den folgenden Handb chern 70 Handbuch Automatisierungssystem S7 300 Aufbauen CPU Daten Dieses Handbuch enth lt die Datenbl tter die den Leistungsumfang der verschiedenen S7 300 CPUs beschreiben Dazu geh ren auch die m glichen Startereignisse f r jeden OB 100 Installationshandbuch Automatisierungssystem S7 400 M7 400 Auf bauen Dieses Handbuch enth lt die Datenbl tter die den Leistungsumfang der verschiedenen S7 400 CPUs beschreiben Dazu geh ren auch die m glichen Startereignisse f r jeden OB SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 gt Formale Sprachbeschreibung Lexikalische Regeln Syntaktische Regeln i Literaturverzeichnis SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung Sprach Basis f r die Sprachbeschreibung in den einzelnen Kapiteln sind Syntax beschreibung von diagramme Sie geben Ihnen einen guten Einblick in den syntaktischen d h SCL grammatikalischen Aufbau von SCL Eine vollst ndige Zusammenstellung aller Diagramme mit den Sprachelementen finden Sie in Anhang B und C Kapitel bersicht Im Kapitel finden Sie auf Seite A l bersicht A 2 A 2 bersicht Terminale A 3 Termin
77. ist entweder e true oder 0 false bei der Verkn pfung von booleschen Operanden oder e ein Bitmuster nach der Bitverkn pfung zwischen den beiden Operanden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Anweisungen Ausdr cke und Operatoren Beispiele Nehmen wir an da n eine Intergervariable mit dem Wert 10 ist und s eine Zeichenvariable die das Zeichen A darstellt Einige logische Ausdr cke mit diesen Variablen sind dann Ausdruck Wert n gt 0 AND n lt 20 wahr n gt 0 AND n lt s5 falsch n gt 0 OR n lt 5 wahr n gt 0 XOR n lt 20 falsch n 10 AND s A wahr n lt gt 5 OR s gt A wahr Beispiel 13 7 Logische Ausdr cke SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 13 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Wertzuweisungen bersicht Eine Wertzuweisung dient dazu einer Variablen den Wert eines Ausdrucks zu zuweisen Der bisherige Wert wird berschrieben Kapitel bersicht Im Kapitel finden Sie auf Seite 14 1 bersicht 14 2 14 2 Wertzuweisungen mit Variablen eines elementaren Typs 14 3 14 3 Wertzuweisungen mit Variablen vom Typ STRUCT und 14 4 UDT 14 4 Wertzuweisungen mit Variablen vom Typ ARRAY 14 6 14 5 Wertzuweisungen mit Variablen vom Typ STRING 14 8 14 6 Wertzuweisungen mit Variablen vom Typ 14 9 DATE_AND_TIME 14 7 Wertzuweisungen mit Absolutvariab
78. ist nicht m glich Beispiel 10 5 zeigt die Vereinbarung von bausteintempor ren Variablen VAR_TEMP PUFFER_1 ARRAY 1 10 OF INT HILF1 HILF2 REAL END_VAR Beispiel 10 5 Vereinbarung bausteintempor rer Variablen Der Zugriff auf die Variablen erfolgt immer im Anweisungsteil des Code bausteins in dessen Vereinbarungsteil die Variable deklariert wurde Zugriff von innen siehe Kapitel 14 Wertzuweisung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 10 9 Vereinbarung lokaler Variablen und Bausteinparameter 10 7 Bausteinparameter bersicht Vereinbarungs block VAR_INPUT VAR_OUTPU1 VAR_IN_OU7 10 10 Bausteinparameter sind Formalparameter eines Funktionsbausteins oder einer Funktion Wenn der Funktionsbaustein oder die Funktion aufgerufen wird ersetzen die Aktualparameter die Formalparameter und bilden somit einen Mechanismus zum Informationsaustausch zwischen den aufgerufenen und aufrufenden Bausteinen e Formale Eingangsparameter nehmen die aktuellen Eingangswerte auf Datenflu von au en nach innen e Formale Ausgangsparameter dienen der bergabe von Ausgangswerten Datenflu von innen nach au en e Formale Durchgangsparameter haben sowohl die Funktion eines Eingangs als auch eines Ausgangsparameters Weitere Informationen ber die Benutzung von Parametern und den damit verbundenen Informationsaustausch erhalten Sie in Kapitel 16 Parameterblo
79. keine gef hrlichen Zust nde eintreten k nnen bevor Sie die Testfunktionen ausf hren SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Testen eines Programmes 6 2 Testfunktion Kontinuierlich beobachten bersicht Testmodus Beim kontinuierlichen Beobachten eines Programms k nnen Sie eine Gruppe von Anweisungen testen Diese Gruppe von Anweisungen nennt man auch Beobachtungsbereich W hrend des Testlaufs werden die Werte der Variablen und Parameter dieses Bereichs in chronologischer Abfolge angezeigt und zyklisch aktualisiert Liegt der Beobachtungsbereich in einem Programmteil der in jedem Zyklus durchlaufen wird k nnen die Werte der Variablen in der Regel nicht aus auf einanderfolgenden Zyklen erfa t werden Werte die sich im aktuellen Durchlauf ge ndert haben werden in schwarzer Schrift angezeigt Werte die sich nicht ge ndert haben werden in hellgrauer Schrift dargestellt Der Umfang der zu testenden Anweisungen ist durch die Leistungsf higkeit der angeschlossenen CPUs begrenzt Da die SCL Anweisungen des Quellcodes in unterschiedlich viele Anweisungen im Anwenderprogramm abgebildet werden ist die L nge des Beobachtungsbereichs variabel Sie wird von SCL ermittelt und markiert wenn Sie die erste Anweisung des gew nschten Beobachtungsbereichs ausw hlen Beim Testen im Modus Kontinuierlich beobachten werden die aktuellen Werte der Daten im Beobachtungsbereich abgefragt und
80. neben Variablen und Baustein parametern auch Konstanten verwendet Konstanten k nnen dabei als Literal konstanten oder mit einem symbolischen Namen verwendet werden Die Vereinbarung symbolischer Namen f r Konstanten erfolgt innerhalb des CONST Vereinbarungsblock im Vereinbarungsteil Ihres Codebausteins siehe Kapitel 8 4 Konstantenblock CONST BEZEICHNER H eintacher END_CONST gt Konstantenname Bild 11 1 Syntax Konstantenblock Der einfache Ausdruck steht hierbei f r arithmetische Ausdr cke bei denen Sie die Grundoperationen DIV und MOD verwenden k nnen Beispiel 11 1 veranschaulicht die Vereinbarung der symbolischen Namen CONST zahl 10 UHRZEITI TIME 1D_1H_10M_22S 2MS NAME SIEMENS ZAHL2 A SV ar BO S ZAHL3 3 ZAHL2 END_CONST Beispiel 11 1 Vereinbarung von symbolischen Konstanten SCL bietet verschiedene Schreibweisen Formate zum Eingeben oder Anzeigen von Konstanten Diese Schreibweisen nennt man Literale Die folgende Information behandelt die einzelnen Literale SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung von Konstanten und Sprungmarken 11 2 Literale Definition Zuweisung von Datentypen zu den Konstanten Das Literal ist eine formale Schreibweise um den Wert und den Typ einer Konstanten zu bestimmen Es gibt folgende Gruppen von Literalen e numerisches Lite
81. oder Ziffern in jeder beliebigen Reihenfolge zusammengesetzt sein wobei nur das erste Zeichen ein Buchstabe oder ein Unterstrich sein mu Sowohl Gro wie Kleinbuchstaben sind erlaubt Eine Un terscheidung zwischen Gro und Kleinschreibung findet nicht statt Anna und AnNa sind also zum Beispiel identisch Ein Bezeichner kann durch das folgende Syntaxdiagramm formal dargestellt werden BEZEICHNER vop Bub Q Buchstabe Fo Buchstabe l Unterstrich Unterstrich O Ziffer Ziffer gt Bild 7 4 Syntax Bezeichner Beachten Sie bitte folgende Hinweise e Bei der Namensvergabe w hlen Sie am besten eindeutige und aussage kr ftige Namen die zur Verst ndlichkeit des Programms beitragen e Achten Sie darauf ob der Name nicht schon durch Schl sselw rter z B nach Tabelle 7 1 oder Standardbezeichner belegt ist e Die maximale L nge eines Bezeichners betr gt 24 Zeichen e Symbolische Namen f r Bausteine also andere Bezeichner wie nach Tabelle 7 1 m ssen Sie in der Symboltabelle von STEP 7 definieren Informationen hierzu finden Sie in 231 Die folgenden Namen sind g ltige Bezeichner x y12 Summe Temperatur Namen Flaeche Regler Tabelle Die folgenden Namen sind keine g ltigen Bezeichner 4ter Das erste Zeichen mu ein Buchstabe oder ein Unterstrich sein Array ARRAY ist ein Schl sselwort und nicht zugelassen S Wert Leerstellen sind Zeichen und nich
82. sowie Testmuster f r Wurzel und Quadrat und helfen Ihnen eigene Test schritte zu definieren e Die Eingabe erfolgt ber Schalter ber die oberen 8 Schalter k nnen Sie das Programm steuern ber die unteren 8 k nnen Sie Me wert einstellen e Die Ausgabe erfolgt ber Anzeigen An der oberen Gruppe erscheint das h herwertige Ausgabebyte an der unteren Gruppe das niederwertige Tabelle 2 6 Bedienschalter Bedien Name Erkl rung schalter Kanal 0 Eingabeschalter Umschalten zur Me wert bernahme Kanal 1 Sortierschalter Umschalten zur Sortierung Auswertung Kanal 2 Funktionsschalter Schalter nach links 0 Wurzel Schalter nach rechts 1 Quadrat Kanal 3 Ausgabeschalter Schalter nach links 0 Me wert Schalter nach rechts 1 Ergebnis Kanal 4 Codierung Ausgabeadresse Bit 0 Kanal 5 Codierung Ausgabeadresse Bit 1 Kanal 6 Codierung Ausgabeadresse Bit 2 Kanal 7 Codierschalter Umschalten zur Codierungs bernahme Die Tabelle 2 7 enth lt 8 beispielhafte Me werte in bereits sortierter Reihen folge Geben Sie die Werte in beliebiger Reihenfolge ein Stellen Sie dazu die je weilige Bitkombination ein und bernehmen Sie den Wert indem Sie den Eingabeschalter umschalten Nachdem alle Werte eingegeben sind sto en Sie durch Umschalten des Sortierschalters die Sortierung und Auswertung an Danach k nnen Sie die sortierten Me werte oder die Ergebnisse Wurzel oder Quadra
83. t die m glichen Operationen zusammen und zeigt welchem Typ das Ergebnis in Abh ngigkeit der Operanden zuzuordnen ist Dabei steht zur Abk rzung ANY_INT f r die Datentypen INT DINT ANY_NUM f r die Datentypen ANY_INT und REAL Tabelle 13 2 _ Arithmetische Operatoren Operation Opera 1 Operand 2 Operand Ergebnis D Priori tor t t Potenz ui ANY_NU INT REAL 2 un res Plus ANY_NU ANY_NU 3 IME IME un res Minus ANY_NU ANY_NU 3 IME e IME Multiplikation ANY_NU A UM ANY_NU 4 IME ANY_ IME Division ANY_NU A UM ANY_NU 4 IME A IN IME Integer Division DIV ANY_INT A INT ANY_INT 4 IME ANY_I IME Modulo Division MOD ANY_INT ANY_INT ANY_INT 4 ANY_NUM ANY_NUM ANY_NUM 5 Addition IME IME IME TOD IME OD DT IME DT ANY_NUM ANY_NUM ANY_NUM 5 Subtraktion IME IME IME TOD IME TOD DATE DATE IME TOD TOD IME DT IME DT DT DT IME D Beachten Sie da der Ergebnistyp vom m chtigsten Operandentyp bestimmt wird SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 7 Anweisungen Ausdr cke und Operatoren Regeln Beispiele 13 8 Operatoren in arithmetischen Ausdr cken werd
84. werden Diese Parameter haben Sie im Vereinbarungsteil eines Bausteins FB oder FC definiert Tabelle 16 1 Zul ssige Vereinbarungsbl cke f r Formalparameter Vereinbarungsbl cke Daten Schl sselwort VAR_INPUT Eingangsparameter Vereinbarungsliste END_VAR Parameterblock lt AR_OUTPUT reinbarungsliste ND_VAR S Ausgangsparameter 5al lt AR_IN_OUT reinbarungsliste ND_VAR 5 Durchgangsparameter 5a SCL f r S7 300 400 Bausteine programmieren 16 2 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 2 Aufruf von Funktionsbausteinen FB oder SFB Globale und lokale Instanz Aufruf als globale Instanz Beim Aufruf eines Funktionsbausteins k nnen Sie mit SCL e sowohl globale Instanz Datenbausteine e als auch lokale Instanzbereiche des aktuellen Instanz Datenbausteins benutzen Der Aufruf eines FBs als lokale Instanz unterscheidet sich vom Aufruf als globale Instanz in der Speicherung der Daten Die Daten werden hier nicht in einem gesonderten DB abgelegt sondern in dem Instanz Datenbaustein des aufrufenden FBs eingeschachtelt FB Aufruf FB Funktionsbaustein SFB Systemfunktionsbaustein FB BEZEICHNUNG Globaler Instanzname DB gt az kun Q BezeiFnunG Q FB Parameter N siehe 16 2 1 Lokaler Instanzname Bild 16 3 Syntax FB Aufruf Der Aufruf erfolgt in ein
85. 0 Bausteine programmieren C79000 G7000 C522 01 SCL Installation Fehler Vorgehen Software Engineering Programmiermethoden 1 4 Speicher Pr fix 12 4 Speicherbereiche CPU bersicht Daten glo bal 12 2 Speichern einer ASCH Quelldatei 5 5 eines Bausteines 5 5 eines SCL Programms 5 5 Sprachbeschreibung Hilfen von SCL Sprunganweisung Sprungmarken Vereinbarung Labels 11 14 Standardfunktionen 18 2 Datentyp Konvertierung 18 2 explizite Datentyp Konvertierung 18 2 implizite Datentyp Konvertierung 18 2 Starten SCL 4 2 Statische Variablen 2 12 7 14 10 2 10 8 Statuszeile 4 3 STEP 7 Baustein Konze pt 1 3 OB Typen 19 4 STEP 7 Testfunktionen CPU Eigenschaften 6 10 String Fortsetzung 11 8 Unterbrechung Verwendung des Fluchtsymbols 11 8 String Konstanten String Literal Stringunterbrechun g 11 8 Struktur Datenbaustein DB 8 17 Funktion FC Funktionsbaustein FB Organisationsbaustein OB Strukturierte Programmierung Strukturierter Zugriff auf globale Datenbau steine 12 12 Symboltabelle Erstellen der Symboltabelle 5 2 12 6 Syntaxdiagramm 7 2 A 2 Index 5 Stichwortverzeichnis Systemattribute f r Bausteine f r Parameter 8 8 Systemfunktion SFC Systemfunktionbaustein SFB Systemfunktionsbausteine 19 3 Systemgrundlagen Systemparameter ENO T Tempor re Variablen 7 14 10 2 10 9 Testfunktion Haltepunkte aktiv 6
86. 0 Bausteine programmieren C79000 G7000 C522 01 Testen eines Programmes bersicht Wo finden Sie weitere Informationen Kapitel bersicht Die Testfunktionen von SCL bieten die M glichkeit ein Programm in seinem Ablauf im AS zu kontrollieren und damit m gliche Fehler zu finden Syntaxfehler werden von SCL beim bersetzungsvorgang erkannt und angezeigt Die Laufzeitfehler in der Ausf hrung des Programms werden durch Systemalarme angezeigt logische Programmierfehler k nnen Sie mit den Testfunktionen von SCL finden Ausf hrliche Informationen zum Testen mit SCL finden Sie in der Online Hilfe Durch die Online Hilfe erhalten Sie w hrend der Arbeit mit SCL Antworten auf gezielte Fragen Im Kapitel finden Sie auf Seite 6 1 bersicht 6 2 6 2 Testfunktion Kontinuierlich beobachten 6 3 Testfunktion Haltepunkte aktiv 6 4 Testfunkton Variablen beobachten steuern 6 5 Testfunktion Referenzdaten 6 6 Verwenden der STEP 7 Testfunktionen 6 10 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 6 1 Testen eines Programmes 6 1 bersicht Hochsprachen Niveau Voraussetzungen Testfunktionen von SCL Mit den Testfunktionen von SCL k nnen Sie in SCL programmierte Anwenderprogramme auf Hochsprachen Niveau testen Durch diese Art des Testens k nnen Sie e Programmierfehler entdecken e Auswirkungen eines Anwenderprogrammes auf den Ablauf i
87. 00 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei Tabelle 8 3 Systemattribute f r Parameter Fortsetzung Attribut Dieses Attribut vergeben Sie wenn Zul ssiger Deklarati onstyp S7_string_1 16 beliebige dem Parameter Text f r die Auswertung IN OUT IN_OUT nur Zeichen z B von Bin rwerten zugeordnet werden soll bei FB FC ZU S7_visible true false der Parameter in CFC angezeigt werden IN OUT IN_OUT nur soll oder nicht bei FB FC S7_link true false der Parameter in CFC verschaltbar sein soll IN OUT IN_OUT nur oder nicht bei FB FC S7_dyna true false der Parameter in CFC beim Testen IN OUT IN_OUT nur mic dynamisierbar sein soll oder nicht bei FB FC S7_param true false der Parameter in CFC parametrierbar sein IN IN_OUT nur bei FB soll oder nicht FC Attributvergabe Sie vergeben die Systemattribute f r Parameter in den Vereinbarungsbl cken Eingangsparameter Ausgangsparameter bzw Durchgangsparameter Beispiel VAR_INPUT inl S7_server alarm_archiv S7_a_type ar_send DWORD END_VAR SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 9 Aufbau einer SCL Quelldatei 8 5 Anweisungsteil bersicht Der Anweisungsteil beinhaltet Anweisungen e die nach dem Aufruf eines Codebausteins zur Ausf hrung kommen Diese Anweisungen dienen zur Verarbeitung von Daten und Adressen e zur Vorbesetzung von einzelnen Werten in Date
88. 2 Quersumme Beispiel 16 7 Werteberechnung innerhalb einer FC SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 X2 8 9 16 19 Aufruf von Funktionen und Funktionsbausteinen 16 4 Implizit definierte Parameter bersicht Implizit definierte Parameter sind solche die Sie verwenden k nnen ohne sie zuvor in einem Baustein zu vereinbaren SCL stellt zwei so definierte Parameter zur Verf gung e den Eingangsparameter EN und zu e den Ausgangsparameter ENO Beide Parameter sind vom Datentyp BOOL und sind im Bereich baustein tempor re Daten abgelegt Eingangs Jeder Funktionsbaustein und jede Funktion besitzt den implizit definierten parameter EN Eingangsparameter EN Wenn EN gleich TRUE ist wird der aufgerufene Baustein ausgef hrt andernfalls nicht Die Versorgung des Parameters EN ist optional Beachten Sie da EN nicht im Vereinbarungsteil eines Bausteines bzw einer Funktion deklariert werden darf Da EN ein Eingangsparameter ist k nnen Sie EN innerhalb eines Bausteines nicht ver ndern Hinweis Der R ckgabewert einer Funktion ist nicht definiert falls die Funktion wegen EN FALSE nicht aufgerufen wurde Beispiel Folgendes Beispiel veranschaulicht den Gebrauch des Parameters EN FUNCTION_BLOCK FB57 VAR ERGEBNIS RE EIN_ENABLI BOOL Taj ND_VAR w x EB a EGIN EIN_ENABLE FALSE Aufruf einer Funktion wobei der EN
89. 2 8 Auswahl des richtigen Zeitglieds Bild 17 8 bietet einen berblick ber die f nf verschiedenen Zeiten die in diesem Abschnitt beschrieben wurden Diese bersicht soll Ihnen helfen die f r Ihre Zwecke ad quaten Zeitgeber auszuw hlen Eingangssignal E2 1 Ausgangssignal A4 0 S_PULSE Zeit als Impuls Ausgangssignal A4 0 S_PEXT Zeit als verl ngerter Impuls Ausgangssignal A40 S_ODT Zeit als Einschalt verz gerung Ausgangssignal A4 0 S_ODTS Zeit als speichernde Einschaltverz gerung Ausgangssignal A4 0 S_OFFDT Zeit als Ausschalt verz gerung Hl a Bar je tm Die maximale Zeit in der das Ausgangssignal auf 1 bleibt ist gleich dem programmierten Zeitwert t Das Ausgangssignal bleibt f r eine k rzere Zeit auf 1 wenn das Eingangssignal auf 0 wechselt e t Das Ausgangssignal bleibt f r die programmierte Zeit auf 1 unabh ngig davon wie lange das Eingangssignal auf 1 bleibt Der Impuls wird neu gestartet wenn innerhalb t das Startsignal erneut ausgel st wird E Das Ausgangssignal wechselt nur von 0 auf 1 wenn die programmierte Zeit abgelaufen ist und das Eingangssignal noch immer 1 betr gt kim Das Ausgangssignal wechselt nur von 0 auf 1 wenn die programmierte Zeit abgelaufen ist unabh ngig davon wie lange das Eingangssignal auf 1 bleibt D k icc
90. 22e222 nennen 9 5 Parametertypen 22Haase nennen nennen nennen Vereinbarung lokaler Variablen und Bausteinparameter nrrrenen 10 1 BEISIEhE era 10 2 Variablen und Parameterdeklaration 2222222eeesneee nen 10 3 Initialisigfung 022er er ee ea ek rad 10 4 Instanzdeklaration 22eseeaseeee nennen nennen nenn 10 5 Statische Variablen seuna eenaa 10 6 Tempor re Variablen HHe 2e nenne nen nenne nennen nennen 10 7 Bausteinparameter aise riorrcri testine on een nn nennen 10 8 Flags OK Flag 22222222222 eeeanne nennen nennen nenn Vereinbarung von Konstanten und Sprungmarken zznnsnsnnnennnn 11 1 Konstanten 2222222 sn nennnnnnn nennen nennen nennen nenn 11 2 Liferale ea ee 11 3 Schreibweisen f r Integer und Realzahlliterale 11 4 Schreibweisen f r Character und Stringliterale 222220 11 5 Schreibweisen f r Zeitangaben 2 n2nssnen nennen nen 11 6 Sprungmarken iisa uies aaia iioii a annn nennen anne nenn anne nenn Vereinbarung globaler Daten zunnsnennenennen nn n nn n nn 12 1 Ubersic hi ne ara A 12 2 CPU Speicherbereiche 22220nsennee nennen nn nn nen 12 3 Absoluter Zugriff auf GPU Speicherbereiche 222220 12 4 Symbolischer Zugriff auf CPU Speicherbereiche SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Inhaltsverzeichnis
91. 30 X1 10 X2 10 5 Die folgende Funktion soll nur ausgef hrt werden wenn der FB 30 fehlerfrei abgelaufen ist ERGEBNIS FC 85 EN ENO PAR_1 27 Beispiel 16 10 Verwendung von EN und ENO SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 21 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Z hler und Zeiten bersicht Kapitel bersicht In SCL k nnen Sie den Programmablauf abh ngig von einer Zeitangabe oder einem Z hlerstand steuern STEP 7 stellt dazu standardm ige Z hler und Zeitfunktionen bereit die Sie in Ihrem SCL Programm verwenden k nnen ohne sie zuvor vereinbaren zu m ssen Im Kapitel finden Sie auf Seite 17 1 Z hlfunktionen 17 2 17 1 1 Eingabe und Auswertung des Z hlerwerts 17 6 17 1 2 Aufw rtsz hlen Counter Up 17 1 3 Abw rtsz hlen Counter Down 17 1 4 Auf Abw rtsz hlen Counter Up Down 17 1 5 Beispiel f r die Funktion S_CD Abw rtsz hler 17 2 Zeitfunktionen TIMER 17 10 17 2 1 Eingabe und Auswertung des Zeitwerts 17 14 17 2 2 Zeit als Impuls starten 17 16 17 2 3 Zeit als verl ngerten Impuls starten 17 17 17 2 4 Zeit als Einschaltverz gerung starten 17 18 17 2 5 Zeit als speichernde Einschaltverz gerung starten 17 2 6 Zeit als Ausschaltverz gerung starten 17 2 7 Programmbeispiel f r einen verl ngerten Impuls 17 2 8 Auswahl des richtigen Zeitglieds 17 22
92. 5 10 Syntax GOTO Anweisung Dabei bezeichnet Sprungmarke eine Marke im LABEL END_LABEL Vereinbarungsblock Diese Marke ist der Anweisung vorangestellt die nach dem GOTO als n chste ausgef hrt werden soll Bei der Verwendung der GOTO Anweisung sind folgende Regeln zu beachten e Das Ziel einer Sprunganweisung mu innerhalb desselben Bausteins liegen e Das Sprungziel mu eindeutig sein e Einsprung in einen Schleifenblock ist nicht zul ssig Aussprung aus einem Schleifenblock ist m glich SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Kontrollanweisungen Beispiel Beispiel 15 8 veranschaulicht den Gebrauch der GOTO Anweisung FUNCTION_BLOCK FB3 GOTO_BSP VAR INDEX A B C KENNWORT END_VAR LABEL INT INT INT INT ARRAY 1 51 OF STRING MARKEI MARKE2 MARKE3 END_LABEL BEGIN IF A gt B THEN GOTO MARKEI ELSIF A gt C THEN GOTO MARKE 2 END_IF I MARKEI INDEX 1 GOTO MARKE3 MARKE INDEX 2 Uis MARKE3 N END_FUNCTION_BLOCK Beispiel SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15 8 Sprunganweisung GOTO 15 15 Kontrollanweisungen 15 10 RETURN Anweisung Prinzip 15 16 Eine RETURN Anweisung bewirkt das Verlassen des aktuell bearbeiteten Bausteins OB FB FC und die R ckkehr zum aufrufenden Baustein bzw zum Betriebssystem wenn ein OB verlassen wird RETURN Anweisung RETURN Bild 15 11
93. 7 300 400 Bausteine programmieren C79000 G7000 C522 01 Kontrollanweisungen Hinweis Die Verwendung eines oder mehrerer ELSIF Zweige bietet gegen ber einer Sequenz von IF Anweisungen den Vorteil da die einem g ltigen Ausdruck folgenden logischen Ausdr cke nicht mehr ausgewertet werden Die Lauf zeit eines Programms l t sich so verk rzen Beispiel IF El 1 THE N 0 SUM OK ELSIF START N N SUM ELSE OK END_IF Beispiel 15 1 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 N r 0 FALSE OK Flag auf FALSE TRUE THEN ge SUM N T FALSI zal IF Anweisungen Beispiel 15 1 veranschaulicht den Gebrauch der IF Anweisung setzen 15 5 Kontrollanweisungen 15 3 CASE Anweisung Prinzip Die CASE Anweisung dient der 1 aus n Auswahl eines Programmteils Diese Auswahl beruht auf dem laufenden Wert eines Auswahl Ausdrucks CASE Anweisung Auswahlausdruck Integer gt CASE Ausdruck OF Wert Wertliste G Anweisungs Ta O v amego Bild 15 2 Syntax CASE Anweisung Ausf hrung Die CASE Anweisung wird nach folgenden Regeln bearbeitet 1 Bei der Abarbeitung der CASE Anweisung wird berpr ft ob der Wert des Auswahl Ausdrucks in einer angegebenen Wertliste enthalten ist Jeder Wert in dieser Liste stellt einen der erlaubten Werte
94. 7 400 Baugruppendaten Operationsliste Automatisierungssystem 57 400 Umsteigerhandbuch Basissoftware f r S7und M7 Von S5 nach S7 Benutzerhandbuch Basissoftware f r S7und M7 STEP 7 Handbuch AWL f r S7 300 400 Bausteine programmieren Handbuch KOP f r S7 300 400 Bausteine programmieren Programmierhandbuch Systemsoftware f r S7 300 400 Programmentwurf Referenzhandbuch Systemsoftware f r S7 300 400 System und Standardfunktionen Handbuch FUP f r S7 300 400 Bausteine programmieren SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 D 1 Literaturverzeichnis 237 Gesamtindex STEP 7 249 Handbuch CFC f r S7 und M7Band 2 251 Handbuch GRAPH f r S7 300 400 Ablaufsteuerungen programmieren 252 Handbuch HiGraph f r S7 300 400 Zustandsgraphen programmieren 253 Handbuch C f r S7 300 400 C Programme erstellen 254 Handbuch CFC f r S7 und M7Band 1 290 Benutzerhandbuch ProC C f r M7 300 400 C Programme erstellen 291 Benutzerhandbuch ProC C f r M7 300 400 Debugger f r C Programme 800 DOCPRO Schaltb cher normgerecht erstellen nur auf CD 803 Referenzhandbuch Systemsoftware f r S7 300 400 STEP 7 Standardfunktionen Teil 2 nur auf CD SCL f r S7 300 400 Bausteine programmieren D 2 C79000 G7000 C522 01 Glossar A Adressierung absolut Adressierung symbolisch Aktualparameter Anweisung Anweisungsliste AWL An
95. Bitstring operationen zu nutzen Kopieren Sie in diesem Fall die gew nschte Funktion aus der STEP 7 Bibliothek STDLIBS EC in Ihr Programmverzeichnis Informationen zu einzelnen IEC Funktionen finden Sie in 235 Beispiele Tabelle 18 10 zeigt m gliche Aufrufe von Bitstring Standardfunktionen und die jeweiligen Ergebnisse Tabelle 18 10 Aufrufe von Bitstring Standardfunktionen Aufruf ERGEBNIS ERGEBNIS ROL 2 0111_1010 IN 2 1101_0011 N 5 122 dezimal IN 211 dezimal ERGEBNIS ROR 2 1111_0100 IN 2 1101_0011 N 2 244 dezimal IN 211 dezimal ERGEBNIS SHL 2 1001_1000 IN 2 1101_0011 N 3 152 dezimal IN 211 dezimal ERGEBNIS SHR 2 0011_0100 IN 2 1101_0011 N 2 52 dezimal IN 211 dezimal SCL f r S7 300 400 Bausteine programmieren 18 12 C79000 G7000 C522 01 Aufrufschnittstelle bersicht Die S7 CPUs enthalten in das Betriebssystem integrierte System und Standard funktionen die Sie bei der Programmierung in SCL nutzen k nnen Im einzelnen sind dies e Organisationsbausteine OB e Systemfunktionen SFC e Systemfunktionsbausteine SFB Kapitel bersicht Im Kapitel finden Sie auf Seite 19 1 Aufrufschnittstelle 19 2 19 2 bergabeschnittstelle zu OBs 19 4 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 19 1 Aufrufschnittstelle 19 1 Aufrufschnittstelle bersicht Beispiel SFC 31 Be
96. D MB MD Tabelle A 12 zeigt Ihnen f r welche F lle Sie Namen die der Regel f r BEZEICHNER entsprechen angeben k nnen Tabelle A 12 Vorkommen von BEZEICHNER BEZEICHNER Bausteinname Beschreibung Symbolischer Name f r Baustein Regel BAUSTEIN BEZEICHNUNG Funktionsaufruf Name f r Zeit Symbolischer Name f r Zeitglied TIMER BEZEICHNUNG glied und Z hler und Z hler Z HLER BEZEICHNUNG Attributname Name f r ein Attribut Attributzuweisung Konstantenname Vereinbarung symbolischer Konstantenblock Konstante Verwendung Konstante Sprungmarke Vereinbarung Sprungmarke Sprungmarkenblock Verwendung Sprungmarke Anweisungsteil GOTO Anweisung Variablenname Vereinbarung tempor rer oder Variablendeklaration statischer Variable Einfache Variable Strukturierte Variable Lokaler Instanz name Vereinbarung lokaler Instanzen Instanzdeklaration FB Aufrufname SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung BAUSTEIN In der Regel BAUSTEIN BEZEICHNUNG k nnen Sie BEZEICHNER und Symbol BEZEICHNUNG alternativ einsetzen BAUSTEIN BEZEICHNUNG Baustein N mmer gt Schl sselwort Nummer DB FB FC OB SDB SFC SFC UDT BEZEICHNER Symbol Bild A 9 Lexikalische Regel BAUSTEIN BEZEICHNUNG Analog zu BAUSTEIN BEZEICHNUNG gelten auch die Regeln TIMER BEZEICHNUN
97. DNS ae Anweisungs teil Case Anweisung Vergessen Sie nicht das Schl sselwort END_CASE mit Semikolon abzuschlie en gt CASE Ausdruck Wert w Wertliste e Anweisungs a oH Anweisungs Wertliste Wert Wert oo C 18 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Syntaktische Regeln Tabelle C 8 Syntax der Kontrollanweisungen Fortsetzung Regel Syntaxdiagramm Wert gt INTEGER LITERAL gt BEZEICHNER Konstantenname Wiederholungs FOR anweisungen und Anweisung Sprunganweisungen WHILE Anweisung REPEAT Anweisung CONTINUE Anweisung EXIT Anweisung RETURN Anweisung E GOTO Anweisung Menai FOR Anweisung Basis Ausdruck 3 f r Endwert Anweisungs teil Basis R Y Ausdruck Anfangs Zuweisung TO aa f r Schrittweite Vergessen Sie nicht das Schl sselwort END_FOR mit Semikolon END_FOR abzuschlie en Anfangszuweisung einfache Basis gt Variable T Ausdruck vom Datentyp f r Anfangswert INT DINT SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 C 19 Syntaktische Regeln Tabelle C 8 Syntax der Kontrol
98. D_FOR ANY ARRAY BEGIN BLOCK_DB BLOCK_FB BLOCK_FC BLOCK_SDB BLOCK_SFB BLOCK_SFC BOOL BY BYTE CASE CHAR CONST CONTINUE COUNTER DATA_BLOCK DATE DATE_AND_TIME DINT DIV DO DT DWORD ELSE ELSIF END_CASE END_CONST END_DATA_BLOCK SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Reservierte W rter sind Schl sselw rter die Sie nur wie vorbestimmt benutzen d rfen Eine Unterscheidung zwischen Gro und Kleinschreibung findet nicht statt END_STRUCT VAR END_VAR END_WHILE EXIT FOR FUNCTION FUNCTION_BLOCK GOTO IF INT LABEL MOD NIL NOT OF OR ORGANIZATION_BLOCK POINTER REAL REPEAT RETURN SSTIME STRING STRUCT THEN TIME TIMER TIME_OF_DAY TO TOD TYPE UNTIL Allgemeine SCL Grundbegriffe Schl sselw rter Fortsetzung Sonstige reser vierte Namen ND_FUNCTION ND_FUNCTION_BLOCK ND_LABEL ND_ORGANIZATION_BLOCK ND_REPEAT E E E E E E E END_TYPE EN ENO OK TRUE FALSE Namen der Standardfunktionen VAR VAR_IN_OUT VAR_INPUT VAR_OUTPUT VAR_TEMP VOID WHILE WORD XOR SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 7 4 Bezeichner in SCL Definition Regeln Beispiele Ein Bezeichner ist ein Name den Sie f r ein Sprachobjekt von SCL also eine Konstante eine Variable eine Funktion oder einen Baustein selbst vergeben k nnen Bezeichner k nnen aus Buchstaben
99. E 9 3 2 Datentyp STRING 9 3 3 Datentyp ARRAY 9 3 4 Datentyp STRUCT 9 4 Anwenderdefinierter Datentyp UDT 9 5 Parametertypen 9 12 9 1 Datentypen 9 1 bersicht bersicht Tabelle 9 1 zeigt die unterschiedlichen Datentypen in SCL Tabelle 9 1 Die Datentypen in SCL Elementare Datentypen BOOL CHAR INT TIME BYTE DINT DATE WORD REAL TIME_OF_DAY DWORD SSTIME Zusammengesetzte Datentypen DATE_AND_TIME STRING ARRAY STRUCT Anwenderdefinierte Datentypen UDT Parametertypen TIMER BLOCK_FB POINTER ANY COUNTER BLOCK_FC BLOCK_DB BLOCK_SDB Diese Datentypen bestimmen e die Art und Bedeutung der Datenelemente e die zul ssigen Bereiche der Datenelemente e die zul ssige Menge der Operationen die mit einem Operanden eines Datentyps ausgef hrt werden k nnen e die Schreibweise der Daten dieses Datentyps SCL f r S7 300 400 Bausteine programmieren 9 2 C79000 G7000 C522 01 Datentypen 9 2 Elementare Datentypen bersicht Elementare Datentypen definieren die Struktur von Daten die nicht in kleinere Einheiten zerlegt werden k nnen Sie entsprechen der Definition der Norm DIN EN 1131 3 Ein elementarer Datentyp beschreibt einen Speicherbereich mit fester L nge und steht f r Bit Integer Real Zeitdauer Uhrzeit und Zeichen gr en Diese Datentypen sind alle in SCL vordefiniert Tabelle 9 2 Bitb
100. EX 2 END_WHILE ND_FUNCTION_BLOCK amp Beispiel 15 4 WHILE Anweisung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Kontrollanweisungen 15 6 REPEAT Anweisung Prinzip Eine REPEAT Anweisung bewirkt die wiederholte Ausf hrung einer zwischen REPEAT und UNTIL stehenden Anweisungsfolge bis zum Eintreten einer Abbruchbedingung Die Abbruchbedingung wird nach den Regeln eines logischen Ausdrucks gebildet REPEAT Anweisung REPEAT Anweisungs UNTIL Ausdruck L END_REPEAT Abbruchbedingung Bild 15 7 Syntax REPEAT Anweisung Die Bedingung wird jeweils nach der Ausf hrung der Anweisungsfolge ber pr ft Dies bedeutet da der Rumpf mindestens einmal ausgef hrt wird auch wenn die Abbruchbedingung von Anfang an erf llt ist Hinweis Beachten Sie da die Anweisung END_REPEAT mit einem Semikolon abzuschlie en ist Beispiel Beispiel 15 5 veranschaulicht den Gebrauch der REPEAT Anweisung FUNCTION_BLOCK SUCHEN VAR INDEX INT KENNWORT ARRAY 1 50 OF STRING END_VAR BEGIN INDEX 0 REPEAT INDEX INDEX 2 UNTIL INDEX gt 50 OR KENNWORT INDEX KEY END_REPEAT END_FUNCTION_BLOCK Beispiel 15 5 REPEAT Anweisung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15 11 Kontrollanweisungen 15 7 CONTINUE Anweisung Prinzip Eine CONTINUE Anweisung bewirkt den Abbruch des mome
101. Editor und der Compiler erlauben Ihnen bestimmte Einstellungen vorzunehmen die das Arbeiten erleichtern k nnen e Einstellungen beim Erzeugen von Bausteinen e Compilereinstellungen e Editoreinstellungen Sie k nnen z B einstellen ob bereits existierende Bausteine beim ber setzen berschrieben werden sollen oder nicht W hlen Sie dazu den Men befehl Extras gt Einstellungen und klicken Sie im Dialogfeld Einstellun gen das Register Baustein erzeugen an Eine ausf hrliche Beschreibung der Optionen finden Sie im Abschnitt 5 5 Sie k nnen auch den bersetzungsvorgang an Ihre Anforderungen anpassen Eine ausf hrliche Beschreibung der Optionen finden Sie im Abschnitt 5 5 W hlen Sie dazu den Men befehl Extras gt Einstellungen und klicken Sie im Dialogfeld Einstellungen das Register Compiler an Tabulatorweite Sichern vor dem bersetzen die Anzeige von Zeilen nummern und andere Optionen k nnen Sie einstellen W hlen Sie dazu den Men befehl Extras gt Einstellungen und klicken Sie im Dialogfeld Einstellungen das Register Editor an SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Bedienen von SCL 4 3 Arbeiten mit dem SCL Editor bersicht Die SCL Quelle besteht prinzipiell aus fortlaufendem Text Bei der Text eingabe werden Sie durch den SCL Editor mit Textverarbeitungsfunktionen unterst tzt die speziell auf SCL abgestimmt sind Editorfenster Das Quell
102. FB Aufruf oder einer Aufrufhierarchie von Funktionsbausteinen zugeordnet sein Er wird bei SCL automatisch generiert Konstanten mit symbolischem Namen sind Platzhalter f r konstante Werte bei Codebausteinen Symbolische Konstanten werden verwendet um die Lesbarkeit eines Programms zu erh hen Konstanten deren Wert und Typ durch die formale Schreibweise bestimmt werden Es werden numerische Literale Zeichenliterale und Literale f r Zeitangaben unterschieden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 7 Glossar Konvertieren explizit Konvertieren implizit Kontinuierlich beobachten Laden in Zielsystem Laden in PG Lexikalische Regel Lokaldaten Glossar 8 Explizit Konvertieren bedeutet eine Konvertierungsfunktion in das Quell programm einf gen Bei der Verkn pfung von zwei Operanden ungleichen Datentyps mu der Anwender eine explizite Konvertierung durchf hren Beim Wechsel in eine andere Typklasse z B von einem Bitdatentyp in einen Numerischen Datentyp und wenn der Zieldatentyp weniger m chtig ist als der Quelldatentyp auch beim Wechsel innerhalb einer Typklasse Implizit Konvertieren bedeutet da eine Konvertierungsfunktion automatisch durch den Compiler eingef gt wird Bei der Verkn pfung von zwei Operanden ungleichen Datentyps erfolgt eine implizite Konvertierung Wenn kein Wechsel in eine andere Typklasse erfolgt und wenn der Zieldatentyp nicht wen
103. G und COUNTER BEZEICHNUNG A 11 Vordefinierte Konstanten und Flags Vordefinierte Beide Tabellen gelten f r SIMATIC und IEC Mnemonik Konstanten und FI ags Tabelle A 13 Vordefinierte Konstanten Mnemonik Beschreibung FALSE Vordefinierte boolesche Konstante Standardkonstante mit dem Wert 0 Sie hat die logische Bedeutung da eine Bedingung nicht erf llt ist TRUE Vordefinierte boolesche Konstante Standardkonstante mit dem Wert 1 Sie hat die logische Bedeutung da eine Bedingung erf llt ist Tabelle A 14 Flags Mnemonik Beschreibung EN Flag zur Baustein Freigabe ENO Fehlerflag des Bausteins OK Flag wird auf FALSE gesetzt wenn eine Anweisung fehlerhaft bearbeitet wurde SCL f r S7 300 400 Bausteine programmieren A 18 C79000 G7000 C522 01 Lexikalische Regeln Kapitel bersicht Lexikalische Regeln Einteilung Im Kapitel finden Sie auf Seite B l Bezeichnungen B 2 B 1 1 Literale B 1 2 Absolutadressierung B 2 Kommentare B 3 Bausteinattribute B 12 Die lexikalischen Regeln beschreiben die Struktur der Elemente Token die bei der Lexikalanalyse des Compilers bearbeitet werden Daher ist die Schreibweise nicht formatfrei und die Regeln sind streng einzuhalten Das bedeutet insbesondere e Einf gen von Formatierungszeichen ist nicht erlaubt e Block und Zeilenkommentare k nnen nicht eingef gt werden e Attribute zu Bezeichnern k nnen n
104. G7000 C522 01 Lexikalische Regeln B 2 Kommentare Was zu beachten Folgende sind die wichtigsten Punkte die beim Einbau von Kommentaren zu ist beachten sind e Die Schachtelung von Kommentaren ist nicht erlaubt e Der Einbau ist an beliebigen Stellen in den syntaktischen Regeln m glich nicht aber in den lexikalischen Regeln Tabelle B 4 Kommentare Zeilenkommentar Blockkommentar o E o O zer 1O SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 B 11 Lexikalische Regeln B 3 Bausteinattribute Was zu beachten ist Bausteinattribute k nnen mit folgender Syntax nach der BAUSTEIN BEZEICHNUNG und vor der Vereinbarung des ersten Variablen oder Parameterblocks stehen Tabelle B 5 Attribute Regel Syntaxdiagramm BERSCHRIFT EEE ruckbares UILE C Zeichen C aE DEZIMAL DEZIMAL VERSION ZIFFERNFOLGE QO ZIFFERNFOLGE k J 0 15 0 15 BAUSTEINSCHUTZ KNOW_HOW_PROTECT AUTHOR max 8 Zeichen BEZEICHNER gt NAME max 8 Zeichen mwe O BEZEICHNER H gt BAUSTEINFAMILIE max 8 Zeichen BEZEICHNER gt Systemattribute f r Bausteine max 24 Zeichen druckbares BEZEICHNER i g o B 12 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Syntaktische Regeln Definition der syn taktischen Regeln Kapitel bersicht Formales Was zu beachten ist Aufbauend auf den
105. Handbuchs sind Personen die die Berechtigung haben Ger te Systeme und Stromkreise gem den Standards der Sicherheitstechnik in Betrieb zu nehmen zu erden und zu kenn zeichnen Bestimmungsge Beachten Sie folgendes m er Gebrauch Warnung Dieses Produkt darf nur f r die im Katalog und in der technischen Beschreibung vorgesehe nen Einsatzf lle und nur in Verbindung mit von Siemens empfohlenen bzw zugelassenen Fremdger ten und komponenten verwendet werden Warenzeichen SIMATIC SIMATIC HMI und SIMATIC NET sind eingetragene Warenzeichen der SIEMENS AG Die brigen Bezeichnungen in dieser Schrift k nnenWarenzeichen sein deren Benutzung durch Dritte f r deren Zwecke die Rechte der Inhaber verletzen k nnen Copyright Siemens AG 1998 All rights reserved Weitergabe sowie Vervielf ltigung dieser Unterlage Verwertung und Mitteilung ihres Inhalts ist nicht gestattet soweit nicht ausdr cklich zugestanden Zuwiderhandlungen verpflichten zu Schadenersatz Alle Rechte vorbehalten insbesondere f rden Fall der Patenterteilung oder GM Eintragung Siemens AG Bereich Automatisierungs und Antriebstechnik Gesch ftsgebiet Industrie Automatisierungssysteme Postfach 4848 D 90327 N rnberg Haftungsausschlu Wir haben den Inhalt der Druckschrift auf bereinstimmung mit der beschriebenen Hard und Software gepr ft Dennoch k nnen Abweichungen nicht ausgeschlossen werden so da wir f r die vollst ndige b
106. ICH MESSUNG UNIPOLAR_4_20MA 2 7 Ka END_FUNCTION_BLOCK Beispiel 9 2 Vereinbarung von anwenderdefinierten Datentypen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 9 11 Datentypen 9 5 Parametertypen bersicht TIMER und COUNTER 9 12 Neben elementaren zusammengesetzten und anwenderdefinierten Datentypen k nnen Sie f r das Festlegen der formalen Bausteinparameter von FBs und FCs sogenannte Parametertypen verwenden Diese Datentypen dienen dazu e Z hler Zeitfunktionen als Parameter zu vereinbaren TIMER COUNTER e FC FB DB und SDB als Parameter zu vereinbaren BLOCK_xx e einen Operanden beliebigen Datentyps als Parameter zuzulassen ANY T e einen Speicherbereich als Parameter zuzulassen POINTER Tabelle 9 5 Parametertypen Parameter Gr e Beschreibung TIMER 2 byte Kennzeichnet ein bestimmtes Zeitglied das von dem Pro gramm in dem aufgerufenen Codebaustein verwendet werden soll Aktualparameter Z aBa EL COUNTER 2 byte Kennzeichnet einen bestimmten Z hler der von dem Programm in dem aufgerufenen Codebaustein verwendet werden soll Aktualparameter z B Z10 BLOCK_FB 2byte Kennzeichnet einen bestimmten Baustein der von dem BLOCK_FC Programm in dem aufgerufenen Codebaustein verwendet BLOCK_DB werden soll BLOCK_SDB Aktualparameter ZB EC101 DB42 ANY 10 byte Wird verwendet wenn als Datentyp des Aktualparameters ein belieb
107. IEC Mnemonik wird ebenfalls angegeben G ltige Bezeichnungen sind FB10 DB100 T141 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Operanden Die Speicherbereiche einer CPU k nnen Sie von jeder Programmstelle aus mit kennzeichen ihrem Operandenkennzeichen ansprechen Die folgende Tabelle ist nach der SIMATIC Mnemonik sortiert die ent sprechende internationale IEC Mnemonik wird dazu angegeben Mnemonik Mnemonik addressiert Datentyp SIMATIC IEC Ax y Qx y Ausgang ber Proze abbild Bit ABx QBx Ausgang ber Proze abbild Byte ADx QDx Ausgang ber Proze abbild Doppelwort AWx QWx Ausgang ber Proze abbild Wort AXx y QXx y Ausgang ber Proze abbild Bit Dx y D Dx y D Datenbaustein Bit DBx DBx Datenbaustein Byte DDx D DDx D Datenbaustein Doppelwort DWx D Dwx D Datenbaustein Wort DXx y D DXx yl Datenbaustein Bit Ex y Ix y Eingang ber Proze abbild Bit EBx IBx Eingang ber Proze abbild Byte EDx IDx Eingang ber Proze abbild Doppelwort EWx IWwx Eingang ber Proze abbild Wort EXx y IXx y Eingang ber Proze abbild Bit Mx y Mx y Merker Bit MBx MBx Merker Byte MDx MDx Merker Doppelwort MWx MWx Merker Wort MXx y MXx y Merker Bit PABx PQBx Ausgang Peripherie direkt Byte PADx PQDx Ausgang Peripherie direkt Doppelwort PAWx PQWx Ausgang
108. ISTW BEGIN ESSW ERT END_ST END_ST ND_VAR WIDI ERT REAL STRUCT Zielstruktur SPANNUNG ERSTAND REAL REAL Einfachfeld ARRAY 1 2 1 2 OF INT RUCT STRUCT Quellstruktur SPANNUNG WIDI ERSTAND REAL REAL Einfachfeld ARRAY 1 2 1 2 OF INT RUCT Zuweisung einer kompletten Struktur an eine M komplette Struktur ESSW ERT ISTWER T Zuweisung einer Strukturkomponente zu einer Strukturkomponente SA Beispiel M ESSW ERT SPANNUNG ISTWERT SPANNUNG Zuweisung einer Strukturkomponente zu einer typengleichen Variablen HILFSVAR ISTWERT WIDERSTAND Zuweisung einer Konstanten zu einer Stru M ktur ESSW komponente ERT WID ERSTAND 4 5 Zuweisung einer Konstanten zu einem Element eines einfac M ESSW ERT EINFACHE END_FUNCTION_BLOCK hen Feldes ELD 1 2 4 14 2 Wertzuweisungen mit Variablen vom Typ STRUCT SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 14 5 Wertzuweisungen 14 4 Wertzuweisungen mit Variablen vom Typ ARRAY Feldvariable Zuweisung eines kompletten Feldes Zuweisung einer Feldkomponente 14 6 Ein Feld besteht aus 1 bis max 6 Dimensionen und Feldelementen die alle vom selben Typ sind F r die Zuweisung von Feldern
109. J INT_TO_CHAR bernahme des Bitstrings J INT_TO_WORD bernahme des Bitstrings N REAL_TO_DINT Runden des IEEE REAL Wertes auf DINT J Wenn der Wert kleiner als 2_147_483__648 oder gr er als 2_147_483_647 ist dann wird die OK Variable gleich FALSE gesetzt REAL_TO_DWORD bernahme des Bitstrings N REAL_TO_INT Runden des IEEE REAL Wertes auf INT J Wenn der Wert kleiner als 32 _768 oder gr er als 32 _767 ist dann wird die OK Variable gleich FALSE gesetzt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 SCL Standardfunktionen und Standardfunktionsbausteine Beispiele f r explizite Konvertierung Tabelle 18 3 Datentyp Konvertierungs Funktionen der Klasse B RD WORD interpretiert Funktionsname Konvertierungsregel OK STRING_TO_CHAR Kopieren des ersten Zeichens des Strings J Wenn der STRING nicht eine L nge von 1 hat dann wird die OK Variable gleich FALSE gesetzt TIME_TO_DINT bernahme des Bitstrings N TOD_TO_DINT bernahme des Bitstrings N WORD_TO_BOOL Kopieren des niedrigstwertigen Bits J WORD_TO_BYTE Kopieren der niedrigstwertigen 8 Bits J WORD_TO_INT bernahme des Bitstrings N WORD_TO_BLOCK_ Das Bitmuster von WORD wird als Datenbau N DB steinnummer interpretiert BLOCK_DB_TO_WO Die Datenbausteinnummer wird als Bitmuster von N Hinweis Sie haben au erdem die M glichkeit IEC Funktionen zur Datentyp Konver tierung zu nut
110. L und ROR bzw die Anzahl der zu schiebenden Stellen bei SHL und SHR Liste der Tabelle 18 9 zeigt die m glichen Bitstring Standardfunktionen Funktionen Tabelle 18 9 Bitstring Standardfunktionen Funktions Datentyp Datentyp Datentyp Aufgabe name Eingangs Eingangs Funk parameter parameter tionswert IN N ROL BOOL INT BOOL Der im Parameter IN vorhandene Wert wird BYTE INT BYTE um soviele Bitstellen WORD INT WORD nach links rotiert wie der Inhalt des Parame ROR BOOL INT BOOL Der im Parameter IN vorhandene Wert wird BYTE INT BYTE um soviele Bitstellen WORD INT WORD nach rechts rotiert wie der Inhalt des Parame DWORD INT DWORD ters N angibt SHL BOOL INT BOOL In dem im Parameter IN vorhandenen Wert BYTE INT BYTE werden soviele Bitstel len nach links gescho ben und soviele Bit WORD INT WORD stellen auf der rechten Seite durch 0 ersetzt DWORD INT DWORD wie der Inhalt des Pa rameters N angibt SHR BOOL INT BOOL In dem im Parameter IN vorhandenen Wert werden soviele Bitstel BYTE INT BYTE len nach rechts geschoben und soviele WORD INT WORD Bitstellen auf der linken Seite durch 0 ersetzt wie der Inhalt DWORD INT DWORD des Parameters N angibt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 18 11 SCL Standardfunktionen und Standardfunktionsbausteine Hinweis Sie haben au erdem die M glichkeit IEC Funktionen f r
111. R 1 Die Vereinbarung von Variablen innerhalb des Schl selwortpaars VAR und END_VAR ist in Funktionen zwar erlaubt die Vereinbarungen werden aber beim bersetzen in den tempor ren Bereich verschoben Initialisierung Den Variablen und Parametern m ssen Sie bei der Vereinbarung einen Datentyp zuordnen der die Struktur und damit auch den Speicherbedarf bestimmt Au er dem k nnen Sie statischen Variablen und den Parametern eines Funktions bausteins Anfangswerte zuweisen Tabelle 10 4 gibt eine bersicht in welchen F llen eine Initialisierung m glich ist Tabelle 10 4 Initialisierung von lokalen Daten Datenkategorie Initialisierung Statische Variablen m glich Tempor re Variablen nicht m glich Bausteinparameter nur m glich bei Eingangs und Ausgangs parametern eines Funktionsbausteins SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 10 3 Vereinbarung lokaler Variablen und Bausteinparameter 10 2 Variablen und Parameterdeklaration bersicht Datentyp spezifikation 10 4 Eine Variablen oder Parameterdeklaration besteht aus einem frei w hlbaren Bezeichner f r den Variablennamen und einer Datentypangabe Die allgemeine Form zeigt das Syntaxdiagramm Die Vergabe von Systemattributen f r Parameter ist ausf hrlich beschrieben in Kapitel 8 4 Variablendeklaration Datentyp Datentyp BEZEICHNER 1 spezifikation initialisierung
112. R beim Aufruf angeben Das hat den Vorteil da Sie den Z hleraufruf dynamisch gestalten K nnen indem Sie dieser Variablen bei jedem Aufruf eine andere absolute Nummer zuweisen Beispiel FUNCTION_BLOCK ZAEHLER VAR_INPUT MeinZaehler Counter END_VAR currVAL S_CD C_NO MeinZaehler Da die Parameterwerte z B CD E0 0 global gespeichert sind ist ihre An gabe in bestimmten F llen optional Bei der Parameterversorgung sind folgende allgemeine Regeln zu beachten e Der Parameter f r die Z hlerbezeichnung C_NO mu beim Aufruf immer versorgt werden e Je nach Z hlerfunktion mu entweder der Parameter CU Aufw rtsz hler oder der Parameter CD Abw rtsz hler versorgt werden e Die Angabe der Parameter PV Vorbesetzwert und S Setzen kann paar weise entfallen e Der Ergebniswert im BCD Format ist immer der Funktionswert Hinweis Die Namen der Funktionen und Parameter sind in SIMATIC und IEC Mnemonik gleich Nur die Z hlerbezeichnung ist von der Mnemonik abh ngig SIMATIC Z und IEC C SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Zeiten und Z hler Beispiel Aufruf von Z hlfunktio nen Beispiel 17 2 veranschaulicht den Aufruf der Z hlfunktionen FUNCTION_BLOCK FBl VAR currVal binVal word actFlag bool END_VAR BEGIN currVal S_CD C_NO Z210 CD TRUE S TRUE PV 100 R FALSE CV binVal QO actFla
113. S Ausgangssignal e Zeit als speichernde Einschaltverz gerung Bild 17 6 Zeitglied Zeit als speichernde Einschaltverz gerung starten Tabelle 17 13 Funktionsweise Zeit als speichernde Einschaltverz gerung starten Zeit starten Die Operation Zeit als speichernde Eingangsverz gerung starten startet eine angegebene Zeit wenn der Signalzustand am Start eingang S von 0 auf 1 wechselt Um die Zeit freizugeben ist immer ein Signalwechsel erforderlich Zeit neu starten Die Zeit wird mit dem angegebenen Wert neu gestartet wenn Eingang S von 0 auf 1 wechselt w hrend die Zeit l uft Laufzeit festle Die Zeit l uft auch dann mit dem Wert weiter der an Eingang TV gen angegeben ist wenn der Signalzustand an Eingang S noch vor Ablauf der Zeit auf 0 wechselt R cksetzen Wechselt der R cksetzeingang R von 0 auf 1 wird die Zeit unabh ngig vom VKE Verkn pfungsergebnis siehe 232 an Eingang S zur ckgesetzt Signalzustand Eine Signalzustandsabfrage nach 1 an Ausgang Q ergibt nach abfragen Ablauf der Zeit unabh ngig vom Signalzustand an Eingang S das Ergebnis 1 Aktuellen Zeit Der aktuelle Zeitwert kann am Ausgang BI und durch den wert abfragen Funktionswert S_ODTS abgefragt werden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 19 Zeiten und Z hler 17 2 6 Zeit als Ausschaltverz gerung starten
114. S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 4 Erstellen des Organisationsbausteins ZYKLUS L sungsweg Ein OB1 wurde gew hlt weil er zyklisch aufgerufen wird Mit ihm werden folgende Aufgaben f r das Programm realisiert e Aufrufund Versorgung des Funktionsbausteins ERFASSEN mit Eingabe daten und Steuerungsdaten e bernahme der Ergebnisdaten des Funktionsbausteins ERFASSEN e Ausgabe der Werte zur Anzeige Am Anfang des Vereinbarungsteils steht das tempor re Datenfeld mit 20 byte systemdaten siehe auch Kapitel 8 ORGANIZATION_BLOCK ZYKLUS FREFFFELFLFEIELELRLELTELTE LET EF LET EFT LEITER REEL LEE LTE FFIR LE LEER KK ETE E EER EE E E ZYKLUS entspricht OBl d h er wird vom S7 System zyklisch aufgerufen Teil 1 Aufruf des Funktionsbausteins und bergabe der Eingabewerte Teil 2 bernahme der Ausgabenwerte und Ausgabe mit Ausgabeumschaltung RER EEE ORION ERROR ERROR ER EN A AA A E A RUEE ER TUSERDE LER VERLOR VERLOREN 2 VAR_TEMP systemdaten ARRAY 0 20 OF BYTE Bereich f r OB1 END_VAR BEGIN Teil 1 z ERREICHEN FR FF RN ERFASSEN ERFASSEN_DATEN messwert_ein WORD_TO_INT Eingabe neuwert Eingang 0 0 Eingabeschalter als Symbol neusort Sortierschalter funktionswahl Funktionsschalter neuwahl Codierschalter auswahl Codierung Teil 2 z KERERE EEE EEEE TEET EREEREER EEEEE AEREE REEERE IE ERER RCH IF Aus
115. SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 17 Aufruf von Funktionen und Funktionsbausteinen Besonderheiten Beachten Sie die folgenden Besonderheiten e Nach dem Bausteindurchlauf wird der ver nderte Wert des Durchgangs parameters aktualisiert e Bei Durchgangsparametern von einem nichtelementaren Datentyp sind als Aktualparameter nicht erlaubt FB Eingangsparameter FB Durchgangsparameter oder FC Parameter e ANY Parameter Grunds tzlich gilt hier auch die erste Aussage Bei Durchgangsparametern von einem nichtelementaren Datentyp sind als Aktualparameter nicht erlaubt FB Eingangsparameter FC Eingangsparameter Zus tzlich gilt da Konstanten als Aktualparameter nicht zul ssig sind Wenn als Funktionsergebnis R ckgabewert der Typ ANY vereinbart ist gilt au erdem Alle ANY Parameter m ssen mit Operanden versorgt werden deren Datentyp innerhalb einer Typklasse liegt Als Typklasse wird dabei z B die Menge der numerischen Datentypen INT DINT REAL oder die Menge der Bit Datentypen BOOL BYTE WORD DWORD verstanden Die anderen Datentypen bilden jeweils eine eigene Typklasse Der SCL Compiler geht davon aus da sich der Datentyp des aktuellen Funktionsergebnisses als der m chtigste Typ unter den Aktualparameter die den ANY Parametern zugewiesen sind bestimmen l t Mit dem Funktionsergebnis sind dann alle Operationen erlaubt die f r diesen Datenty
116. SCL greift bei der bersetzung auf diese Tabelle zu Das Erstellen der Symboltabelle und die Werteingabe in die Symboltabelle erfolgt mit STEP 7 Sie k nnen die Symboltabelle mit dem SIMATIC Manager oder direkt mit SCL ber den Men befehl Extras gt Symboltabelle ffnen Dar berhinaus ist es m glich als Textdatei vorliegende Symboltabellen die mit beliebigen Texteditoren erstellt sein K nnen zu importieren und weiterzubearbeiten Informationen hierzu finden Sie in 231 Wie gehen Sie Um ein Anwenderprogramm mit SCL zu erstellen legen Sie zun chst eine vor SCL Quelle an In dieser Quelle k nnen Sie entweder einen oder mehrere Bausteine OB FB FC DB und UDT editieren und anschlie end in einem Batchlauf bersetzen Durch das bersetzen der Quelle werden die enthaltenen Bausteine im Beh lter Anwenderprogramm lt AP off gt siehe Bild 5 1 desselben S7 Programms aufgenommen in dem auch die Quelle gespeichert ist Das Anlegen und Editieren der SCL Quelle k nnen Sie mit dem integrierten Editor oder mit einem Standard Editor vornehmen Quellen die Sie mit einem Standardeditor erzeugt haben m ssen Sie mit dem SIMATIC Manager in das Projekt importieren Danach k nnen Sie sie ffnen um sie weiterzubearbeiten oder zu bersetzen SCL f r S7 300 400 Bausteine programmieren 5 2 C79000 G7000 C522 01 Programmieren mit SCL 5 2 Anlegen und ffnen einer SCL Quelle bersicht Anlegen der SCL Quelle
117. SIEMENS Teil 1 Entwerfen Teil 2 Bedienen und Testen SIMATIC S7 Teil 3 Sprachbeschreibung Anh nge SCL f r S7 300 400 Bausteine programmieren Glossar Index Handbuch Dieses Handbuch hat die Bestellnummer 6ES7811 1CA02 8AA0 Sicherheitstech Dieses Handbuch enth lt Hinweise die Sie zu Ihrer pers nlichen Sicherheit sowie zur Ver nische Hinweise meidung von Sachsch den beachten m ssen Die Hinweise sind durch ein Warndreieck her vorgehoben und je nach Gef hrdungsgrad folgenderma en dargestellt N Gefahr bedeutet da Tod schwere K rperverletzung oder erheblicher Sachschaden eintreten werden wenn die entsprechenden Vorsichtsma nahmen nicht getroffen werden e Warnung bedeutet da Tod schwere K rperverletzung oder erheblicher Sachschaden eintreten k nnen wenn die entsprechenden Vorsichtsma nahmen nicht getroffen werden N Vorsicht bedeutet da eine leichte K rperverletzung oder ein Sachschaden eintreten k nnen wenn die entsprechenden Vorsichtsma nahmen nicht getroffen werden Hinweis ist eine wichtige Information ber das Produkt die Handhabung des Produktes oder den jeweiligen Teil der Dokumentation auf den besonders aufmerksam gemacht werden soll Qualifiziertes Inbetriebsetzung und Betrieb eines Ger tes d rfen nur von qualifiziertem Personal vorge Personal nommen werden Qualifiziertes Personal im Sinne der sicherheitstechnischen Hinweise die ses
118. Sie ber Wertzuweisungen Ihre DB Daten mit Werten vorbesetzen Deshalb wird der Anweisungsteil eines DB in den weiteren Kapiteln mit Zuweisungsteil bezeichnet Nach dem bersetzen werden die erzeugten Bausteine im Beh lter Bausteine des jeweiligen S7 Programms abgelegt Von dort aus m ssen Sie sie in die CPU laden Informationen hierzu finden Sie in 231 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 7 12 Kommentare bersicht Zeilenkommentar Blockkommentar 7 20 Kommentare dienen der Dokumentation und dem besseren Verst ndnis eines SCL Bausteins Sie sind nach dem bersetzen f r den Programmablauf ohne Bedeutung Es gibt zwei Kommentararten e den Zeilenkommentar und e den Blockkommentar Der Zeilenkommentar wird mit eingeleitet und erstreckt sich bis zum Ende der Zeile Seine L nge ist begrenzt auf max 253 Zeichen einschlie lich dem Einleitungszeichen Er kann durch das folgende Syntaxdiagramm formal dargestellt werden Zeilenkommentar druckbares gt T Zeichen CP gt Wagenr cklauf carriage return Bild 7 8 Syntax Zeilenkommentar Die druckbaren Zeichen entnehmen Sie bitte Tabelle A 2 im Anhang Innerhalb des Zeilenkommentars sind die Zeichenpaare und bedeutungslos Der Blockkommentar kann ber mehrere Zeilen gehen und wird als Block mit eingeleitet und mit x abgeschlo
119. Standardfunktionen nein vordefinierte Namen bei Standardkonstanten nein Operandenkennzeichen bei Absolutbezeichnern nein freie Namen nein Symbole der Symboltabelle nein Die Namen f r Standardfunktionen z B BYTE_TO_WORD und ABS k nnen also auch in Kleinbuchstaben geschrieben werden Genauso die Parameter f r Zeit und Z hlfunktionen z B SV se oder ZV SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 A 15 Formale Sprachbeschreibung A 10 Namensvergabe bei SCL Vergabe von w hlbaren Namen Regeln bei der Namensvergabe A 16 F r die Vergabe von Namen haben Sie generell 2 M glichkeiten Sie k nnen Namen innerhalb SCL selbst vergeben Diese Namen m ssen der Regel BEZEICHNER entsprechen siehe Bild A 8 Die Regel BEZEICHNER k nnen Sie f r jeden Namen in SCL benutzen Sie k nnen Namen ber STEP 7 mit Hilfe der Symboltabelle einf hren Die Regel f r diese Namen ist ebenfalls BEZEICHNER oder als erweiterte M glichkeit Symbol Durch die Angabe in Hochkommata kann das Symbol mit allen druckbaren Zeichen z B Leerzeichen gebildet werden BEZEICHNER _ Buchstabe Q ii Buchstabe jy Unterstrich Unterstrich Ze 4 SYMBOL druckbares gt C T Zeichen C gt Bild A 8 Lexikalische Regeln BEZEICHNER und Symbol Beachten Sie bitte folgendes Bei der Namensvergabe w hlen Sie am besten eind
120. Syntax RETURN Anweisung Hinweis Eine RETURN Anweisung am Ende des Anweisungsteils eines Codebausteins bzw des Vereinbarungsteils eines Datenbausteins ist redundant da diese auto matisch ausgef hrt wird SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen bersicht Sie k nnen aus einem SCL Baustein heraus Funktionen FC oder Funktions bausteine FB aufrufen Aufrufbar sind e Funktionen und Funktionsbausteine die in SCL erstellt wurden e Funktionen und Funktionsbausteine die in einer anderen STEP 7 Sprache Kapitel bersicht z BAWL KOP programmiert sind Systemfunktionen SFC und Systemfunktionsbausteine SFB die im Betriebssystem der von Ihnen verwendeten CPU verf gbar sind Im Kapitel finden Sie auf Seite 16 1 Aufruf und Parameter bergabe 16 2 16 2 Aufruf von Funktionsbausteinen FB oder SFB 16 3 16 2 1 FB Parameter 16 5 16 2 2 Eingangszuweisung FB 16 2 3 Durchgangszuweisung FB 16 2 4 Beispiel f r den Aufruf einer globalen Instanz 16 2 5 Beispiel f r den Aufruf einer lokalen Instanz 16 3 Aufruf von Funktionen 16 3 1 FC Parameter 16 15 16 3 2 Eingangszuweisung FC 16 16 16 3 3 Ausgangs Durchgangszuweisung FC 16 17 16 3 4 Beispiel f r einen Funktionsaufruf 16 19 16 4 Implizit definierte Parameter 16 20 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01
121. TE p Datumsangabe D Bild 11 12 Syntax Datum Die Datumsangabe erfolgt durch Integerzahlen f r die Jahreszahl 4 stellig der Monatsangabe und die Tagesangabe die durch Bindestriche zu trennen sind Datumsangabe N DEZIMAL DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE ZIFFERNFOLGE Jahr Monat Tag Bild 11 13 Syntax Datumsangabe G ltige Datumsangaben sind Datumsangabe ZEITVARIABLEl DATE 1995 11 11 ZEITVARIABLE2 D 1995 05 05 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung von Konstanten und Sprungmarken Zeitdauer Eine Zeitdauer wird durch den Pr fix TIME oder T eingeleitet siehe Bild 11 14 Die Angabe der Zeitdauer kann auf zwei Arten erfolgen e Dezimaldarstellung e Stufendarstellung ZEITDAUER TIMER Dezimaldarstellung I gt Ta Stufendarstellung L Dezimaldarstellung sa J ede Zeiteinheit z B Stunden Minuten darf nur 1 x angegeben werden Die Reihenfolge Tage Stunden Minuten Sekunden Millisekunden ist einzuhalten Bild 11 14 Syntax Zeitdauer Die Dezimaldarstellung verwenden Sie wenn Sie Ihre Zeitdauer alternativ in Tagen Stunden Minuten Sekunden oder Millisekunden ausdr cken m ssen Dezimaldarstellung DEZIMAL Tage ZIFFERNFOLGE DEZIMAL DEZIMAL Sna ZIFFERNFOLGE Ca ZIFFERNFOLGE unden DEZIMAL ZIFFERNFOLGE
122. TE_AND_TIME 1995 01 01 12 12 12 2 UHRZEIT2 DT 1995 02 02 11 11 11 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 11 13 Vereinbarung von Konstanten und Sprungmarken 11 6 Sprungmarken Beschreibung Sprungmarken Labels dienen dazu das Ziel einer GOTO Anweisung siehe Kapitel 11 4 zu definieren Vereinbarung von Sprungmarken werden im Vereinbarungsteil eines Codebausteins mit ihrem Sprungmarken symbolischen Namen siehe Kapitel 8 4 vereinbart Sprungmarkenblock LABEL BEZEICHNER END_LABEL gt Sprungmarke C Bild 11 20 Syntax Sprungmarkenblock Beispiel Beispiel 11 4 verdeutlicht die Vereinbarung der Sprungmarken MARK B 1 MARKE2 MARKE3 Beispiel 11 4 Sprungmarken SCL f r S7 300 400 Bausteine programmieren 11 14 C79000 G7000 C522 01 Vereinbarung globaler Daten Zusammenfassung Kapitel bersicht SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 12 Globale Daten sind Daten die von jedem Codebaustein FC FB OB aus benutzbar sind Auf diese Daten kann entweder absolut oder symbolisch zugegriffen werden In diesem Kapitel werden die einzelnen Datenbereiche vorgestellt Es wird beschrieben wie Sie diese Daten ansprechen k nnen Im Kapitel finden Sie auf Seite 12 1 bersicht 12 2 12 2 Speicherbereiche einer CPU 12 3 Absoluter Zugriff auf CPU Speicherbe
123. TRUCT Anschlie end wird die gesamte Vereinbarung eines UDT mit dem Schl sselwort END_TYPE abgeschlossen Der so definierte Datentyp kann zur Verwendung von Variablen oder Para metern sowie zur Vereinbarung von DB verwendet werden Es k nnen auch Komponenten von Strukturen oder Feldern auch innerhalb anderer UDT mit Hilfe des UDT vereinbart werden Hinweis Bei der Vergabe von Anfangswerten Initialisierung innerhalb eines UDT gilt die Syntax von AWL Informationen ber die Schreibweisen der Konstanten k nnen Sie dem Benutzerhandbuch 231 oder dem Handbuch 232 ent nehmen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen Beispiel Das Beispiel zeigt Ihnen eine Definition eines UDT und die Verwendung dieses Datentyps innerhalb einer Variablenerkl rung Es wird vorausgesetzt da in der Symboltabelle der Name MESSWERTE f r UDT50 vereinbart wurde TYPE MESSWERTE UDT Definition STRUCT BIPOL_1 INT BIPOL_2 WORD W 16 AFAl BIPOL_3 BYTE B 16 FF BIPOL_4 WORD B 25 25 BIPOL_5 INT 25 S_TIME S5STIME S5T 1h20m10s MESSUNG STRUCT BIPOLAR_10V REAL UNIPOLAR_4_20MA REAL END_STRUCT END_STRUCT ND_TYP Ei m FUNCTION_BLOCK FB11 VAR MESS_BEREICH MESSWERTE D_VAR BEGIN Eal MESS_BEREICH BIPOL 4 MESS_BERE
124. XIT END_IF END_FOR END_FUNCTION_BLOCK Beispiel 15 3 FOR Anweisung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15 9 Kontrollanweisungen 15 5 WHILE Anweisung Prinzip Ausf hrung Beispiel 15 10 Die WHILE Anweisung erlaubt die wiederholte Ausf hrung einer Anweisungs folge unter der Kontrolle einer Durchf hrungsbedingung Die Durchf hrungs bedingung wird nach den Regeln eines logischen Ausdruck gebildet WHILE Anweisung WHILE Ausdruck DO Anweisungs END_WHILE Durchf hrungsbedingung Bild 15 6 Syntax WHILE Anweisung Der auf DO folgende Anweisungsteil wird solange wiederholt wie die Durch f hrungsbedingung den Wert TRUE besitzt Die WHILE Anweisung wird nach folgenden Regeln bearbeitet 1 Vor jeder Ausf hrung des Anweisungsteils wird die Durchf hrungs bedingung ausgewertet 2 Tritt der Wert TRUE auf wird der Anweisungsteil ausgef hrt 3 Tritt der Wert FALSE auf ist die Ausf hrung der WHILE Anweisung beendet Dies kann auch schon bei der ersten Auswertung der Fall sein Hinweis Beachten Sie da die Anweisung END_WHILE mit einem Semikolon abzuschlie en ist Beispiel 15 4 veranschaulicht den Gebrauch der WHILE Anweisung FUNCTION_BLOCK SUCHEN VAR INDEX INT KENNWORT ARRAY 1 50 OF STRING END_VAR BEGIN INDEX 1 WHILE INDEX lt 50 AND KENNWORT INDEX lt gt KEY DO INDEX IND
125. agramm EINFACHER gt OPERANDEN SPEICHERZUGRIFF BEZEICHNER SYMBOL P KENNZEICHEN Adresse absoluter Zugriff symbolischer Zugriff INDIZIERTER SPEICHERZUGRIFF Index Basis Ausdruck Operanden kennzeichen DB 3 Basis en OO A OD nur bei Bitzugriff OPERANDEN KENNZEICHEN Speicher Gr en po aie Pr fix gt FUR SPEICHER ABSOLUTER DB ZUGRIFF I Operandenkennzeichen Bf Adresse o absoluter Zugriff INDIZIERTER a DB ZUGRIFF Di assia O nur bei Bitzugriff Basis Ausdruck STRUKTURIERTER DB ZUGRIFF j einfache p DB Bezeichnung ae Ho SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 B 9 Lexikalische Regeln Tabelle B 3 _Absolutadressierung Fortsetzung Regel Syntaxdiagramm Operanden Operandenkennzeichen Kennzeichen DB DB Gr en 1 Bezeichnung H XO En jo Speicher Pr fix E J Eingang gt M M Merker gt PE PI Peripherie Eingang PA PQ Peripherie Ausgang SIMATIC Mnemonik IEC Mnemonik Gr en Pr fix f r Speicher und DB X Bit Wy Won D lt m Doppelwort Adresse nur bei Bitadresse Zugriff auf lokale Instanz einfache Lokaler Instanzname SCL f r S7 300 400 Bausteine programmieren B 10 C79000
126. aktuelle Zeitwert kann am Ausgang BI und durch den wert abfragen Funktionswert S_PEXT abgefragt werden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 17 Zeiten und Z hler 17 2 4 Zeit als Einschaltverz gerung starten Beschreibung Das Ausgangssignal wechselt nur von 0 auf 1 wenn die programmierte Zeit abgelaufen ist und das Eingangssignal noch immer 1 betr gt D h der Ausgang wird verz gert eingeschaltet Eingangssignale deren Zeitdauer k rzer als die der programmierten Zeit sind erscheinen am Ausgang nicht Bild 17 5 veranschaulicht die Funktionsweise des Zeitgliedes Zeit als Einschaltverz gerung starten Eingangssignal E2 1 A A4 0 S_ODT x ES usgangssignal Zeit als Einschaltver z gerung Bild 17 5 Zeitglied Zeit als Einschaltverz gerung starten Tabelle 17 12 Funktionsweise Zeit als Einschaltverz gerung starten Funktionsweise Operation Funktionsweise Zeit starten Die Operation Zeit als Eingangsverz gerung starten startet eine angegebene Zeit wenn der Signalzustand am Starteingang S von 0 auf 1 wechselt Um die Zeit freizugeben ist immer ein Signalwechsel erforderlich Zeit anhalten Wechselt der Signalzustand an Eingang S von 1 auf 0 w hrend die Zeit l uft wird sie angehalten Laufzeitfestlegen Die Zeit l uft mit dem Wert weiter der an Eingang TV angegeben ist sol
127. ale der lexikalischen Regeln A 4 Formatierungs Trennzeichen und Operatoren A 5 Schl sselw rter und vordefinierte Bezeichner A 6 Operandenkennzeichen und Bausteinschl sselw rter A 12 A 7 bersicht Non Terminale A 14 A 8 bersicht Token A 14 A I Bezeichner A 15 A 10 Namensvergabe bei SCL A 11 Vordefinierte Konstanten und Flags A 18 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 A 1 Formale Sprachbeschreibung A 1 bersicht Was ist ein Syntax Das Syntaxdiagramm ist eine grafische Darstellung der Struktur der Sprache diagramm Die Struktur wird durch eine Folge von Regeln beschrieben Dabei kann eine Regel auf bereits eingef hrten Regeln aufbauen Regelname Ice Option Sequenz Iteration Alternative Bild A 1 Beispiel eines Syntaxdiagramms Das Syntaxdiagramm wird von links nach rechts gelesen Dabei sind die folgenden Regelstrukturen zu beachten e Sequenz Folge von Bl cken e Option berspringbarer Zweig e Iteration Wiederholung von Zweigen e Alternative Verzweigung Welche Arten von Ein Block ist ein Grundelement oder ein Element das wiederum aus Bl cken Bl cken gibt es zusammengesetzt ist Folgendes Bild zeigt die Symbolarten die den Bl cken entsprechen Terminal Non Terminal Ie Grundelement das nicht weiter erkl rt Regelname beliebig werden mu Zusammengesetztes Element das Hier handelt es sich um druckbare durch weitere Syntaxdiagramme Zeichen und
128. ammieren C79000 G7000 C522 01 Vereinbarung globaler Daten 12 5 Indizierter Zugriff auf CPU Speicherbereiche Prinzip Absolutbezeichner Regeln f r den indizierten Zugriff Sie haben auch die M glichkeit auf die Speicherbereiche einer CPU indiziert zuzugreifen Dies hat gegen ber dem absoluten Zugriff den Vorteil da Sie die Zugriffe durch die Verwendung von variablen Indizes dynamisch adressieren k nnen So k nnen Sie z B die Laufvariable einer FOR Schleife zur Indizierung verwenden Der indizierte Zugriff auf einen Speicherbereich geschieht hnlich wie der absolute Zugriff Er unterscheidet sich nur in der Angabe der Adresse Anstelle der Adresse wird ein Index spezifiziert der eine Konstante eine Variable oder ein arithmetischer Ausdruck sein kann Der Absolutbezeichner setzt sich beim indizierten Zugriff aus dem Operanden kennzeichen sowie einem Basisausdruck f r das Indizieren zusammen nach Kapitel 12 3 Gr en Pr fix Speicher Pr fix E X i j Adresse Basis Ausdruck f r Index eingeschlossen in eckige Operandenkennzeichen Klammern Die Indizierung mu den folgenden Regeln entsprechen e Bei einem Zugriff der vom Datentyp BYTE WORD oder DWORD ist m ssen Sie genau einen Index verwenden Der Index wird als Byteadresse interpretiert Die Zugriffsbreite wird durch das Gr en Pr fix festgelegt e Bei einem Zugriff der vom Datentyp BOOL ist m ssen Sie zwei In
129. ammieren mit SCL bersicht Beim Programmieren sind eine Reihe von Arbeitsschritten notwendig Dieses Kapitel beschreibt diese Arbeitsschritte und gibt Ihnen eine m gliche Reihenfolge vor Kapitel bersicht Im Kapitel finden Sie auf Seite 5 1 Erstellen von Anwenderprogammen in SCL 5 2 5 2 Anlegen und ffnen einer SCL Quelle 5 3 Eingeben von Vereinbarungen Anweisungen und Kommen taren 5 4 Speichern und Drucken einer SCL Quelle 5 5 5 5 Der bersetzungsvorgang 5 6 5 6 bertragen des erstellten Anwenderprogramms in das AS 5 7 Erstellen einer bersetzungssteuerdatei 5 10 SCL f r S7 300 400 Bausteine programmieren 54 C79000 G7000 C522 01 Programmieren mit SCL 5 1 Erstellen von Anwenderprogammen in SCL Voraussetzungen Bevor Sie mit SCL ein Programm erstellen sollten Sie folgende Arbeiten der Programm durchf hren erstellung 1 Richten Sie mit dem SIMATIC Manager ein Projekt ein 2 Ordnen Sie mit dem SIMATIC Manager jeder CPU die Kommunikationsadresse im Netz zu 3 Konfigurieren und parametrieren Sie die Zentral und Signalbaugruppen 4 Legen sie eine Symboltabelle an falls Sie f r Speicherbereiche der CPU oder f r Bausteinbezeichnungen symbolische Adressen verwenden m chten Erstellen der Wenn Sie in Ihrem SCL Programm symbolische Adressen f r Speicher Symboltabelle bereiche der CPU oder Bausteinbezeichnungen verwenden wollen m ssen Sie eine Symboltabelle erstellen
130. ange der Signalzustand an Eingang S 1 ist R cksetzen Die Zeit wird zur ckgesetzt wenn der R cksetzeingang R von 0 auf 1 wechselt w hrend die Zeit l uft Durch diesen Wechsel werden auch der Zeitwert und die Zeitbasis auf Null zur ckgesetzt Die Zeit wird auch dann zur ckgesetzt wenn R 1 ist w hrend die Zeit nicht l uft Signalzustand Eine Signalzustandsabfrage nach 1 an Ausgang Q ergibt 1 abfragen wenn die Zeit fehlerfrei abgelaufen ist und Eingang S noch immer 1 ist Wurde die Zeit angehalten ergibt eine Signalzustandsabfrage nach 1 immer 0 Eine Signalzustandsabfrage nach 1 an Ausgang Q ergibt auch dann 0 wenn die Zeit nicht l uft und das VKE Verkn pfungs ergebnis siehe 232 an Eingang S noch immer 1 betr gt Aktuellen Zeit Der aktuelle Zeitwert kann am Ausgang BI und durch den wert abfragen Funktionswert S_ODT abgefragt werden SCL f r S7 300 400 Bausteine programmieren 17 18 C79000 G7000 C522 01 Zeiten und Z hler 17 2 5 Zeit als speichernde Einschaltverz gerung starten Beschreibung Das Ausgangssignal wechselt nur von 0 auf 1 wenn die programmierte Zeit abgelaufen ist unabh ngig davon wie lange das Eingangssignal auf 1 bleibt Bild 17 6 veranschaulicht die Funktionsweise des Zeitgliedes Zeit als speichernde Einschaltverz gerung starten Eingangssignal E 2 1 D A A 4 0 S_ODT
131. angszuweisung Eingangszuweisung en 15 11 Allgemein Compiler Debug Editor Alternativen Anweisungen CASE Anweisung 15 6 CONTINUE Anweisungen EXIT Anweisungen FOR Anweisungen GOTO Anweisung IF Anweisung 15 4 REPEAT Anweisungen RETURN Anweisungen WHILE Anweisungen Anweisungsteil 8 10 Anweisungen 8 10 FC 7 19 Syntax 8 10 Anwenderdaten bersicht Daten global 12 2 Anwenderdefinierte Datentypen 7 13 Anwenderdefinierter Datentyp Aufbau 8 19 Anwenderprogrann 113121719 Arbeitsbereich 4 3 Arithmetische Operatoren Arithmetischer Ausdruck Art Baustein Funktion ASCII Quelldatei Erstellen und bersetzen in SCL 5 3 in SCL erstellen 5 2 Attribute 8 5 Aufl sung Siehe Zeitbasis f r S5 TIME SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufruf Funktionen 16 13 Funktionsbausteine FB oder SFB 16 3 globale Instanz lokale Instanz R ckgabewert Ergebnis Z hlfunktionen Zeitglied dynamisch 17 4 17 12 Aufw rts Abw rtsz hlen Aufw rtskompatibel 1 4 Aufw rtsz hlen Ausdruck arithmetisch boolescher Potenzausdruck Re geln 13 4 Ausgan gsparameter 10 10 lesen 16 12 Ausgangswert lesen 16 11 Ausgangszuweisung Aktualparameter 16 17 Auswahl Bausteinarten Auswahlanweisung 15 2 AUTHORS EXE 3 3 Autorisierung Originaldiskette bertragen 3 3 AWL Erweite
132. anisationsbausteins OB 8 16 8 10 Aufbau eines Datenbausteins DB 8 17 8 11 Aufbau eines anwenderdefinierten Datentyps UDT 8 19 8 1 Aufbau einer SCL Quelldatei 8 1 Aufbau bersicht Reihenfolge der Bausteine Eine SCL Quelldatei besteht aus dem Quelltext von 1 bis n Bausteinen das k nnen sein FB FC OB DB und UDTs Damit sich Ihre SCL Quelldatei in die einzelnen Bausteine bersetzen l t m ssen Sie bestimmte Strukturen und Syntaxvorschriften dieser Bausteine beachten SCL Programmeinheit Organisationsbaustein Funktion H gt 5 Funktionsbaustein gt Datenbaustein Anwenderdef Datentyp H Bild 8 1 Syntax SCL Programmeinheit Bez glich der Reihenfolge der Bausteine m ssen Sie bei der Erstellung der Quelldatei folgendes beachten Aufgerufene Bausteine stehen vor den aufrufenden Bausteinen Das hei t e Anwenderdefinierte Datentypen UDTs stehen vor den Bausteinen in denen Sie verwendet werden e Datenbausteine mit einem zugeordneten anwenderdefiniertem Datentyp UDT stehen hinter dem UDT e Datenbausteine auf die von allen Codebausteinen aus zugegriffen werden kann stehen vor den Bausteinen aus denen Sie aufgerufen werden e Datenbausteine mit zugeordnetem Funktionsbaustein stehen hinter dem Funktionsbaustein e Der Organisationsbaustein OB 1 der andere Bausteine aufruft steht zuletzt Bausteine die wiederum von den aus OB 1 au
133. anz deklarieren END_VAR Bild 2 8 Vereinbarungsteil des Funktionsbausteins ERFASSEN SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 13 Entwerfen eines SCL Programms Entwurf Anweisungsteil Me werte erfassen Sortierung und Berechnung ansto en Codierung aus werten und Ausgabe vorbereiten Berechnung der Adresse 2 14 Er gliedert sich in 3 Teile Wenn sich der Eingangsparameter neuwert gegen ber altwert ver ndert hat wird ein neuer Me wert in den Ringpuffer eingelesen Sortierung und Berechnung werden durch Aufruf des Funktionsbausteins AUSWERTEN angesto en wenn sich der Eingangsparameter neusort gegen ber altsort ver ndert hat Die Codierung wird wortweise eingelesen Nach der SIMATIC Konvention bedeutet dies da die obere Schaltergruppe ByteO die h herwertigen 8 Bit des Eingabeworts enth lt und die untere Schaltergruppe Bytel die niederwertigen Das Bild 2 9 zeigt wo die Schalter liegen an denen Sie die Codierung ein stellen Schalter an Wort im nach SHR nach AND Baugruppe Speicher um 12 Stellen Maske 000F adresse Schalter f r Codie rungswert Codier 2 schalter Bild 2 9 Auswertung der Codierung Bild 2 9 zeigt die Berechnung der Adresse Das Eingabewort EWO enth lt im 12 bis 14 Bit die Codierung die bernommen wird wenn am Codierschalter 15 Bit eine Flanke erkannt wird Durc
134. arbeitet Die Formalparameter z hlen zu den Lokaldaten des Bausteins und unterteilen sich nach Eingangs Ausgangs und Durchgangsparametern Eine Funktion FC ist gem IEC 1131 3 ein Codebaustein ohne statische Daten Eine Funktion bietet die M glichkeit der bergabe von Parametern im Anwenderprogramm Dadurch eignen sich Funktionen zur Parametrierung von h ufig wiederkehrenden komplexen Funktionen z B Berechnungen Ein Funktionsbaustein FB ist gem IEC 1131 3 ein Codebaustein mit statischen Daten Daten statisch Ein FB bietet die M glichkeit der bergabe von Parametern im Anwenderprogramm Dadurch eignen sich Funktionsbausteine zur Programmierung von h ufig wiederkehrenden komplexen Funktionen z B Regelungen Betriebsartenanwahl Da ein FB ber ein Ged chtnis Instanz Datenbaustein verf gt kann auf seine Parameter z B Ausg nge zu jeder Zeit an jeder beliebigen Stelle im Anwenderprogramm zugegriffen werden Globale Daten sind Daten die von jedem Codebaustein FC FB OB aus ansprechbar sind Im einzelnen sind das Merker M Eing nge E Ausg nge A Zeiten Z hler und Elemente von Datenbausteinen DB Auf globale Daten kann entweder absolut oder symbolisch zugegriffen werden Eine GOTO Anweisung bewirkt den sofortigen Sprung zu einer angegebenen Marke Der Betriebszustand HALT wird aus dem Betriebszustand RUN durch Anforderung vom Programmierger t erreicht In diesem Betriebszustand sind spezielle Testfunktio
135. as Proze abbild der Eing nge PAE und das der Ausg nge PAA Das Proze abbild der Ausg nge wird am Ende des Anwenderprogramms vom Betriebssystem auf die Ausgangsbaugruppen bertragen Das Proze abbild der Eing nge wird vor der Bearbeitung des Anwender programms vom Betriebssystem von den Eingangsbaugruppen gelesen Eine Quelle Textdatei enth lt Quellcode ASCH Text der mit beliebigen Texteditoren erstellbar ist Eine Quelle wird mit einem Compiler AWL SCL in ein lauff higes Anwenderprogramm bersetzt Eine Quelle wird im Beh lter Quellen unter dem S7 Programm abgelegt Die quellorientierte Eingabe eines STEP 7 Programms ist bei Programmierung in SCL m glich Die Eingabe eines Programms ist mit jedem beliebigen Texteditor m glich Der eigentliche Programmcode wird erst beim bersetzungslauf erzeugt Dann werden auch eventuelle Fehler erkannt Diese Eingabeart eignet sich f r die symbolische Erstellung von Standardprogrammen Eine Realzahl auch Gleitpunktzahl genannt ist eine positive oder negative Zahl die einen Dezimalwert wie z B 0 339 oder 11 1 enth lt Eine REPEAT Anweisung dient zur Wiederholung einer Folge von Anweisungen bis zu einer Abbruchbedingung Diese Anweisung bewirkt das Verlassen des aktuellen Bausteins Durch die R ck bersetzung nach AWL ist es m glich den in der CPU geladenen Baustein mit einem beliebigen PG PC laden und anzeigen zu k nnen Dabei k nnen bestimmte Teile des Baus
136. asse wenn der Zieldatentyp weniger m chtig als der Quelldatentyp ist Deshalb m ssen Sie hier eine explizite Datentyp Konvertierung durchf hren Die notwendigen Informationen finden Sie in Kapitel 18 2 Wenn diese beiden F lle nicht zutreffen erzwingt der Compiler eine auto matische Konvertierung in ein gemeinsames Format Dies wird im folgenden als implizite Datentyp Konvertierung bezeichnet Innerhalb der in Tabelle 18 1 definierten Klassen von Hilfs Datentypen wird vom Compiler eine implizite Datentyp Konvertierungen in der angegebenen Reihenfolge durchgef hrt Als gemeinsames Format zweier Operanden ist je weils der kleinste Standardtyp definiert dessen Wertebereich beide Operanden beinhaltet So ist z B das gemeinsame Format von Byte und Integer Integer Beachten Sie bitte auch da bei einer Datentyp Konvertierung innerhalb der Klasse ANY_BLT f hrende Bits auf 0 gesetzt werden Tabelle 18 1 Reihenfolge impliziter Datentyp Konvertierungen Klassen Reihenfolge der Konvertierung ANY_BIT BOOL gt BYTE gt WORD DWORD ANY_NUM INT gt DINT gt REAL Das folgende Beispiel soll die implizite Konvertierung von Datentypen verdeut lichen FUNCTION_BLOCK FB10 VAR PID_REGLER_1 BYTE PID_REGLER_2 WORD END_VAR B IF PID_REGLER_1 lt gt PID_REGLER_2 THI In der Bedingung obiger IF THEN Anweisung wird PID_REGLER_1
137. ata Type Symbol druckbares 2 gt T Zeichen C gt Nummer gt 7 Ziffer gt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 0522 01 B 3 Lexikalische Regeln B 1 1 Literale Tabelle B 2 Literale Regel Syntaxdiagramm INTEGER LITERAL On 1 nur bei den Datentypen INT und DINT DEZIMAL ZIFFERNFOLGE Bin rziffernfolge Oktalziffernfolge Hexadezimalziffernfolge REALZAHL DEZIMAL Q DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE LITERAL gt gt gt _ DEZIMAL DEZIMAL Q ZIFFERNFOLGE C ZIFFERNFOLGE Exponent ae N Dezimakzifer N 4 o 0 Dezimalziffer 0 9 Unterstrich Bin rziffernfolge N 2 Zn _Bin rziffer N 4 o e Bin rziffer 0 oder 1 Unterstrich ktalziffernfol Oktalziffernfolge gt 8 an Oktalziffer gt 4 O Oktalziffer 0 8 Unterstrich SCL f r S7 300 400 Bausteine programmieren B 4 C79000 G7000 0522 01 Lexikalische Regeln Tabelle B 2 Literale Fortsetzung ee Regel Syntaxdiagramm Hexadezimal ziffernfolge gt 16 7 Hexadezimalziffer gt lt 4 Hexadezimalziffer 0 9 4 A F Unterstrich Exponent DEZIMAL D ZIFFERNFOLGE gt CHARACTER LITERAL gt STRING LITERAL
138. aten Zugriffsart CPU Speicherbereiche Globale Anwenderdaten absout T a T a y symbolisch ja ja indiziert ja ja strukturiert nein ja SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung globaler Daten 12 2 CPU Speicherbereiche Definition Die CPU Speicherbereiche sind systemvereinbarte Bereiche Deshalb brauchen Sie diese Bereiche in Ihrem Codebaustein nicht zu vereinbaren Verschiedene Jede CPU stellt folgende Speicherbereiche mit einem eigenen Adre raum zur Speicherbereiche Verf gung e Ein Ausg nge im Proze abbild e Peripherieein ausg nge e Merker e Zeitglieder Z hler siehe Kapitel 17 Syntax f r den Der Zugriff auf einen CPU Speicherbereich erfolgt in einer Wertzuweisung im Zugriff Anweisungsteil eines Codebausteins siehe Kapitel 14 3 e mit einem einfachen Zugriff den Sie absolut oder symbolisch angeben k nnen oder e mit einem indizierten Zugriff EINFACHER SPEICHERZUGRIFF N EN Adresse absoluter Zugriff BEZEICHNER lischer Zugriff SYMBOL symbolischer Zugri INDIZIERTER SPEICHERZUGRIFF Index Basis OPERANDEN 4 KERNE D j Ausdruck O gt Bild 12 1 Syntax Einfacher und Indizierter Speicherzugriff SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 12 3 Vereinbarung globaler Daten 12 3 Absoluter Zugriff auf CPU Speicherbereiche Prinzip Absolutbezeichn
139. ausdrucks ist der Typ des linken Operanden SCL f r S7 300 400 Bausteine programmieren 14 2 C79000 G7000 C522 01 Wertzuweisungen 14 2 Wertzuweisungen mit Variablen eines elementaren Typs Zuweisung Jeder Ausdruck und jede Variable mit einem elementaren Datentyp kann einer anderen typengleichen Variablen zugewiesen werden Bezeichner Bezeichner Beispiele FUNCTION_BLOCK FB10 VAR SCHALTER_1 INT SCHALTER_2 INT SOLLWERT_1 REAL SOLLWERT_2 REAL ABFRAGE_1 BOOL ZEIT_1 S5TIME ZEIT_2 TIME DATUM_1 DATE TAGESZEIT_ END_VAR BEGIN Zuweisung einer Ausdruck sc so HALT LWI Eal ER_1 RT_1 Variable_elementaren_Typ Folgende Beispiele sind g ltige Wertzuweisungen TIME_OF_DAY Konstanten zu einer Variablen ABFRAGI ZEIT_1 ZEIT_2 Eai 1 DATUM_1 Zuweisung einer SOLLWERT_1 SCHALTER_2 Zuweisung eines SCHALTER_2 END_FUNCTION_BLOCK Beispiel 14 1 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 100 1 TRUE TIME 1H_20M_10S_30MS IME 2D_1H_20M_10S_30MS DATE 1996 01 10 Variablen SOLLWERT_2 SCHALTER_1 Ausdrucks zu einer Variablen SCHALTER_1 3 Wertzuweisungen mit elementaren Datentypen 14 3 Wertzuweisungen 14 3 Wertzuweisungen mit Variablen vom Typ STRUCT und UDT Varia
140. befehl Datei gt Schriftfeld einstellen ber den Men befehl Datei Druckvorschau k nnen Sie die vorgenommenen Einstellungen in der Seitenansicht berpr fen bevor Sie das Dokument zum Drucker senden Eine Bearbeitung ist hier nicht m glich SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 5 5 Programmieren mit SCL 5 5 Der bersetzungsvorgang bersicht Einstellen des Compilers 5 6 Bevor Sie Ihr Programm ablaufen lassen oder testen k nnen m ssen Sie es bersetzen Durch Ansto en des bersetzungsvorgangs siehe unten aktivieren Sie den Compiler Der Compiler hat folgende Eigenschaften Der Compiler arbeitet im Batch Modus d h er bearbeitet eine SCL Quelle als Einheit Partielle bersetzungen z B zeilenweise sind nicht m glich Der Compiler berpr ft die Syntax einer SCL Quelle und zeigt anschlie end alle Fehler an die er w hrend der bersetzung gefunden hat Er erzeugt Bausteine mit Test Informationen wenn die SCL Quelle fehlerfrei und die entsprechende Option siehe unten gesetzt ist Die Option Test Informationen m ssen Sie bei jedem Programm w hlen das Sie mit SCL auf Hochsprachen Niveau testen m chten Er generiert bei jedem Aufruf eines Funktionsbausteins einen zugeh rigen Instanz Datenbaustein sofern dieser nicht schon existiert Sie haben die M glichkeit den bersetzungsvorgang an Ihre individuellen Anforderungen anzupassen W hlen sie dazu den Men
141. blen vom Typ STRUCT und UDT Zuweisung einer kompletten Struktur Zuweisung von Struktur komponenten 14 4 Variablen vom Typ STRUCT und UDT sind strukturierte Variablen die ent weder f r eine komplette Struktur oder eine Komponente dieser Struktur stehen G ltige Angaben f r eine Strukturvariable sind Abbild Bezeichner f r eine Struktur Abbild element Bezeichner f r Strukturkomponente Abbild feld Bezeichner eines einfachen Feldes innerhalb einer Struktur Abbild feld 2 5 Bezeichner einer Feldkomponente innerhalb einer Struktur Eine gesamte Struktur ist einer anderen Struktur nur dann zuweisbar wenn die Strukturkomponenten sowohl in ihren Datentypen als auch in ihren Namen bereinstimmen Eine g ltige Zuweisung ist Structname_l Structname_2 Sie k nnen jeder Strukturkomponente eine typvertr gliche Variable einen typvertr glichen Ausdruck oder eine andere Strukturkomponente zuweisen G ltige Zuweisungen sind Structname_l elementl Wert Structname_l elementl 20 0 Structname_l elementl Structname_2 elementl Structname_l feldnamel Structname_2 feldnamel Structname_l feldname 10 100 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Wertzuweisungen Beispiele Die Wertzuweisungen f r Daten von Strukturen sollen anhand der folgenden Beispiele verdeutlicht werden FUNCTION_BLOCK FB10 VAR a HILFSVAR M
142. chen und durch andere Textobjekte ersetzen k nnen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 4 5 Bedienen von SCL Einf gen von Vorlagen Ausschneiden Kopieren Einf gen L schen Gehe zu R ckg ngig Wiederherstellen 4 6 Das Einf gen von Vorlagen erm glicht Ihnen ein effizientes Programmieren und erleichtert die Einhaltung der Syntax In SCL k nnen Sie e Vorlagen f r Bausteine einf gen indem Sie den Men befehl Einf gen gt Bausteinvorlage w hlen e Vorlagen f r Kontrollstrukturen einf gen indem Sie den Men befehl Einf gen gt Kontrollstruktur w hlen Textobjekte k nnen Sie wie gewohnt ausschneiden kopieren einf gen und l schen Die zugeh rigen Men befehle befinden sich im Men Bearbeiten In der Regel k nnen Sie die Objekte auch durch ziehen und loslassen Drag amp Drop verschieben oder kopieren Mit dem Men befehl Bearbeiten gt Gehe zu gt Zeile wird ein Dialogfeld ge ffnet ber das Sie die Einf gemarke am Anfang einer gew nschten Zeile positionieren k nnen indem Sie die Zeilennummer eintragen und mit OK best tigen Mit dem Men befehl Bearbeiten gt R ckg nig k nnen Sie eine Aktion z B das L schen einer Zeile wieder r ckg nig machen Der Men befehl Bearbeiten gt Wiederherstellen erm glicht das Wiederher stellen einer r ckg nig gemachten Aktion SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Progr
143. ck VAR_INPUT j Variablen gt VAR_OUTPUT i deklaration END_VAR VAR_IN_OUT Initialisierung nur m glich f r VAR_INPUT und VAR_OUTPUT Bild 10 8 Syntax Parameterblock Dieser Vereinbarungsblock ist Bestandteil eines FB oder FC Dabei werden innerhalb der Variablendeklaration der Variablenname und der zugeordnete Datentyp angegeben siehe Kapitel 10 2 Nach dem bersetzen eines FB bestimmen diese Bl cke zusammen mit dem Block VAR und END_VAR den Aufbau des zugeordneten Instanz Datenbau steins SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung lokaler Variablen und Bausteinparameter Beispiel Zugriff Beispiel 10 6 zeigt die Vereinbarung eines Parameters VAR_INPUT Eingangsparameter REGLER DWORD UHRZEIT TIME_OF_DAY END_VAR VAR_OUTPUT Ausgangsparameter SOLLWERTE ARRAY 1 10 OF INT END_VAR VAR_IN_OUT Durchgangsparameter EINSTELLUNG INT END_VAR Beispiel 10 6 Vereinbarung f r Parameter Der Zugriff auf die Bausteinparameter erfolgt im Anweisungsteil eines Code bausteins e Zugriff von innen d h im Anweisungsteil des Bausteins in dessen Ver einbarungsteil der Parameter deklariert wurde Dies ist im Kapitel 14 Wertzuweisung und im Kapitel 13 Ausdr cke Operatoren und Operanden erkl rt e Zugriff von au en ber Instanz DB Auf Bausteinparameter von Funkti
144. d damit zu einer anderen Anweisung innerhalb desselben Bausteines Tabelle 15 3 Arten von Sprunganweisungen rzwei Verzweigungs Funktion art CONTINUE dient zum Abbruch der Ausf hrung des momentanen Schleifen Anweisung durchlaufes EXIT dient zum Verlassen einer Schleife an beliebiger Stelle und unab Anweisung h ngig vom Erf lltsein der Abbruchbedingung GOTO bewirkt den sofortigen Sprung zu einer angegeben Sprungmarke Anweisung RETURN bewirkt das Verlassen eines aktuellen bearbeiteten Bausteins Anweisung SCL f r S7 300 400 Bausteine programmieren 15 2 C79000 G7000 C522 01 Kontrollanweisungen Bedingungen Die Bedingung ist entweder ein Vergleichsausdruck oder ein logischer Aus druck Die Bedingung ist vom Typ BOOL und kann die beiden Werte TRUE oder FALSE annehmen Beispiele f r g ltige Vergleichsausdr cke sind ZAEHLER lt 100 SOR A gt 0 005 Anwort 0 SALDO gt UEBERTRAG chl amp lt E Beispiele f r die Benutzung von Vergleichsausdr cken mit logischen Operatoren sind ZAEHLER lt 100 AND CHI lt SALDO lt 100 0 OR STATUS R Antwort lt O OR Anwort gt 5 0 AND ANTWORT lt 10 0 Hinweis Beachten Sie da die logischen Operanden hier Vergleichsausdr cke in Klammern stehen um jede Mehrdeutigkeit ber die Reihenfolge bei der Aus wertung zu vermeiden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15
145. debausteins Aktualparameter Formalparameter Ein Parametertyp ist ein spezieller Datentyp f r Zeiten Z hler und Bau steine Er kann bei Eingangsparametern von Funktionsbausteinen und Funk tionen bei Durchgangsparametern nur von Funktionsbausteinen verwendet werden um Zeiten Z hler und Bausteine an den aufgerufenen Baustein zu bergeben Zur L sung komplexer Automatisierungsaufgaben wird das Anwenderpro gramm in einzelne abgeschlossene Programmteile Bausteine unterteilt Die Gliederung des Anwenderprogramms erfolgt funktional oder entsprechend der technologischen Anlagenstruktur Die Programmiersprache SCL erm glicht das Verwenden von symbolischen Zeichenfolgen anstelle von Operanden z B der Operand Al 1 kann ersetzt werden durch Ventil_17 Die Symboltabelle bei STEP 7 stellt die Verbindung zwischen Operand und der zugeordneten symbolischen Zeichenfolge her Ein Beh lter f r alle Objekte einer Automatisierungsl sung unabh ngig von der Anzahl der Stationen Baugruppen und deren Vernetzung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Proze abbild Proze abbild der Ausg nge PAA Proze abbild der Eing nge PAE Q Quelle Quellorientierte Eingabe R Realzahl REPEAT Anweisung RETURN Anweisung R ck bersetzung Die Signalzust nde der digitalen Ein und Ausgabebaugruppen werden in der CPU in einem Proze abbild hinterlegt Man unterscheidet d
146. den Sie in Tabelle 17 2 Generell sind folgende Arten von Parametern zu unterscheiden e Steuerparameter z B Setzen R cksetzen Z hlrichtung angeben e Vorbesetzungswert f r einen Z hlerstand e Statusausgang zeigt ob ein End Z hlerstand erreicht ist e Z hlerstand in bin rer Form Tabelle 17 2 Aufrufparameter Bezeichner Parameter Datentyp Beschreibung C_NO COUNTER Z hlerkennummer ZAEHLER BEZEICH NUNG Bereich ist von der CPU abh ngig CU Eingang BOOL Eingang CU Vorw rtsz hlen CD Eingang BOOL Eingang CD R ckw rtsz hlen S Eingang BOOL Eingang f r Voreinstellung des Z hlers PV Eingang WORD Wert im Bereich zwischen 0 und 999 f r das Setzen des Z hlers eingegeben als 16 lt Wert gt wobei Wert im BCD Format R Eingang BOOL R cksetzeingang Q Ausgang BOOL Status des Z hlers CV Ausgang WORD Z hlerstand bin r Beispiel Der im Beispiel 17 1 genannte Aufruf bewirkt da bei der Funktions berechnung ein globaler Speicherbereich vom Typ COUNTER mit Namen Z12 reserviert wird Z hlwert S_CUD C_NO 212 CU E0 1 CD E0 0 S E0 2 amp E0 3 PV 120 R FALSE Q actFlag CV binVal Beispiel 17 1 Aufruf einer Z hlfunktion abw rts SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 3 Zeiten und Z hler Dynamischer Aufruf Regeln 17 4 Anstelle der absoluten Z hler Nummer z B C_NO Z10 k nnen Sie auch eine Variable mit dem Datentyp COUNTE
147. der Adresse 4 siehe Bild 2 4 Stellen Sie vor dem Test die oberen 8 Schalter der Eingabebaugruppe nach links 0 und die unteren 8 Schalter der Eingabebaugruppe nach rechts CI Laden Sie die Bausteine neu in die CPU da auch die Initialwerte der Varia blen getestet werden F hren Sie nun die Testschritte nach Tabelle 2 5 durch Tabelle 2 5 Testschritte Test Aktion Folge 1 Stellen Sie die Codierung 111 ein E0 4 E0 5 und Alle Ausg nge der Ausgabe niederwertiges Byte E0 6 und bernehmen Sie diese mit dem Codier werden angesteuert und die Anzeigen leuchten schalter E0 7 2 Zeigen Sie die zugeh rige Wurzel an indem Sie den Die Anzeigen am Ausgang entsprechen dem Bin r Ausgabeschalter E0 3 auf 1 schalten wert 10000 16 3 Zeigen Sie das zugeh rige Quadrat an indem Sie den Am Ausgang leuchten 15 Anzeigen Das bedeutet Funktionsschalter E0 2 auf 1 schalten da berlauf auftritt da 255 x 255 einen zu gro en Wert f r den Integerbereich ergibt 4a Stellen Sie den Ausgabeschalter EO 3 wieder auf Der Me wert wird wieder angezeigt Alle Anzeigen 0 zur ck an den Ausg ngen des niederwertigen Ausgabebytes sind gesetzt 4b Stellen Sie als neuen Me wert an der Eingabe den Die Ausgabe ver ndert sich noch nicht Wert 3 d h Bin rwert 11 ein 5a Einlesen des Me werts beobachten Stellen Sie die Am Ausgang wird O a
148. der bei der bersetzung oder zur Laufzeit des Programms berechnet wird Er besteht aus Operanden z B Konstanten Variablen oder Funktionswerten und Operatoren z B Die Datentypen der Operanden und die beteiligten Operatoren bestimmen den Typ des Ausdrucks SCL unterscheidet e arithmetische Ausdr cke e Potenzausdr cke e Vergleichsausdr cke e logische Ausdr cke Kapitel bersicht Kapitel finden Sie Seite 13 1 Operatoren 13 2 13 2 Syntax von Ausdr cken 13 2 1 Operanden 13 3 Arithmetische Ausdr cke 13 4 Potenzausdruck 13 5 Vergleichsausdr cke 13 10 13 6 Logische Ausdr cke 13 12 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 1 Anweisungen Ausdr cke und Operatoren 13 1 Operatoren Ausdr cke bestehen aus Operatoren und Operanden Die meisten Operatoren von SCL verkn pfen zwei Operanden und werden deshalb als bin r bezeichnet Andere Operatoren arbeiten mit nur einem Operanden daher bezeichnet man Bin re Operatoren werden zwischen die Operanden geschrieben z B A B Ein un rer Operator steht immer unmittelbar vor seinem Operand z B B Die in Tabelle 13 1 gezeigte Priorit t der Operatoren regelt die Reihenfolge der Berechnung Die Ziffer 1 entspricht dabei der h chsten Priorit t bersicht sie als un r Tabelle 13 1 Operatoren Klasse klassen Zuweisungsoperator Dieser Operator hinterlegt einen Wert in einer Va
149. des Wertebereichs durchf hrt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 3 3 Festlegung der Schnittstellen zwischen den Bausteinen bersicht Die Schnittstelle eines Bausteins zu einem anderen Baustein wird durch die Deklaration seiner Formalparameter festgelegt Es gibt bei SCL die folgenden M glichkeiten e Eingangsparameter Deklaration mit VAR_INPUT e Ausgangsparameter Deklaration mit VAR_OUTPUT e Durchgangsparameter Deklaration mit VAR_IN_OUT Wenn ein Baustein aufgerufen wird werden ihm Eingabedaten als Aktual parameter bergeben Nach der R ckkehr zum aufrufenden Baustein werden die Ausgabedaten zur bernahme bereit gestellt Ein FC kann sein Ergebnis als Funktionswert bergeben Weitere Informationen hierzu finden Sie im Kapitel 16 ERFASSEN Der OB ZYKLUS hat selbst keine Formalparameter Er ruft den FB ERFASSEN auf und bergibt ihm den Me wert und die Steuerungsdaten f r dessen Formal parameter Tabelle 2 1 Tabelle 2 1 Formalparameter von ERFASSEN Parametername Datentyp Deklarationstyp Beschreibung messwert_ein __INE Me wert neuwert I _INPUT Schalter um Messwert in Ringpuffer zu bernehmen funktions Umschalter um Wurzel oder wahl Quadrat zu w hlen auswahl _INPUT Codierung um Ausgabewert auszuw hlen neuwahl BOOL VAR_INPUT Schalter um Codierung zu bernehmen ergebnis_aus
150. destens 8MB freien Speicherplatz auf Ihrer Festplatte e Defekte Diskette Wenn Sie feststellen da eine Diskette defekt ist wenden Sie sich bitte an Ihre Siemens Vertretung e Bedienerfehler Beginnen Sie die Installation erneut und beachten Sie die Anweisungen sorgf ltig SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 3 5 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Bedienen von SCL bersicht Dieses Kapitel macht Sie mit der allgemeinen Bedienung von SCL bekannt Es informiert Sie ber die Bedienoberfl che des SCL Editors Kapitel bersicht Im Kapitel finden Sie auf Seite 4 1 Starten der SCL Software 4 2 Anpassen der Bedienoberfl che 4 3 Arbeiten mit dem SCL Editor 4 5 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 4 1 Bedienen von SCL 4 1 Starten der SCL Software Starten von der Nachdem Sie die SCL Software auf Ihrem PG installiert haben k nnen Sie Windows Ober SCL ber die Schaltfl che Start auf der Task Leiste in Windows 95 starten fl che Eintrag unter SIMATIC STEP 7 Starten aus dem Am schnellsten starten Sie SCL indem Sie im SIMATIC Manager den Maus SIMATIC Manager zeiger auf einer SCL Quelle positionieren und doppelklicken Informationen hierzu finden Sie im Benutzerhandbuch 231 Bild 4 1 zeigt das SCL Fenster nach dem Aufrufen der Software AN SCL S7 Bausteine programmieren Datei Ansicht
151. dfunk f r S7 S7 B1 S7 B2 tionen 2251 252 1254 pagi Sprachpakete xxx Literaturnummer des Literaturverzeichnisses Bild 1 1 Informationslandschaft SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vorwort Tabelle 1 1 Informationsinhalte Titel Fibel S7 300 Einfach aufbauen und programmieren Inhalt Die Fibel bietet einen sehr einfachen Einstieg in die Methodik des Aufbaus und der Programmierung einer S7 300 400 Sie ist insbesondere f r den Erstanwender eines S7 Automatisierungssystems geeignet System und Standard funktionen S7 300 400 Programmierhandbuch Das Programmierhandbuch Programmentwurf S7 300 400 vermittelt das grund Programmentwurf legende Wissen ber den Aufbau des Betriebssystems und eines Anwender S7 300 400 programms einer S7 CPU Es sollte vom Erstanwender einer S7 300 400 dazu genutzt werden sich einen berblick ber die Programmiermethodik zu verschaffen und darauf das Design seines Anwenderprogramms aufzubauen Referenzhandbuch Die S7 CPUs enthalten in das Betriebssystem integrierte Systemfunktionen und Organisationsbausteine die Sie bei der Programmierung nutzen k nnen Das Hand buch gibt Ihnen einen berblick ber die bei S7 verf gbaren Systemfunktionen Organisationsbausteine und ladbare Standardfunktionen sowie als Nachschlage information detaillierte Schnittstellenbeschreibungen f r deren Nutzung in Ihrem Anwenderprogramm Ben
152. die Bausteine unabh ngig programmieren voneinander entwerfen Das geschieht am besten top down also in der Reihenfolge ZYKLUS ERFASSEN AUSWERTEN und QUADRAT In dieser Reihenfolge werden die Bausteine im folgenden auch beschrieben Beim bersetzen der Bausteine m ssen Sie ber cksichtigen da ein Baustein vorhanden sein mu bevor sie ihn benutzen d h von einem anderen Baustein aus aufrufen Das ergibt die notwendige Reihenfolge der Bausteine in der SCL Quelle QUADRAT AUSWERTEN ERFASSENund ZYKLUS Informationen hierzu finden Sie in Kapitel 8 Symbolische Die Verst ndlichkeit des Programms verbessert sich wenn Sie symbolische Programmierung Namen f r Baugruppenadressen und Bausteine vergeben Dazu m ssen Sie Eintr ge in der Symboltabelle nach Bild 2 5 durchf hren siehe Kapitel 7 Die Namen k nnen Sie entweder nach der Namenskonvention f r BEZEICHNER oder nach der f r Symbole z B Eingang 0 0 bilden siehe Anhang A Einleitungs In Bild 2 5 sehen Sie den Einleitungskommentar der SCL Quelle Er be kommentar mit schreibt die symbolischen Namen die Sie in der Symboltabelle vereinbaren Symboltabelle m ssen damit die Quelle fehlerfrei bersetzt werden kann WEISSE E FE FE AE AE FE FE FE AE AE FE FE FE AE AE FE FE FE AE AE FE FE FE AE AE FE FE FE AE AE FE FE FE AE AE FE FE FE AE AE FE E AE AE AE FE FE FE AE AE FE FE AE AE E FE FE EAE SCL Programm zur Erfassun
153. die Schreibweisen der Konstanten Attribute und Kommentare k nnen Sie dem Benutzerhandbuch 231 oder dem Handbuch 232 entnehmen Das nachstehende Beispiel zeigt Ihnen wie der Zuweisungsteil formuliert werden kann wenn die Feldwerte 1 und 5 den Integer Wert 5 und 1 statt der Vorbelegung 1 haben sollen DATA_BLOCK DB20 STRUCT Datenvereinbarung mit Vorbelegung WERT ARRAY 1 100 OF INT 100 1 MERKER BOOL TRUE S_WORT WORD W 16 FFAA S_BYTE BYTE B 16 FF S_TIME S5TIME S5T 1h30m30s END_STRUCT BEGIN Zuweisungssteil Wertzuweisung f r bestimmte Feldelement WERT 1 5 WERT 5 1 END_DATA_BLOCK Beispiel 8 4 _Zuweisungsteil eines DB SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei 8 11 Aufbau eines anwenderdefinierten Datentyps UDT bersicht UDT Bezeichnung Spezifikation der Datentypen Anwenderdefinierte Datentypen UDT sind von Ihnen erzeugte spezielle Daten strukturen Da anwenderdefinierte Datentypen einen Namen haben sind sie mehrfach einsetzbar Sie sind nach Ihrer Definition im gesamten Anwenderpro gramm verwendbar und somit globale Datentypen Sie k nnen deshalb diese Datentypen e wie elementare oder zusammengesetzte Datentypen in Bausteinen verwenden oder e als Vorlage f r die Erstellung von Datenbausteinen mit gleicher Datenstruktur
154. dingter Aufruf 19 2 Sie k nnen die Bausteine symbolisch oder absolut aufrufen Dazu ben tigen Sie entweder den symbolischen Namen der in der Symboltabelle vereinbart sein mu oder die Nummer f r die absolute Bezeichnung des Bausteins Beim Aufruf m ssen Sie den Formalparametern deren Namen und Daten typen bei der Erstellung des parametrierbaren Bausteins festgelegt wurden die Aktualparameter zuordnen mit dessen Werten der Baustein zur Laufzeit Ihres Programms arbeitet Alle Informationen die Sie dazu ben tigen finden Sie im Referenzhandbuch 235 beschrieben Dieses Handbuch gibt Ihnen einen berblick ber die grund s tzlich bei S7 verf gbaren Funktionen sowie als Nachschlageinformation detaillierte Schnittstellenbeschreibungen f r die Nutzung in Ihrem Anwender programm Die folgenden Befehlszeilen erm glichen den Aufruf der Systemfunktion SFC 31 Uhrzeitalarm abfragen FUNCTION_BLOCK FB20 VAR Ergebnis INT END_VAR BEGIN ee Ergebnis SFC31l OB_NR 10 STATUS MW100 Bf END_FUNCTION_BLOCK Beispiel 19 1 Abfrage des Uhrzeitalarms Ergebnisse Der Funktionswert ist vom Typ Integer Wenn sein Wert gt 0 ist so ist der Bau stein fehlerfrei abgelaufen ist der Wert lt 0 so ist ein Fehler aufgetreten Nach dem Aufruf k nnen Sie den implizit definierten Ausgangsparameter ENO aus werten F r einen bedingten Aufruf m ssen Sie den vordefinierten Eingangsparameter EN mit 0 b
155. dizes benutzen Der erste Index spezifiziert die Byteadresse der zweite Index die Bitposition innerhalb des Bytes e Jeder Index mu ein arithmetischer Ausdruck vom Datentyp INT sein MESSWORT_1 N D EHLER AUSMARKE E BYTENR BITNR Beispiel 12 3 Indizierter Zugriff SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 12 7 Vereinbarung globaler Daten 12 6 Datenbausteine bersicht In Datenbausteinen k nnen Sie f r Ihren Anwendungsfall alle die Daten speichern und verarbeiten deren G ltigkeitsbereich sich auf das ganze Programm bzw auf das ganze Projekt bezieht Jeder Codebaustein kann darauf lesend oder schreibend zugreifen Vereinbarung Die Syntax f r den Aufbau von Datenbausteinen k nnen Sie in Kapitel 8 nach schlagen Sie m ssen zwischen zwei Arten von Datenbausteinen unterscheiden e Datenbausteine e Instanz Datenbausteine Zugriff auf Daten Der Zugriff auf die Daten eines beliebigen Datenbausteins kann immer auf bausteine folgende Arten erfolgen e einfach bzw absolut e indiziert e strukturiert Bild 12 6 gibt einen berblick ber die Zugriffsarten Absoluter DB Zugriff p Operandenkennzeichen Adresse Indizierter DB Zugriff Index Operandenkennzeichen ji aBagiS k Strukturierter DB Zugriff Q einfache I DB Bezeichnung ae Symbolischer DB Zugriff Symbolf r DB oO tiw I Bild 12 6 Syntax Abso
156. dustriezweig an O Automobilindustrie O Pharmazeutische Industrie O Chemische Industrie O Kunststoffverarbeitung O Elektroindustrie Papierindustrie O Nahrungsmittel O Textilindustrie O Leittechnik O Transportwesen O Maschinenbau O Andere O Petrochemie SCL f r S7 300 400 Bausteine programmieren 6ES7811 1CA02 8AA0 01 Vorschl ge und Anmerkungen zur Anwenderdokumentation Ihre Anmerkungen und Vorschl ge helfen uns die Qualit t und Benutzbarkeit unserer Dokumentation zu verbessern Bitte f llen Sie diesen Fragebogen bei der n chsten Gelegenheit aus und senden Sie ihn an Siemens zur ck Geben Sie bitte bei den folgenden Fragen Ihre pers nliche Bewertung mit Werten von 1 gut bis 5 schlecht an Entspricht der Inhalt Ihren Anforderungen Sind die ben tigten Informationen leicht zu finden Sind die Texte leicht verst ndlich Entspricht der Grad der technischen Einzelheiten Ihren Anforderungen Wie bewerten Sie die Qualit t der Abbildungen und Tabellen Se SS D m Falls Sie auf konkrete Probleme gesto en sind erl utern Sie diese bitte in den fol genden Zeilen SCL f r S7 300 400 Bausteine programmieren 2 6ES7811 1CA02 8AA0 01
157. e B 2 Literale Fortsetzung DEZIMAL DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE ZIFFERNFOLGE DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE SCL f r S7 300 400 Bausteine programmieren C79000 G7000 0522 01 B 7 Lexikalische Regeln Tabelle B 2 Literale Fortsetzung Regel Dezimaldarstellung DEZIMAL Syntaxdiagramm ZIFFERNFOLGE DEZIMAL DEZIMAL ZIFFERNFOLGE DEZIMAL ZIFFERNFOLGE DEZIMAL ZIFFERNFOLGE DEZIMAL ZIFFERNFOLGE Tage Stunden Minuten m ZIFFERNFOLGE DEZIMAL K Eithr DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE Amen Der Einstieg in die Dezimaldarstellung ist nur bei noch nicht definierten Zeiteinheiten m glich DEZIMAL ZIFFERNFOLGE Sekunden Millisekunden Stufendarstellung N DEZIMAL ZIFFERNFOLGE Tage Stunden DEZIMAL ZIFFERNFOLGE DEZIMAL ZIFFERNFOLGE Minuten Sekunden DEZIMAL C l ZIFFERNFOLGE DEZIMAL ZIFFERNFOLGE Millisekunden MX Or mindestens eine Angabe ist erforderlich B 8 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Lexikalische Regeln B 1 2 Absolutadressierung Tabelle B 3 _Absolutadressierung Regel Syntaxdi
158. e lokale Instanz f r den FB AUS WERTEN deklariert Der Name wird sp ter zum Aufruf und Zugriff auf die Aus gangsparameter verwendet Als Datenspeicher wird die globale Instanz ERFASSEN_DATEN benutzt Vereinbarungsteil Der Vereinbarungsteil in diesem Baustein besteht aus folgenden Vereinbarungs von ERFASSEN bl cken e Konstantendeklaration Zwischen CONST und END_CONST e Eingangsparameter Zwischen VAR_INPUT und END_VAR e Ausgangsparameter Zwischen VAR_OUTPUT und END_VAR e statischen Variablen Zwischen VAR und END_VAR Hierzu z hlt auch die Deklaration der lokalen Instanz f r den Baustein AUSWERTEN CONST GRENZE 7 ANZAHL GRENZE 1 END_CONST VAR_INPUT messwert_ein st ENT 7 Neuer Me wert neuwert u BOOL Me wert in Ringpuffer me werte bernehmen neusort BOOL Me werte sortieren funktionswahl BOOL Wahl der Berechnungsfunktion Wurzel Quadrat neuwahl BOOLI Ausgabeadresse bernehmen auswahl WORD Ausgabeadresse END_VAR VAR_OUTPUT ergebnis_aus v ENDE 22 berechneter Wert messwert_aus INT zugeh riger Me wert END_VAR VAR messwerte ARRAY 0 GRENZE OF INT 8 0 ergebnispuffer ARRAY O0 GRENZE OF STRUCT wurzel INT quadrat INT END_STRUCT zeiger INT 07 altwert BOOL TRUE altsort BOOL TRUE altwahl BOOL TRUE adresse END 0 Konvertierte Ausgabeadresse auswerte_instanz AUSWERTEN Lokale Inst
159. ebereich breite Datum und Uhr zeit je T 1990 01 01 0 0 0 0bis T 2089 12 31 23 59 59 999 DATE_AND_TIME DT 64 Die genaue Syntax f r die Datums und Tageszeitangabe finden Sie in Kapitel 11 dieser Beschreibung Eine g ltige Definition f r 20 10 1995 12 Uhr 20 Minuten 30 Sekunden und 10 Millisekunden ist DATE_AND_TIME 1995 10 20 12 20 30 10 DT 1995 10 20 12 20 30 10 Hinweis Um gezielt auf die Komponenten DATE oder TIME zuzugreifen stehen Standard FCs zur Verf gung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 9 5 Datentypen 9 3 2 Datentyp STRING bersicht Wertebereich 9 6 Der Datentyp STRING definiert eine Zeichenkette von maximal 254 Einzel zeichen Der Standardbereich der f r eine Zeichenkette reserviert ist besteht aus 256 Bytes Dies ist der Platz der ben tigt wird um 254 Zeichen und einen Kopf von 2 Byte zu speichern Sie k nnen den Speicherplatz f r eine Zeichenkette verringern indem Sie auch die maximale Anzahl der Zeichen definieren die in der Zeichenkette gespeichert werden sollen Ein Nullstring d h ein String ohne Inhalt stellt den kleinst m glichen Wert dar STRING Datentypspezifikation einfacher Stringdimension Bild 9 2 Syntax STRING Datentypspezifikation Der einfache Ausdruck Stringdimension steht f r die maximale Anzahl der Zeichen in der Zeiche
160. eidimensionalen ARRAY Typs um weitere Dimensionen Die Anzahl der maximal zul ssigen Dimensionen betr gt 6 ARRAY Datentypspezifikation Indexspezifikation ARRAY O re FOH rde Q Datentyp u Spezifikation gt Bild 9 3 Syntax ARRAY Datentypspezifikation Indexspezifikation Sie beschreibt die Dimensionen des Feldes mit e dem kleinst und gr tm glichen Index Index Bereich f r jede Dimension Der Index kann ein beliebiger ganzzahliger Wert 32768 bis 32767 sein e Die Grenzen m ssen durch zwei Punkte getrennt angegeben werden e Die einzelnen Index Bereiche werden durch Kommata getrennt und die gesamte Indexspezifikation in eckigen Klammern eingeschlossen Datentyp Mit der Datentypspezifikation deklarieren Sie den Datentyp der Feldkomponen spezifikation ten Als Datentypen sind alle in diesem Kapitel aufgef hrten M glichkeiten zugelassen Der Datentyp eines ARRAY kann auch eine Struktur sein Die folgenden Spezifikationen sind m gliche ARRAY Typen ARRAY 1 10 OF REAL ARRAY 1 10 OF STRUCT END_STRUCT ARRAY 1 100 1 10 OF REAL SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 9 7 Datentypen 9 3 4 Datentyp STRUCT bersicht Komponenten deklaration Bezeichner 9 8 Ein Datentyp STRUCT beschreibt einen Bereich der aus einer festen Anzahl von Komponenten besteht deren Datentypen verschieden sein d rfen Im Syntax diagramm 9
161. eien automatisieren k nnen das Benutzen zus tzlicher Funktionen die Ihnen eine komfortable Bearbeitung des Quelltextes erm glicht z B Suchen und Ersetzen die optimale Einstellung des Editors nach Ihren Anforderungen W hrend der Eingabe erfolgt keine Syntaxpr fung Compiler Nachdem Sie ihre Quelldateien mit dem SCL Editor erstellt haben m ssen Sie diese in MC7 Code bersetzen SCL Quelldatei Baustein1 ___ Baustein i Batch Quelldatei 1 Compiler ee Bausteine im N S7 Programm bersetzungssteuerdatei Bild 1 3 SCL Compiler SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Produkt bersicht Der SCL Compiler erlaubt das bersetzen einer SCL Quelldatei mit mehreren Bausteinen in einem bersetzungslauf das bersetzen mehrerer SCL Quelldateien mittels einer bersetzungs steuerdatei die die Namen der Quelldateien enth lt das optimale Einstellen des Compilers nach Ihren Anforderungen das Anzeigen aller Fehler und Warnungen die beim bersetzen auftreten ein einfaches Lokalisieren der fehlerhaften Stelle im Quelltext optionell mit Fehlerbeschreibung und Angaben zur Fehlerbeseitigung Debugger Der SCL Debugger bietet die M glichkeit ein Programm in seinem Ablauf im AS zu kontrollieren und damit m gliche logische Fehler zu finden
162. eil 2 Ansto Berechnungen der Ergebnisse BES 5 2 5 2 5 25 5 2 3 3 5 2 5 2 5 S 2 2 5 25 3 2 2 2 2 5 2 2 2 5 2 2 2 5 2 5 2 2 2 2 2 5 2 2 5 5 2 2 2 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2 2 22 2 Bild 2 12 Bausteinkopf des Funktionsbausteins AUSWERTEN CONST GRENZE 7 END_CONST VAR_IN_OUT sortierpuffer ARRAY 0O GRENZE OF INT END_VAR VAR_OUTPUT rechenpuffer ARRAY 0 GRENZE OF STRUCT wurzel SEN quadrat INT END_STRUCT END_VAR VAR_TEMP tauschen BOOL index hilf INT wertr ergebnr REAL END_VAR Bild 2 13 Vereinbarungsteil des Funktionsbausteins AUSWERTEN Fuktionsablauf Der Durchgangsparameter sortierpuffer wird mit dem Ringpuffer messwerte verkn pft d h der urspr ngliche Pufferinhalt wird mit den sortier ten Me werten berschrieben F r die Rechenergebnisse wird das neue Feld rechenpuffer als Ausgangs parameter angelegt Seine Elemente sind so strukturiert da sie zu jedem Me wert die Wurzel und das Quadrat enthalten SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms Entwurf Anweisungsteil 2 18 Im Bild 2 14 sehen Sie den Zusammenhang zwischen den beschriebenen Feldern sortierpuffer gt messwerte rechenpuffer gt AUSWERTEN Bild 2 14 Schnittstelle des FB AUSWERTEN Diese Schnittstelle zeigt den Kern des Datenaustauschs zur Verarbeitung der Me werte Die Werte werde
163. einarten erlaubt Die Reihenfolge der Bl cke dagegen ist beliebig Konstanten Daten Syntax FB FC OB DB CONST Vereinbarungsliste X X X END_CONST UDT Sprungmarken LABEL Vereinbarungsliste X X X END_LABEL Tempor re Variable VAR_TEMP Vereinbarungsliste X X X END_VAR Statische Variable VAR Vereinbarungsliste X x xD xD END_VAR Eingangparameter VAR_INPUT Vereinbarungsliste X X END_VAR Ausgangsparameter VAR_OUTPUT Vereinbarungsliste X X END_VAR Durchgangsparameter VAR_IN_OUT Vereinbarungsliste X X END_VAR Vereinbarungsliste die Liste der Bezeichner des Typs der deklariert werden soll 1 2 In DBs und UDTs wird das Schl sselwort VAR und END_VAR durch STRUCT und END_STRUCT ersetzt Die Vereinbarung von Variablen innerhalb des Schl selwortpaars VAR und END_VAR ist in Funktionen zwar erlaubt die Vereinbarungen werden aber beim bersetzen in den tempor ren Bereich verschoben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 7 Aufbau einer SCL Quelldatei Systemattribute f r Eingangs Ausgangs und Durchgangsparametern k nnen Sie au erdem Parameter Systemattribute z B f r die Meldungs oder Verbindungsprojektierung zuweisen Systemattribute f r Parameter max 24 Zeichen druckbares BEZEICHNER O Zeichen C Q Bild 8 7 Syntax Syst
164. eise Auf Abw rtsz hler Operation Aufw rts Funktionsweise Der Wert des Z hlers wird um 1 erh ht wenn der Signalzustand an z hlen Eingang CU von 0 auf 1 wechselt und der Z hlwert kleiner als 999 ist Abw rts Der Wert des Z hlers wird um 1 vermindert wenn der Signalzustand z hlen an Eingang CD von 0 auf 1 wechselt und der Z hlwert gr er als 0 ist Z hler setzen Wenn der Signalzustand an Eingang S von 0 auf 1 wechselt wird der Z hler mit dem Wert des Eingangs PV gesetzt Ein solcher Signal wechsel ist immer erforderlich um einen Z hler zu setzen R cksetzen Der Z hler wird r ckgesetzt wenn Eingang R 1 ist Das R cksetzen des Z hlers setzt den Z hlwert auf 0 Z hler Eine Signalzustandsabfrage an Ausgang Q ergibt 1 wenn der Z hl abfragen wert gr er als 0 ist Die Abfrage ergibt 0 wenn der Z hlwert gleich 0 ist 17 1 5 Beispiel f r die Funktion S_CD Abw rtsz hler Parameter belegung Tabelle 17 6 zeigt die Parameterbelegung der Beispielfunktion S_CD Tabelle 17 6 Aufrufparameter Parameter Beschreibung C_NO MEINZAEHLER CD Eingang E0 0 S SETZEN PV VORBESETZUNG 16 0089 R RUECKSETZEN Q A0 7 CV BIN_WER SCL f r S7 300 400 Bausteine programmieren 17 8 C79000 G7000 C522 01
165. eispiels wie Sie ein Anwender programm in SCL entwerfen und implementieren k nnen Mit den mitgelieferten Testdaten und Ihren Ein und Ausgabebaugruppen k nnen Sie das Beispiel selbst zum Ablauf bringen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Im Kapitel finden Sie auf Seite 2 2 Aufgabenstellung 2 3 L sung mit SCL Bausteinen 2 5 2 3 1 Festlegen der Teilaufgaben 2 5 2 3 2 Auswahl und Zuordnung der m glichen Bausteinarten 2 6 2 3 3 Festlegung der Schnittstellen zwischen den Bausteinen 2 7 2 3 4 Festlegung der Ein Ausgabe Schnittstelle 2 9 2 3 5 Bausteine programmieren 2 4 Erstellen des Organisationsbausteins ZYKLUS 2 5 Erstellen des Funktionsbausteins ERFASSEN 2 6 Erstellen des Funktionsbausteins AUSWERTEN 2 7 Erstellen der Funktion QUADRAT 2 8 Testdaten 2 22 2 1 Entwerfen eines SCL Programms 2 1 berblick Zielsetzung SCL Sprachmittel Hardware f r das Beispiel Testfunktionen 2 2 Der Entwurfteil soll Ihnen aufzeigen wie Sie SCL effektiv einsetzen k nnen Fragen die am Anfang h ufig auftreten sind z B e Wie kann ich bei der Programmerstellung mit SCL vorgehen e Welche Sprachmittel von SCL bieten sich zur L sung der Aufgabe an e Welche Testfunktionen stehen mir zur Verf gung Diese und andere Fragen sollen in diesem Kapitel beantwortet werden Im Beispiel werden u a folgende SCL Sprachelemente vorges
166. eisungen 1 Wertzuweisungen Zuordnung eines Ausdrucks zu einer Variablen 2 Kontrollanweisungen Wiederholung oder Verzweigung von Anweisungen 3 Unterprogrammbearbeitung Aufrufen oder Verzweigung von Code bausteinen Ein typische Wertzuweisung ist z B SOLLWERT 0 99 SOLLWERT_ALT In diesem Beispiel wird vorausgesetzt da SOLLWERT und SOLLWERT_ALT Realvariablen sind Der Zuweisungsbefehl multipliziert den Wert SOLL WERT_ALT mit 0 99 und ordnet das Produkt der Variablen SOLLWERT zu Beachten Sie da das Symbol f r die Zuweisung ist Eine typische Kontrollanweisung ist FOR Zaehler 1 TO 20 DO LISTE Zaehler WERT Zaehler END_FOR In diesem Beispiel wird die Zuweisung 20mal ausgef hrt Jedesmal wird im Feld LISTE der neu errechnete Wert in einen n chsth heren Listenplatz eingetragen Mit der Angabe einer Bausteinbezeichnung f r eine Funktion FC oder einen Funktionsbaustein FB wird der Codebaustein aufgerufen der mit diesem Bezeichner deklariert wurde Wenn die Vereinbarung des Codebausteins Formalparameter enth lt k nnen den Formalparametern beim Aufruf aktuelle Operanden zugeordnet werden Alle Parameter die im Vereinbarungsblock VAR_INPUT VAR_OUTPUT und VAR_IN_OUT eines Codebausteins aufgelistet sind bezeichnet man als Formalparameter die entsprechenden Parameter in den Aufrufen innerhalb des Anweisungsteils werden dagegen Aktualparameter genannt D
167. elegen z B ber den Eingang EO 3 dann wird der Baustein nicht aufgerufen Wird EN mit 1 belegt so wird die Funktion aufgerufen Der Aus gangsparameter ENO wird in diesem Fall auch auf 1 gesetzt sonst auf 0 falls w hrend der Bearbeitung des Bausteins kein Fehler auftritt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufrufschnittstelle Hinweis Bei Funktionsbausteinen bzw Systemfunktionsbausteinen mu die Information die bei einer Funktion mit dem Funktionswert bergeben werden kann in Ausgangsparameter gespeichert werden Diese werden anschlie end ber den Instanz Datenbaustein ausgewertet Weitere Information siehe Kapitel 16 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 19 3 Aufrufschnittstelle 19 2 bergabeschnittstelle zu OB Organisations bausteine Verf gbare OB Weitere Informationen 19 4 Organisationsbausteine bilden die Schnittstelle zwischen dem Betriebssystem der CPU und dem Anwenderprogramm Mit Hilfe von OB k nnen Programmteile gezielt zur Ausf hrung gebracht werden beim Anlauf der CPU in zyklischer oder auch zeitlich getakteter Ausf hrung zu bestimmten Uhrzeiten oder Tagen nach Ablauf einer vorgegebenen Zeitdauer beim Auftreten von Fehlern beim Auftreten von Proze oder Kommunikationsalarmen Organisationsbausteine werden entsprechend der ihnen zugeordneten Priorit t bearbeitet Nicht alle CPUs k nnen alle
168. elltextes die die erste Anweisung des zu testenden Bereichs enth lt 5 W hlen Sie den Men befehl Test Kontinuierlich beobachten Ergebnis Der gr tm gliche Beobachtungsbereich wird ermittelt und durch einen grauen Balken am linken Rand des Fensters angezeigt Das Fenster teilt sich und in der rechten H lfte des Fensters werden die Na men und aktuellen Werte der im Beobachtungsbereich liegenden Varia blen zeilengerecht angezeigt 6 W hlen Sie den Men befehl Test Kontinuierlich beobachten um den Testlauf zu unterbrechen und sp ter fortzusetzen 7 W hlen Sie den Men befehl Test Test beenden um den Testlauf zu beenden SCL f r S7 300 400 Bausteine programmieren 6 4 C79000 G7000 C522 01 Testen eines Programmes 6 3 Testfunktion Haltepunkte aktiv bersicht Beim Testen mit der Funktion Haltepunkte aktiv erfolgt der Testlauf in Einzelschritten Sie k nnen das Programm Anweisung f r Anweisung ausf hren und beobachten wie sich die Werte der bearbeiteten Variablen ver ndern Nach dem Setzen der Haltepunkte k nnen Sie das Programm zun chst bis zum ersten Haltepunkt laufen lassen und von dort aus mit dem schrittweisen Beobachten beginnen Haltepunkte Haltepunkte k nnen Sie an beliebigen Stellen im Anweisungsteil des Quelltextes definieren Erst wenn Sie den Men befehl Test gt Haltepunkte aktiv w hlen werden die Haltepunkte in das Automatisierungssystem bertragen und aktiv geschaltet
169. emattribute f r Parameter Tabelle 8 3 zeigt welche Systemattribute Sie den Parametern zuweisen k nnen Tabelle 8 3 Systemattribute f r Parameter Attribut Dieses Attribut vergeben Sie wenn Zul ssiger Deklarati onstyp S7_server connection alarm_archiv pbkl pbk ptpl obkl fdl iso pbks obkv der Parameter f r die Verbindungs oder Meldungsprojektierung relevant ist Dieser Parameter enth lt die Verbindungs bzw die Meldungsnummer Sie den Meldebausteintyp des Meldebau steins festlegen der im Anweisungsteil auf gerufen wird Voraussetzung das Attribut S7_server alarm_archiv ist auch verge ben IN nur bei FB Sie den Verbindungstyp der Verbindung festlegen die projektiert werden soll Voraussetzung das Attribut S7_server connection ist auch vergeben S7_shorteut true false 2 beliebige Zeichen z B W Y Einheit z B Liter IN OUT IN_OUT nur bei FB der Parameter von einem Bedien und Beobachtungsger t aus bedient oder beobachtet werden soll IN OUT IN_OUT nur bei FB dem Parameter Kurzzeichen f r die Auswertung von Analogwerten zugeordnet werden sollen IN OUT IN_OUT nur bei FB dem Parameter Einheiten f r die Auswertung von Analogwerten zugeordnet werden sollen S7_string_0 8 8 16 beliebige Zeichen z B AUF IN OUT IN_OUT nur bei FB FC dem Parameter Text f r die Auswertung von Bin rwerten zugeordnet werden soll SCL f r S7 3
170. en Ende der REPEAT Anweisung t TRUE Anfang der FOR Anweisung Ende der FOR Anweisung nein Ergebnisse in das strukturierte Ergebnisfeld eintragen Ergebnisse in das strukturierte Ergebnisfeld eintragen Bild 2 15 Algorithmus zum Auswerten der Me werte SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 19 Entwerfen eines SCL Programms Anweisungsteil Bild 2 16 zeigt die Formulierung des in Bild 2 15 dargestellten von Auswerten Flu diagrammes in SCL d h den Anweisungsteil des Codebausteins BEGIN Teil al Sortierung kkkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkkxkxkkkkkxkxkxx k nach dem Bubble Sort Verfahren Werte solange paarweise tauschen bis Me wertpuffer sortiert ist REPEAT tauschen FALSE FOR index GRENZE TO 1 BY 1 DO IF sortierpuffer index 1 gt sortierpuffer index THEN hilf H sortierpuffer index sortierpuffer index sortierpuffer index 1 sortierpuffer index 1 Hilf tauschen TRUE END_IF END_FOR UNTIL NOT tauschen END_REPEAT Teil 2 Berechnung KKKKKKKKKKKKKKKK KHK HH HH HH HH HH KH KH KH HH KH KH KK KK KK KK U KU Wurzelberechnung mit Standardfunktion SORT und Quadrierung mit Funktion QUADRAT durchf hren FOR index 0 TO GRENZE BY 1 DO wertr INT_TO_REAL sortierpuffer index ergebnr SORT wertr rechen
171. en berlegen e Datenverwaltung e Proze optimierung e Rezepturverwaltung e mathematische statistische Aufgaben Technische Daten Um mit SCL arbeiten zu k nnen brauchen Sie ein SIMATIC Programmier ger t oder einen PC ab 80486 Prozessor 16 MByte Hauptspeicher Sprachvorrat Operatoren Potenz Arithmetik Vergleiche Verkn pfungen Funktionen Zeiten Z hler Funktionsbausteinaufrufe Kontrollstrukturen Schleifen FOR WHILE REPEAT Alternativen IF THEN CASE GOTO Datentypen elementare BOOL BYTE WORD DWORD INT DINT REAL DATE TIME TIME_OF_DAY S5TIME zusammen Strings Felder Strukturen anwenderdefi gesetzte nierte Strukturen DATE_AND_TIME Kapitel bersicht Im Kapitel finden Sie auf Seite 1 1 Was ist SCL 1 2 1 2 Welche Vorteile bietet Ihnen SCL 1 3 1 3 Leistungsmerkmale der Entwicklungsumgebung 1 5 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 1 1 Produkt bersicht 1 1 Was ist SCL H here Pro grammiersprache Entwicklungs umgebung 1 2 SCL Structured Control Language ist eine h here Programmiersprache die sich an PASCAL orientiert Die Sprache basiert auf einer Norm f r SPS speicherprogrammierbare Steuerungen Die Norm DIN EN 61131 3 int IEC 1131 3 standardisiert die Programmier sprachen f r speicherprogrammierbare Steuerungen Basis f r SCL ist der Teil strukturie
172. en Deshalb sind Ausdr cke wie A B und n lt 0 n lt 0 falsch Die verschiedenen Ausdr cke k nnten so aufgebaut sein EB10 Operand Al AND A2 logischer Ausdruck A3 lt A4 Vergleichsausdruck 3 3 4 2 arithmetischer Ausdruck MESSWERT 2 Potenzausdruck SUMMI DIFFERENZ DB10 EXPONENT Potenzausdruck za xxFC100 Potenzausdruck Beispiel 13 1 Verschiedene Ausdr cke SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Anweisungen Ausdr cke und Operatoren 13 2 1 Operanden bersicht Operanden sind Objekte mit denen Ausdr cke gebildet werden k nnen Operanden lassen sich durch das Syntaxdiagramm in Bild 13 2 darstellen Operand gt Konstante ar gt erweiterte Variable gt Ausdruck NOT Operand Bild 13 2 Syntax Operand Konstante Es k nnen Konstanten mit ihrem numerischen Wert oder mit einem symbolischen Namen oder Zeichenfolgen verwendet werden Konstante p numerischer Wert gt Zeichenfolge p Konstantenname Bild 13 3 Syntax Konstante Beispiele f r g ltige Konstanten sind 4_711 4711 30 0 ZEICHEN FAKTOR SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 5 Anweisungen Ausdr cke und Operatoren Erweiterte Variable Die erweiterte Variable ist ein Oberbegriff f r eine Rei
173. en Funktionen kein Ged chtnis in dem sie die Werte der Parameter speichern k nnten Lokale Daten werden w hrend des Durchlaufs der Funktion nur tempor r gespeichert Aus diesem Grund m ssen beim Aufruf allen formalen Eingangs Durchgangs und Aus gangsparametern die im Vereinbarungsteil einer Funktion definiert werden Aktualparameter zugewiesen werden Bild 16 11 zeigt die Syntax der FC Parameterzuweisung FC Parameter Ausdruck Eingangs Zuweisung Ausgangs Durchgangs Zuweisung Q Bild 16 11 Syntax FC Parameter Ein Aufruf mit je einer Zuweisung eines Ein Aus und Durchgangs parameters k nnte z B wie folgt aussehen 2 FC32 E_Paraml1 5 D_Paraml LAENGE A_Paraml Quersumme Zur Parameterversorgung gelten folgende Regeln e Die Reihenfolge der Zuweisungen ist beliebig e Datentyp von Formal und Aktualparameter m ssen bereinstimmen e Die einzelnen Zuweisungen sind durch Komma getrennt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 15 Aufruf von Funktionen und Funktionsbausteinen 16 3 2 Eingangszuweisung FC Prinzip Durch Eingangszuweisungen werden den formalen Eingangsparametern der aufgerufenen Funktion FC Aktualparameter zugewiesen Die FC kann mit diesen Aktualparametern arbeiten sie jedoch nicht ver ndern Im Gegensatz zum FB Aufruf ist diese Zuweisung beim FC Aufruf nicht optional Eingangs zuweisunge
174. en gefunden werden k nnen Der SCL Editor ist ein auf SCL zugeschnittener Editor mit dem die SCL Quelle erstellt werden kann Die SCL Quelle ist die Datei in der das Programm in SCL erstellt wird Die Quelldatei wird anschlie end mit dem SCL Compiler bersetzt Schl sselw rter werden bei SCL verwendet um den Beginn eines Bausteins zu kennzeichnen um Sektionen im Deklarations bzw Vereinbarungsteil zu markieren und um Anweisungen zu kennzeichen Au erdem werden sie f r Kommentare und Attribute benutzt gt Einzelschritt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Speicherbereich Statuswort Struktur STRUCT Symbol Symboltabelle Syntaktische Regel Systemfunktion SFC Systemfunktions baustein SFB Systemdaten baustein SDB Systemspeicher Systembereich Eine Zentralbaugruppe hat bei SIMATIC S7 drei Speicherbereiche Den Ladebereich den Arbeitsbereich und den Systembereich Das Statuswort ist Bestandteil der Register der Zentralbaugruppe Im Statuswort befinden sich Statusinformationen und Fehlerinformationen die im Zusammenhang mit der Bearbeitung von STEP 7 Befehlen auftreten Die Statusbits k nnen vom Anwender gelesen und beschrieben werden die Fehlerbits k nnen nur gelesen werden Eine Struktur ist ein zusammengesetzter Datentyp bestehend aus Daten elementen unterschiedlichen Typs Diese Datenelemente k nnen elementar oder zusammengesetzt sei
175. en in der Reihenfolge ihrer Priorit t behandelt siehe Tabelle 13 2 e Es empfiehlt sich negative Zahlen wegen der bersichtlichkeit in Klammern zu setzen auch dort wo es nicht notwendig ist e Bei Divisionen mit zwei ganzzahligen Operanden vom Datentyp INT liefern die Operatoren DIV und dasselbe Ergebnis siehe Beispiel 13 3 e Die Divisionsoperatoren MOD und DIV erfordern da der zweite Operand ungleich Null ist e Wenn ein Operand vom Typ INT Ganzzahl und der andere vom Typ REAL Gleitpunktzahl ist ist das Ergebnis immer vom Typ REAL Die folgenden Beispiele veranschaulichen die Bildung arithmetischer Ausdr cke Nehmen wir an da i und j Integervariablen sind deren Werte 11 bzw 3 sind Einige Integerausdr cke und ihre entsprechenden Werte werden im Beispiel 13 3 gezeigt Ausdruck Wert EEE r 8 Ders 14 Iua J 33 i DIV j 3 i MOD j 2 i J 3 Beispiel 13 3 Arithmetische Ausdr cke Nehmen wir an da i und j Intergervariablen sind deren Werte 3 bzw 5 sind Dann wird das Ergebnis des arithmetischen Ausdrucks in Beispiel 13 4 Inter gerwert 7 der Variablen WERT zugewiesen WERT i i 4 2 Hi j Beispiel 13 4 Arithmetischer Ausdruck SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Anweisungen Ausdr cke und Operatoren 13 4 Exponenten bersicht Bild 13 6 soll die Bildung des Exponenten in einem Potenzausdruck siehe Kapitel
176. en kann wird Variable genannt Jede Variable mu einzeln erkl rt d h vereinbart werden bevor sie innerhalb eines Codebausteins oder Daten bausteins benutzt werden kann Die Variablenvereinbarung legt fest da ein Bezeichner eine Variable ist und keine Konstante etc und spezifiziert durch die Zuordnung zum Datentyp den Variablentyp Je nach G ltigkeit der Variablen wird unterschieden zwischen e Lokaldaten e Globalen Anwenderdaten e erlaubten vordefinierten Variablen Speicherbereiche einer CPU Lokaldaten sind Daten die innerhalb eines Codebausteins FC FB OB vereinbart werden und nur f r diesen Codebaustein G ltigkeit haben Im einzelnen sind das Tabelle 7 3 Die Lokaldaten eines Bausteines Variable Bedeutung Statische Variablen Eine statische Variable ist eine lokale Variable deren Wert ber alle Bausteindurchl ufe hinweg erhalten bleibt Bausteinged chtnis Sie dient der Speicherung von Werten eines Funktionsbausteins Tempor re Variablen Tempor re Variablen geh ren lokal zu einem Code Baustein und belegen keinen statischen Speicherbereich Ihr Wert bleibt nur w hrend eines Bausteinablaufs erhalten Auf tempor re Variablen kann au erhalb des Bausteins in dem die Variablen deklariert wurden nicht zugegriffen werden Bausteinparameter Bausteinparameter sind formale Parameter eines Funktions bausteins oder einer Funktion Es sind lokale Variablen die dazu dienen die beim Aufruf angegebenen akt
177. ennzeichen im Bereich der lexikali schen Regeln siehe Anhang B Tabelle A 3 _Formatierungs und Trennzeichen in den lexikalischen Regeln Zeichen Beschreibung Trennzeichen zwischen Stunden Minuten und Sekunden Attribute Trennzeichen f r Absolute Adressierung Realzahl und Zeitintervall darstellung 59 Zeichen und Zeichenkette 399 Einleitungszeichen f r Symbol nach den Regeln der Symboltabelle _ Unterstrich Trennzeichen f r Zahlenwerte in Literalen kann in BEZEICHNERN vor kommen Fluchtsymbol zur Angabe von Steuerzeichen oder Ersatzzeichen gt lt Stringunterbrechung falls der String nicht in eine Zeile pa t oder falls Kommentare eingef gt werden sollen In Tabelle A 4 finden Sie die Verwendung einzelner Zeichen und Zeichenketten f r Literale im Bereich der lexikalischen Regeln siehe Anhang B Die Tabelle gilt f r SIMATIC und IEC Mnemonik Tabelle A 4 Mnemonik f r Literale alphabetisch geordnet Pr fix Kennzeichen f r Lexikalische Regel A INTEGERLITERAL Bin rziffernfolge 8 INTEGER LITERAL Oktalziffernfolge 16 INTEGER LITERAL Hexadezimalziffernfolge D Zeitangabe DATUM DATE Zeitangabe DATUM DATE_AND_TIME Zeitangabe DATUM UND ZEIT DT Zeitangabe DATUM UND ZEIT E Trennzeichen f r REALZAHL LITERAL Exponent Trennzeichen f r REALZAHL LITERAL Exponent D Trennzeichen f r Zeitinterva
178. er Operanden kennzeichen Speicher Pr fix Der absolute Zugriff auf einen Speicherbereich erfolgt z B ber eine Wertzuweisung an eine typgleiche Variable STATUS_2 EB10 Absoluter Zugriff Typgleiche Variable Der Absolutbezeichner verweist auf einen Speicherbereich innerhalb der CPU Sie spezifizieren diesen Bereich indem Sie das Operandenkennzeichen hier EB gefolgt von der Adresse hier 10 angeben Der Absolutbezeichner setzt sich aus dem Operandenkennzeichen mit Speicher und Gr en Pr fix sowie einer Adresse zusammen Gr en Pr fix Speicher Pr fix E B 10 Adresse Operandenkennzeichen Die Kombination aus Speicher und Gr en Pr fix bildet das Operanden kennzeichen Operandenkennzeichen Speicher Gr en gt Pr fix Pr fix Bild 12 2 Syntax Operandenkennzeichen Mit dem Speicher Pr fix legen Sie die Art des Speicherbereichs fest Nach Bild 12 3 stehen Ihnen folgende Arten zur Verf gung Speicher Pr fix gt Mm M Merker gt PE PI Peripherieeingang PA PQ Peripherieausgang SIMATIC Mnemonik IEC Mnemonik Bild 12 3 Syntax Speicher Pr fix 1 Abh ngig von der Einstellung im SIMATIC Manager haben entweder die SIMATIC oder die IEC Operandenkennzeichen eine reservierte Bedeutung Man kann die Sprache und unabh ngig davon die Mnemonic im SIMATIC Manager einstellen 12 4 SCL f r S7 300 400 Bausteine pr
179. er Angabe der Adresse nach Bild 12 9 geben Sie je nachdem welchen Gr en Pr fix Sie benutzt haben eine absolute Adresse an die auf ein Bit Byte Wort oder Doppelwort zeigt Nur wenn Sie Bit spezifiziert haben k nnen Sie eine zus tzliche Bitadresse angeben Die erste Nummer entspricht der Byte adresse und die zweite der Bitadresse Adresse nur bei Bitadresse Bild 12 9 Syntax Adresse Einige Beispiele f r den absoluten Zugriff auf einen Datenbaustein Der Daten baustein selbst wird im ersten Teil absolut und im zweiten symbolisch angegeben STATUSBYTE DB101 DB10 STATUS_3 DB30 D1 1 Messwert DB25 DW20 STATUSBYTE Statusdaten DB10 STATUS_3 Neue Daten D1 1 Messwert Messdaten DW20 STATUS_1 WORD_TO_BLOCK_DB INDEX DW10 Beispiel 12 4 Absoluter Zugriff SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung globaler Daten 12 8 Indizierter Zugriff auf Datenbausteine Indizierter Zugriff Absolutbezeichner Regeln beim indizierten Zugriff Sie haben auch die M glichkeit auf globale Datenbausteine indiziert zu zugreifen Dies hat gegen ber der absoluten Adressierung den Vorteil da Sie durch die Verwendung von variablen Indizes dynamisch adressieren Sie k nnen z B die Laufvariable einer FOR Schleife zur Indizierung verwenden Der indizierte Zugriff auf einen Datenbaustein geschieht hnlich wie der abso lu
180. er Aufrufanweisung unter Angabe e des Namens des Funktionsbausteins bzw Systemfunktionsbausteins FB oder SFB Bezeichnung e des Instanz Datenbausteins DB Bezeichnung e sowie der Parameterversorgung FB Parameter Ein Aufruf einer globalen Instanz kann absolut oder symbolisch definiert sein Absoluter Aufruf FB10 DB20 X1 5 X2 78 Parameterversorgung Symbolischer Aufruf ANTRIEB EIN X1 5 X2 78 Bild 16 4 Aufruf von FB10 mit Instanz Datenbaustein DB20 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 3 Aufruf von Funktionen und Funktionsbausteinen Aufruf als lokale Der Aufruf erfolgt in einer Aufrufanweisung unter Angabe Instanz e des lokalen Instanznamens BEZEICHNER e der Parameterversorgung FB Parameter Ein Aufruf einer lokalen Instanz ist immer symbolisch z B MOTOR X1 5 X2 78 Ir j Parameterversorgung Bild 16 5 Aufruf einer lokalen Instanz SCL f r S7 300 400 Bausteine programmieren 16 4 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 2 1 FB Parameter Prinzip Beim Aufruf eines Funktionsbausteins als globale oder lokale Instanz m ssen Sie in der Parameterliste unterscheiden zwischen e den Eingangsparametern und e den Durchgangsparametern eines FB In beiden F llen weisen Sie ber Wertzuweisungen den Formal parametern die Aktualparameter zu Formalpara
181. eranden die durch Operatoren verkn pft sind Die Auswertungsreihenfolge der Operatoren ist durch deren Priorit t vorgegeben und kann au erdem durch Klammerung gesteuert werden e Arithmetische Ausdr cke e Logische Ausdr cke e Vergleichsausdr cke Ein typischer Ausdruck ist z B b b Axaxc 2xa Die Bezeichner a und b und die Zahlen 4 und 2 sind die Operanden die Symbole x und sind die entsprechenden Operatoren Multiplikation Subtraktion und Division Der gesamte Ausdruck stellt eine Zahl dar Ein Vergleichsausdruck ist ein logischer Ausdruck der entweder wahr oder falsch sein kann Hier ein Beispiel eines Vergleichsausdrucks Sollwert lt 100 0 In diesem Ausdruck ist SOLLWERT eine Realvariable 100 0 eine Realzahl und das Symbol lt ein Vergleichs Operator Der Ausdruck hat den Wert wahr falls Sollwert einen Wert kleiner als 100 0 darstellt andernfalls hat der Ausdruck den Wert falsch Ein typischer Ausdruck daf r ist a AND NOT b Die Bezeichner a und b sind die Operanden die Schl sselw rter AND und NOT logische Operatoren Der gesamte Ausdruck stellt ein Bitmuster dar SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 7 10 Anweisungen bersicht Wertzuweisungen Kontroll anweisungen Unterprogramm bearbeitung Eine SCL Anweisung ist eine ausf hrbare Aktion im Anweisungsteil eines Codebausteins Es gibt in SCL drei grundlegende Anw
182. ereinstimmung keine Gew hr bernehmen Die Angaben in dieser Druckschrift werden regelm ig berpr ft und notwendige Korrekturen sind in den nachfolgenden Auflagen enthalten F r Verbesserungsvorschl ge sind wir dankbar Siemens AG 1998 Technische nderungen bleiben vorbehalten Siemens Aktiengesellschaft 6ES7811 1CA02 8AAO Vorwort Zweck des Hand buchs Leserkreis G ltigkeitsbereich des Handbuchs Normerf llung nach IEC 1131 3 Dieses Handbuch unterst tzt Sie bei der Erstellung von Anwender programmen in der Programmiersprache SCL Die prinzipiellen Vorgehens weisen f r die Programmerstellung mit dem SCL Editor SCL Compiler und SCL Debugger werden erl utert Au erdem enth lt das Handbuch einen Referenzteil ber die Sprachelemente der Programmiersprache SCL Dabei werden Syntax und Funktionsweise der einzelnen Sprachelemente beschrieben Dieses Handbuch richtet sich an Programmierer von S7 Programmen Inbetriebsetzer und Servicepersonal Allgemeine Kenntnisse auf dem Gebiet der Automatisierungstechnik sind dabei hilfreich Dieses Handbuch ist g ltig f r die Programmiersoftware STEP 7 ab Version 3 0 Es gilt f r das Softwarepaket STEP 7 Basissoftware SCL entspricht der in der Norm DIN EN 61131 3 int IEC 1131 3 festgelegten Sprache Structured Control Language wobei hinsichtlich der Operationen wesentliche Unterschiede bestehen Genaue Aussagen zur Normerf llung finden Sie in der Norme
183. ert Sie ber die Klassen von Bezeichnern Tabelle A 10 Gesamtmenge der Bezeichnerarten in SCL Bezeichnerart Bemerkungen Beispiele Schl sselw rter z B Steueranweisungen BEGIN DO WHILE Vordefinierte Namen Namen von Standard Datentypen z B BOOL BYTE INT e vordefinierte Standardfunktionen z B ABS e Standardkonstanten TRUE und FALSE Operandenkennzeichen f r globale Systemdaten und Datenbausteine bei Absolutbezeichnern z B E1 2 MW10 FC20 T5 DB30 DB10 D4 5 freie w hlbare Namen Namen von nach der Regel vereinbarten Variablen BEZEICHNER Strukturkomponenten e Parametern vereinbarten Konstanten e Sprungmarken Symbole der Symbol erf llen entweder die lexikalische Regel BEZEICHNER tabelle oder die lexikalische Regel Symbol d h in Hochkommata eingeschlossen z B xyz Gro und Bei den Schl sselw rtern ist Gro und Kleinschreibung nicht relevant Seit der Kleinschreibung S7 SCL Version 4 0 wird auch bei den vordefinierten Namen sowie bei den frei w hlbaren Namen z B f r Variablen und bei den Symbolen aus der Symbolta belle Gro und Kleinschreibung nicht mehr unterschieden Tabelle A 11 gibt Ihnen einen berblick Tabelle A 11 Relevanz von Gro und Kleinschreibung bei den Bezeichnerarten Bezeichnerart case sensitiv Schl sselw rter nein vordefinierte Namen bei Standard Datentypen nein Namen bei vordefinierten
184. eutige und aussage kr ftige Namen die zur Verst ndlichkeit des Programms beitragen Achten Sie darauf ob der Name schon vom System belegt ist z B durch Bezeichner f r Datentypen oder Standardfunktionen G ltigkeitsbereich Bei Namen die global g ltig sind erstreckt sich der G ltigkeitsbereich ber das gesamte Programm Lokal g ltige Namen gelten nur innerhalb eines Bausteins Sie haben somit die M glichkeit glei che Namen in verschiedenen Bausteinen zu benutzen Die Tabelle A 12 in formiert Sie ber die M glichkeiten die Sie haben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung Namens einschr nkungen Verwendung von BEZEICHNER Bei der Vergabe von Namen m ssen Sie einige Einschr nkungen beachten Die Namen m ssen in ihrem G ltigkeitsbereich eindeutig sein d h Namen die bereits innerhalb eines Bausteins vergeben wurden d rfen nicht nochmals im selben Baustein benutzt werden Weiterhin d rfen folgende vom System belegte Namen nicht benutzt werden e Namen von Schl sselw rtern z B CONST END_CONST BEGIN e Namen von Operatoren z B AND XOR e Namen von Vordefinierten Bezeichnern z B Namen f r Datentypen wie BOOL STRING INT e Namen der vordefinierten Konstanten TRUE und FALSE e Namen von Standardfunktionen z B ABS ACOS ASIN COS LN e Namen von Absolut bzw Operandenkennzeichen f r globale Systemdaten z B EB EW ED AB AW A
185. ewert bei einem Funktionsaufruf Funktion XOR Logischer Operator Logischer Basisoperator SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung A 6 Operandenkennzeichen und Bausteinschl sselw rter Globale In Tabelle A 8 finden Sie die SIMATIC Mnemonik der SCL Operanden Systemdaten kennzeichen mit Beschreibung alphabetisch aufgelistet e Angabe des Operandenkennzeichens Speicher Pr fix A E M PA PE oder Datenbaustein D e Angabe der Gr e des Datenelements Gr en Pr fix optional oder B D W X Die Mnemonik stellt eine Kombination zwischen dem Operandenkennzeichen Speicher Pr fix oder D f r Datenbaustein und Gr en Pr fix dar Beides sind lexikalische Regeln Die Tabelle ist nach der SIMATIC Mnemonik sortiert die entsprechende IEC Mnemonik wird dazu angegeben Tabelle A 8 Operandenkennzeichen der globalen Systemdaten SIMATIC IEC Speicher Pr fix oder Datenbaustein Gr en Pr fix Mnemonik Mnemonik A Q Ausgang ber Proze abbild Bit AB QB Ausgang ber Proze abbild Byte AD QD Ausgang ber Proze abbild Doppelwort AW QW Ausgang ber Proze abbild Wort AX QX Ausgang ber Proze abbild Bit D D Datenbaustein Bit DB DB Datenbaustein Byte DD DD Datenbaustein Doppelwort DW DW Datenbaustein Wort DX DX Datenbaustein Bit E I Eingang ber
186. ezimalpunkt vorhanden ist wird angenommen da er auf der rechten Seite der Ziffer steht Der Exponent selbst mu entweder eine positive oder negative Integerzahl sein Die Basis 10 wird durch den Buchstaben E ersetzt Die Gr e 3 x 10 kann in SCL durch folgende Realzahlen dargestellt werden 3 0E 10 3 0E10 3e 10 3E10 0 3E 11 0 3ell 30 0E 9 30e9 Die folgenden Realzahlen sind falsch 3 E 10 Auf beiden Seiten des Dezimalpunkts mu eine Ziffer stehen 8e2 3 Der Exponent mu eine Integerzahl sein 333e 3 Auf beiden Seiten des Dezimalpunkts mu eine Ziffer stehen 30 E10 Leerzeichen sind nicht erlaubt Eine Zeichenkette ist eine Folge von Zeichen d h Buchstaben Ziffern und Sonderzeichen die in Anf hrungszeichen stehen Sowohl Klein wie Gro buchstaben k nnen benutzt werden Einige g ltige Zeichenketten ROT 76181 Karlsruhe 270 32 3456 DM19 95 Die richtige Antwort ist Spezielle Formatierungszeichen das Anf hrungzeichen oder ein Zeichen k nnen Sie mit Fluchtsymbol eingeben Quelltext nach Kompilierung SIGNAL S ROTS S SIGNAL ROT 1507099 50 0 WERTSP WERT Seitenumbruch REG SL REG Zeilenumbruch REGELSR REGLERWagenr cklauf SCHRITTST SCHRITT Tabulator F r die nicht druckbaren Zeichen geben Sie die Ersatzdarstellung im Hexacode mit hh an wobei hh stellvertretend f r den hexadezimal ausged
187. f Funktionsbaustein Funktionsbausteine Funktionsleiste 4 3 G Globale Daten Zugriff 12 3 Globale Datenbausteine absoluter Zugriff 12 9 indizierter Zugriff strukturierter Zugriff Globale Instanz Aufruf 16 3 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Globale Systemdaten absoluter Zugriff indizierter Zugriff 12 7 GOTO Anweisung Gr en Pr fix 12 5 Grundstruktur OB 8 16 H Haltepunkte bearbeiten 6 5 IF Anweisung 15 2 15 4 Implizit definierte Parameter 16 20 Index 9 7 Index Spezifikation 9 7 Indizierter Zugriff auf globale Datenbausteine auf globale Systemdaten 12 7 Eingangsparameter statische Variablen 10 5 Initialisierungsteil DB 8 18 Installation bersicht Installieren SCL 3 4 Voraussetzungen 3 1 K Kommentarblock Kommentare 7 20 Einbau Schachtelung 7 21 Komplette Strukturen 14 4 Konstanten 11 2 Anwendung String Konstanten 11 7 Vereinbarung symbolischer N amen 11 2 Kontinuierlich beobachten Kontrollanweisung 8 11 15 1 Kontrollstatement Konvertierung implizit 18 2 Konvertierungs Funktionen Liste Klasse A 18 3 Liste Klasse B 18 4 Index 3 Stichwortverzeichnis Konzept Baustein STEP 7 KOP Erweiterung SCL Kopierschutz 3 2 L Labels Vereinbarung 11 14 Laden eines Zeitwerts Format Literale 11 3 Integer 11 5 numerische 11 6 Realzah
188. f S7 300 400 mit der Methodik der Programmerstellung vertraut zu machen Bei Arbeiten mit der jeweiligen Software k nnen Sie die Online Hilfe nutzen die Ihnen alle Detailfragen zu der Nutzung der zugeh rigen Editoren Compiler beantwortet Handb cher GRAPH HiGraph CFC Die Sprachen GRAPH HiGraph CFC bieten zus tzlich M glichkeiten Ablauf steuerungen Zustandssteuerungen oder graphische Verschaltungen von Bausteinen zu realisieren Die Handb cher enthalten sowohl die Benutzeranleitung als auch die Sprachbeschreibung F r einen erstmaligen Einsatz der Sprache ist es empfehlenswert sich mit der Methodik der Programmerstellung anhand des Programmierhandbuchs Programmentwurf S7 300 400 vertraut zu machen Beim Arbeiten mit der jeweiligen Software k nnen Sie zudem die Online Hilfe nut zen Ausnahme HiGraph die Ihnen die Detailfragen zu der Nutzung der Editoren Compiler beantwortet 1 Optionspakete zu Systemsoftware f r S7 300 400 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vorwort Wegweiser Konventionen Weitere Unterst tzung Besonderer Hinweis vi Dieses Handbuch zu SCL setzt theoretische Kenntnisse ber S7 Programme voraus die Sie im Programmierhandbuch 234 nachlesen k nnen Da die Sprachpakete auf der Basissoftware STEP 7 aufsetzen sollten Sie bereits Kenntnisse im Umgang mit der Basissoftware haben die im Benutzerhandbuch 234 vermitte
189. ffnen einer SCL Quelle Quellen die Sie mit SCL anlegen lassen sich folgenderma en in die Struktur eines S7 Programms einordnen S7 Programm Bausteine Baustein z B FB1 OB1 Quellen Quelle z B SCL Quelle Symbole Bild5 1 Struktur eines S7 Programms im SIMATIC Manager Zum Anlegen einer Quelle f r SCL gehen Sie folgenderma en vor 1 W hlen Sie den Men befehl Datei Neu oder klicken Sie das Symbol Neu in der Funktionsleiste an W hlen Sie im Dialogfeld Neu das gew nschte Projekt und in einem zugeh rigen S7 Programm den Quellbeh lter aus ffnen Sie den Quellbeh lter und w hlen Sie den Men befehl Einf gen gt S7 Software SCL Quelle Markieren Sie die Quelle und w hlen Sie den Men befehl Bearbeiten gt Objekteigenschaften Tragen Sie im Register Allgemein den Namen des Quellobjekts ein Der Name kann bis zu 24 Zeichen lang sein Gro und Kleinschreibung wird bei Quellennamen beachtet Doppelklicken Sie auf die Quelle Es wird ein leeres Fenster ge ffnet in dem Sie die SCL Quelle editieren k nnen Sie k nnen ein Quellobjekt ffnen das Sie bereits mit SCL erzeugt und abgespeichert haben um es weiterzubearbeiten oder zu bersetzen Gehen Sie folgenderma en vor 1 W hlen Sie den Men befehl Datei gt ffnen oder klicken Sie das Symbol
190. fgerufenen Bausteinen auf gerufen werden m ssen vor diesen stehen Bausteine die Sie in der Quelldatei aufrufen aber nicht in derselben Quell datei programmieren m ssen bereits zum Zeitpunkt der Datei bersetzung im entsprechenden Anwenderprogramm vorhanden sein SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei zuge ordnet UDT ruft auf DB ee ruft auf DB aus UDT ee zuge g ruft auf TE ordnet ke gt oO D Instanz DB zu FB 3 ke g ruft auf D I FC5 T c er OB 1 Y Bild 8 2 _Bausteinstruktur einer Quelldatei Beispiel Allgemeine Der Quellcode f r einen Baustein besteht grunds tzlich aus folgenden Bausteinstruktur Abschnitten e Bausteinanfang mit Angabe des Bausteins absolut oder symbolisch e Bausteinattribute optional e Vereinbarungsteil unterschiedlich je nach Bausteinart e Anweisungsteil in Codebausteinen bzw Zuweisung von Aktualwerten in Datenbausteinen optional e Bausteinende SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 3 Aufbau einer SCL Quelldatei 8 2 Bausteinanfang und ende bersicht Syntax Baustein bezeichnung Beispiel Der Quelltext f r einen einzelnen Baustein wird abh ngig von der Bausteinart mit einem Standardbezeichner f r den Anfang des Bausteins u
191. g currVal S_CU C_NO Z11 CU M0 0 S MO 1 PV 16 110 R MO 2 CV binVal QO actFlag currVal S_CUD C_NO 212 CD E0 0 CU E0 1 S E0 2 amp EO 3 PV 120 R FALSE CV binVal O actFlag currVal S_CD C_NO Z210 CD FALSE S FALSE PV 100 R TRUE CV binVal Q actFlag END_FUNCTION_BLOCK Beispiel 17 2 Aufruf von Z hlfunktionen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 5 Zeiten und Z hler 17 1 1 Eingabe und Auswertung des Z hlerwerts bersicht F r die Eingabe des Vorbesetzungswertes bzw f r die Auswertung des Funktions ergebnisses ben tigen Sie die interne Darstellung des Z hlerwerts siehe Bild 17 1 Wenn der Z hler gesetzt wird Parameter S wird der von Ihnen festgelegte Wert in den Z hler geschrieben Der Wertebereich liegt zwischen 0 und 999 Sie k nnen den Z hlerwert innerhalb dieses Bereichs ver ndern indem Sie die Operationen Vorw rts R ckw rtsz hlen Vorw rtsz hlen und R ckw rts z hlen verwenden Format Bild 17 1 veranschaulicht die Bit Konfiguration des Z hlerwertes nid 2 I Wa 8 78 54a 982 I w xXIXIX1X 0101011 0101110 0111 111 amp AL IR AL gt Se 2 Be Z hlwert im BCD Format 0 bis 999 Diese Bits sind irrelevant d h beim Setzen eines Z hlers werden sie nicht beachtet Bild 17 1 Bit Konfiguration f r einen Z hlerwert Eingabe Mit folgenden Formaten k nnen S
192. g Daten eingeben und Daten ausgeben wird dabei im OB programmiert F r die Teilaufgabe Me werte erfassen ist ein Baustein mit Ged chtnis also ein FB erforderlich da bestimmte bausteinlokale Daten z B der Ringpuffer von einem Programmzyklus zum n chsten erhalten bleiben m ssen Der Ort zum Daten speichern Ged chtnis ist der Instanz Datenbaustein ERFASSEN_DATEN Derselbe FB kann auch die Teilaufgabe Ausgabe adressieren und w hlen bernehmen da die ben tigten Daten hier zur Verf gung stehen Bei der Wahl der Bausteinart zur L sung der Teilaufgaben Me werte sortieren und Ergebnisse berechnen ist zu ber cksichtigen da ein Ausgabe puffer angelegt werden mu der zu jedem Me wert die Berechnungs ergebnisse Wurzel und Quadrat enth lt Deshalb kommt als Baustein nur ein FB in Frage Da der FB von einem bergeordneten FB aufgerufen wird ben tigt er keinen eigenen DB Seine Instanzdaten k nnen im Instanz Datenbaustein des aufrufenden FB abgelegt werden Zur L sung der Teilaufgabe Wurzel oder Quadrat berechnen eignet sich ein FC am besten weil die R ckgabe des Ergebnisses als Funktionswert erfolgen kann Au erdem werden zur Berechnung keine Daten ben tigt die l nger als einen Zyklus der Programmbearbeitung erhalten bleiben m ssen Zur Wurzelberechnung kann die SCL Standardfunktion SORT benutzt werden Zur Quadratberechnung soll eine Funktion QUADRAT erstellt werden die auch eine Grenzpr fung
193. g aufheben Schlie en durch Test beenden Haltepunkte aktiv ausschalten Bild 6 1 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Algorithmus des Testablaufs 6 7 Testen eines Programmes 6 4 Testfunktion Variablen beobachten steuern bersicht Beim Testen mit der Funktion Variablen beobachten steuern k nnen Sie e die aktuellen Werte von globalen Daten aus Ihrem Anwenderprogramm anzeigen lassen beobachten e den Variablen eines Anwenderprogramms feste Werte zuweisen steuern Variablen ber den Men befehl Zielsystem gt Variablen beobachten steuern k nnen beobachten und Sie steuern e Triggerpunkte und bedingungen festlegen e Werte f r die Variablen eines Anwenderprogramms angeben In beiden F llen m ssen Sie eine Variablentabelle erstellen in der Sie angeben welche Variablen bearbeitet werden sollen Im Fall von Steuern geben Sie zus tzlich die gew nschten Werte an Eine ausf hrliche Beschreibung der Testfunktion finden Sie im STEP 7 Benutzerhandbuch 231 SCL f r S7 300 400 Bausteine programmieren 6 8 C79000 G7000 C522 01 Testen eines Programmes 6 5 Testfunktion Referenzdaten bersicht Erzeugen von Referenzdaten Sie k nnen Referenzdaten erzeugen und auswerten um sich das Testen und Andern Ihres Anwenderprogramms zu erleichtern Referenzdaten umfassen Programmstruktur Querverweisliste Belegungs plan Liste nicht ve
194. g eines Bausteins verwendet werden soll siehe auch Kapitel 17 BAUSTEIN Bezeichnung Sie legen einen bestimmten Baustein fest der als Eingangspara meter verwendet werden soll Die Bausteinart FB FC DB wird in der Deklaration des Eingangsparameters festgelegt Bei der Parameterversorgung geben Sie die Bausteinnummer des Bausteins an Dieses kann sowohl die absolute als auch die symbolische sein siehe auch Kapitel 9 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 7 Aufruf von Funktionen und Funktionsbausteinen 16 2 3 Durchgangszuweisung FB Prinzip Aktualparameter einer Durchgangs zuweisung 16 8 Durchgangszuweisungen dienen dazu den formalen Durchgangsparametern des aufgerufenen FB Aktualparameter zuzuweisen Im Gegensatz zu Eingangsparametern kann der aufgerufene FB Durchgangs parameter jedoch ver ndern Der neue Wert des Parameters der bei der Abarbeitung des FBs entsteht wird in den Aktualparameter zur ckgeschrieben Der urspr ngliche Wert wird dabei berschrieben Wenn im aufgerufenen FB Durchgangsparameter vereinbart sind m ssen diese beim ersten Aufruf versorgt werden Die Angabe von Aktualparametern ist danach optional Durchgangszuweisung Erweiterte Parametername des Durchgangsparameters Aktualparameter Formalparameter Bild 16 9 Syntax Durchgangszuweisung Da der zugewiesene Aktualparameter w hrend des FB Durchlaufs als Durc
195. g und Weiterverarbeitung von Me werten Das Programm ist symbolisch programmiert Damit es bersetzt werden kann mu die Zuordnung der symbolischen Namen zu den Baugruppenadressen und den in der CPU ab laufenden Bausteinen vorhanden sein Dazu wird folgendeSymboltabelle ben tigt Eingabe EBl BYTE Me wert Eingang 0 0 EO O BOOL Eingabeschalter zur bernahme des Me werts Sortierschalter EO 1 BOOL Ansto zum Sortieren und Berechnen Funktionsschalter EO 2 BOOL Ergebniswahl Wurzel oder Quadrat Ausgabeschalter E0 3 BOOL Ausgabewahl Me wert oder Ergebnis Codierung EWO WORD Codierung relevante Bits 12 13 und 14 Codierschalter E0 7 BOOL bernahme der Codierung Ausgabe Awa4 INT Me wert oder Ergebnis Wurzel oder Quadrat ERFASSEN FB10 FB10 Me werte erfassen Ausgabe adressieren und w hlen ERFASSEN_DATEN DB10 FB10 Instanzdatenbaustein zu ERFASSEN AUSWERTEN FB2O FB20 Me werte auswerten Ergebnisse berechnen QUADRAT FC41 FC41 Funktion zur Quadratberechnung ZYKLUS OB1 OB1 Zyklischer Aufruf und Ein Ausgabe a ber Eingang 0 0 Eingabeschalter wird ein Me wert der an der Eingangsbaugruppe anliegt bernommen ber verschiedene Schalter kann die Weiterverarbeitung der Me werte gesteuert werden Alle Werte werden im Arbeitsbereich des Funktionsbausteins ERFASSEN dem Instanzdatenbaustein ERFASSEN_DATEN abgespeichert Bild 2 5 Einleitungskommentar mit Symboltabelle 2 10 SCL f r
196. g zeigt Ihnen das Beispiel 10 3 VAR GENERATOR STRUCT DATEN REAL 100 5 Al INT 10 A2 STRING 6 FAKTOR A3 ARRAY 1 12 OF REAL 12 100 0 END_STRUCT END_VAR Beispiel 10 3 Strukturinitialisierung SCL f r S7 300 400 Bausteine programmieren 10 6 C79000 G7000 C522 01 Vereinbarung lokaler Variablen und Bausteinparameter 10 4 Instanzdeklaration bersicht Initialisierung Im Vereinbarungsteil von Funktionsbausteinen k nnen Sie au er den bereits bekannten Variablen mit elementarem zusammengesetztem oder anwender definiertem Datentyp auch Variablen vom Typ FB oder SFB deklarieren Diese Variablen werden lokale Instanzen des FB oder SFB genannt Die lokalen Instanzdaten werden im Instanz Datenbaustein des aufrufenden Funktionsbausteins gespeichert Instanzdeklaration FBs m ssen bereits existieren FB BEZEICHNUNG BEZEICHNER Go Lokaler Instanzname Q Bild 10 4 Syntax Instanzdeklaration O gt FB BEZEICHNUNG 1 Beispiele G ltige Beispiele nach der Syntax in Bild 10 4 sind Versorgungl FB10 Versorgung2 Versorgung3 Versorgung4 FB100 Motorl i MOtOr 5 Dabei ist Motor ist ein in der Symboltabelle eingetragenes Symbol Symbol Adresse Datentyp MOTOR FB20 FB20 Bild 10 5 Zugeh rige Symboltabelle in STEP 7 Eine lokale instanzspezifische Initialisierung ist nicht m glich SCL f r S7 300 400 Bauste
197. gabeschalter THEN Ausgabeumschaltung Ausgabe ERFASSEN_DATEN ergebnis_aus Wurzel oder Quadrat ELSE Ausgabe ERFASSEN_DATEN messwert_aus Me wert END_IF END_ORGANIZATION_BLOCK Bild 2 6 Organisationsbaustein ZYKLUS OB1 Datentyp Der Me wert liegt in der Eingabe als Typ BYTE vor Er mu nach INT Konvertierungen konvertiert werden Dazu m ssen Sie ihn von WORD nach INT konvertieren die vorherige Konvertierung von BYTE nach WORD erfolgt implizit durch den Compiler siehe Kapitel 18 Keine Konvertierung wird dagegen f r die Ausgabe ben tigt da diese in der Symboltabelle als INT deklariert wurde siehe Bild 2 5 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 11 Entwerfen eines SCL Programms 2 5 Erstellen des Funktionsbausteins ERFASSEN L sungsweg Der Bausteintyp FB wurde gew hlt weil es Daten gibt die von einem Progammzyklus zum n chsten gespeichert werden m ssen Dieses sind die statischen Variablen die im Vereinbarungsblock VAR END_VAR dekla riert werden siehe Tabelle 2 4 Statische Variablen sind lokale Variablen deren Werte ber alle Baustein durchl ufe hinweg erhalten bleiben Sie dienen der Speicherung von Werten eines Funktionsbausteins und werden im Instanz Datenbaustein abgelegt FUNCTION_BLOCK ERFASSEN EEE EFF EFF EHE IF LIFE SEI FL ELF LEI FL EIFEL LES LIFE LIFE SE SSL LS FL TANA Teil 1 Erfassung der Me werte Teil 2 Sortierung und Berechnu
198. gangs Datentyp Beschreibung parameter Funktionswert ABS ANY_NUM ANY_NUM Absolutbetrag SQR ANY_NUM REAL Quadrat SQRT ANY_NUM REAL Wurzel D Beachten Sie da Eingangsparameter vom Typ ANY_NUM intern in Real Variablen umgewandelt werden Logarithmische Funktionen sind die Funktionen zur Berechnung eines Exponentialwertes oder eines Logarithmus einer Gr e Tabelle 18 6 Logarithmische Funktionen Funktionsname Datentyp Eingangs Datentyp Beschreibung parameter Funktionswert EXP ANY_NUM REAL ehoch IN EXPD ANY_NUM REAL 10 hoch IN LN ANY_NUM REAL Nat rlicher Logarithmus LOG ANY_NUM REAL Dekadischer Logarithmus D Beachten Sie da Eingangsparameter vom Typ ANY_NUM intern in Real Variablen umgewandelt werden Hinweis Sie haben au erdem die M glichkeit IEC Funktionen als numerische Standardfunktion zu nutzen Kopieren Sie in diesem Fall die gew nschte Funk tion aus der STEP 7 Bibliothek STDLIBS EC in Ihr Programmverzeichnis Informationen zu einzelnen IEC Funktionen finden Sie in 235 18 9 SCL Standardfunktionen und Standardfunktionsbausteine Liste der trigo Die in Tabelle 18 7 dargestellten trigonometrischen Funktionen erwarten und nometrischen berechnen Gr en von Winkeln im Bogenma Funktionen Tabelle 18 7 Trigonometrische Funktionen Funktionsname Datentyp Eingangs Datentyp Beschreibung parame
199. ginnt In SCL sind 2 Integer Typen realisiert die jeweils unterschiedliche Wertebereiche haben INT und DINT siehe Kapitel 9 Einige g ltige Integerzahlen 0 1 1 1 743 5280 600_00 32_211 Die folgenden Intergerzahlen sind aus den angef hrten Gr nden falsch 123 456 Kommata sind nicht erlaubt 36 In einer Integerzahl darf kein Dezimalpunkt stehen 10 20 30 Leerzeichen sind nicht erlaubt In SCL k nnen Sie Integerzahlen in unterschiedlichen Zahlensystemen dar stellen Das erfolgt durch Voranstellen eines Schl sselwortes f r das Zahlen system Dabei steht 2 f r das Bin rsystem 8 f r das Oktalsystem und 16 f r das Hexadezimalsystem G ltige Integerzahlen f r Dezimal 15 2 1111 8 17 16 F Eine Realzahl mu entweder einen Dezimalpunkt oder einen Exponent oder beides enthalten Ein Dezimalpunkt mu zwischen zwei Ziffern stehen Somit kann eine Realzahl nicht mit einem Dezimalpunkt anfangen oder enden Einige g ltige Realzahlen 0 0 1 0 0 2 827 602 50000 0 0 000743 12 3 315 0066 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Zeichenkette Die folgenden Realzahlen sind falsch I Auf beiden Seiten des Dezimalpunktes mu eine Ziffer stehen 1 000 0 Kommata sind nicht erlaubt 3333 Auf beiden Seiten des Dezimalpunktes mu eine Ziffer stehen Ein Exponent kann enthalten sein um die Lage des Dezimalpunktes fest zulegen Falls kein D
200. h gangsparameter ver ndert werden kann mu er eine Variable sein Ein Eingangsparameter ist in Durchgangsanweisungen aus diesem Grund nicht zuweisbar der neue Wert k nnte nicht zur ckgeschrieben werden Tabelle 16 3 Aktualparameter in Durchgangszuweisungen Aktual Erl uterung Parameter Erweiterte Folgende Typen der erweiterten Variablen stehen zur Verf gung Variable einfache Variablen und Parameter Zugriff auf Absolutvariablen Zugriff auf Datenbausteine Funktions Aufrufe siehe auch Kapitel 14 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen Besonderheiten Beachten Sie die folgenden Besonderheiten Nach dem Bausteindurchlauf wird der ver nderte Wert des Durchgangs parameters aktualisiert Eine Ausnahme bilden die Durchgangsparameter eines elementaren Datentyps Die Aktualisierung erfolgt hier nur wenn beim Aufruf ein Aktualparameter angegeben wurde Bei Durchgangsparametern von einem nicht elementaren Datentyp sind als Aktualparameter nicht erlaubt FB Durchgangsparameter FC Parameter ANY Parameter Grunds tzlich gelten hier auch die beiden ersten Aussagen Zus tzlich gilt da Konstanten als Aktualparameter nicht zul ssig sind SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 9 Aufruf von Funktionen und Funktionsbausteinen 16 2 4 Beispiel f r den Aufruf einer globalen Instanz
201. h me Fon bersicht Debugger Anwenderdaten 12 2 E ditor 1 2 au m Erlernbarkeit sc vereinbaren Zusammenfassung 12 1 i Da tenbaust ine Erweiterte Variable 13 6 Erweiterung SCL KOP AWL 1 2 A EXIT Anweisun Datenbereiche vereinbart 12 2 AZ f Exponent 13 9 Datenkategorie 10 2 Datenkonvertierung implizit 18 2 Datentyp Array o z F BOOL 1 FB Parameter Datentyp STRUCT Durchgangszuweisung 16 8 Komponentendeklaration 9 8 Eingangszuweisung Variablendeklaration 9 8 Prinzip 16 5 Datentyp anwenderdefiniert FC Aufruf nicht optional 16 16 SCL f r S7 300 400 Bausteine programmieren Index 2 C79000 G7000 C522 01 Stichwortverzeichnis FC Parameter 16 15 Eingangszuweisung 16 16 Fehler w hrend der Installation 3 5 Fehler und Warnungen Ursachen 5 8 Fehler OB OB Typen 19 4 Fehlererkennung OB Typen 19 4 Feld eindimensional Vektor 9 7 h herdimensional 9 7 zweidimensional Matrix Feld Initialisierungsliste 10 5 Feldelement 14 6 Flag OK Flag Fluchtsymbol Flu diagramm SORTIEREN 2 19 FOR Anweisung 15 2 15 8 Formale Parameter Ausgangsparameter 10 10 Datentypen 9 12 Durchgangsparameter Eingangsparameter Formalparameter 16 2 Format Zeitwert Formatfreiheit Fortsetzung eines Strings 11 8 Funktion 13 Abschneiden 18 8 Aufbau Baustein Art Baustein Status ausf hren 6 4 Einzelschritt Modus ausf hren 6 6 verwenden Runden 18 8 Funktionsaufru
202. h Verschieben nach rechts mit der Standardfunktion SHR und Ausblenden der relevanten Bits mit einer AND Maske wird adresse ermittelt Mit dieser Adresse werden die Feldelemente Rechenergebnis und zugeh riger Me wert in die Ausgangsparameter geschrieben Ob Wurzel oder Quadrat ausgegeben wird h ngt von funktionswahl ab Eine Flanke am Codierschalter wird dadurch erkannt da sich neuwahl gegen ber altwahl ver ndert hat SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms Flu diagramm von ERFASSEN Bild 2 10 stellt den Algorithmus in Form eines Flu diagramms dar ERFASSEN Funktionsbaustein nderung neuwert Me wert in Ringpuffer einlesen den Zeiger neu berechnen nderung neusort AUSWERTEN Rechenergebnisse in Ergebnisfeld bernehmen nderung neucode Aus dem Instanz Datenbaustein laden Codierung auswerten und Ausgabeadresse ermitteln FALSE Ergebnis Wurzel laden Ergebnis Quadrat laden Me wert laden Ende I Laden Listenelemente mit Ausgabeadresse in die Ausgangsparameter schreiben um danach ihre Werte anzuzeigen Mit der MOD Operation wird der Ringpuffer realisiert Wenn Grenze erreicht Beginn von vorne Ringpuffer sortieren und Berechnungen durchf hren daf r Ergebnisfeld anlegen Zuerst die relevanten Bi
203. haulicht die Funktionsweise des Zeitgliedes Zeit als verl ngerten Impuls starten Eingangssignal Ausgangssignal Zeit als verl n gerter Impuls E 2 1 A4 0 S_PEXT Bild 17 4 Zeitglied Zeit als verl ngerten Impuls starten Tabelle 17 11 Funktionsweise Zeit als verl ngerten Impuls starten Operation Zeit starten Funktionsweise Die Operation Zeit als verl ngerten Impuls starten startet eine angegebene Zeit wenn der Signalzustand am Starteingang S von 0 auf 1 wechselt Um die Zeit freizugeben ist immer ein Signalwechsel erforderlich Laufzeit erneut starten Wechselt der Signalzustand am Eingang S noch w hrend der Lauf zeit erneut auf 1 wird die Zeit mit dem angegebenen Zeitwert neu gestartet Laufzeit Die Zeit l uft solange mit dem Wert weiter der an Eingang TV voreinstellen angegeben ist bis die programmierte Zeit abgelaufen ist R cksetzen Die Zeit wird zur ckgesetzt wenn der R cksetzeingang R von 0 auf 1 wechselt w hrend die Zeit l uft Durch diesen Wechsel werden auch der Zeitwert und die Zeitbasis auf Null zur ckgesetzt Der Signalzustand 1 an Eingang R hat keinen Einflu wenn die Zeit nicht l uft Signalzustand Solange die Zeit l uft ergibt eine Signalzustandsabfrage nach 1 abfragen an Ausgang Q das Ergebnis 1 unabh ngig von der L nge des Eingangssignals Aktuellen Zeit Der
204. he Regeln zuuusenannnnnnnenu nn nun nn nn C 1 Gliederungen von SCL Quellen 2 sns seen nennen C 2 C2 Aufbau der Vereinbarungsteile 2e2222 nennen nennen C 4 C 3 D tentypen in SC 2 412 220 een ab bs C 8 0 4 Anweisungsteil Ho H nennen an nenne nennen nennen nn C 11 C 5 Wertzuweisungen 222neneeneee een nennen nennen nn C 13 C 6 Aufruf von Funktionen und Funktionsbausteinen 222 2220 C 16 C 7 Kontrollanweisungen 2esesnnnseenneennn nennen nennen nen C 18 Literaturverzeichnis sreenue nennen nennen nennen nn D 1 GIOSSAR nii iadi iiia aaia ee a a a Stichwortverzeichnis asanunsununnnnnnnnnnnnnnnnnnnnnnnnnnn SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Produkt bersicht SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Produkt bersicht Programmier Immer h ufiger m ssen Automatisierungssysteme neben den klassischen sprache SCL Steuerungsaufgaben heute auch Datenverwaltungsaufgaben und komplexere mathematische Aufgaben bernehmen Speziell f r diese Aufgaben bieten wir Ihnen SCL f r S7300 400 Structured Control Language die Programmiersprache die das Programmieren leichter macht genormt nach IEC 113 3 SCL unterst tzt Sie au er bei normalen Steuerungsaufgaben auch bei umfangreichen Anwendungen und ist damit den klassischen Programmier sprachen in den folgenden Anwendungsbereich
205. he von Variablen die in Kapitel 14 genauer behandelt werden Erweiterte Variable gt einfache Variable a gt Absolutvariable f r CPU Speicherbereiche gt Variable in DB H gt Variable in lokaler Instanzl p FC Aufruf Bild 13 4 Syntax Erweiterte Variable Beispiele f r die Beispiele f r g ltige Variablen sind erweiterte Variable SOLLWERT einfache Variable EW1O absolute Variable E100 5 absolute Variable DB100 DW INDEX Variable in DB OTOR DREHZAL Variable in lokaler Instanz SOR 20 Standard Funktion FC192 SOLLWERT Funktionsaufruf Beispiel 13 2 Erweiterte Variablen in Ausdr cken Hinweis Bei einem Funktionsaufruf wird das errechnete Ergebnis der R ckgabewert anstelle des Funktionsnamens in den Ausdruck eingef gt Aus diesem Grund sind VOID Funktionen die keinen R ckgabewert haben als Operanden f r einen Ausdruck nicht zul ssig SCL f r S7 300 400 Bausteine programmieren 13 6 C79000 G7000 C522 01 Anweisungen Ausdr cke und Operatoren 13 3 Arithmetische Ausdr cke Definition Arithmetische Operationen Ein arithmetischer Ausdruck ist ein mit arithmetischen Operatoren gebildeter Ausdruck Solche Ausdr cke erm glichen die Verarbeitung von numerischen Datentypen Arithmetischer Basisoperator O O mmo Bild 13 5 Syntax Arithmetischer Basisoperator Tabelle 13 2 fa
206. henfolge und Schachtelung dieser Aufrufe wird Aufruf hierarchie genannt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 1 Glossar Aufrufschnittstelle Ausdruck Ausgangs parameter A Parameter Baustein Baustein kommentar Bausteinschutz Beh lter Bausteinart Bausteinaufruf Glossar 2 Die Aufrufschnittstelle wird definiert durch die Eingangs Ausgangs und Durchgangsparameter Formalparameter eines Bausteins im Anwenderpro gramm Bei Aufruf des Bausteins werden diese Parameter durch die Aktual parameter ersetzt Ein Ausdruck dient in SCL zur Verarbeitung von Daten Es wird unterschieden zwischen arithmetischen logischen Ausdr cken und Vergleichsausdr cken Mit den Ausgangsparametern eines Bausteins im Anwenderprogramm wer den Ergebnisse an den aufrufenden Baustein bergeben Bausteine sind durch ihre Funktion ihre Struktur oder ihren Verwendungs zweck abgegrenzte Teile des Anwenderprogrammes Es gibt bei STEP 7 Codebausteine FB FC OB SFC SFB Datenbausteine DB SDB und an wenderdefinierte Datentypen UDT Zusatzinformationen zu einem Baustein z B Erl uterungen zum automatisierten Proze die nicht in den Arbeitsspeicher von SIMATIC S7 Automatisierungssystemen geladen werden Als Bausteinschutz bezeichnet man die M glichkeit einzelne Bausteine ge gen R ck bersetzung zu sch tzen wenn die bersetzung der Bausteinquelle mit dem Schl sselwort
207. hlich verwendeten Zeichen Der Ziffern BEZEICHNER siehe Kapitel A 3 besteht z B aus Buchstaben Ziffern und Unterstrich Tabelle A 1 Buchstaben und Ziffern Zeichen Untergruppe Zeichensatzelemente Buchstabe Gro buchstabe A Z Kleinbuchstabe a z Ziffer Dezimalziffer 0 9 Oktalziffer Oktalziffer 0 7 Hexadezimalziffer Hexadezimalziffer 0 9 A F a f Bit Bin rziffer 0 1 Druckbare Der vollst ndige erweiterte ASCII Zeichensatz ist benutzbar in Strings Zeichen und Kommentaren und Symbolen Spezialzeichen Tabelle A 2 Druckbare Zeichen und Spezialzeichen Zeichen Untergruppe Zeichensatzelemente druckbares Zeichen abh ngig vom verwendeten alle druckbaren Zeichen Zeichencode Bei ASCII Code z B ab Dezimal quivalent 31 ohne DEL und ohne die folgenden Ersatzzeichen Ersatzzeichen Dollarzeichen Apostroph Steuerzeichen P oder p Seitenumbruch formfeed page L oder I Zeilenumbruch linefeed R oder r Wagenr cklauf carriage return T oder t Tabulator Ersatzdarstellung im hh beliebige Zeichen Hexacode aufnehmbar als Hexacode hh SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung A A Formatierungs Trennzeichen und Operatoren In den lexikali schen Regeln F r Literale In Tabelle A 3 finden Sie die Verwendung einzelner Zeichen des ASCH Zeichensatzes als Formatierungs und Tr
208. hmen rufen Sie das Programm AUTHORS auf der Autorisierungsdiskette auf Damit lassen sich Autorisierungen anzeigen installieren und deinstallieren Das Programm ist men gef hrt Hinweis Geben Sie bei der Installation der Autorisierung f r SCL als Ziellaufwerk immer Laufwerk C an Autorisierung Wird eine erneute Autorisierung notwendig z B wenn Sie das Laufwerk auf deinstallieren dem sich die Berechtigung befindet neu formatieren wollen so m ssen Sie vorher die Berechtigung retten Dazu ben tigen Sie die Original Autorisierungsdiskette Gehen Sie folgenderma en vor um die Autorisierung wieder zur ck auf die Autorisierungsdiskette zu bertragen 1 Legen Sie die Original Autorisierungsdiskette in Ihr 3 5 Laufwerk ein 2 Rufen Sie das Programm AUTHORS EXE von der Autorisierungsdiskette auf 3 W hlen Sie den Men befehl Autorisierung gt Deinstallieren 4 Geben Sie im anschlie end aufgeblendeten Dialogfeld das Laufwerk an auf dem sich die Autorisierung befindet und quittieren Sie den Dialog Eine Liste mit allen Autorisierungen auf dem betreffenden Laufwerk wird angezeigt 5 Markieren Sie die Autorisierung die Sie deinstallieren wollen und quittieren Sie den Dialog Wenn der Vorgang ohne Fehler abgeschlossen worden ist erhalten Sie die Meldung Autorisierung lt Name gt erfolgreich von Laufwerk lt X gt entfernt 6 Quittieren Sie die Meldung Danach wird wieder das Dialogfeld
209. ichen siehe Bild 11 8 Das Zeichen Einzelzeichen wird durch einfache Hochkommata eingeschlossen CHARACTERLITERAL N C Zeichen E gt Bild 11 8 Syntax Characterliteral Beispiel Zeichen_1l B Zeichen B Stringliteral Ein Stringliteral ist eine Zeichenkette von max 254 Zeichen Buchstaben Ziffern und Sonderzeichen die in Anf hrungszeichen stehen Sowohl Klein wie Gro buchstaben k nnen benutzt werden STRINGLITERAL Oel en nt 0 Bild 11 9 Syntax Stringliteral Einige g ltige Stringliterale ROT 16181 Karlsruhe 270 32 3456 DM19 95 Die richtige Antwort ist Beachten Sie bitte da bei einer Zuweisung eines Stringliterals an eine String variable die Anzahl der Zeichen auf lt 254 begrenzt sein kann SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 11 7 Vereinbarung von Konstanten und Sprungmarken String unterbrechung Druckbare Zeichen 11 8 Die Wertzuweisung TEXT STRING 20 SIEMENS KARLSRUHE Rheinbr ckenstr verursacht eine Fehlermeldung und hinterlegt in der Variablen TEXT SIEMENS KARLSRUHE Rb Spezielle Formatierungszeichen das Anf hrungzeichen oder ein Zeichen k nnen Sie mit Fluchtsymbol eingeben Ein Stringliteral d rfen Sie mehrmals unterbrechen und fortsetzen Ein String steht entweder in ei
210. ichnung FC31 ist z B FC31 WERT SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei Beispiel Das Beispiel zeigt Ihnen eine Funktion mit den formalen Eingangs parametern x1 x2 y1 y2 einem formalen Ausgangsparameter Q2 und einem R ckgabewert FC11 Die Bedeutung der formalen Parametern finden Sie im Kapitel 10 FUNCTION FC11 REAL VAR_INPUT x1 REAL x2 REAL yl REAL y2 REAL END_VAR VAR_OUTPUT Q2 REAL END_VAR BEGIN Anweisungsteil FC11 SQRT R ckgabe des Funktions wertes X2 x1 7R2 y2 yl 2 Q2 x1 END_FUNCTION Beispiel 8 3 Beispiel einer Funktion SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 15 Aufbau einer SCL Quelldatei 8 9 Aufbau eines Organisationsbausteins OB bersicht OB Bezeichnung OB Vereinbarungsteil 8 16 Der Organisationsbaustein OB ist wie ein FB oder FC Teil des Anwender programms und wird vom Betriebssystem zyklisch oder bei bestimmten Ereignissen aufgerufen Er bildet die Schnittstelle zwischen Anwender programm und Betriebssystem Organisationsbaustein gt OB _ ORGANIZATION_BLOCK BEZEICHNUNG OB Vereinbarungsteil H BEGIN Ki Anweisungsteil H END_ORGANIZATION_BLOCK gt Bild 8 12 Syntax Organisationsbaustein OB Geben Sie nach dem Schl sselwort ORGANIZATION_BLOCK
211. icht eingef gt werden Die lexikalischen Regeln sind in folgende Gruppen unterteilt e Bezeichnungen e Literale e Absolutadressierung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 B 1 Lexikalische Regeln B 1 Bezeichnungen Tabelle B 1 Bezeichnungen Regel Syntaxdiagramm BEZEICHNER I Buchstabe _ Il Buchstabe Z Unterstrich Unterstrich BAUSTEIN BEZEICHNUNG Die Regel gilt auch f r folgende Regelnamen DB BEZEICHNUNG FB BEZEICHNUNG FC BEZEICHNUNG OB BEZEICHNUNG UDT BEZEICHNUNG Baustein gt Schl sselwort Nummer a DB FB FC OB UDT BEZEICHNER H Symbol H TIMERBEZEICH NUNG gt T Nummer in SIMATIC u IEC Mnemonik BEZEICHNER H Symbol H SCL f r S7 300 400 Bausteine programmieren B 2 C79000 G7000 C522 01 Lexikalische Regeln Tabelle B 1 Bezeichnungen Fortsetzung Regel Syntaxdiagramm Z HLER BEZEICHNUNG gt z Nummer in SIMATIC Mnemonik C in IEC Mnemonik BEZEICHNER H gt Symbol H Baustein Schl ssel wor oi C Ip Organisationsbaustein SFC Systemfunktion Funktionsbaustein gt FB gt SFB Systemfunktionsbaustein B_J Datenbaustein UDT Anwenderdefinierter Datentyp User D
212. ie bergabe der Aktualparameter an die Formalparameter ist Bestandteil des Aufrufs Eine typische Unterprogrammbearbeitung ist z B FC31 X 5 O1l Quersumnme 1 Wenn Sie im FC Formalparameter vereinbart haben ist die Zuweisung von Aktualparametern zwingend erforderlich bei FBs jedoch optional SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 7 11 SCL Bausteine bersicht Bausteinarten Vorgefertigte Bausteine Aufbau eines SCL Bausteins 7 18 In einer SCL Quelldatei k nnen Sie 1 bis n Bausteine als Quelltext programmieren ra FUNCTION_BLOCK FB10 Schl sselwort A CONST Konstante INT A END_CONST Vereinbarungsteil VAR ERT1 WERT2 REAL W Ea END_VAR Anweisungsteil BEGIN WERT1 100 Schl sselwort B END_FUNCTION_BLOCK Bild 7 6 Aufbau einer SCL Quelldatei Die STEP 7 Bausteine sind durch ihre Funktion ihre Struktur oder ihren Verwendungszweck abgegrenzte Teile eines Anwenderprogramms Mit SCL k nnen Sie folgende Bausteine programmieren OB FC FB DB UDT STEP 7 Bausteine Nicht jede Funktion m ssen Sie selbst programmieren Sie k nnen auch auf vorgefertigte Bausteine zur ckgreifen Sie sind im Betriebssystem der Zentral baugruppen oder in Bibliotheken S7lib des STEP7 Basispakets vorhanden und k nnen
213. ie einen vordefinierten Z hlerwert laden e Dezimal als Integer Wert z B 295 sofern dieser Wert einer g ltigen BCD Codierung entspricht e Im BCD Format Eingabe als Hexadezimalkonstante z B 16 127 Auswertung Das Ergebnis k nnen Sie in zwei verschiedenen Formaten auswerten e Als Funktionsergebnis Typ WORD im BCD Format e Als Ausgangsparameter CV Typ WORD bin r SCL f r S7 300 400 Bausteine programmieren 17 6 C79000 G7000 C522 01 Zeiten und Z hler 17 1 2 Aufw rtsz hlen Counter Up Beschreibung Funktionsweise Mit dem Z hler Counter Up k nnen Sie nur Aufw rts Z hloperationen durch f hren Tabelle 17 3 Funktionsweise Aufw rtsz hler Operation Vorw rts z hlen Funktionsweise Der Wert des Z hlers wird um 1 weitergestellt wenn der Signal zustand an Eingang CU von 0 auf 1 wechselt und der Z hlwert kleiner als 999 ist Z hler setzen Wenn der Signalzustand an Eingang S von 0 auf 1 wechselt wird der Z hler mit dem Wert des Eingangs PV gesetzt Ein solcher Signal wechsel ist immer erforderlich um einen Z hler zu setzen R cksetzen Der Z hler wird r ckgesetzt wenn Eingang R 1 ist Das R cksetzen des Z hlers setzt den Z hlwert auf 0 Z hler Eine Signalzustandsabfrage an Ausgang Q ergibt 1 wenn der Z hl abfragen wert gr er als 0 ist Die Abfrage ergibt 0 wenn der Z hlwert gleich
214. iffernfolge Dezimalziffernfolge Bild 11 2 Ziffernfolge in einem Literal Die Dezimalziffernfolge innerhalb von Literalen kann optional durch Unter striche getrennt werden Die Unterstriche unterst tzen die bessere Lesbarkeit bei gr eren Zahlen Dezimalziffernfolge gt 5 Ziffer gt 0O Unterstrich Bild 11 3 Syntax Dezimalziffernfolge Die folgenden Beispiele sind zul ssige Schreibweisen f r eine Dezimalziffern folge innerhalb von Literalen 1000 1_120_200 666 _999_A00_311 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung von Konstanten und Sprungmarken Integerliterale Integerliterale sind ganzzahlige Werte Diese k nnen im SCL Programm je nach L nge Variablen mit den folgenden Datentypen zugewiesen werden BOOL BYTE INT DINT WORD DWORD Bild 11 4 zeigt die Syntax eines Integerliterals INTEGERLITERAL DEZIMAL ZIFFERNFOLGE 1 Oktalinteger L Hexadezimal Integer Bin rinteger Gr nur bei den Datentypen INT und DINT Bild 11 4 Syntax Integerliteral Die folgenden Beispiele sind zul ssige Schreibweisen f r Dezimalziffernfolge innerhalb von Integerliteralen 1000 1_120_200 666_999_400_311 Bin re Oktale Die Angabe eines Integerliterals in einem anderen Zahlensystem als dem Hexadezimale dezimalen erfolgt durch das Voranstellen der Pr fixe 2 8 oder 16 gefolgt Werte von de
215. ifikation Vergessen Sie nicht das Schl sselwort END_STRUCT mit Semikolon abzuschlie en Spezifikation max 5 Wiederholungen 6 Dimensionen Datentyp OF Spezifikalion gt STRUCT Datentyp Spezifikation STRUCT Komponenten END_STRUCT SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 0 9 Syntaktische Regeln Tabelle C 4 Syntax der Datentypen im Vereinbarungsteil Fortsetzung Datentyp Daten BEZEICHNER spezifikation TIMER COUNTER POINTER BLOCK_FC BLOCK_FB BLOCK_DB BLOCK_SDB SCL f r S7 300 400 Bausteine programmieren C 10 C79000 G7000 C0522 01 Syntaktische Regeln C 4 Anweisungsteil Tabelle C 5 Syntax des Anweisungsteils Regel Syntaxdiagramm Anweisungsteil BEZEICHNER Anweisung p Sprungmarke Anweisung Wertzuweisung Unterprogramm gt bearbeitung Konotanweisug Wertzuweisung gt einfache Variable Is gt zu Ausdruck gt gt Absolutvariable in CPU Speicherbereiche gt Variable in DB H gt Variable in lokaler Instanz Erweiterte Variable gt einfache Variable gt gt Absolutvariable f r CPU Speicherbereiche gt Variable in DB gt Variable in lokaler Instanzl gt FC Aufruf
216. iger Datentyp erlaubt sein soll POINTER 6 byte Kennzeichnet einen bestimmten Speicherbereich der von dem Programm verwendet werden soll Aktualparameter z B M50 0 Sie legen ein bestimmtes Zeitglied oder einen bestimmten Z hler fest der bei der Bearbeitung eines Bausteins verwendet werden soll Die Datentypen TIMER und COUNTER sind nur f r Eingangsparameter VAR_INPUT erlaubt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen BLOCK Typen Sie legen einen bestimmten Baustein fest der als Eingangsparameter verwendet werden soll Die Vereinbarung des Eingangsparameters bestimmt die Bausteinart FB FC DB Bei der Parameterversorgung geben Sie die Baustein Bezeichnung entweder absolut z B FB20 oder durch einen symbolischen Namen an SCL stellt keine Operationen auf diese Datentypen zur Verf gung Es k nnen lediglich Parameter dieses Types bei Bausteinaufrufen versorgt werden Bei FCs ist das Durchreichen eines Eingangsparameters nicht m glich In SCL k nnen Sie Operanden der folgenden Datentypen als Aktualparameter zuordnen e Funktionsbausteine ohne Formalparameter e Funktionen ohne Formalparameter und R ckgabewert VOID e Datenbausteine und Systemdatenbausteine ANY In SCL besteht die M glichkeit Bausteinparameter vom Datentyp ANY zu vereinbaren wobei beim Aufruf eines solchen Bausteins diese Parameter mit Operanden beliebigen Datentyps versorgt werden d rfen SCL
217. iger m chtig ist als der Quelldatentyp Testmodus von SCL Beim kontinuierlichen Beobachten eines Programms k nnen Sie eine Gruppe von Anweisungen testen Diese Gruppe von Anweisungen nennt man auch Beobachtungsbereich Laden von ladbaren Objekten z B Codebausteine vom Programmierger t in den Ladespeicher einer programmierbaren Baugruppe Dies kann sowohl ber ein direkt angeschlossenes Programmierger t oder z B ber den PROFIBUS geschehen Laden von ladbaren Objekten z B Codebausteine aus dem Ladespeicher einer programmierbaren Baugruppe in das Programmierger t Dies kann sowohl ber ein direkt angeschlossenes Programmierger t oder z B ber den PROFIBUS geschehen Die untere Regelstufe der formalen SCL Sprachbeschreibung besteht aus den lexikalischen Regeln Bei ihrer Anwendung besteht keine Formatfreiheit d h die Erg nzung von Leerzeichen und Steuerzeichen z B ist nicht erlaubt Lokaldaten sind die einem Codebaustein zugeordneten Daten die in seinem Deklarationsteil bzw Vereinbarungsteil deklariert werden Sie umfassen bausteinabh ngig Formalparameter statische Daten tempor re Daten SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Merker M Mnemonik Multiinstanz N Nonterminal Nutzdaten O Offline OK Variable Online Online Hilfe Speicherbereich im Systemspeicher einer SIMATIC S7 CPU Auf ihn kann schreibend und lesend zugegriffen werden bit
218. ilen lassen Tabelle 10 1 Lokale Variablen Variable Bedeutung Statische Variablen Statische Variablen sind lokale Variablen deren Wert ber alle Bausteindurchl ufe hinweg erhalten bleibt Baustein ged chtnis Sie dienen der Speicherung von Werten eines Funktionsbausteins und werden im Instanz Datenbaustein abgelegt Tempor re Variablen Tempor re Variablen geh ren lokal zu einem Codebaustein und belegen keinen statischen Speicherbereich da sie im Stack der CPU abgelegt werden Ihr Wert bleibt nur w hrend eines Bausteinablaufs erhalten Auf tempor re Variablen kann au erhalb des Bausteins in dem die Variablen deklariert wurden nicht zugegriffen werden Bausteinparameter sind Platzhalter die erst bei der konkreten Verwendung Aufruf des Bausteins festgelegt werden Die im Baustein stehenden Platzhalter bezeichnet man als Formalparameter die beim Aufruf des Bausteins zugewiesenen Werte als Aktualparameter Die Formalparameter eines Bausteins k nnen wie lokale Variablen betrachtet werden Die Bausteinparameter lassen sich nach Tabelle 10 2 in folgende Kategorien einteilen Tabelle 10 2 Bausteinparameter Bausteinparameter Bedeutung Eingangsparameter Eingangsparameter nehmen beim Aufruf des Bausteins die aktuellen Eingangswerte auf Sie k nnen nur gelesen werden Ausgangsparameter Ausgangsparameter bergeben die aktuel len Ausgangswerte an den aufrufenden Baustein Sie k nnen beschrieben aber
219. implizit in eine Variable vom Datentyp WORD konvertiert END_FUNCTION_BLOCK Beispiel 18 1 Implizite Datentyp Konvertierung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 SCL Standardfunktionen und Standardfunktionsbausteine 18 2 Standardfunktionen f r Datentyp Konvertierungen Explizite Datentyp konvertierung Funktionsaufruf Liste der Konvertierungs Funktionen Klasse A Die explizite Datentyp Konvertierung f hren Sie mit Standardfunktionen durch Die Standardfunktionen finden Sie in den Tabellen 18 2 und 18 3 Die allgemeinen Funktionsaufrufe sind in Kapitel 16 ausf hrlich beschrieben Eingangsparameter Jede Funktion zur Konvertierung eines Datentyps hat genau einen Ein gangsparameter mit dem Namen IN Da es sich um eine Funktion mit nur einem Parameter handelt m ssen Sie nur den Aktualparameter angeben Funktionswert Der Funktionswert ist immer der R ckgabewert der Funktion Die beiden Tabellen zeigen die Regeln nach denen ein Datentyp konvertiert wird In Tabelle 18 3 ist auch angegeben ob die jeweilige Funktion das OK Flag beeinflu t e Namensgebung Da die Datentypen des Eingangsparameters und des Funktionswertes aus dem jeweiligen Funktionsnamen hervorgehen sind sie in den Tabellen 18 2 und 18 3 nicht gesondert aufgelistet z B bei Funktion BOOL_TO_BYTE ist der Datentyp des Eingangsparameters BOOL der Datentyp des Funktionswertes BYTE Tabelle 18 2 stellt
220. in 1 Signal dann wird der Baustein aufgerufen bei 0 Signal wird er nicht aufgerufen Bei STEP 7 hat jeder Baustein einen Ausgang Enable Output ENO Innerhalb des Bausteins kann der Anwender den Eingang Enable mit einem internen Wert UND verkn pfen Das Ergebnis wird automatisch dem Ausgang ENO zugewiesen Mit ENO ist es m glich bei verketteten Aufrufen von Bausteinen die Bearbeitung der Folgebausteine von der ordnungs gem en Bearbeitung des vorhergehenden Bausteins abh ngig zu machen Abbruch einer Laufschleife Ein Feld ARRAY ist ein zusammengesetzter Datentyp bestehend aus Datenelementen gleichen Typs Diese Datenelemente k nnen wiederum elementar oder zusammengesetzt sein Eine FOR Anweisung dient zur Wiederholung einer Folge von Anweisungen solange die Laufvariable innerhalb eines angegebenen Wertebereichs liegt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 5 Glossar Formalparameter Funktion FC Funktionsbaustein FB G Globale Daten GOTO Anweisung HALT Glossar 6 Ein Formalparameter ist ein Platzhalter f r den tats chlichen Parameter Aktualparameter bei parametrierbaren Codebausteinen Bei FB und FC werden die Formalparameter vom Anwender deklariert bei SFB und SFC sind sie bereits vorhanden Beim Aufruf des Bausteins wird dem Formal parameter ein Aktualparameter zugeordnet so da der aufgerufene Baustein mit diesem aktuellen Wert
221. ine programmieren C79000 G7000 C522 01 10 7 Vereinbarung lokaler Variablen und Bausteinparameter 10 5 Statische Variablen bersicht Vereinbarungs block VAR END_VAR Beispiel Zugriff 10 8 Eine statische Variable ist eine lokale Variable deren Wert ber alle Baustein durchl ufe hinweg erhalten bleibt Bausteinged chtnis Sie dient der Speicherung von Werten eines Funktionsbausteins Die Variablen werden im Instanz Datenbaustein Ihres Funktionsbausteins gespeichert Statischer Variablenblock Variablen deklaration END_VAR Instanz deklaration hi Bild 10 6 Syntax Statischer Variablenblock Dieser Vereinbarungsblock ist Bestandteil des FB Vereinbarungsteils Sie k nnen in diesem Block e Variablennamen und Datentypen mit der Variablendeklaration vereinbaren optional mit Initialisierung siehe Kapitel 10 2 e mit der Instanzdeklaration andere bereits existierende Variablendeklara tionen einf gen siehe Kapitel 10 4 Nach dem bersetzen bestimmt dieser Block zusammen mit den Bl cken f r die Bausteinparameter den Aufbau des zugeordneten Instanz Datenbausteins Beispiel 10 4 zeigt die Vereinbarung statischer Variablen VAR DURCHLAUF SENT MESSFELD ARRAY 1 10 OF REAL SCHALTER BOOL MOTOR_1 Motor_2 FB100 Instanzdeklaration END_VAR Beispiel 10 4 Vereinbarung statischer Variablen Der Zugriff auf die Variablen erfolgt im Anweisungsteil
222. iner SCL Quelle ne2ceee een 5 5 5 5 Der bersetzungsvorgang isssrrrrrruiiiiirrrrrrnu 5 6 5 6 bertragen des erstellten Anwenderprogramms in das AS 5 9 5 7 Erstellen einer bersetzungssteuerdatei 222222ccceeeeee 5 10 Testen eines Programmes zuuuunennnn en nun en nn nn nn nn 6 1 BErSIchE ua ee een ee ee 6 2 6 2 Testfunktion Kontinuierlich beobachten 2 22222 22er 6 3 6 3 Testfunktion Haltepunkte aktiv 2 222022 seen een 6 5 6 4 Testfunktion Variablen beobachten steuern 222222 r 00 6 5 Testfunktion Referenzdaten 22222 22 nennen nennen 6 6 Verwenden der STEP 7 Testfunktionen 222 eeeenene nen 6 10 Teil 3 Sprachbeschreibung 7 viii Allgemeine SCL Grundbegriffe zsussnennenennnnn nn nenn nun nn 7 1 7 1 Hilfen f r die Sprachbeschreibung 2 222222 ne seen nennen 7 2 7 2 Der SCL Zeichensatz 2 sensseeeneenenne rennen nenn 7 4 7 3 Reservierte W rter 2222 2neene een een nenne nenne nennen 7 5 7 4 Bezeichner in SCL eeeasseeennnnennnn nennen nennen 7 7 7 5 Standardbezeichner 2222222s sense nnnee nennen nennen nen 7 8 7 6 Z hlen 2 4 2 ts a re re 7 10 7 7 D tentypen ur 2 222 002 Re ea a a aa 7 12 7 8 Varlablen sur taten eek Da 7 14 7 9 Ausdr cke ans TAREKS aereeeen 7 16 7 10 Anweisungen au sa a ee EGR 7 17 7 11 SCL B a
223. is 10 ms 00 100 ms 01 Is 10 10s 11 Hinweis Da Zeitwerte nur in einem Zeitintervall gespeichert werden werden Werte die keine genauen Vielfache des Zeitintervalls sind abgeschnitten Werte deren Aufl sung f r den gew nschten Bereich zu gro ist werden ab gerundet so da der gew nschte Bereich erzielt wird nicht jedoch die gew nschte Aufl sung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 17 15 Zeiten und Z hler 17 2 2 Zeit als Impuls starten Beschreibung Die maximale Zeit in der das Ausgangssignal auf 1 bleibt ist gleich dem programmierten Zeitwert t Tritt w hrend der Laufzeit des Zeitgliedes am Eingang der Signalzustand 0 auf wird der Ausgang Q auf 0 gesetzt d h die Zeit wird angehalten Dies bedeutet eine vorzeitige Beendigung der Laufzeit Bild 17 3 veranschaulicht die Funktionsweise des Zeitglieds Zeit als Impuls starten Eingangssignal E2 1 Ausgangssignal A4 0 S_PULSE Zeit als Impuls e t Bild 17 3 Zeitglied Zeit als Impuls starten Tabelle 17 10 Funktionsweise Zeit als Impuls starten Funktionsweise Operation Funktionsweise Zeit starten Die Operation Zeit als Impuls starten startet eine angegebene Zeit wenn der Signalzustand am Starteingang S von 0 auf 1 wechselt Um die Zeit freizugeben ist immer ein Signalwechsel erforderlich Laufzeitfestlegen Die Zei
224. isch aufgebaut ist siehe Kapitel 8 e Gro und Kleinschreibung wird nur bei symbolischen Bezeichnern z B bei Variablennamen und Zeichenliteralen ber cksichtigt e Aufgerufene Bausteine stehen vor den Bausteinen in denen sie aufgerufen werden e Anwenderdefinierte Datentypen UDT stehen vor den Bausteinen in denen sie verwendet werden e Globale Datenbausteine stehen vor allen Bausteinen die auf sie zugreifen e Halten Sie sich an die Richtlinien f r Format und Syntax die im Teil Sprachbeschreibung dieses Handbuches angef hrt sind SCL f r S7 300 400 Bausteine programmieren 5 4 C79000 G7000 C522 01 Programmieren mit SCL 5 4 Speichern und Drucken einer SCL Quelle Speichern einer SCL Quelle Quellobjekt drucken Einrichten der Seite Kopf und Fu zeilen erstellen Druckvorschau Unter dem Begriff Speichern wird in SCL immer das Speichern der Quelldateien verstanden Bausteine werden in SCL beim bersetzen der Quelldatei erzeugt und automatisch im zugeh rigen Programmverzeichnis abgelegt F r das Speichern einer SCL Quelle haben Sie mehrere M glichkeiten e W hlen Sie den Men befehl Datei gt Speichern oder klicken Sie das Symbol Speichern in der Funktionsleiste an Die SCL Quelle wird aktualisiert e Wenn Sie eine Kopie der aktuellen SCL Quelle erstellen m chten w hlen Sie den Men befehl Datei gt Speichern unter Es erscheint das Dialogfeld Speichern unter i
225. isjunktion zweier Vergleichsausdr cke WHILE A gt 9 OR ABFRAGE lt gt n DO Messe EN END_WHILE Beispiel 13 6 Logische Ausdr cke SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 13 11 Anweisungen Ausdr cke und Operatoren 13 6 Logische Ausdr cke Definition Logische Operationen Ergebnisse 13 12 Ein logischer Ausdruck ist ein mit logischen Operatoren gebildeter Ausdruck Mit den Operatoren AND amp XOR OR k nnen logische Operanden Typ BOOL oder Variablen vom Datentyp BYTE WORD oder DWORD verkn pft werden um logische Ausdr cke zu bilden Um den Wert eines logischen Operanden zu verneinen d h umzukehren wird der NOT Operator verwendet Logischer Basisoperator NOT ist kein Basisoperator Der Operator wirkt wie Vorzeichen TORO E COES Bild 13 8 Syntax Logischer Basisoperator Tabelle 13 3 gibt Auskunft ber die verf gbaren logischen Ausdr cke und die Datentypen f r Ergebnis und Operanden Dabei steht als Abk rzung ANY_BIT f r die Datentypen BOOL BYTE WORD DWORD Tabelle 13 3 Logische Operatoren Operation Opera 1 Operand 2 Operand Ergebnis Priori tor t t Negation NOT ANY_BIT ANY_BIT 3 Konjunktion AND ANY_BIT ANY_BIT ANY_BIT 8 Exklusiv Disjunktion XOR ANY_BIT ANY_BIT ANY_BIT 9 Disjunktion OR ANY_BIT ANY_BIT ANY_BIT 10 Das Ergebnis eines logischen Ausdrucks
226. iste Bild 10 2 Syntax Initialisierung Beispiel WERT REAL 20 25 Beachten Sie da eine Initialisierung einer Variablenliste Al A2 A3 INT nicht m glich ist Sie m ssen die Variablen in diesem Fall einzeln initialisieren Felder werden nach Bild 10 3 mit Anfangswerten besetzt Feld Initialisierungsliste Konstante H Feld Initialisierungsliste Konstante H gt ENA H j Q gt Wiederholungsfaktor Feld Initialisierungsliste Q Bild 10 3 Syntax Feld Initialisierungsliste FELD ARRAY 1 10 1 100 OF INT 10 100 0 Wiederholungsfaktor Anzahl Spalten j Wert Wiederholungsfaktor Anzahl Zeilen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 10 5 Vereinbarung lokaler Variablen und Bausteinparameter Beispiele Beispiel 10 1 zeigt die Initialisierung einer statischen Variablen VAR INDEX1 INT 3 END_VAR Beispiel 10 1 Initialisierung statischer Variablen Die Initialisierung eines zweidimensionalen Feldes zeigt Ihnen das Beispiel 10 2 Wenn Sie die folgende Datenstruktur in SCL unter dem Namen REGLER vereinbaren wollen dann schreiben Sie VAR REGLER ARRAY 1 4 1 4 OF INT 54 736 83 77 1289 10362 385 2 60 37 7 103 4 60 END_VAR Beispiel 10 2 Feldinitialisierung Eine Strukturinitialisierun
227. ition bersicht Ein Terminal ist ein Grundelement das nicht durch eine weitere Regel sondern verbal erkl rt wird In den Syntaxdiagrammen finden Sie es als folgendes Symbol C Das Terminal wird durch ein Oval oder Kreis QO dargestellt Entweder wird der Inhalt direkt an gegeben oder der Name in Gro buchstaben Dieser definiert die Menge der einsetzbaren ASCII Zeichen Bild A 5 Symbole f r Terminale In den Kapitel A 3 bis A 4 werden die Verwendungsarten von einzelnen Zeichen dargestellt Es sind Buchstaben Ziffern druckbare Zeichen und Spezialzeichen Formatierungs und Trennzeichen in den lexikalischen Regeln Pr fixe f r Literale Formatierungs und Trennzeichen in den syntaktischen Regeln Operatoren In den Kapitel A 5 und A 6 geht es um Schl sselw rter und vordefinierte Bezeichner aus Zeichenketten Die Tabellen sind alphabetisch geordnet Bei Unterschieden zwischen SIMATIC und IEC Mnemonik wird die entsprechende IEC Mnemonik dazu angegeben Schl sselw rter und vordefinierte Bezeichner Operandenkennzeichen und Bausteinschl sselw rter SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 A 5 Formale Sprachbeschreibung A 3 Terminale der lexikalischen Regeln bersicht In den folgenden Tabellen sind die Terminale spezifiziert durch die Angabe der Menge der Zeichensatzelemente aus dem ASCH Zeichensatz Buchstaben und Buchstaben und Ziffern sind die haupts c
228. kaldaten eines Codebausteins deklariert SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Z hler Zeiten Zyklus berwachungszeit Zykluszeit Z hler sind Bestandteile des Systemspeichers der CPU Der Inhalt dieser Z hler wird asynchron zum Anwenderprogramm vom Betriebssystem aktualisiert Mit STEP 7 Anweisungen wird die genaue Funktion der Z hlerzelle z B Aufw rtsz hler festgelegt und ihre Bearbeitung Start angesto en Zeiten sind Bestandteile des Systemspeichers der CPU Der Inhalt dieser Zeiten wird asynchron zum Anwenderprogramm vom Betriebssystem aktualisiert Mit STEP 7 Anweisungen wird die genaue Funktion der Zeitzelle z B Einschaltverz gerung festgelegt und ihre Bearbeitung Start angesto en berschreitet die Bearbeitungszeit des Anwenderprogramms die eingestellte Zyklus berwachungszeit so erzeugt das Betriebssystem eine Fehlermeldung und die CPU geht in den STOP Zustand Die Zykluszeit ist die Zeit die die CPU f r die einmalige Bearbeitung des Anwenderprogramms ben tigt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 15 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Stichwortverzeichnis A Abbruchbedingun Abbruchkriterium 15 13 Ablauf der L sung Absoluter Zugriff auf globale Datenbausteine 12 9 auf globale S stemdaten 12 4 Abwi rtsz hlen Adresse 12 5 12 10 Aktualparameter Ausgangs Durchg
229. l 11 6 Zeichenliteral Zuordnung zu Datentypen Logische Ausdr cke 13 10 Lokaldaten 7 14 10 1 Speicherungsart Lokale Instanz Aufruf 16 3 M Men leiste 4 3 Me werte verarbeiten 2 3 Methode Software Engineering 1 4 Mischen Baustein 14 N Namensvergabe Non Terminal Normerf llung Nullpointer Numerische Standardfunktionen 18 9 Liste allgem Funktionen 18 9 logarithmische Funktionen 18 9 trigonometrische Funktionen Numerische Typen 9 3 A 34 O OK Flag 10 2 10 12 Operanden 13 5 Operandenkennzeichen 12 4 Operationen alphabetische Auflistung A 5 A 34 Operatoren arithmetische 13 7 Klammerung Priorit ten 13 8 Organisationsbaustein OB Typen 19 4 Index 4 Organisationsbaus teine 1 3 Aufbau OB1 2 17 P Parameter Ausgangsparameter ENO Eingangsparameter EN implizit definiert 16 20 Versorgung Parametertyp ANY 13 BLOCK Typen COUNTER POINTER 9 14 TIMER 9 12 Parametertypen Parameterversorgung 16 2 Pascal 1 2 POINTER Parametertyp 7 13 9 12 Potenzausdruck 13 3 Priorit ten Operatoren Priorit tsklasse OB Typen Produkt bersicht 1 1 Progammierbare Ausgabe 2 4 Programmcode ERFASSEN 2 13 2 17 ERFASSEN Fortsetzung 2 16 OB 12 10 Programmdatei 7 19 Programmieren mit SCL Programmiermethoden 1 4 Programmiersprache h her 1 3 Programmiersprache textuelle h here 1 2 Programmieru
230. lanweisungen Fortsetzung Regel Syntaxdiagramm WHILE Anweisung WHILE Ausdruck DO A END _WHILE Vergessen Sie nicht das Schl sselwort END_WHILE mit Semikolon abzuschlie en REPEAT Anweisung REPEAT Anweisung _F UNTIL Ausdruck END_REPEAT Vergessen Sie nicht das Schl sselwort END_REPEAT mit Semikolon abzuschlie en CONTINUE RETURN Anweisung RETURN EXIT Anweisung EXIT Programmsprung Sprungmarke SCL f r S7 300 400 Bausteine programmieren C 20 C79000 G7000 0522 01 Literaturverzeichnis 12 13 14 20 25 30 70 7UV T2 100 101 102 230 231 232 233 234 235 236 Brosch re Automatisierungssystem S7 300 Aufbau und Anwendung Brosch re Automatisierungssystem S7 400 Aufbau und Anwendung Brosch re Automatisierungssystem M7 300 400 Aufbau und Anwendung Brosch re Automatisierungssystem S7 300 400 Programmierung Brosch re Automatisierungssystem M7 Programmierung Fibel Automatisierungssystem S7 300 Einfach aufbauen und programmieren Handbuch Automatisierungssystem S7 300 Aufbauen CPU Daten Referenzhandbuch Automatisierungssysteme S7 300 M7 300 Baugruppendaten Operationsliste Automatisierungssystem 57 300 Installationshandbuch Automatisierungssystem S7 400 M7 400 Aufbauen Referenzhandbuch Automatisierungssysteme S7 400 M
231. larationstyp gibt an wie ein Parameter bzw eine lokale Variable von einem Baustein verwendet werden soll Es gibt Eingangsparameter Ausgangsparameter und Durchgangsparameter sowie statische und tempor re Variablen Durchgangsparameter gibt es bei Funktionen und Funktionsbausteinen Mit Durchgangsparametern werden Daten an den aufgerufenen Baustein bergeben dort verarbeitet und die Ergebnisse vom aufgerufenen Baustein wieder in der gleichen Variablen abgelegt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Eingabe quellorientiert Eingangs parameter E Parameter Einzelschritt Enable EN Enable out ENO EXIT Anweisung Feld FOR Anweisung Bei der quellorientierten Eingabe werden die Bausteine oder das gesamte Anwenderprogramm in einer Textdatei editiert Eine Syntaxpr fung erfolgt erst bei der bersetzung Bei SCL wird eine quellorientierte Eingabe verwendet Eingangsparameter gibt es nur bei Funktionen und Funktionsbausteinen Mit Hilfe der Eingangsparameter werden Daten zur Verarbeitung an den aufgerufenen Baustein bergeben Der Einzelschritt ist ein Testschritt innerhalb der Einzelschrittfunktion des Debuggers von SCL In der Einzelschrittfunktion k nnen Sie das Programm Anweisung f r Anweisung ausf hren und im Ergebnisfenster beobachten Bei STEP 7 hat jeder Baustein einen Eingang Enable EN der beim Auf ruf eines Bausteins gesetzt werden kann Liegt an EN e
232. lb eines Programms zu verzweigen e Unterprogrammbearbeitungen die zum Aufrufen von Funktionen und Funktionsbausteinen dienen Anweisung Wertzuweisung gt Unterprogramm gt bearbeitung Kontrollanweisung il Bild 8 9 Syntax Anweisung Die Elemente die zur Formulierung dieser Anweisungen ben tigt werden sind Ausdr cke Operatoren und Operanden Sie werden in den weiteren Kapiteln behandelt Beispiele Die folgenden Beispiele sollen die verschiedenen Varianten der Anweisungen veranschaulichen Beispiel f r eine Wertzuweisung MESSWERT 0 Beispiel f r eine Unterprogrammbearbeitung FB1 DB11 UEBERGABE 10 Beispiel f r eine Kontrollanweisung WHILE ZAEHLER lt 10 DO END_WHILI m Beispiel 8 1 Anweisungen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 8 11 Aufbau einer SCL Quelldatei 8 7 Aufbau eines Funktionsbausteins FB bersicht FB Bezeichnung FB Vereinbarungsteil 8 12 Ein Funktionsbaustein FB ist ein Codebaustein der einen Teil eines Programms enth lt und ber einen zugeordneten Speicherbereich verf gt Immer wenn ein FB aufgerufen wird mu ihm ein Instanz DB siehe Kapitel 10 zugeordnet werden Den Aufbau dieses Instanz DB bestimmen Sie mit der Definition des FB Vereinbarungsteils Funktionsbaustein FB FB Verein _FUNCTION_BLOCK BEZEICHNUNG a barungsteil l
233. leinere Einheiten zerlegt werden k nnen Sie entsprechen der Definition der Norm DIN EN 1131 3 In SCL sind zw lf elementare Datentypen vordefiniert BOOL CHAR INT TIME BYTE DINT DATE WORD REAL TIME_OF_DAY DWORD SS5TIME SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Zusammenge setzte Datentypen Anwenderdefi nierte Datentypen Parametertypen Zusammengesetzte Datentypen definieren Strukturen von Daten die sich aus anderen Datentypen zusammensetzen SCL l t folgende zusammengesetzte Datentypen zu DATE_AND_TIME STRING ARRAY STRUCT Hierbei handelt es sich um globale Datentypen UDT die Sie in SCL f r Ihren Anwendungsfall erstellen k nnen Sie k nnen diesen Datentyp mit seiner UDT Bezeichnung UDTx x steht f r Nummer oder unter einem zugeordneten symbolischen Namen im Vereinbarungsteil eines Bausteins oder Datenbausteins verwenden Zus tzlich zu elementaren zusammengesetzten und anwenderdefinierten Datentypen k nnen Sie Parametertypen zur Definition von Parametern verwenden SCL bietet dazu die folgenden Parametertypen TIMER BLOCK_FB POINTER ANY COUNTER BLOCK_FC BLOCK_DB BLOCK_SDB SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 7 8 Variablen Variablen vereinbarung Lokaldaten Ein Bezeichner dessen Wert w hrend der Programmdurchf hrung ge ndert werd
234. len f r Speicherbereiche 14 10 14 8 Wertzuweisungen mit globalen Variablen 14 11 Weitere In SCL gibt es einfache und strukturierte Anweisungen Zu den einfachen Informationen Anweisungen geh rt neben der Wertzuweisung die Aufrufanweisung und die GOTO Anweisung Informationen hierzu finden Sie in den Kapiteln 15 und 16 Die Kontrollanweisungen f r eine Programmverzweigung und f r eine Schleifenbearbeitung z hlt zu den strukturierten Anweisungen Erl uterungen dazu finden Sie in Kapitel 15 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 14 1 Wertzuweisungen 14 1 bersicht Prinzip Wertzuweisungen ersetzen den momentanen Wert einer Variablen mit einem neuen Wert der ber einen Ausdruck angegeben wird Dieser Ausdruck kann auch Bezeichner von Funktionen FC enthalten die dadurch aktiviert werden und entsprechende Werte zur ckliefern R ckgabewert Wie das Syntaxdiagramm zeigt wird der Ausdruck auf der rechten Seite der Wertzuweisung ausgewertet und das Ergebnis in der Variablen abgespeichert deren Namen auf der linken Seite des Zuweisungszeichens steht Die Gesamt heit der dabei zugelassenen Variablen zeigt Bild 14 1 Wertzuweisung gt __ Einfache Variable J ama LO gt Absolutvariable m in CPU Speicherbereiche gt Variable in DB H I Variable in lokaler Instanz Bild 14 1 Syntax Wertzuweisung Ergebnis Der Typ eines Zuweisungs
235. lenkommentar END_VAR BEGIN Der Variablen SCHALTER einen Wert zuweisen L J SCHALTER 3 END_FUNCTION_BLOCK Bild 7 10 Beispiel f r Kommentare Hinweis Zeilenkommentare die direkt hinter der Variablenvereinbarung eines Bau steins stehen werden bei einer R ck bersetzung in ein AWL Programm ber nommen Diese Kommentare finden Sie innerhalb AWL im Schnittstellenbereich d h im oberen Teil des Fensters siehe auch 231 Im Beispiel in Bild 7 10 wird also der erste Zeilenkommentar bernommen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 7 21 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei bersicht Kapitel bersicht SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Eine SCL Quelldatei besteht prinzipiell aus fortlaufendem Text In einer solchen Quelldatei k nnen Sie mehrere Bausteine programmieren Diese k nnen OB FB FC DB oder UDT sein In diesem Kapitel wird der u ere Aufbau der Bausteine beschrieben Die nach folgenden Kapitel informieren Sie dann ber die internen Strukturen Im Kapitel finden Sie Seite 8 1 Aufbau 8 2 8 2 Bausteinanfang und ende 8 3 Bausteinattribute 8 4 Vereinbarungsteil 8 5 Anweisungsteil 8 6 Anweisung 8 7 Aufbau eines Funktionsbausteins FB 8 12 8 8 Aufbau einer Funktion FC 8 14 8 9 Aufbau eines Org
236. lexikalischen Regeln wird in den syntaktischen Regeln die Struktur von SCL beschrieben Im Rahmen dieser Regeln k nnen Sie Ihr SCL Programm formatfrei erstellen Im Kapitel finden Sie auf Seite Cl Gliederungen von SCL Quellen C 2 C 2 Aufbau der Vereinbarungsteile C 4 C 3 Datentypen in SCL C 8 C 4 Anweisungsteil C 11 C5 Wertzuweisungen C 6 Aufruf von Funktionen und Funktionsbausteinen C 7 Kontrollanweisungen C 18 Jede Regel hat einen Regelnamen der vorangestellt ist Wenn die Regel in einer bergeordneten Regel verwendet wird so taucht der Regelname in einem Rechteck auf Ist der Name im Rechteck in Gro buchstaben geschrieben so handelt es sich um ein Token das in den lexikalischen Regeln beschrieben wird ber Regelnamen in abgerundeten Rahmen oder Kreisen finden Sie Informationen im Anhang A Die Eigenschaft formatfrei bedeutet f r Sie e Einf gen von Formatierungszeichen ist berall m glich e Block und Zeilenkommentare k nnen eingef gt werden siehe Kapitel 7 6 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 C 1 Syntaktische Regeln C 1 Tabelle C 1 Gliederungen von SCL Quellen Syntax der SCL Quellen Regel SCL Programm Syntaxdiagramm 4 g SCL Programmeinheit H SCL Programmeinheit Organisationsbaustein H Funktionsbaustein H Datenbaustein Anwenderdefinierte
237. ll Day Tage Regel Stufendarstellung H Trennzeichen f r Zeitintervall Hour Stunden Regel Stufendarstellung M Trennzeichen f r Zeitintervall Minutes Minuten Regel Stufendarstellung MS Trennzeichen f r Zeitintervall Milliseconds Millisekunden Regel Stufendarstellung S Trennzeichen f r Zeitintervall Seconds Sekunden Regel Stufendarstellung T Zeitangabe ZEITDAUER TIME Zeitangabe ZEITDAUER TIME_OF_DAY Zeitangabe TAGESZEIT TOD Zeitangabe TAGESZEIT SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung In den syntakti schen Regeln In Tabelle A 5 finden Sie die Verwendung einzelner Zeichen als Formatierungs und Trennzeichen im Bereich der syntaktischen Regeln sowie bei Kommentar und Attributen siehe Anhang B 2 und B 3 Tabelle A 5 _Formatierungs und Trennzeichen in den syntaktischen Regeln Zeichen Beschreibung Syntaktische Regel Kommentar oder Attribut Trennzeichen zur Typangabe Variablendeklaration Instanzdeklaration bei Anweisung nach Sprungmarke Funktion Anweisungsteil CASE Anweisung 8 Abschlu einer Vereinbarung oder Variablendeklaration Anweisungsteil DB Zu Anweisung weisungsteil Konstantenblock Sprungmarken block Komponentendeklaration 7 Trennzeichen f r Listen und Sprungmarken Variablendeklaration Array Datentyp Spezi bl cke fikation Feld Initiali
238. lle Bu S Bausteine programmieren 2 3 1 Festlegen der Teilaufgaben bersicht Die Teilaufgaben sind im Bild 2 3 als K sten dargestellt Die grau unterlegten rechteckigen Bereiche repr sentieren die Bausteine Die Anordnung der Code bausteine von links nach rechts entspricht der Aufrufreihenfolge ZYKLUS ERFASSEN AUSWERTEN Organisationsbaustein OB Funktionsbaustein FB Funktionsbaustein FB Daten Me werte Me werte e u eingeben erfassen sortieren zvykli SQRT QUADRAT re Funktionen FC Aufruf Ausgabe Daten ee Ergebnisse gt Wurzel ne ausgeben und w hlen MT berechnen 4 Quadrat i Daten m ___J ERFASSEN_DATEN speichern Datenbaustein DB Programmflu Datenflu Bild 2 3 Bildung von Bausteinen aus den Teilaufgaben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 5 Entwerfen eines SCL Programms 2 3 2 Auswahl und Zuordnung der m glichen Bausteinarten bersicht ZYKLUS ERFASSEN AUSWERTEN SORT Wurzel und QUADRAT 2 6 Die einzelnen Bausteine wurden nach folgenden Kriterien ausgew hlt Anwenderprogramme k nnen nur in einem OB angesto en werden Da die Me werte zyklisch erfa t werden sollen ist ein OB f r zyklischen Aufruf OB1 erforderlich Ein Teil der Bearbeitun
239. lle C 6 Syntax der Wertzuweisungen Fortsetzung Regel Syntaxdiagramm Operand gt Konstante a gt erweiterte Variable gt Ausdruck NOT Operand Erweiterte Variable gt einfache Variable Ho b Absolutvariable 2 f r CPU Speicherbereiche b Variable in DB gt Variable in lokaler Instanzl p FC Aufruf Konstante Konstante numerischer Wert Zeichenfolge Konstantenname Exponent N erweiterte Variable gt o DEZIMALZIFFERNFOLGE DEZIMALZIFFERNFOLGE Logischer Basisoperator SCL f r S7 300 400 Bausteine programmieren C 14 C79000 G7000 C522 01 Syntaktische Regeln Tabelle C 6 Syntax der Wertzuweisungen Fortsetzung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 C 15 Syntaktische Regeln C 6 Aufruf von Funktionen und Funktionsbausteinen Tabelle C 7 Syntax der Aufrufe Regel Syntaxdiagramm FB Funktionbaustein FB Aufruf SFB Systemfunktionsbaustein FB BEZEICHNUNG Globaler Instanzname el 7 DB FB E EE nune BezeiFNuNG Pair O BEZEICHNER Lokaler Instanzname Funktionsaufruf FC BEZEICHNUNG SFC 3 gt BEZEICHNUNG O FC Parameter BEZEICHNER e FC Funktion
240. llt werden soll Attributvergabe Sie vergeben Bausteinattribute nach der Bausteinbezeichnung und vor dem Vereinbarungsteil FUNCTION_BLOCK FB10 Vereinbarungsteil TITLE Miteco VERSION 2 1 f KNOW_HOW_PROTECT Anweisungsteil AUTHOR AUT 1 NAME B12 FAMILY ANALOG 15 m C true S7_blockview big Bild 8 6 Attributvergabe SCL f r S7 300 400 Bausteine programmieren 8 6 C79000 G7000 C522 01 Aufbau einer SCL Quelldatei 8 4 Vereinbarungsteil bersicht Aufbau Vereinbarungs bl cke Der Vereinbarungsteil dient zur Definition der lokalen und globalen Variablen Parameter Konstanten und Sprungmarken Labels Die lokalen Variablen Parameter Konstanten und Sprungmarken die nur innerhalb eines Codebausteins G ltigkeit haben sollen definieren Sie im Vereinbarungsteil des Codebausteins Die globalen Daten die von jedem Codebaustein aus ansprechbar sein sollen definieren Sie im Vereinbarungsteil von DB Im Vereinbarungsteil eines UDT legen Sie einen anwenderspezifischen Datentyp fest Ein Vereinbarungsteil gliedert sich in unterschiedliche Vereinbarungsbl cke die jeweils durch ein eigenes Schl sselwortpaar gekennzeichnet sind Jeder Block enth lt eine Vereinbarungsliste f r gleichartige Daten wie Konstanten Labels statische Daten tempor re Daten Ein Blocktyp darf nur einmal vorkommen und ist nach der Tabelle nicht in allen Baust
241. lt werden Das SCL Handbuch ist in folgende Themenbereiche gegliedert e Kapitel 1 liefert Ihnen allgemeine Informationen zum Programmieren mit SCL e In Kapitel 2 wird ein Entwurfsproze anhand eines Beispiels behandelt das Sie auch zum Ablauf bringen k nnen e Kapitel 3 6 zeigen Ihnen den Umgang mit der Entwicklungsumgebung von SCL Sie lernen Editor Compiler und Debugger von SCL kennen e Kapitel 7 19 bilden den Referenzteil der Ihnen genaue Informationen zur Funktionsweise der einzelnen SCL Anweisungen geben soll Im Anhang finden Sie e Die komplette Syntaxdarstellung von SCL e Ein Glossar in dem wichtige Begriffe erkl rt sind e Ein Stichwortverzeichnis das Ihnen hilft die Textstellen zu wichtigen Stichworten schnell zu finden Hinweise auf weitere Dokumentation sind mit Hilfe von Literaturnummern in Schr gstrichen angegeben Damit k nnen Sie dem Literaturverzeichnis am Ende des Handbuchs den genauen Titel der Dokumentation entnehmen Bei Fragen zur Nutzung der beschriebenen Software die Sie weder in der Papierdokumentation noch in der Online Hilfe beantwortet finden wenden Sie sich bitte an Ihre Siemens Ansprechpartner in den f r Sie zust ndigen Vertretungen und Gesch ftsstellen Die Adressen finden Sie im Anhang von 70 bzw 100 oder in Katalogen und in Compuserve go autforum Dar ber hinaus steht Ihnen unsere Hotline zur Verf gung Tel 49 911 895 7000 Fax 7001 Bei Fragen oder Anmerkunge
242. luter indizierter und strukturierter DB Zugriff SCL f r S7 300 400 Bausteine programmieren 12 8 C79000 G7000 C522 01 Vereinbarung globaler Daten 12 7 Absoluter Zugriff auf Datenbausteine Prinzip Zugriff Gr en Pr fix Der absolute Zugriff erfolgt wie bei den CPU Speicherbereichen ber eine Wertzuweisung an eine typgleiche Variable Nach der Angabe der DB Bezeich nung folgt das Schl sselwort D mit Angabe des Gr en Pr fix z B X f r BIT und der Byteadresse z B 13 1 STATUS_5 DB11 DX13 1 Adresse Gr en Pr fix DB Bezeichnung Typgleiche Variable Sie spezifizieren den Zugriff indem Sie die DB Bezeichnung zusammen mit dem Gr en Pr fix und der Adresse angeben siehe Bild 12 7 Absoluter DB Zugriff Operandenkennzeichen 4 gt DB Gr en I BEZEICHNUNG E AD Pr fix 5 Adresse Bild 12 7 Syntax Absoluter DB Zugriff Gibt die L nge des Speicherbereiches im Datenbaustein an der angesprochen werden soll z B ein Byte oder ein Wort Die Angabe des Gr en Pr fix ist optional wenn Sie ein Bit spezifizieren m chten Bild 12 8 zeigt die Syntax f r den Gr en Pr fix Gr en Pr fix Oi WJ Won D h Doppelwort Bild 12 8 Syntax Gr en Pr fix SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 12 9 Vereinbarung globaler Daten Adresse Beispiele 12 10 Bei d
243. meter Aktualparameter E_Par lt 3 Eingangszuweisung D_Par LAENGE Durchgangszuweisung Bild 16 6 Wertzuweisung in der Parameterliste Die Ausgangsparameter werden nicht beim Aufruf eines FB angegeben sondern nach dem Aufruf versorgt Die Syntax der FB Parameterangaben ist beim Aufruf globaler und lokaler Instanzen gleich FB Parameter Eingangs Zuweisung Durchgangs Zuweisung Bild 16 7 Syntax FB Parameter Beispiel Ein Aufruf mit je einer Zuweisung eines Eingangs und eines Durchgangs parameters k nnte z B wie folgt aussehen FB31 DB77 1 zai _Par 3 D_Par LAENGE Regeln Zur Parameterversorgung gelten folgende Regeln e Die Reihenfolge der Zuweisungen ist beliebig e Datentyp von Formal und Aktualparameter m ssen bereinstimmen e Die einzelnen Zuweisungen sind durch Komma getrennt e Ausgangszuweisungen sind in FB Aufrufen nicht m glich Der Wert eines vereinbarten Ausgangsparameters ist in den Instanzdaten gespeichert Dort ist er f r den Zugriff von allen FBs aus verf gbar Um ihn zu lesen m ssen Sie von einem FB aus einen Zugriff definieren siehe Kapitel 14 8 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 5 Aufruf von Funktionen und Funktionsbausteinen Ergebnis nach Nach dem Bausteindurchlauf demt Autrui e sind die bergebenen aktuellen Eingangsparameter unver ndert e sind die bergebenen aber ver nde
244. meter Datentyp Spezifikation BLOCK_FB Bezeichnung f r Datentyp BLOCK_FB Parameter Datentyp Spezifikation BLOCK_FC Bezeichnung f r Datentyp BLOCK_FC Parameter Datentyp Spezifikation BLOCK_SDB Bezeichnung f r Datentyp BLOCK_SDB Parameter Datentyp Spezifikation BOOL Elementarer Datentyp f r bin re Daten Bitdatentyp BY Einleitung der Schrittweite FOR Anweisung BYTE Elementarer Datentyp Bitdatentyp CASE Einleitung Kontrollanweisung zur Selektion CASE Anweisung CHAR Elementarer Datentyp Zeichentyp CONST Einleitung f r Definition von Konstanten Konstantenblock CONTINUE Steueranweisung f r FOR WHILE und CONTINUE Anweisung REPEAT Schleife COUNTER Datentyp f r Z hler nur verwendbar in Parameter Datentyp Spezifikation Parameterblock DATA_BLOCK Einleitung des Datenbausteins Datenbaustein DATE Elementarer Datentyp f r Datum Zeittyp DATE_AND_TIME Zusammengesetzter Datentyp f r Datum und DATE_AND_TIME Uhrzeit DINT Elementarer Datentyp f r Ganzzahl Integer Numerischer Datentyp doppelter Genauigkeit DIV Operator f r Division Arithmetischer Basisoperator einfache Multiplikation DO Einleitung des Anweisungsteils bei FOR An FOR Anweisung weisung WHILE Anweisung DT Elementarer Datentyp f r Datum und Uhrzeit DATE_AND_TIME DWORD Elementarer Datentyp Doppelwort Bitdatentyp ELSE Einleitung des Falls wenn keine Bedingung IF Anweisung CASE Anweisung erf llt ist ELSIF Einleitung der Alternativ Bedingung IF Anweisung EN Flag zur
245. mit STRING Variablen sollen anhand der nachstehenden Beispiele verdeutlicht werden FUNCTION_BLOCK FB3 VAR ANZEIGE_1 STRING 50 STRUKTUR1 STRUCT ANZEIGE_2 STRING 100 ANZEIGE_3 STRING 50 END_STRUCT gal D_VAR BEGIN Zuweisung einer Konstanten zu einer STRING Variable ANZEIGE_1 Fehler in Modul 1 Zuweisung einer Strukturkomponente zu einer STRING Variable ANZEIGE_1l STRUKTUR1 ANZEIGE_3 Zuweisung einer STRING Variable zu einer STRING Strukturkomponente If ANZEIGE_1 lt gt STRUKTUR ANZEIGE_3 THEN STRUKTUR ANZEIGE_3 ANZEIGE END_IF END_FUNCTION_BLOCK ne Beispiel 14 4 Wertzuweisungen f r STRING Variablen SCL f r S7 300 400 Bausteine programmieren 14 8 C79000 G7000 C522 01 Wertzuweisungen 14 6 Wertzuweisungen mit Variablen vom Typ DATE_AND_TIME DATE_AND_TIME Variable Zuweisung Beispiel Der Datentyp DATE_AND_TIME definiert einen Bereich mit 64 bit 8 byte f r die Angabe von Datum und Uhrzeit Jeder Variablen vom Datentyp DATE_AND_TIME kann eine andere typen gleiche Variable oder Konstante zugewiesen werden G ltige Zuweisungen sind dtvariable_l Datum_und_Zeitliteral dtvariable_l dtvariable_2 Die Wertzuweisungen mit DATE_AND_TIME Variablen sollen anhand der nachstehenden Beispiele verdeutlicht werden
246. mit der Liste der restlichen Autorisierungen auf dem Laufwerk angezeigt Schlie en Sie das Dialog feld wenn Sie keine weiteren Autorisierungen deinstallieren wollen Sie k nnen diese Diskette dann erneut zum Autorisieren benutzen Wenn Ihre Tritt auf Ihrer Festplatte ein Defekt auf bevor Sie die Berechtigung retten Festplatte defekt konnten wenden Sie sich bitte an Ihre zust ndige SIEMENS Vertretung ist SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 3 3 Installieren der SCL Software 3 2 Installieren Deinstallieren der SCL Software bersicht Vorbereitungen Installations programm starten Falls schon eine SCL Version installiert ist 3 4 SCL enth lt ein Setup Programm das die Installation automatisch durchf hrt Eingabeaufforderungen auf dem Bildschirm f hren Sie Schritt f r Schritt durch den gesamten Installationsvorgang Bevor Sie mit der Installation beginnen k nnen mu Windows 95 gestartet und das STEP 7 Basispaket geladen sein Gehen Sie so vor 1 Starten Sie unter Windows 95 den Dialog zur Installation von Software durch Doppelklick auf das Symbol Software in Systemsteuerung 2 Klicken Sie auf Installieren 3 Legen Sie den Datentr ger Diskette 1 oder die CD ROM ein und klicken Sie auf Weiter Windows 95 sucht nun selbst ndig nach dem Installationsprogramm SETUP EXE 4 Befolgen Sie Schritt f r Schritt die Anweisungen die Ihnen das I
247. mmieren 5 8 C79000 G7000 C522 01 Programmieren mit SCL 5 6 bertragen des erstellten Anwenderprogramms in das AS bersicht Voraussetzungen Url schen des CPU Speichers Laden in das Ziel system Bei der bersetzung einer SCL Quelle werden aus der Quelle die Bausteine erzeugt und im Beh lter Bausteine des S7 Programms gespeichert In SCL k nnen Sie danach nur diese Bausteine aus dem Programmierger t in die CPU laden Verwenden Sie den SIMATIC Manager wenn Sie weitere Bausteine des S7 Programms in das Automatisierungssytem bertragen m chten Um das Anwenderprogramm in das AS zu laden m ssen folgende Voraussetzungen erf llt sein e Zwischen dem Programmierger t und dem Automatisierungssystem besteht eine Verbindung e Die Bausteine die geladen werden sollen m ssen fehlerfrei bersetzt worden sein Mit der Funktion Url schen k nnen Sie online das gesamte Anwender programm in einer CPU l schen Beachten Sie da dabei au erdem die CPU zur ckgesetzt wird alle bestehenden Verbindungen zur CPU abgebrochen werden und sofern eine Memory Card gesteckt ist der Inhalt der Memory Card in den internen Ladespeicher kopiert wird Gehen Sie folgenderma en vor 1 W hlen Sie den Men befehl Zielsystem gt Betriebszustand und schalten Sie die CPU auf STOP 2 W hlen Sie den Men befehl Zielsystem gt Url schen 3 Best tigen Sie die Aktion im darauf erscheinenden Dialogfeld Das Laden der
248. n 1 Starten Sie unter Windows 95 den Dialog zu Installation von Software durch Doppelklick auf das Symbol Software in Systemsteuerung 2 Markieren Sie den STEP 7 Eintrag in der angezeigten Liste der installierten Software und bet tigen Sie die Schaltfl che zum Entfernen der Software 3 Falls Dialogfelder Freigegebene Datei entfernen erscheinen so klicken Sie im Zweifelsfall auf die Schaltfl che Nein Alle Sprachen der Benutzeroberfl che und alle Beispiele ben tigen ca 8 MB Speicherplatz Bei der Installation wird berpr ft ob eine Autorisierung auf der Festplatte vorhanden ist Wird keine Autorisierung erkannt so erscheint ein Hinweis da die Software nur mit Autorisierung benutzt werden kann Wenn Sie es w nschen k nnen Sie gleich die Autorisierung vornehmen oder aber die Installation fortsetzen und die Autorisierung zu einem sp teren Zeitpunkt nachholen Im erstgenannten Fall legen Sie nach Aufforderung die Autorisierungs diskette ein und quittieren Sie Hinweise zur Autorisierung finden Sie in Abschnitt 3 1 Wenn die Installation erfolgreich war wird dies durch eine entsprechende Meldung auf dem Bildschirm angezeigt Folgende Fehler f hren zum Abbruch der Installation e Wenn sofort nach dem Start von Setup ein Initialisierungsfehler auftritt so wurde h chstwahrscheinlich das Programm SETUP EXE nicht unter Windows 95 gestartet e Speicherplatz reicht nicht aus Sie ben tigen min
249. n Ein Symbol ist ein vom Anwender unter Ber ksichtigung bestimmter Syntax vorschriften definierter Name Dieser Name kann nach der Festlegung wof r er stehen soll z B Variable Datentyp Baustein bei der Programmierung und beim Bedienen und Beobachten verwendet werden Beispiel Operand E 5 0 Datentyp Bool Symbol Taster_Notaus Tabelle zur Zuordnung von Symbolen Name zu Adressen f r globale Daten und Bausteine Beispiele Notaus Symbol E 1 7 Adresse oder Regler Symbol SFB 24 Baustein Die obere Regelstufe der formalen SCL Sprachbeschreibung besteht aus den syntaktischen Regeln Bei ihrer Anwendung besteht Formatfreiheit d h z B Leerzeichen und Steuerzeichen d rfen erg nzt werden Eine Systemfunktion SFC ist eine im Betriebssystem der CPU integrierte Funktion die bei Bedarf im STEP 7 Anwenderprogramm aufgerufen werden kann Ein Systemfunktionsbaustein SFB ist ein im Betriebssystem der CPU integrierter Funktionsbaustein der bei Bedarf im STEP 7 Anwender programm aufgerufen werden kann System Datenbausteine sind Datenbereiche in der Zentralbaugruppe die Systemeinstellungen und Baugruppenparameter enthalten Die Systemdaten bausteine werden mit der STEP 7 Basissoftware erzeugt und ge ndert Der Systemspeicher ist auf der Zentralbaugruppe integriert und als RAM Speicher ausgef hrt Im Systemspeicher sind die Operandenbereiche z B Zeiten Z hler Merker sowie vom Betriebssystem intern ben
250. n neuwahl wird die Codierung f r die Adressierung des Feldelements f r die Ausgabe neu ermittelt Die relevanten Bits von auswahl werden ausgeblendet und in Integer gewandelt Je nach Schalterstellung von funktionswahl wird wurzel oder quadrat f r die Ausgabe bereitgestellt IF neuwahl lt gt altwahl THEN adresse WORD_TO_INT SHR IN auswahl N 12 AND 16 0007 END_IF altwahl neuwahl IF funktionswahl THEN ergebnis_aus ergebnispuffer adresse quadrat ELSE ergebnis_aus ergebnispuffer adresse wurzel END_IF messwert_aus messwerte adresse Me wertanzeige END_FUNCTION_BLOCK Bild 2 11 Anweisungsteil des Funktionsbausteins ERFASSEN SCL f r S7 300 400 Bausteine programmieren 2 16 C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 6 Erstellen des Funktionsbausteins AUSWERTEN Vereinbarungsteil Der Vereinbarungsteil dieses Bausteins besteht aus folgenden Teilen VON AUSWERTEN e Konstantendeklaration Zwischen CONST und END_CONST e Durchgangsparameter Zwischen VAR_IN_OUT und END_VAR e Ausgangsparameter Zwischen VAR_OUTPUT und END_VAR e Deklaration der tempor ren Variablen Zwischen VAR_TEMP und END_VAR FUNCTION_BLOCK AUSWERTEN P P P K E e e E E e e e e e e e e e e E e e e e e e e e e e e e e e e e e e e e e e e e e e e k e e e e e k k k k k k k k k k k k k k k k k k k k k k k k k Teil 1 Ringpuffer mit Me werten sortieren T
251. n Konstanten und Sprungmarken Nichtdruckbare Zeichen Beispiele In einem Character bzw Stringliteral k nnen Sie auch nichtdruckbare Zeichen aus dem vollst ndigen erweiterten ASCH Zeichensatz angeben Sie m ssen dazu die Ersatzdarstellung im Hexacode angeben Ein ASCIH Zeichen geben Sie durch hh an wobei hh stellvertretend f r den hexadezimal ausgedr ckten Wert des ASCI Zeichens steht Beispiel ZEICHEN_A 41 entspricht dem Zeichen A Blank 20 entspricht dem Zeichen Weitere Informationen ber Ersatz und Steuerzeichen finden Sie in Anhang A Die folgenden Beispiele veranschaulichen die Formulierung der Zeichen literale Characterliteral Zeichen S Stringliteral NAME SIEMENS Unterbrechung eines Stringliterals MELDUNG1 MOTOR gt lt Steuerung String in hexadezimaler Darstellung MELDUNG1 41 4E Zeichenfolge AN Beispiel 11 3 Zeichenliterale SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung von Konstanten und Sprungmarken 11 5 Schreibweisen f r Zeitangaben Schreibweise f r Zeittypen Datum 11 10 SCL bietet verschiedene Formate zum Eingeben von Zeit und Datumswerten Folgende Zeitangaben sind m glich Datum Zeitdauer Tageszeit Datum und Zeit Ein Datum wird durch den Pr fix DATE oder D eingeleitet siehe Bild 11 12 DATUM DA
252. n dem Sie den Namen und den Pfad des Duplikats angeben k nnen e Wenn Sie den Men befehl Datei Schlie en ausf hren und eine ge nderte SCL Quelle noch nicht gespeichert haben werden Sie gefragt ob Sie die nderungen speichern verwerfen oder den Befehl Schlie en abbrechen m chten Anstatt des Men befehls Datei Schlie en k nnen Sie auch das Symbol Schlie en in der Titelzeile anklicken Auch wenn Sie SCL ber den Men befehl Datei gt Beenden verlassen wollen und ge ffnete Quellen nicht in ihrem aktuellen Stand gespeichert sind erscheint f r jede Quelle ein Dialog ber den Sie die nderungen speichern oder verwerfen k nnen Die in Ihrer SCL Quelle befindlichen Bausteine Vereinbarungen und Anweisungen k nnen Sie jederzeit auf einem Drucker ausgeben Dazu m ssen Sie den Drucker ber die Windows Systemsteuerung installiert und eingerichtet haben Gehen Sie folgenderma en vor e Klicken Sie in der Funktionsleiste das Symbol Drucken an oder w hlen Sie den Men befehl Datei gt Drucken Es erscheint ein Dialogfeld in dem Sie verschiedene Druckoptionen wie z B den Druckbereich oder die Anzahl der Kopien ausw hlen k nnen Best tigen Sie mit OK um das Dokument an den Drucker zu senden ber den Men befehl Datei gt Seite einrichten k nnen Sie das Seitenformat Ihres Ausdrucks festlegen Kopf und Fu zeilen f r Ihre zu druckenden Dokumente k nnen Sie im SIMATIC Manager mit dem Men
253. n der CPU beobachten und kontrollieren Bevor Sie ein SCL Programm testen k nnen m ssen Sie folgende Schritte erfolgreich durchgef hrt haben 1 Das Programm m ssen Sie mit den bersetzungsoptionen Objectcode erstellen und Debug Info erstellen fehlerfrei bersetzen Die Einstellungen k nnen Sie mit dem Men befehl Extras Einstellungen im Register Compiler w hlen 2 Zwischen PG PC und CPU m ssen Sie eine Online Verbindung sicher stellen 3 Dar ber hinaus m ssen Sie das Programm in die CPU laden Das k nnen Sie ber den Men befehl Zielsystem Laden durchf hren Tabelle 6 1 zeigt die Namen und kurze Charakterisierungen der wesentlichen Testfunktionen die Sie in SCL aufrufen k nnen Tabelle 6 1 Die Testfunktionen im berblick Funktion Charakterisierung Kontinuierlich beobachten Namen und aktuelle Werte von Variablen S7 300 400 CPUs eines Beobachtungsbereichs ausgeben Haltepunkte aktiv nur S7 400 CPUs Haltepunkte setzen l schen und bearbeiten Test in Einzelschritten Variablen beobachten steuern Aktuelle Werte von globalen Daten beobachten festlegen Referenzdaten erzeugen bersicht ber das Anwenderprogramm anlegen Testfunktionen des STEP 7 Basispakets CPU Betriebszustand abfragen ndern Hinweis Ein Test bei laufendem Anlagenbetrieb kann bei Funktionsst rungen oder Programmfehlern schwere Sach und Personensch den verursachen Vergewissern Sie sich da
254. n haben die folgende Syntax Aktualparameter Ausdruck ZEITEN BEZEICHNUNG gt n O Z HLER Parametername des BEZEICHNUNG Eingangsparameters BAUSTEIN Formalparameter BEZEICHNUNG Bild 16 12 Syntax Eingangszuweisung Eingangszuweisung Aktualparameter In Eingangszuweisungen sind folgende Aktualparameter zuweisbar in Eingangs zuweisungen Re f g Tabelle 16 4 Aktualparameter in Eingangszuweisungen Aktualparameter Erl uterung Ausdruck Ein Ausdruck steht f r einen Wert und besteht aus Operan den und Operatoren Folgende Arten von Ausdr cken stehen zur Verf gung Arithmetischer logischer oder Vergleichs Ausdruck Konstante Erweiterte Variable ZEITEN Z HLER Sie legen eine bestimmte Zeit oder einen bestimmten Z hler Bezeichnung fest der bei der Bearbeitung eines Bausteins verwendet wer den soll Siehe auch Kapitel 17 BAUSTEIN Sie legen einen bestimmten Baustein fest der als Eingangs Bezeichnung parameter verwendet werden soll Die Bausteinart FB FC DB wird in der Deklaration des Eingangsparameters festge legt Bei der Parameterzuweisung geben Sie die Bausteina dresse des Bausteins an Diese kann sowohl die absolute als auch die symbolische sein Siehe auch Kapitel 9 Besonderheiten Beachten Sie da bei formalen FC Eingangsparametern mit nichtelementarem Datentyp FB Durchgangsparameter und FC Parameter als Aktualparameter nicht erlaub
255. n im Instanz Datenbaustein ERFASSEN_DATEN gespeichert da im aufrufenden FB ERFASSEN eine lokale Instanz f r den FB AUSWERTEN angelegt wurde Zuerst werden die Me werte im Ringpuffer sortiert und danach die Berech nungen durchgef hrt e Methode des Algorithmus zum Sortieren Hier wird die Methode des permanenten Tauschens von Werten zur Sortie rung des Me wertepuffers verwendet d h zwei aufeinanderfolgende Werte werden miteinander verglichen und solange getauscht bis die gew nschte Sortierreihenfolge erreicht ist Der verwendete Puffer ist der Durchgangs parameter sortierpuffer e Ansto der Berechnung Wenn die Sortierung abgeschlossen ist wird eine Schleife zur Berechnung durchlaufen in der die Funktionen QUADRAT zur Quadrierung und SORT zur Wurzelberechnung aufgerufen werden Ihre Ergebnisse werden in dem strukturierten Feld rechenpuffer gespeichert SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms Flu diagramm von AUSWERTEN Bild 2 15 stellt den Algorithmus in Form eines Flu diagrammes dar AUSWERTEN Funktionsbaustein Anfang der REPEAT Anweisung Anfang der FOR Anweisung Ende der FOR Anweisung sortierpuffer l 1 gt sortierpuffer nein tauschen FALSE I GRENZE I bedeutet index nein Be ja Die Werte von sortierpuffer l 1 und sortierpuffer tausch
256. n vorausgeschickt werden die in den n chsten Kapiteln vertieft werden Kapitel bersicht Im Kapitel finden Sie auf Seite 7 1 Hilfen f r die Sprachbeschreibung T T7 12 Der SCL Zeichensatz 7 3 Reservierte W rter 7 5 7 4 Bezeichner in SCL 7 7 7 5 Standardbezeichner 7 8 7 6 Zahlen 7 10 7 1 Datentypen 7 12 7 8 Variablen 7 9 Ausdr cke 7 10 Anweisungen 71 SCL Bausteine 7 12 Kommentare 7 20 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe 71 Hilfen f r die Sprachbeschreibung Sprachbeschrei bung von SCL Was ist ein Syntax diagramm Welche Arten von Bl cken gibt es 7 2 Basis f r die Sprachbeschreibung in den einzelnen Kapiteln sind Syntax diagramme Sie geben Ihnen einen guten Einblick in den syntaktischen d h grammatikalischen Aufbau von SCL Eine vollst ndige Zusammenstellung aller Diagramme mit den Sprachelementen finden Sie in Anhang B Das Syntaxdiagramm ist eine grafische Darstellung der Struktur der Sprache Die Struktur wird durch eine Folge von Regeln beschrieben Dabei kann eine Regel auf bereits eingef hrten Regeln aufbauen Regelname Sen Block 3 gt Block 1 Block 2 Block a gt Option Block 5 Iteration Alternative Bild 7 1 Syntaxdiagramm Das Syntaxdiagramm wird von links nach rechts gelesen Dabei sind die folgen den Regelstrukturen zu beachten
257. n zum vorliegenden Handbuch f llen Sie bitte den Fragebogen am Ende des Handbuchs aus und schicken Sie ihn an die dort angegebene Adresse Bitte tragen Sie dort auch Ihre pers nliche Bewertung des Handbuchs ein Um Ihnen den Einstieg in das Automatisierungssystem SIMATIC S7 zu erleichtern bieten wir entsprechende Kurse an Wenden Sie sich bitte an Ihr regionales Trainingscenter oder an das zentrale Trainingscenter in D 90327 N rnberg Tel 0911 895 3154 Der Benutzerteil dieses Handbuchs enth lt keine ausf hrlichen Anleitungen mit einzelnen Schrittfolgen sondern soll grunds tzliche Vorgehensweisen verdeutlichen Genauere Informationen zu den Dialogen der Software und deren Bearbeitung finden Sie jeweils in der Online Hilfe SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Inhaltsverzeichnis VOrWOHl inne Teil 1 Entwerfen 1 Produkt bersicht u 1 as ne aaa 1 1 1 1 Was Ist SEE E E E E ee era en E 1 2 1 2 Welche Vorteile bietet Ihnen SCL 2222nseneeeeeen nennen 1 3 1 3 Leistungsmerkmale der Entwicklungsumgebung 222202 0 1 5 2 Entwerfen eines SCL Programms z ensssannnn en nnn nun nn 2 1 2 1 berblick ne aa e en Se erg 2 2 2 2 Aufgabenstellung 2222222s nennen nennen nennen 2 3 L sung mit SCL Bausteinen 222neenseeene nennen nennen 2 3 1 Festlegen der Teilaufgaben 2 2222eseensneeneneen nenn 2 3 2 Auswahl und Zuordn
258. nbausteinen Syntax Bild 8 8 zeigt die Syntax des Anweisungsteils Er besteht aus einer Wieder holung von Einzelanweisungen wobei vor jeder Anweisung optional eine Sprungmarke siehe Kapitel 11 6 stehen kann die das Ziel einer Sprung anweisung ist Anweisungsteil gt i BEZEICHNER OH Anweisung fai Sprungmarke Bild 8 8 Syntax Anweisungsteil G ltige Anweisungen sind z B BEGIN ANFANGSWERT 0 ENDWERT 200 SPEICHERN ERGEBNIS SOLLWERT Was ist wichtig Bei der Formulierung der Anweisungen m ssen Sie darauf achten da e der Anweisungsteil optional mit dem Schl sselwort BEGIN beginnt e der Anweisungsteil mit dem Schl sselwort f r das Bausteinende ab schlie t e jede Anweisung mit einem Semikolon abgeschlossen wird und e alleim Anweisungsteil verwendeten Bezeichner vereinbart sind D Wir verwenden in diesem Handbuch den Terminus Anweisung f r alle Konstrukte die eine ausf hrbare Funktion vereinbaren SCL f r S7 300 400 Bausteine programmieren 8 10 C79000 G7000 C522 01 Aufbau einer SCL Quelldatei 8 6 Anweisung bersicht Die einzelnen Anweisungen bestehen aus e Wertzuweisungen die dazu dienen einer Variablen einen Wert das Ergeb nis eines Ausdrucks oder den Wert einer anderen Variablen zuzuweisen e Kontrollanweisungen die dazu dienen Anweisungen oder Gruppen von Anweisungen zu wiederholen oder innerha
259. nd der Baustein bezeichnung eingeleitet abgeschlossen wird er mit einem Standardbezeichner f r das Ende des Bausteins siehe Tabelle 8 1 Tabelle 8 1 Standardbezeichner f r Bausteinanfang und ende RGANIZATION_BLOCK ob_name DENE lt gt OB Organisationsbaustein END_ORGANIZATION_BLOCK FUNCTION fc_name funktionstyp i 7 FC Funktion END_FUNCTION UNCTION_BLOCK fb_name so T FB Funktionsbaustein END_FUNCTION_BLOCK DATA_BLOCK db_name DB Datenbaustein END_DATA_BLOCK TYPE name udt_name A UDT Anwenderdefinierter END_TYPE Datentyp In der Tabelle 8 1 steht xx_name f r die Bausteinbezeichnung nach der folgenden Syntax Baustein gt Schl sselwort Nummer m DB FB FC OB UDT BEZEICHNER H Symbol H Bild 8 3 Syntax Bausteinbezeichnung Weitere Informationen finden Sie auch in Kapitel 7 5 Beachten Sie auch da Sie einen Bezeichner oder ein Symbol in der Symboltabelle von STEP 7 definieren m ssen siehe 231 FUNCTION_BLOCK FB10 FUNCTION_BLOCK Reglerbaustein FUNCTION_BLOCK Regler B1 amp U2 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Aufbau einer SCL Quelldatei 8 3 Bausteinattribute Definition Bausteinattribute Attribute f r Bausteine k nnen sein e Bausteinattribute e Systemattribute f r Bausteine berschrift Version Bausteinschutz Autor Name und
260. nen m glich SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar Haltepunkt Instanz Instanz lokal Integer INT Instanz Daten baustein Instanz DB K Konstante symbolisch Konstante Literal Mit dieser Funktion kann die Zentralbaugruppe CPU an definierten Programmstellen in den Betriebszustand HALT versetzt werden Beim Erreichen eines Haltepunktes k nnen die Testfunktionen wie z B schrittweise Befehlsbearbeitung oder Variablen beobachten steuern durchgef hrt werden Mit Instanz wird der Aufruf eines Funktionbausteins bezeichnet Dabei ist ihm ein Instanz Datenbaustein oder eine Lokale Instanz zugeordnet Wird ein Funktionsbaustein im STEP 7 Anwenderprogramm n mal mit jeweils unter schiedlichen Parametern und Instanz Datenbausteinnamen aufgerufen so existieren n Instanzen FB13 DBl Pl FB13 DB3 P3 FB13 BB2 P23 s 7 4310 FB13 DBn Pn Eine lokale Instanz wird im Teil der statischen Variablen eines Funktions bausteins definiert Anstelle eines gesamten Instanz Datenbausteins wird nur ein lokaler Teil als Datenbereich f r den Funktionsbaustein verwendet der mit dem lokalen Instanznamen aufgerufen wird Integer INT ist einer der elementaren Datentypen Die Darstellung erfolgt als 16 bit Ganzzahl Ein Instanz Datenbaustein speichert die Formalparameter und statischen Lokaldaten von Funktionsbausteinen Ein Instanz Datenbaustein kann einem
261. nen werden in der gleichen Weise wie die Z hlfunktionen auf gerufen Die Funktionsbezeichnung kann berall anstelle eines Operanden in einem Ausdruck eingesetzt werden solange der Typ des Funktionsergebnisses mit dem des ersetzten Operanden kompatibel ist Tabelle 17 7 STEP 7 Zeitfunktionen Funktionsname Bedeutung S_PULSE Impuls Pulse S_PEXT Verl ngerter Impuls Pulse Extended S_ODT Einschaltverz gerung On Delay Time S_ODTS Speichernde Einschaltverz gerung Stored On Delay Time S_OFFDT Ausschaltverz gerung Off Delay Time Funktionwert Der Funktionwert R ckgabewerte der an die Aufrufstelle zur ckgegeben wird ist ein Zeitwert vom Datentyp SSTIME Informationen finden Sie in Kapitel 17 2 1 SCL f r S7 300 400 Bausteine programmieren 17 10 C79000 G7000 C522 01 Zeiten und Z hler Aufrufparameter Beispiel Die Parameter die versorgt werden m ssen sind bei der Beschreibung der jeweiligen Standardfunktion tabellarisch erl utert Die Namen mit den zuge h rigen Datentypen f r alle 5 Zeitfunktionen finden Sie in Tabelle 17 8 Generell sind folgende Arten von Parametern zu unterscheiden e Steuerparameter z B Setzen R cksetzen e Vorbesetzungswert f r die Startzeit e Statusausgang zeigt ob die Zeit noch l uft e Rest Zeitwert in bin rer Form Tabelle 17 8 _Aufrufparameter Parameter Datentyp Beschreibung T_NO TIMER Kennummer der Zeit Bereich ist
262. ner Zeile eines SCL Bausteins oder wird durch spezielle Kennungen auf mehrere Zeilen aufgeteilt Zur Unterbrechung eines Strings dient die Kennung gt zur Fortsetzung in einer Folgezeile dient die Kennung lt TEXT STRING 20 Der FB gt Vorabversion S lt konvertiert Der Raum zwischen der Unterbrechungs und der Fortsetzungskennung darf sich auch auf mehrere Zeilen erstrecken und neben Leerzeichen lediglich Kommentar enthalten Ein Stringliteral d rfen Sie auf diese Weise mehrmals unterbrechen und fortsetzen siehe auch Bild 11 10 Stringunterbrechun Leerzeichen blank g g Zeilenumbruch linefeed Wagenr cklauf carriage return Seitenumbruch formfeed page Formatierungs Porizontaler Tabulator tabulator zeichen i z I Kommentar Bild 11 10 Syntax Stringunterbrechung Die Zeichen eines Character oder Stringliterals d rfen dem vollst ndigen erweiterten ASCI Zeichensatz entstammen Spezielle Formatierungszeichen und nicht direkt darstellbare Zeichen und m ssen Sie mit Hilfe des Flucht symbols eingeben Zeichen druckbares N i A Fluchtsymbol Zeichen T Ersatzzeichen oder Steuerzeichen P oder L oder R oder T Hexadezimal Hexadezimal ziffer ziffer Bild 11 11 Syntax Zeichen Ersatzdarstellung im Hexacode SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung vo
263. ng OB Typen Programmierung strukturiert Programmsprung Programmverzweigung Q Quelldatei Aufbau 8 2 Bausteinreihenfol ge 8 2 R Referenzdaten erzeugen 6 9 Regelstrukturen 7 2 A 2 Reihenfolge von Bausteinen 8 2 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Stichwortverzeichnis REPEAT Anweisung 15 11 Reservierte W rter RETURN Anweisung 15 16 R ck bersetzen AWL SCL Baustein 1 4 R ckgabewert 16 13 S S_CD Siehe Abw rtsz hlen S_CU Siehe Aufw rtsz hlen S_CUD Siehe Aufw rts Abw rtsz hlen S_ODT Siehe Zeit als Einschaltverz gerung starten S_ODTS Siehe Zeit als speichernde Einschalt verz gerung starten S_OFFDT Siehe Zeit als Ausschaltverz gerung starten S_PEXT Siehe Zeit als verl ngerten Impuls starten S_PULSE Siehe Zeit als Impuls starten S5 TIME 17 15 Zeitbasis Zeitwert Schleifen Schleifenbearbeitung Schl sselw rte A 9 Schreibweise 11 2 Datum Literal f r Zeitangaben Zeitt pen 11 10 numerische Literale 11 4 Tageszeit Zeitdauer SCL Bezeichner Erlernbarkeit 1 4 Erweiterung KOP AWL 1 2 Fehler w hrend der Installation 3 5 Installation 3 4 N amensvergabe 7 7 a Structured Control Language 1 2 SCL Baustein Aufbau 7 18 AWL r ck bersetzen SCL Bedienoberfl che 4 3 4 1 Funktionen SCL Programm bersetzen SCL Quelldatei Aufbau SCL f r S7 300 40
264. ng ansto en Teil 3 Codierung auswerten und Ausgabe vorbereiten En En En SE en Sn Sn 2 2 5 5 2 DE 2 5 5 5 5 5 2 5 25 2 5 25 2 5 2 5 2 5 2 5 05 505 5 2 2 2 55 2 5 5 5 2 2 5 5 2 Bild 2 7 Bausteinkopf des Funktionsbausteins ERFASSEN Tabelle 2 4 Statische Variablen von ERFASSEN Statische Name Datentyp De Vorbe Beschreibung Variablen klara setzung tionstyp messwerte ARRAY VAR 8 0 Ringpuffer f r Me werte OF INT ergebnis ARRAY VAR _ Feld f r Strukturen mit den puffer OF STRUCT Komponenten wurzel und quadrat vom Typ INT zeiger INT VAR 0 Index f r Ringpuffer dort Eintrag des n chsten Me werts altwert BOOL VAR FALSE Vorg ngerwert f r Me wert bernahme mit neuwert altsort BOOL VAR FALSE Vorg ngerwert f r Sortieren mit neusort altwahl BOOL VAR FALSE Vorg ngerwert f r bernahme der Codierung mit neuwahl adresse INT VAR 0 Adresse f r Me wert oder Ergebnisausgabe aus AUSWERTEN VAR Lokale Instanz f r den FB werte_in FB 20 AUSWERTEN stanz SCL f r S7 300 400 Bausteine programmieren 2 12 C79000 G7000 C522 01 Entwerfen eines SCL Programms Beachten Sie die Vorbesetzungswerte die bei der Initialisierung des Bausteins nach dem Laden in die CPU in die Variablen eingetragen werden Im Vereinba rungsblock VAR END_VAR wird auch di
265. ngezeigt d h keine der Codierung auf 000 ein und bernehmen Sie diese Anzeigen leuchtet mit dem Codierschalter E0 7 so da Sie sp ter die Werteingabe beobachten k nnen 5b Schalten Sie den Eingabeschalter Eingang 0 0 Am Ausgang wird der Me wert 3 Bin rwert 11 E0 0 um Dadurch wird der im 4 Testschritt angezeigt eingestellte Wert eingelesen 6 Sto en Sie Sortieren und Berechnen an indem Sie Am Ausgang erscheint wieder 0 da durch den den Sortierschalter EO 1 umschalten Sortiervorgang der Me wert weiter nach oben im Feld verschoben wurde 7 Me wert nach der Sortierung anzeigen Stellen Sie Am Ausgang wird nun wieder der Me wert 11 die Codierung 110 ein E0 6 1 E0 5 1 E0 4 angezeigt da er der zweith chste Wert im Feld ist 0 von EBO entspricht Bit 14 Bit 13 Bit12 von EWO und bernehmen Sie diese durch Umschalten des Codierschalters 8a Die zugeh rigen Ergebnisse anzeigen Durch Der Ausgangswert 9 bzw Bin rwert 1001 wird Umschalten des Ausgabeschalters E0 3 wird das angezeigt Quadrat zum Me wert aus dem 7 Testschritt angezeigt 8b Durch Umschalten des Funktionsschalters E0 2 Der Ausgangswert 2 bzw Bin rwert 10 wird ange erhalten Sie auch die Wurzel zeigt SCL f r S7 300 400 Bausteine programmieren 2 22 C79000 G7000 0522 01 Entwerfen eines SCL Programms Zusatztest Die Tabellen 2 6 und 2 7 erl utern die Schalter an der Eingabebaugruppe
266. nkette Einige g ltige STRING Typen sind STRING 10 STRING 3 4 STRING 3 4x5 STRING max Wertebereich Default A 254 Zeichen In einer Zeichenkette sind alle Zeichen des ASCII Codes zugelassen In Kapitel 11 ist beschrieben wie Steuerzeichen und nichtdruckbare Zeichen be handelt werden Hinweis Bei R ckgabewerten einer FC sowie bei Ausgangs und Durchgangsparame tern kann die Standardl nge des Datentyps STRING von 254 Zeichen auf eine beliebige Anzahl Zeichen reduziert werden um die Ressourcen Ihrer CPU bes ser zu nutzen W hlen Sie den Men befehl Einstellungen im Men Extras und im folgenden Dialogfeld das Register Compiler Tragen Sie dann bei der Option Maximale Stringl nge die gew nschte Anzahl von Zeichen ein SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen 9 3 3 Datentyp ARRAY bersicht Der Datentyp ARRAY umfa t eine festgelegte Anzahl von Komponenten eines einzigen Datentyps Im Syntaxdiagramm 9 3 f r ARRAYs wird dieser Datentyp nach dem reservierten Wort OF genauer spezifiziert SCL unterscheidet e den eindimensionale ARRAY Typ Liste von Datenelementen die in aufsteigender Reihenfolge angeordnet sind e den zweidimensionalen ARRAY Typ Tabelle von Daten die aus Zeilen und Spalten besteht Die erste Dimension bezieht sich auf die Zeilennummer die zweite auf die Spaltennummer e den h herdimensionalen ARRAY Typ Erweiterung des zw
267. nleitung der Kontrollanweisung zur REPEAT Anweisung Schleifenbearbeitung RETURN Steueranweisung zur R ckkehr von RETURN Anweisung Unterprogramm SSTIME Elementarer Datentyp f r Zeitangaben Zeittyp spezielles S5 Format STRING Datentyp f r Zeichenkette STRING Datentyp Spezifikation STRUCT Einleitung der Spezifikation einer Struktur STRUCT Datentyp Spezifikation danach folgt Liste der Komponenten THEN Einleitung der Folgeaktionen wenn Bedingung IF Anweisung erf llt TIME Elementarer Datentyp f r Zeitangaben Zeittyp TIMER Datentyp f r Zeitglied nur verwendbar in Parameter Datentyp Spezifikation Parameterblock TIME_OF_DAY Elementarer Datentyp f r Tageszeit Zeittyp TO Einleitung des Endwerts FOR Anweisung TOD Elementarer Datentyp f r Tageszeit Zeittyp TRUE Vordefinierte Boolesche Konstante Logische Bedingung erf llt Wert ungleich 0 TYPE Einleitung des UDT Anwenderdefinierter Datentyp VAR Einleitung eines Deklarationsblocks statischer Variablenblock VAR_TEMP Einleitung eines Deklarationsblocks tempor rer Variablenblock UNTIL Einleitung der Abbruchbedingung f r RE REPEAT Anweisung PEAT Anweisung VAR_INPUT Einleitung eines Deklarationsblocks Parameterblock VAR_IN_OUT Einleitung eines Deklarationsblocks Parameterblock VAR_OUTPUT Einleitung eines Deklarationsblocks Parameterblock WHILE Einleitung der Kontrollanweisung zur WHILE Anweisung Schleifenbearbeitung WORD Elementarer Datentyp Wort Bitdatentyp VOID Kein R ckgab
268. nn nenn nennen 15 1 bersicht een ee 15 2 IF Anweisung e22 4e en 2er nee an re rk 15 3 CASE Anweisung 22nuneannnne nennen nn nennen nn nn 15 4 FOR Anweisung 2 sss see neeeenn nenn nenne nennen nenn 15 5 WHILE Anweisung oces sowas cetaa rania an a nennen nennen 15 6 REPEAT Anweisung 15 7 CONTINUE Anweisung 22222220 se neneennne een nn 15 8 EXIT Anweisung 2 22 222 seen nennen ernennen nennen nenn 15 9 GOTO Anweisung 22neneanenne nennen nennen nn nn nenn 15 10 RETURN Anweisung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Inhaltsverzeichnis 16 Aufruf von Funktionen und Funktionsbausteinen srreneneenenn 16 1 Aufruf und Parameter bergabe 2 22 22 2 nee 16 2 Aufruf von Funktionsbausteinen FB oder SFB 16 2 1 FB Parameter 2222222sneeneeennenee nennen een nennen 16 2 2 Eingangszuweisung FB 2222202 n seen een nen 16 2 3 Durchgangszuweisung FB 222e22s nennen een nennen nen 16 2 4 Beispiel f r den Aufruf einer globalen Instanz 22er2 0 16 2 5 Beispiel f r den Aufruf einer lokalen Instanz zee2snee nn 16 3 Aufruf von Funktionen 2222 seeenenn een ee nennen en nn 16 3 1 FC Parameter 22 neeaseeeenennannn nennen 16 3 2 Eingangszuweisung FC 222neseanene nennen nennen 16 3 3 Ausgangs Durchgangszuweisung FC 16 3 4 Beispiel f r einen Funktionsaufruf
269. nstallationsprogramm anzeigt Das Programm f hrt Sie schrittweise durch den Installationsproze Sie k nnen jeweils zum n chsten oder vorherigen Schritt weiterschalten Wenn das Installationsprogramm feststellt da sich bereits eine SCL Installation auf dem Erstellsystem befindet wird eine entsprechende Meldung angezeigt und Sie haben folgende Wahlm glichkeiten e Installation abbrechen um danach die alte SCL Version unter Windows 95 zu deinstallieren und anschlie end die Installation erneut zu starten oder e Installation fortsetzen und damit die alte Version durch die neue Version berschreiben Sie sollten vor einer Installation auf jeden Fall eine eventuell vorhandene ltere Version deinstallieren Das einfache berschreiben einer lteren Version hat den Nachteil da bei einem anschlie enden Deinstallieren eventuell noch vorhandene Teile aus einer lteren Installation nicht entfernt werden W hrend des Installationsvorgangs werden Ihnen in Dialogfeldern Fragen angezeigt oder Optionen zur Auswahl angeboten Lesen Sie bitte die folgenden Hinweise um die Dialoge schneller und leichter beantworten zu k nnen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Installieren der SCL Software Deinstallieren Zum Installations umfang Zur Autorisierung Zum Abschlu der Installation Fehler w hrend der Installation Benutzen Sie das unter Windows 95 bliche Verfahren zur Deinstallatio
270. ntanen Schleifendurchlaufes einer Wiederholungsanweisung FOR WHILE oder REPEAT Anweisung und das Wiederaufsetzen innerhalb der Schleife CONTINUE Anweisung Bild 15 8 Syntax CONTINUE Anweisung In einer WHILE Schleife entscheidet die Anfangsbedingung und bei einer REPEAT Schleife die Endbedingung ob eine Anweisungsfolge wiederholt wird In einer FOR Anweisung wird direkt nach einer CONTINUE Anweisung die Laufvariable um die angegebene Schrittweite erh ht Beispiel Beispiel 15 6 veranschaulicht den Gebrauch der CONTINUE Anweisung FUNCTION_BLOCK_CONTINUE VAR INDEX INT FELD ARRAY 1 100 OF INT END_VAR BEGIN INDEX 0 WHILE INDEX lt 100 DO INDEX INDEX 1 Wenn FELD INDEX gleich INDEX ist dann wird FELD INDEX nicht ver ndert IF FELD INDEX INDEX THEN CONTINUE END_IF FELD INDEX 0 Weitere Anweisungen Lea END_WHILE END_FUNCTION_BLOCK Beispiel 15 6 CONTINUE Anweisung SCL f r S7 300 400 Bausteine programmieren 15 12 C79000 G7000 C522 01 Kontrollanweisungen 15 8 EXIT Anweisung Prinzip Eine EXIT Anweisung dient zum Verlassen einer Schleife FOR WHILE oder REPEAT Schleife an beliebiger Stelle und unabh ngig vom Erf lltsein der Abbruchbedingung EXIT Anweisung EXIT Bild 15 9 Syntax EXIT Anweisung Diese Anweisung bewirkt das sofortige Verlassen derjenigen Wiederholungs an
271. objekt f r Ihr Anwenderprogramm geben Sie ber die Tastatur in das Arbeitsfenster ein Sie haben dabei die M glichkeit mehrere Fenster mit unterschiedlichen Quellobjekten zu ffnen Die Anordnung der Fenster k nnen Sie ber das Men Fenster steuern Al SCL S7 Bausteine programmieren proj1 quelle1 Ele Datei Bearbeiten Einf gen Zielsystem Test Ansicht Extras Fenster Hilfe osle e AA see ce K elele a x FUNCTION_BLOCK FB11 VAR LSINT Feld ARRAY 1 10 1 20 OF REAL REGLER ARRAY 1 3 1 4 OF INT 54 736 83 77 1289 10362 385 2 60 37 7 103 END_VAR BEGIN v Dr cken Sie F1 um Hilfe zu erhalten Einf gen 0 0 offline 4 Bild 4 3 SCL Editierfenster Markieren von Text In SCL k nnen Sie Text markieren indem Sie die Einf gemarke am Anfang des zu markierenden Bereichs positionieren und die linke Maustaste gedr ckt halten w hrend Sie die Einf gemarke ber den gew nschten Bereich ziehen Au erdem k nnen Sie e den gesamten Text einer Quelle markieren indem Sie den Men befehl Bearbeiten gt Alles Markieren ausw hlen e ein Wort markieren indem Sie es doppelt anklicken oder e eine ganze Zeile markieren indem Sie sie dreifach anklicken Suchen und Mit dem Men befehl Bearbeiten gt Suchen Ersetzen wird ein Dialogfeld Ersetzen ge ffnet ber das Sie eine Zeichenkette su
272. ogrammieren C79000 G7000 C522 01 Vereinbarung globaler Daten Gr en Pr fix Adresse Beispiele Durch Angabe des Gr en Pr fix spezifizieren Sie die Gr e bzw den Typ des Speicherbereichs der aus der Peripherie gelesen werden soll z B ein Byte oder ein Wort Die Angabe des Gr en Pr fix ist optional wenn Sie ein Bit spezifizieren Bild 12 4 zeigt die Syntax Gr en Pr fix Be x Bit B Byte I gt WwW Wort D Doppelwort Bild 12 4 Syntax Gr en Pr fix Bei der Angabe einer Adresse geben Sie je nachdem welchen Gr en Pr fix Sie benutzt haben eine absolute Adresse an die auf ein Bit Byte Wort oder Doppelwort zeigt Nur wenn Sie Bit spezifiziert haben k nnen Sie eine zus tzliche Bitadresse angeben siehe Bild 12 5 Die erste Nummer entspricht der Byteadresse und die zweite der Bitadresse Adresse I Nummer wl nur bei Bitadresse Bild 12 5 Syntax Adresse Einige Beispiele f r den absoluten Zugriff STATUSBYTE EB10 STATUS_3 El 1l Messwert EW20 Beispiel 12 1 Absoluter Zugriff SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 12 5 Vereinbarung globaler Daten 12 4 Symbolischer Zugriff auf CPU Speicherbereiche Prinzip Zugriff Erstellen der Symboltabelle Beispiele 12 6 Bei der symbolischen Programmierung verwenden Sie anstelle des absoluten Zugriffs mit Operandenkenn
273. oll ber ein Eingabe byte erfolgen Ein Me wert der ber die 8 Eingabeschalter eingestellt wird soll genau dann in das Me wertefeld im Speicher bernommen werden wenn am Eingabeschalter eine Flanke erkannt wird siehe auch Bild 2 1 Das Me wertefeld soll als Ringpuffer mit maximal 8 Eintr gen organisiert sein Wenn am Sortierschalter eine Flanke erkannt wird so sind die im Me wert feld gespeicherten Werte aufsteigend zu sortieren Danach sollen f r jeden Wert Berechnungen von Wurzel und Quadrat durchgef hrt werden Daten eingeben x Flankenauswertung Eingabeschalter Me wert Sortierschalter Wurzel Quadrat Berech nungen Me werte erfassen Me werte sortieren Ergebnisse berechnen Bild 2 1 Erfassen und Verarbeiten der Me werte SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 3 Entwerfen eines SCL Programms Einstellbare Da immer nur ein Wert angezeigt werden kann soll es folgende Auswahl Ausgabe m glichkeiten geben e Auswahl eines Elements innerhalb einer Liste e Auswahl zwischen Me wert Wurzel und Quadrat Die Auswahl eines Elements innerhalb einer Liste soll so realisiert werden da ein Listenelement durch folgende Einstellung ber Schalter adressiert wird e Mit drei Schaltern wird eine Codierung eingestellt die bernommen wird wenn am vierten Schalter dem Codierschalter eine Flanke erkannt wird Daraus wird die Adresse berechnet mit de
274. ollen Mit einer Auswahlanweisung haben Sie die M glichkeit den Programm flu in 2 bis n alternative Anweisungsfolgen zu verzweigen Tabelle 15 1 Arten von Verzweigungen Verzweigungs Funktion art IF Anweisung Mit der IF Anweisung k nnen Sie den Programmflu in Abh ngigkeit von einer Bedingung die entweder TRUE oder FALSE ist in eine von zwei Alternativen verzweigen CASE Mit einer CASE Anweisung k nnen Sie den Programmflu im Anweisung Sinne einer 1 n Verzweigung steuern indem Sie eine Variable einen Wert aus n m glichen annehmen lassen Wiederholungs Die Schleifenbearbeitung k nnen Sie mit Hilfe von Wiederholungs anweisungen anweisungen steuern Eine Wiederholungsanweisung gibt an welche Teile Ihres Programms in Abh ngigkeit von bestimmten Bedingungen wiederholt werden sollen Tabelle 15 2 Arten von Anweisungen zur Schleifenbearbeitung Verzweigungs Funktion art FOR dient zur Wiederholung einer Folge von Anweisungen solange die Anweisung Laufvariable innerhalb des angegebenen Wertebereichs liegt WHILE dient zur Wiederholung einer Folge von Anweisungen solange Anweisung eine Durchf hrungsbedingung erf llt ist REPEAT dient zur Wiederholung einer Folge von Anweisungen bis eine Anweisung Abbruchbedingung erf llt ist Sprung Ein Programmsprung bewirkt den sofortigen Sprung zu einer angegebenen anweisungen Sprungmarke un
275. ollen anhand zweier Beispiele erl utert werden Der Zugriff auf den Ausgangsparameter erfolgt durch ERGEBNIS DB10 CONTROL Sie k nnen den Ausgangsparameter aber auch bei einem anderen FB Aufruf direkt zur Versorgung eines FB17 DB12 EIN_1 Beispiel 16 3 Ergebnis FB SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Eingangsparameters heranziehen DB10 CONTROL Aufruf mit Instanz Datenbaustein 16 11 Aufruf von Funktionen und Funktionsbausteinen 16 2 5 Beispiel f r den Aufruf einer lokalen Instanz Prinzip Aufruf Ausgangs parameter lesen 16 12 Ein Funktionsbaustein mit einer einfachen FOR Schleife k nnte wie in Beispiel 16 1 programmiert sein wobei angenommen wird da in der Symboltabelle f r den FB17 das Symbol TEST vereinbart ist Diesen FB k nnen Sie unter der Voraussetzung da VARIABLEI im aufrufen den Baustein als REAL Variable deklariert ist so aufrufen Aufruf lokale Instanz TEST_L ENDWERT 10 IOl VARIABLI EJ H lt Beispiel 16 4 Beispiel FB Aufruf als lokale Instanz Dabei mu TEST_L in der Variablenvereinbarung wie folgt deklariert sein VAR TEST_L TEST END_VAR Der Ausgangsparameter CONTROL kann wie folgt gelesen werden Der Zugriff auf den Ausgangsparameter erfolgt durch ERGEBNIS TEST_L CONTROL Beispiel 16 5 Ergebnis FB Aufruf
276. onsbausteinen k nnen Sie ber den zugeordneten Insztanz DB zugreifen siehe Abschnitt 14 8 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 10 11 Vereinbarung lokaler Variablen und Bausteinparameter 10 8 Flags OK Flag Beschreibung Vereinbarung Beispiel 10 12 Das OK Flag dient dazu die korrekte oder inkorrekte Ausf hrung eines Bausteins zu vermerken Es ist eine globale Variable vom Typ BOOL mit dem Schl sselwort OK Tritt w hrend der Ausf hrung einer Bausteinanweisung ein Fehler auf z B ein berlauf bei einer Multiplikation wird das OK Flag auf FALSE gesetzt Beim Verlassen des Bausteins wird der Wert des OK Flags in den implizit definierten Ausgangsparameter ENO Kapitel 16 4 gespeichert und kann so vom aufrufen den Baustein ausgewertet werden Zu Beginn eines Bausteindurchlaufes hat das OK Flag den Wert TRUE Es kann an beliebiger Stelle im Baustein durch SCL Anweisungen entweder abgefragt oder auf TRUE FALSE gesetzt werden Das OK Flag ist eine systemvereinbarte Variable Es ist keine Vereinbarung erforderlich Sie m ssen aber die Compileroption OK Flag vor dem ber setzen w hlen wenn Sie das OK Flag in Ihrem Awenderprogramm verwenden m chten Das Beispiel 10 7 verdeutlicht die Anwendung des OK Flags OK Flag auf TRUE setzen damit berpr ft werden kann ob die folgende Aktion korrekt abl uft OK TRUE SUM SUM
277. or re Daten geh ren lokal zu einem Codebaustein und belegen keinen statischen Speicherbereich da sie im Stack der CPU abgelegt werden Ihr Wert bleibt nur w hrend eines Bausteinablaufs erhalten Mit Hilfe eines Datentyps wird festgelegt wie der Wert einer Variablen oder Konstanten im Anwenderprogramm verwendet werden soll Bei SCL stehen dem Anwender drei Arten von Datentypen zur Verf gung e Elementare Datentypen Datentyp elementar e Zusammengesetzte Datentypen Datentyp zusammengesetzt e anwenderdefinierte Datentypen UDT Anwenderdefinierte Datentypen UDT werden vom Anwender mit der Datentypdeklaration geschaffen Sie haben einen eigenen Namen und sind mehrfach verwendbar So kann ein anwenderdefinierter Datentyp zur Erzeugung mehrerer Datenbausteine mit der gleichen Struktur z B Regler genutzt werden Mit der Datentypdeklaration kann der Anwender anwenderdefinierte Datentypen deklarieren Elementare Datentypen sind vordefinierte Datentypen gem IEC 1131 3 Beispiele Datentyp BOOL definiert eine bin re Variable Bit Datentyp INT definiert eine 16 Bit Festpunkt Variable Man unterscheidet zwischen Strukturen und Feldern Strukturen sind aus verschiedenen anderen Datentypen z B elementaren Datentypen zusammengesetzt Felder bestehen aus mehreren gleichartigen Elementen eines Datentyps Auch die Datentypen STRING und DATE_AND_TIME sind zusammengesetzte Datentypen Der Dek
278. p definiert sind e POINTER Parameter Grunds tzlich gilt hier auch die erste Aussage Bei Durchgangsparametern von einem nichtelementaren Datentyp sind als Aktualparameter nicht erlaubt FB Eingangsparameter FC Eingangsparameter SCL f r S7 300 400 Bausteine programmieren 16 18 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 3 4 Beispiel f r einen Funktionsaufruf Prinzip Eine Funktion ABSTAND zur Berechnung des Abstandes zweier Punkte X1 Y1 und X2 Y2 in der Ebene bei Verwendung kartesischer Koordinaten k nnte folgenderma en aussehen In den Beispielen ist immer angenommen da in einer Symboltabelle f r den FC37 das Symbol ABSTAND vereinbart ist FUNCTION ABSTAND REAL VAR_INPUT X1 REAL X2 REAL Yl REAL Y2 REAL END_VAR VAR_OUTPUT Q2 REAL END_VAR BEGIN ABSTAND X2 X1 2 SORT 2AL A2 Q2 X1 X2 Y1 Y2 END_FUNCTION Beispiel 16 6 Abstandsberechnung Zur weiteren Verwendung eines Funktionswertes stehen Ihnen unter anderem folgende M glichkeiten offen in einer Wertzuweisung z B LAENGE ABSTAND X1 3 Q2 Quersumme Y1 2 in einem arithmetischen oder logischen Ausdruck z B RADIUS ABSTAND Q2 Quersumme X1 3 Y1 2 x2 8 9 Y2 7 4 in der Parameterversorgung eines Bausteines der aufgerufen wird z B YL FB32 DISTANZ ABSTAND X1 3 Y2 7 4 Q
279. pezifikation Elementarer Ge Datentyp DATE_AND_TIME STRING Datentyp Spezifikation iik ARRAY Datentyp Spezifikation STRUCT Datentyp Spezifikation UDT BEZEICHNUNG Parameter Datentyp Spezifikation LENU SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 C 7 Syntaktische Regeln C 3 Datentypen in SCL Tabelle C 4 Syntax der Datentypen im Vereinbarungsteil Regel Syntaxdiagramm Elementarer Datentyp Bitdaten typ Zeichentyp numerischer Datentyp m Zeittyp au w Q O Bitdatentyp BooL j Bit Po wen Doppelwort W lt J m Zeichentyp gt CHAR gt STRING Datentyp Spezifikation O Az l gt max Stringl nge Default 254 Numerischer Datentyp RT i nteger gt DINT Integer doppelte Genauigkeit N REAL Realzahl SCL f r S7 300 400 Bausteine programmieren C 8 C79000 G7000 C0522 01 Syntaktische Regeln Tabelle C 4 Syntax der Datentypen im Vereinbarungsteil Fortsetzung Regel Syntaxdiagramm Zeittyp O0 Bau one TIME jJ Zeit TIME_OF_DAY Tageszeit gt TOD gt DATE Datum siehe auch Kapitel B 1 1 DATE_AND_TIME DT DATE_AND_TIME Datumsangabe H Tageszeitangabe ARRAY Datentyp Indexspez
280. puffer index wurzel REAL_TO_INT ergebnr rechenpuffer index quadrat QUADRAT sortierpuffer index END_FOR END_FUNCTION_BLOCK Bild 2 16 Anweisungsteil des Funktionsbausteins AUSWERTEN SCL f r S7 300 400 Bausteine programmieren 2 20 C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 7 Erstellen der Funktion QUADRAT Entwurf Zuerst wird gepr ft ob der Eingabewert die Grenze berschreitet bei der das Anweisungsteil Ergebnis ber den Zahlenbereich f r Integer hinaus geht Ist dies der Fall wird der Maximalwert f r Integer eingetragen Ansonsten wird die Quadrierung durchgef hrt Das Ergebnis wird als Funktionswert bergeben FUNCTION QUADRAT INT FERIEN Diese Funktion liefert als Funktionswert das Quadrat des Eingangswertes oder bei berlauf den maximalen Wert der mit Integer darstellbar ist KERLE LEERE DEE ER TERIREBRERERERDR USER DEE DEDEREEBEER EEE RER DES ENDE RN VAR_INPUT wert 5 INT END_VAR BEGIN IF wert lt 181 THEN QUADRAT wert wert Berechnung des Funktionswerts ELSE QUADRAT 32_767 bei berlauf Maximalwert setzen END_IF END_FUNCTION Bild 2 17 Funktion OUADRAT SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 21 Entwerfen eines SCL Programms 2 8 Voraussetzungen Testschritte Testdaten F r den Test ben tigen Sie eine Eingabebaugruppe mit der Adresse 0 und eine Ausgabebaugruppe mit
281. r ckten Wert des ASCH Zeichens steht Zur Unterbrechung einer Zeichenkette f r Kommentare die nicht ausgedruckt oder angezeigt werden sollen stehen Ihnen in SCL die Zeichen gt und lt f r eine Stringunterbrechung zur Verf gung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 7 11 Allgemeine SCL Grundbegriffe 7 7 Datentypen bersicht Arten der Datentypen Elementare Datentypen Jede Vereinbarung einer Variablen mu den Typ dieser Variablen angeben Der Typ legt den Wertebereich der Variablen fest und bestimmt die Operationen die mit ihr ausgef hrt werden k nnen Ein bestimmter Datentyp bestimmt e die Art und Bedeutung eines Datenelements e den zul ssigen Bereich des Datenelements e die zul ssige Menge der Operationen die mit einem Operanden eines Datentyps ausgef hrt werden k nnen e die Schreibweise der Daten dieses Datentyps Man unterscheidet zwischen den folgenden Datentypen Tabelle 7 2 Elementare Datentypen Datentypen Bedeutung elementare Stellt Ihnen SCL standardm ig zur Verf gung K nnen Sie erzeugen indem Sie elementare zusammengesetzte z Datentypen verkn pfen zy Definieren Sie speziell f r Ihren Anwendungsfall anwenderdefinierte GRA unter einem frei w hlbaren Namen K nnen Sie nur f r die Vereinbarung von Parametertypen Parametern verwendet werden Elementare Datentypen definieren die Struktur von Daten die nicht in k
282. r Datentyp Organisationsbaustein OB E ORGANIZATION_BLOCK BEZEICHNUNG OB Vereinbarungsteil H BEGIN i Anweisungsteil END_ORGANIZATION_BLOCK gt Funktion Beachten Sie da bei Funktionen ohne VOID im Anweisungsteil der R ck gabewert dem Funktions namen zugewiesen werden mu FC Datentyp spezifikation FC Verein barungsteil mr BEGIN u Anweisungsteil H END_FUNCTION gt Funktionsbaustein FUNCTION BLOCK sezeichnunc FB Verein barungsteil BEGIN ug Anweisungsteil H END_FUNCTION_BLOCK p SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Syntaktische Regeln Tabelle C 1 Syntax der SCL Quellen Fortsetzung DATA_BLOCK BESE NUNG DB Vereinbarungsteil BEGIN DB Zuweisungsteil END_DATA_BLOCK STRUCT Datentyp END_TYPE C MPE BEZEICHNUNG spezifikation SCL f r S7 300 400 Bausteine programmieren C79000 G7000 0522 01 0 3 Syntaktische Regeln C 2 Aufbau der Vereinbarungsteile Tabelle C 2 Syntax des Vereinbarungsteils Regel Syntaxdiagramm OB Vereinbarunggsteil Jeder Block darf nur 1x pro Vereinbarungsteil Konstantenblock H auftreten Sprungmarkenblock H gt tempor rer gt j Variablenblock Jeder Block darf nur 1x FC Ve
283. r Zahl in der Darstellung des jeweiligen Systems Der Unterstrich kann optional zwischen den Ziffern eingesetzt werden um eine bessere Lesbarkeit gro er Zahlen zu unterst tzen Die allgemeine Schreibweise eines Integerliterals ist im Bild 11 5 am Beispiel einer Ziffernfolge f r eine Oktalzahl erkl rt Oktalziffernfolge a Oktalziffer gt 4 Q Unterstrich Bild 11 5 Syntax Oktalziffernfolge Die folgenden Beispiele sind m gliche Schreibweisen f r Integerliterale Wert_2 2 0101 Bin rzahl Dezimalwert 5 Wert_3 8 17 Oktalzahl Dezimalwert 14 Wert_4 16 F Hexadezimalzahl Dezimalwert 15 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 11 5 Vereinbarung von Konstanten und Sprungmarken Realzahlliterale Beispiele 11 6 Realzahlliterale sind Werte mit Nachkommastellen Sie k nnen den Variablen mit dem Datentyp REAL zugewiesen werden Die Angabe des Vorzeichens ist optional Wird kein Vorzeichen angegeben wird die Zahl als positiv interpretiert Bild 11 6 zeigt die Syntax f r eine Realzahl REALZAHLLITERAL DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE gt gt z DEZIMAL DEZIMAL ZIFFERNFOLGE ZIFFERNFOLGE _Exponent Bild 11 6 Syntax Realzahlliteral Bei der exponentiellen Schreibweise k nnen Sie zur Angabe von Gleitpunkt zahlen einen Exponenten ve
284. r die Ausgabe adressiert wird e Mit der gleichen Adresse werden drei Werte Me wert Wurzel und Quadrat f r die Ausgabe bereitgestellt Um daraus einen Wert auszuw hlen sind zwei Umschalter vorzusehen siehe Bild 2 2 Daten eingeben Schalter an Eingabebaugruppe Zwei Umschalter Codierung Codierschalter o x Flankenauswertung N Wurzel odef Me wert Quadrat oder Ergebnis Me wert Wurzel Quadrat Ausgabe adressieren Umschalter Ausgabe w hlen gt Adresse Adresse Sortierte Werte Ergebnisse Daten ausgeben Anzeigen an Ausgabebaugruppe Ausgabe Bild 2 2 Einstellbare Ausgabe SCL f r S7 300 400 Bausteine programmieren 2 4 C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 3 L sung mit SCL Bausteinen bersicht Die beschriebene Aufgabe l sen Sie am besten in Form eines strukturierten SCL Programms Ein solches Programm ist modular aufgebaut d h in Bausteine gegliedert die jeweils eine bestimmte Teilaufgabe bernehmen Bei SCL stehen Ihnen wie bei den Programmiersprachen von STEP7 eine Reihe von Bausteinarten zur Verf gung Informationen hierzu finden Sie in den Kapiteln 1 7 und 8 Schritte zur Bei der L sung k nnen Sie in folgenden Schritten vorgehen Losong 1 Festlegen der Teilaufgaben Auswahl und Zuordnung der m glichen Bausteinarten Festlegen der Schnittstellen zwischen den Bausteinen Festlegen der Ein Ausgabeschnittste
285. ral e Zeichenliteral e Zeitangabe F r den Wert einer Konstanten gibt es je nach Datentyp und Datenformat eine bestimmte Schreibweise 15 WERT 15 als Integerzahl in Dezimaldarstellung 2 1111 WERT 15 als Integerzahl in Bin rdarstellung 16 F WERT 15 als Integerzahl in Hexadarstellung Literal mit mehreren Schreibweisen f r den Wert 15 Einer Konstanten wird der Datentyp zugewiesen dessen Wertebereich gerade noch ausreicht um die Konstante ohne Wertverlust aufzunehmen Bei Verwendung einer Konstanten in einem Ausdruck z B einer Wertzuweisung mu der Datentyp der Zielvariable den Wert der Konstante aufnehmen k nnen Wenn zum Beispiel ein Integerliteral angegeben wird dessen Wert ber den Integerbereich hinaus geht wird angenommen da es sich um ein Doppel integer handelt Der Compiler bringt eine Fehlermeldung wenn Sie diesen Wert einer Variablen vom Typ Integer zuweisen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 11 3 Vereinbarung von Konstanten und Sprungmarken 11 3 Schreibweisen f r Integer und Realzahlliterale bersicht SCL bietet f r die Schreibweisen numerischer Werte e Integerliterale f r ganzahlige Werte e Realzahlliterale f r Gleitpunktzahlen In beiden Literalen benutzen Sie eine Ziffernfolge deren Aufbau Bild 11 2 zeigt Diese Ziffernfolge wird in den folgenden Syntaxdiagrammen vereinfacht mit Dezimalziffernfolge bezeichnet INT REAL 40 3000 40 2000 20 00 Z
286. reiche 12 4 Symbolischer Zugriff auf CPU Speicherbereiche 12 5 Indizierter Zugriff auf CPU Speicherbereiche 12 7 12 6 Globale Anwenderdaten 12 8 12 7 Absoluter Zugriff auf einen Datenbaustein 12 8 Indizierter Zugriff auf einen Datenbaustein 12 9 Strukturierter Zugriff auf einen Datenbaustein ml m u N 12 1 Vereinbarung globaler Daten 12 1 bersicht Globale Daten Zugriffsarten 12 2 Sie haben in SCL die M glichkeit globale Daten anzusprechen Es gibt zwei Arten von globalen Daten CPU Speicherbereiche Diese Speicherbereiche sind systemvereinbarte Daten z B Eing nge Ausg nge und Merker siehe Kapitel 7 5 Die Anzahl der zur Verf gung stehenden CPU Speicherbereiche ist durch die jeweilige CPU festgelegt Globale Anwenderdaten als ladbare Datenbausteine Diese Datenbereiche liegen innerhalb von Datenbausteinen Um sie benutzen zu k nnen m ssen Sie vorher die Datenbausteine erstellen und darin die Daten vereinbaren Im Fall von Instanz Datenbausteinen werden sie von Funktionsbausteinen abgeleitet und automatisch erzeugt Der Zugriff auf die globalen Daten kann auf folgende Arten erfolgen absolut ber Operandenkennzeichen und absolute Adresse symbolisch ber ein Symbol das Sie vorher in der Symboltabelle definiert haben siehe 231 indiziert ber Operandenkennzeichen und Feldindex strukturiert ber eine Variable Tabelle 12 1 Verwendung der Zugriffsarten auf globale D
287. reinbarungsteil pro Vereinbarungsteil Konstantenblock auftreten Sprungmarkenblock H gt tempor rer gt Variablenblock Parameterblock H Schnittstelle FB Vereinbarungsteil Jeder Block darf nur 1x pro Vereinbarungsteil Konstantenblock auftreten Sprungmarkenblock H tempor rer gt A Variablenblock gt statischer Variablenblock Parameterblock Schnittstelle DB Vereinbarungsteil m BEZEICHNUNG Struktur Datentyp spezifikation ih SCL f r S7 300 400 Bausteine programmieren C 4 C79000 G7000 C522 01 Syntaktische Regeln Tabelle C 3 Syntax der Vereinbarungsbl cke Regel DB Zuweisungsteil IE Syntaxdiagramm Einfache Variable H Konstante 8 2 Konstantenblock NST einfacher END_CONST BEZEICHNER Ausdruck Konstantenname Sprungmarkenblock LABEL BEZEICHNER J END_LABEL Sprungmarke Q Statischer Variablenblock i Variablen deklaration gt VAR END_VAR Instanz deklaration Variablendeklaration Parame oder Kompo na BEZEICHNER Variablenname Datentyp or Q tername nenten me Syste Q mattribute f r Parameter max 24 Zeichen gt Datentyp yp spe
288. reiten und Wertebereiche der elementaren Datentypen Typ Schl sselwort Bit Wertebereich breite Bitdatentyp Daten dieses Typs belegen entweder 1 bit Datentyp BOOL 8 bit 16 bit oder 32 bit Bit BOOL 1 0 1 oder FALSE TRUE Byte BYTE 8 Ein numerischer Wertebereich ist nicht Wort WORD 16 angebbar Es handelt sich um Bitkom binationen mit denen keine numerischen Doppelwort DWORD 32 Ausdr cke gebildet werden k nnen Zeichentyp Daten dieses Typs belegen genau 1 Zeichen des ASCII Zeichensatzes Einzelzeichen CHAR 8 erweiterter ASCI Zeichensatz Numerische Sie stehen f r die Verarbeitung numerischer Werte zur Verf gung Typen Integer Ganzzahl INT 16 32_768 bis 32_767 Doppelinteger 2_147_483_648 bis DINT 32 2_147_483_647 Gleitpunktzahl 3 402822E 38 bis 1 175495E 38 IEE Gleitpunktz REAL 32 66 1 175495E 38 bis 3 402822E 38 Zeittypen Daten dieses Typs repr sentieren die unterschiedlichen Zeit und Datumswerte in STEP 7 T 0H_0M_0S_10MS bis S5 Zeit S5TIME 16 T 2H_46M_30S ae TIME T 24D_20H_31M_23S_647MS bis Re DURATION 32 T 24D_20H_31M_23S_647MS Schritten von 1 ms Daime a D 1990 01 01 bis IEC Datum in DATE 16 Schritten von 1 D 2168 12 31 Tag Tageszeit TIME_OF_DA ania Uhrzeit in Schrit Y TOD 32 TODD ten von 1 ms TOD 23 59 59 999 Hinweis zu S5 Zeit Je nach Zeitbasis 0 01S 0 1S 1S oder 10S ist die Auf l sung des Zeitwerts begrenzt Der Compiler rundet die Werte entsprechend SCL f
289. rf llungstabelle in der NORM TAB Datei von STEP 7 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vorwort Einordnung in die Zur Unterst tzung Ihrer Konfigurierung und Programmierung eines S7 Auto Informationsland matisierungssystems gibt es eine umfangreiche Anwenderdokumentation die schaft f r eine selektive Benutzung vorgesehen ist Die folgenden Erl uterungen sollen Ihnen gemeinsam mit dem Bild 1 1 die Nutzung der Anwender dokumentation erleichtern Die angegebene Reihenfolge ist ein Vorschlag f r den Erstanwender einer S7 Symbol Bedeutung B Die Dokumentation f hrt in die Methodik ein L Nachschlagewerke und daher nur selektiv zu nutzen E Die Dokumentation wird durch eine Online Hilfe erg nzt Fibel AutomatisierungssystemS7 300 Einfach aufbauen und programmieren 30 Handb cher zu Handbuch S7 300 400 Hardware Program Systemsoftware f r S7 300 400 mierhand Programmentwurf buch 234 gt Online Hilfe N i Basissoftware f r S7 und M7 Benutzer Basissoftware f r S7 und M7 Umsteigert Von S5 nach S7 handbuch STEP 7 handbuch 231 230 u AWL KOP FUP SCL 1232 12334 123617 L 23 Systemsoft Referenz ware f r handbuch S7 300 400 p r 1 System und GRAPH HiGraph CFC f r CFC f r 1235 Standar
290. rgt werden d rfen SCL bietet jedoch nur eine Verarbeitungsm glichkeit des Datentyps POINTER an das Weiterreichen an unterlagerte Bausteine In SCL k nnen Sie Operanden der folgenden Datentypen als Aktual parameter zuordnen e Elementare Datentypen Sie geben die absolute Adresse oder den symbolischen Namen des Aktual parameters an e Zusammengesetzte Datentypen Sie geben den symbolischen Namen der Daten mit zusammengesetztem Datentyp an z B Felder und Strukturen e Datentyp POINTER Dies ist nur m glich wenn der Operand ein Formalparameter vertr g licher Parameterart ist e Datentyp NIL Sie geben einen Nullpointer an Der Datentyp POINTER ist f r formale Eingangsparameter Durchgangs parameter von FBs und FCs und f r Ausgangsparameter von FCs erlaubt Hinweis Wenn Sie beim Aufruf eines FB oder einer FC einen Formalparameter vom Typ POINTER mit einer tempor ren Variablen versorgen d rfen Sie diesen Parameter in dem aufgerufenen Baustein nicht an einen weiteren Baustein durchreichen Die Adressen der tempor ren Variaben verlieren beim Durch reichen Ihre G ltigkeit SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Datentypen Beispiele FUNCTION ABSTAND REAL VAR_INPUT MeinDB BLOCK_DB ZEIT TIMER END_VAR VAR INDEX INTEGER END_VAR BEGIN MeinDB DB5 5 ABSTAND RETURNWERT END_FUNCTION Beispiel 9 3 Datentypen
291. riablen Arithmetische Operatoren Diese Operatoren ben tigt man f r mathematische Rechnungen Vergleichsoperatoren Diese Operatoren ben tigt man um Bedingungen formulieren zu k nnen Logische Operatoren Diese Operatoren ben tigt man f r logische Ausdr cke Klammerung 13 2 bersicht der Operatoren O Un re Operatoren un res Plus un res Minus Arithmetische Basisoperatoren Multiplikation Division Modulo Funktion Ganzzahlige Division Addition Subtraktion Kleiner Gr er Kleiner gleich Gr er gleich Gleichheit Aa 9 a a m WW Ungleichheit lt gt Logische Basisoperatoren Und AND oder amp Exklusiv Oder XOR Oder OR W SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Anweisungen Ausdr cke und Operatoren 13 2 Syntax von Ausdr cken bersicht Ergebnis eines Ausdrucks Auswertungs reihenfolge Ausdr cke lassen sich durch das Syntaxdiagramm in Bild 13 1 darstellen Arithmetische und logische Ausdr cke sowie Vergleichsausdr cke und der Potenzausdruck weisen einige Besonderheiten auf weshalb diese in den separaten Kapiteln 13 3 bis 13 6 behandelt werden Ausdruck Operand Vergleichs operator Arithmetischer Basisoperator Potenz gt Ausdruck C Exponen gt G Ausdruck H un res Plus un res Minus NOT Negation D Ausdruck Q
292. rten Werte der Durchgangsparameter aktualisiert Eine Ausnahme bilden die Durchgangsparameter eines elemen taren Datentyps siehe dazu Kapitel 16 2 3 e k nnen die Ausgangsparameter vom aufrufenden Baustein aus dem globalen Instanz Datenbaustein oder dem lokalen Instanzbereich gelesen werden Siehe dazu das Beispiel 16 3 SCL f r S7 300 400 Bausteine programmieren 16 6 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 2 2 Eingangszuweisung FB Prinzip Durch Eingangszuweisungen werden den formalen Eingangsparametern Aktualparameter zugewiesen Der FB kann diese Aktualparameter nicht ver ndern Die Zuweisung von aktuellen Eingangsparametern ist optional Wird kein Aktualparameter angegeben dann bleiben die Werte des letzten Aufrufs erhalten Eingangszuweisung Aktualparameter Ausdruck H ZEITEN BEZEICHNUNG gt n O Z HLER Parametername des BEZEICHNUNG Eingangsparameters Formalparameter BAUSTEIN BEZEICHNUNG Bild 16 8 Syntax Eingangszuweisung M gliche In Eingangszuweisungen sind folgende Aktualparameter m glich Aktualparameter Tabelle 16 2 Aktualparameter in Eingangszuweisungen Aktual Parameter Ausdruck Erl uterung e Arithmetischer logischer oder Vergleichs Ausdruck e Konstante Erweiterte Variable ZEITEN Z HLER Bezeichnung Sie legen eine bestimmte Zeit oder einen bestimmten Z hler fest der bei der Bearbeitun
293. rter Text Genaue Aussagen zur Normerf llung finden Sie in der Compliance List in der NORM TAB Datei von STEP 7 SCL enth lt neben Hochsprachenelementen auch typische Elemente der SPS wie Eing nge Ausg nge Zeiten Merker Bausteinaufrufe usw als Sprach elemente D h SCL erg nzt und erweitert die Programmiersoftware STEP 7 mit ihren Programmiersprachen KOP FUP und AWL Zur optimalen Verwendung und zum praktischen Einsatz von SCL gibt es eine leistungsf hige Entwicklungsumgebung die sowohl auf spezifische Eigenschaften von SCL als auch auf STEP 7 abgestimmt ist Diese Entwicklungsumgebung besteht aus folgenden Komponenten e einem Editor um Programme bestehend aus Funktionen FC Funktions bausteinen FB Organisationsbausteinen OB Datenbausteinen DB und anwenderdefinierten Datentypen UDT zu programmieren Der Programmierer wird dabei durch leistungsf hige Funktionen unterst tzt e einem Batch Compiler um das zuvor editierte Programm in MC T Maschinencode zu bersetzen Der erzeugte MC 7 Code ist ab der CPU 314 auf allen CPUs des Automatisierungssystem S7 300 400 ablauf f hig e einem Debugger um eine Suche nach logischen Programmfehlern in einer fehlerfreien bersetzung zu erm glichen Die Fehlersuche erfolgt dabei in der Quellsprache Die einzelnen Komponenten sind einfach und komfortabel zu handhaben da sie unter Windows 95 ablaufen und so auch alle Vorteile dieses Betriebssystems nutzen
294. ruck zuweisen G ltige Zuweisungen sind DB11 DW10 20 DB11 DW10 Status Beispiele Das folgende Beispiel setzt voraus da im Datenbaustein DB11 eine Variable ZAHL vom Datentyp INTEGER und eine Struktur ZAHL1 mit der Komponente ZAHL2 vom Typ INTEGER vereinbart wurde Ben tigter Datenbaustein DB11 DATA_BLOCK DB11 STRUCT ZAHL INT s ZAHLl STRUCT ZAHL2 INT 256 END_STRUCT WORT3 WORD w 1l6 aa WORTA4 WORD w 16 aa WORTS WORD w 16 aa WORT6 WORD w 1l6 aa WORT7 WORD w 1l6 aa WORT8 WORD w 1l6 aa WORT9 WORD w 1l6 aa WORT10 WORD END_STRUCT BEGIN WORT10 W 16 bb END_DATA_BLOCK Beispiel 14 7 Wertzuweisungen f r globale Variablen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 14 11 Wertzuweisungen Der Datenbaustein DB11 kann dann z B folgenderma en verwendet werden VAR REGLER_1 ARRAY 1 4 OF INT STATUSWORT1 WORD STATUSWORT2 ARRAY 1 10 OF INT STATUSWORT3 INT ADRESSE INIS END_VAR BEGIN Zuweisen des Worts 10 aus DBll an eine Variable einfacher Zugriff STATUSWORT1 DB11 DW10 Der 1 Feldkomponente wird die Variable ZAHL aus DB11 zugewiesen strukturierter Zugriff REGLER_1 1 DB11 ZAHL Zuweisen der Strukturkomponente ZAHL2 der Struktur
295. rung scL 1 2 SCL Baustein r ck bersetzen 1 4 B Baustein Art Funktion Konzept STEP 7 Baustein vorgefertigt Bausteinattribute Definition 8 5 Bausteinbezeichnung Bausteine 1 3 erstellen prog ammieren 2 10 mischen Bausteinende Index 1 Stichwortverzeichnis Bausteinparameter 7 14 10 10 Datentypen Zugriff 10 11 anwenderdefinierte UDT 7 13 8 19 9 10 Bausteinstruktur in Quelldateien 8 3 Beschreibung 9 3 9 5 Bedienoberfl che elementar 7 12 Bedingter Aufruf 19 2 f r formale Parameter Bedingungen 15 3 zusammengesetzte 9 4 Abbruchbedingungen 15 11 Datentypspezifikation 9 7 Bezeichner 7 7 Debugger Bildung allgemein 1 6 Endwert 15 9 en 11 2 Startwert 15 9 Testmodi Bitstring Standardfunktion Deinstallieren SCL 3 Liste Funktionen Dimension 9 7 BLOCK Parametertyp DIN Norm EN 61131 3 Block Typen 9 13 Drucken SCL Quelle Bl cke Durchf hrungsbedingung Boolescher Ausdruck Durchgangsparameter Durchgangszuweisung Aktualparameter 16 8 C CASE Anweisung 15 2 15 6 E Compiler Editor allgemein 1 5 1 6 allgemein 1 1 5 Entwicklungsum gebung 1 2 Entwicklungsumgebun g 1 2 Compiler Optionen Eingangs E TET CONTIN UE Anweisung 15 2 15 12 Eingangszuweisung Aktualparameter 16 7 COUNTER Parametertyp 7 13 9 12 Elementare Datentypen 7 12 03 Beschreibung 42 9 3 EN 1 D ENO I Eh sumge g Daun ploba 12 1 Batc
296. rwenden Die Angabe des Exponenten erfolgt durch das Voranstellen des Buchstabens E oder e gefolgt von einer Dezimal ziffernfolge Bild 11 7 zeigt die Syntax f r die Angabe eines Exponenten 2 DEZIMAL ZIFFERNFOLGE 2 Q Bild 11 7 Syntax Exponent Exponent Beispiel Die Gr e 3 x 10 0 kann in SCL durch folgende Realzahlen dargestellt werden 3 0E 10 3 0E10 3e 10 3E10 0 3E 11 0 3ell 30 0E 9 30e9 Das abschlie ende Beispiel 11 2 fa t die M glichkeiten nochmal zusammen Integerliterale ZAHL1 10 ZAHL2 2 1010 ZAHL3 16 1A2B Realzahlliterale ZAHL4 3 4 ZAHL5 4e2 ZAHL6 40_123E10 Beispiel 11 2 Numerische Literale SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Vereinbarung von Konstanten und Sprungmarken 11 4 Schreibweisen f r Character und Stringliterale bersicht SCL bietet auch die M glichkeit Textinformationen einzugeben und zu verarbeiten beispielsweise eine Zeichenkette die als Meldung angezeigt werden soll Berechnungen sind mit den Zeichenliteralen nicht m glich das bedeutet da Zeichenliterale nicht in Ausdr cken verwendet werden k nnen Es wird unter schieden zwischen e Characterliteral das ist ein Einzelzeichen und e Stringliteral das ist eine Zeichenfolge aus max 254 Einzelzeichen Characterliteral Das Characterliteral enth lt genau ein Ze
297. rwendeter Operanden Liste der Operanden ohne Symbol Referenzdaten k nnen Sie nutzen als e bersicht ber ein gesamtes Anwenderprogramm e Grundlage f r nderungen und Tests e Erg nzung der Programmdokumentation Zur Erzeugung von Referenzdaten haben Sie folgende M glichkeiten e ber den Men befehl Extras gt Referenzdaten k nnen Sie die Referenz daten bei Bedarf erzeugen aktualisieren und anzeigen lassen e ber den Men befehl Extras gt Einstellungen k nnen Sie festlegen da die Referenzdaten automatisch beim bersetzen einer Quelle erzeugt werden Markieren Sie dazu im Register Baustein erzeugen den Eintrag Referenzdaten erzeugen Das automatische Erzeugen der Referenzdaten verl ngert jedoch den bersetzungsvorgang Eine ausf hrliche Beschreibung der Testfunktion finden Sie im STEP 7 Benutzerhandbuch 231 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 6 9 Testen eines Programmes 6 6 Verwenden der STEP 7 Testfunktionen AWL Editor CPU Betriebs zustand abfragen und ndern Eigenschaften der CPU anzeigen 6 10 Sie k nnen Bausteine die mit SCL bersetzt worden sind in AWL ffnen und sie dann mit dem AWL Editor testen W hlen Sie den Men befehl Zielsystem gt Betriebszustand um den aktuellen Betriebszustand der CPU abzufragen oder zu ndern Der Men befehl Zielsystem gt Baugruppenzustand ffnet ein Dialogfeld in dem Sie durch Auslesen
298. s zu testenden Bausteins enth lt Setzen Sie Haltepunkte indem Sie die Schreibmarke an die gew nschte Stelle in der Programmauelle positionieren und den Men befehl Test gt Haltepunkt setzen w hlen Die Haltepunkte werden am linken Fenster rand als roter Kreis dargestellt Starten Sie den Einzelschrittablauf indem Sie den Men befehl Test gt Haltepunkte aktiv w hlen Ergebnis Das Fenster wird vertikal in zwei H lften geteilt und der n chste Haltepunkt wird gesucht Wird er erreicht geht die CPU in den Betriebszustand HALT und die erreichte Stelle wird durch einen gelben Pfeil markiert Die folgenden Einzelschrittfunktionen stehen nun alternativ zur Verf gung W hlen Sie den Men befehl Test gt N chste Anweisung ausf hren 4a Ergebnis Die CPU geht kurz in den Betriebszustand RUN ber Beim Erreichen der n chsten Anweisung h lt sie erneut an und zeigt die Werte der Variablen die in der Vorg ngeranweisung bearbeitet wur den in der linken Fensterh lfte zeilengerecht an W hlen Sie den Men befehl Test gt Fortsetzen 4b Ergebnis Die CPU geht in den Betriebszustand RUN Beim Erreichen des n chsten aktiven Haltepunkts h lt sie erneut und mar kiert den Haltepunkt am linken Fensterrand Um die Variableninhalte anzuzeigen m ssen Sie erneut den Men befehl Test gt N chste Anweisung ausf hren w hlen W hlen Sie den Men befehl Test gt Ausf hren bis Markierung 4c An der aktuellen
299. sierungsliste FB Parameter FC Parameter Wertliste Instanzdeklaration Bereichsangabe Array Datentyp Spezifikation Wertliste Trennzeichen f r FB und DB Name FB Aufruf strukturierte Variable Absolute Adressierung ee Aufruf Funktion und Funktionsbaustein Funktionsaufruf FB Aufruf Ausdruck Klammerung in Ausdr cken Feld Initialisierungsliste Einfache Initialisierungsliste f r Arrays Multiplikation Potenzausdruck E Array Vereinbarung Array Datentyp Spezifikation STRING Daten strukturierte Variable Teil Array Indizierung typspezifikation bei globalen Variablen und Strings Blockkommentar siehe Anhang B Pf Zeilenkommentar siehe Anhang B i Attributblock Angabe von Attributen Einleitung f r Direktbezeichner Um IEC konform zu programmieren kann M4 0 anstatt M4 0 verwendet werden Operatoren In Tabelle A 6 sind alle SCL Operatoren dargestellt Schl sselworte z B AND und die blichen Operatoren als einzelne Zeichen Diese Tabelle gilt f r SIMATIC und IEC Mnemonik Tabelle A 6 SCL Operatoren Operator Beschreibung Syntaktische Regel Zuweisungsoperator Anfangszuweisung Wertzuweisung DB Zuweisungsteil Datentypinitialisierung Konstantenblock Ausgangs Durchgangs Zuweisung Eingangs Zuweisung Durch gangs Zuweisung Arithmetische Operatoren un re Ausdruck einfacher Ausdruck Operatoren Vorzeichen Potenzausdruck Arithmetische Basisoperatoren Arithmetischer Basisoperator einfache Multiplikation
300. ssen Die Schachtelung von Blockkom mentaren ist standardm ig erlaubt Sie k nnen diese Einstellung jedoch ndern und die Schachtelung von Blockkommentaren unzul ssig machen Blockkommentar gt O i Zeichen gt Bild 7 9 Syntax Blockkommentar Die zugelassenen Zeichen entnehmen Sie bitte Tabelle A 2 im Anhang SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Was zu beachten Beachten Sie bei der Notation von Kommentaren ist 4 e Bilockkommentare in Datenbausteinen m ssen wie Zeilenkommentare notiert werden d h solche Kommentare werden auch mit eingeleitet e Die Schachtelung von Kommentaren ist standardm ig erlaubt Diese Com piler Einstellung kann aber ber die Option Geschachtelte Kommentare zulassen ge ndert werden W hlen Sie dazu den Men befehl Extras gt Einstellungen und w hlen Sie im Register Compiler des folgenden Dia logfelds die Option ab e Ein Kommentar darf weder einen symbolischen Namen noch eine Konstante unterbrechen Die Unterbrechung von Strings ist jedoch m glich Dieser Kommentar ist falsch FUNCTION_ Anpassung BLOCK FB10 Beispiel f r Einbau Im Beispiel finden Sie zwei Kommentarbl cke und einen Zeilenkommentar von Kommentaren FUNCTION_BLOCK FB15 I Hier steht ein Blockkommentar der beremehreresrzeitlenzgehenskemnzs VAR SCHALTER INT Zei
301. stelne u uias eine ee al 7 18 7 12 Kommentare essen ee a ee een 7 20 Aufbau einer SCL Quelldatei urnssnennenennnnnnnnnnnnnnnnnnnn 8 1 AUIDaU naar ed ae een ee EA E A 8 2 8 2 Bausteinanfang und ende 22222neeenene nennen nennen 8 4 8 3 Bausteinattribute H s san een EEEE nn 8 5 8 4 Vereinbarungsteil o 22Huen nennen nennen nennen nn 8 7 8 5 Anweisungsteil 22220e2e nennen nennen nenne nennen 8 10 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Inhaltsverzeichnis 10 11 12 8 6 ANWEISUNG au ee ee en do 8 7 Aufbau eines Funktionsbausteins FB 2220e2 nennen 8 8 Aufbau einer Funktion FC 22essas seen een nennen 8 9 Aufbau eines Organisationsbausteins OB 2222222220 n 0 8 10 Aufbau eines Datenbausteins DB 22n22 seen 8 11 Aufbau eines anwenderdefinierten Datentyps UDT Datentypen 1 00 4 40 a a ee 9 1 bersicht mease a SEIEN AUEARENA RENNER OREHRGERR FERN 9 2 Elementare Datentypen eensseeenennennn rennen nenn 9 3 Zusammengesetzte Datentypen 2222222 een nennen 9 3 1 Datentyp DATE_AND_TIME 2nnnneenneeennneeenenn nn 9 3 2 Datentyp STRING 2 28 ae dad 9 3 3 Datentyp ARRAY 2 222 eeeneeeen nenne nenne nenne nenn nenn 9 3 4 Datentyp STRUCT 2 2222 neeeenneee nennen nenn nennen nenn 9 4 Anwenderdefinierter Datentyp UDT 2
302. stem verbunden ist physikalisch logisch STEP 7 bietet Ihnen die M glichkeit sich w hrend des Arbeitens mit der Programmiersoftware kontextabh ngige Hilfetexte am Bildschirm anzeigen zu lassen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 9 Glossar Operand Operanden kennzeichen Operation Organisations baustein OB Parameter Parametertyp Programmierung strukturiert Programmierung symbolisch Projekt Glossar 10 Ein Operand ist ein Teil einer Anweisung und sagt aus womit der Prozessor etwas tun soll Er kann sowohl absolut als auch symbolisch adressiert werden Ein Operandenkennzeichen ist der Teil des Operanden einer Operation in dem Informationen enthalten sind wie z B der Speicherbereich in dem die Operation einen Wert Datenobjekt findet mit dem sie eine Verkn pfung ausf hrt oder die Gr e eines Werts Datenobjekt mit dem sie eine Verkn pfung ausf hrt In der Anweisung Wert EB 10 ist EB das Operandenkennzeichen E steht f r den Eingangsbereich des Speichers B steht f r ein Byte in diesem Bereich Eine Operation ist Teil einer Anweisung und sagt aus was der Prozessor tun soll Organisationsbausteine bilden die Schnittstelle zwischen dem Betriebssystem der CPU und dem Anwenderprogramm In den Organisationsbausteinen wird die Reihenfolge der Bearbeitung des Anwenderprogramms festgelegt Bei SCL Variable eines Co
303. t anschauen Tabelle 2 7 Testmuster f r Wurzel und Quadrat Me wert Wurzel Quadrat 0000 0001 1 0 0000 0001 1 0000 0000 0000 0001 1 0000 0011 3 0 0000 0010 2 0000 0000 0000 1001 9 00000111 7 0 0000 0011 3 0000 0000 0011 0001 49 0000 1111 15 0 0000 0100 4 0000 0000 1110 0001 225 0001 1111 31 0 0000 0110 6 0000 0011 1100 0001 961 0011 1111 63 0 0000 1000 8 0000 1111 1000 0001 3969 0111 1111 127 0 0000 1011 11 0011 1111 0000 0001 16129 1111 1111 255 0 0001 0000 16 0111 111 1111 1111 berlaufanzeige SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 23 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Teil 2 Bedienen und testen Installieren der SCL Software SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Installieren der SCL Software bersicht Ein Setup Programm erm glicht Ihnen das men gef hrte Installieren der SCL Software Das Setup Programm mu bei der unter Windows 95 blichen Standardprozedur zur Installation der Software aufgerufen werden Installations Um die SCL Software installieren zu k nnen ben tigen Sie voraussetzungen ein Programmierger t oder PC mit bereits installiertem STEP 7 Basispaket Prozessor 80486 oder h her und RAM Speicherausbau 16 MB einen Farbmonitor Tastatur und Maus die von Microsoft Windows 95 unterst tz
304. t erlaubt SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 7 7 Allgemeine SCL Grundbegriffe 7 5 Standardbezeichner Definition Baustein schl sselw rter SCL definiert bereits eine Reihe von Bezeichnern f r die deshalb der Name Standardbezeichner verwendet wird Diese Standardbezeichner sind e die Bausteinschl sselw rter und e die Operandenkennzeichen f r das Ansprechen von Speicherbereichen der CPU Diese Standardbezeichner werden f r die absolute Adressierung von Bausteinen verwendet Die Tabelle 7 1 ist nach der SIMATIC Mnemonik sortiert die entsprechende internationale IEC Mnemonik wird ebenfalls angegeben Tabelle 7 1 Bausteinschl sselw rter Mnemonik Mnemonik kennzeichnet SIMATIC IEC DBx DBx Datenbaustein Data Block FBx FBx Funktionsbaustein Function Block FCx FCx Funktion Function OBx OBx Organisationsbaustein Organization Block SDBx SDBx Systemdatenbaustein System Data Block SFCx SFCx Systemfunktion System Function SFBx SFBx Systemfunktionsbaustein System Function Block Tx Tx Zeitglied Timer UDTx UDTx Anwenderdefinierter Datentyp User defined Data Type Zx Cx Z hler Counter x Zahl zwischen 0 und 65533 DBO ist reserviert STANDARDBEZEICHNER ek gt DB FB FC OB UDT Bild 7 5 Syntax Standardbezeichner Die Tabelle 7 1 ist nach der SIMATIC Mnemonik sortiert die entsprechende internationale
305. t es ratsam den Men befehl Extras gt Einstellungen zu w hlen und im Register Editor die Option Sichern vor bersetzen anzuklicken Der Men befehl Datei bersetzen speichert die SCL Quelle dadurch implizit SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 5 7 Programmieren mit SCL Nach dem Nach dem bersetzungsvorgang wird Ihnen eine fehlerfreie bersetzung bersetzen gemeldet oder Fehler und Warnungen werden in einem Fenster nach Bild 5 4 angezeigt SCL Fehleraufzeichnung quelle F Z00016 S 00012 ung ltiger Ausdruck W Code Generator wegen Fehler nicht aufgerufen 1 Fehler und 1 Warnung en gefunden m Meldung 15 4397 Hilfetext Q9 Schlie en Hilfe Bild 5 4 Fenster f r Fehlermeldungen und Warnungen 1 Fehler und 1 Warnung en gefunden Gehe zu Ursachen f r Jede Meldung wird mit zugeh riger Zeilen und Spaltenposition sowie einer Fehler und Kurzbeschreibung angegeben Eine ausf hrliche Beschreibung des Fehlers Warnungen finden bzw der Warnung erhalten Sie indem Sie die gew nschte Meldung markieren und die Schaltfl che Hilfe anklicken Mit einem Doppelklick auf eine Meldung k nnen Sie die Schreibmarke an der betreffenden Stelle der SCL Quelle positionieren Durch diese beiden M glichkeiten k nnen Sie Fehler und Warnungen rasch und einfach lokalisieren und korrigieren SCL f r S7 300 400 Bausteine progra
306. t l uft solange mit dem Wert weiter der an Eingang TV angegeben ist bis die programmierte Zeit abgelaufen ist und der Eingang S 1 ist Laufzeit vorzeitig Wechselt Eingang S von 1 auf 0 bevor der Zeitwert beenden abgelaufen ist wird die Zeit angehalten R cksetzen Die Zeit wird zur ckgesetzt wenn der R cksetzeingang R von 0 auf 1 wechselt w hrend die Zeit l uft Durch diesen Wechsel werden auch der Zeitwert und die Zeitbasis auf Null zur ckgesetzt Der Signalzustand 1 an Eingang R hat keinen Einflu wenn die Zeit nicht l uft Signalzustand Solange die Zeit l uft ergibt eine Signalzustandsabfrage nach 1 abfragen an Ausgang Q das Ergebnis 1 Bei vorzeitiger Beendigung der Laufzeit ergibt eine Signalzustandsabfrage an Ausgang Q das Ergebnis 0 Aktuellen Zeit Der aktuelle Zeitwert kann am Ausgang BI und durch den wert abfragen Funktionswert S_PULSE abgefragt werden SCL f r S7 300 400 Bausteine programmieren 17 16 C79000 G7000 C522 01 Zeiten und Z hler 17 2 3 Zeit als verl ngerten Impuls starten Beschreibung Funktionsweise Das Ausgangssignal bleibt f r die programmierte Zeit t auf 1 unabh ngig davon wie lange das Eingangssignal auf 1 bleibt Eine erneute Ausl sung des Startimpulses bewirkt einen erneuten Ablauf der Zeitdauer so da der Ausgangsimpuls zeitlich verl ngert wird Nachtriggerung Bild 17 4 veransc
307. t sind SCL f r S7 300 400 Bausteine programmieren 16 16 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 3 3 Ausgangs Durchgangszuweisung FC Prinzip Aktualparameter in Ausgangs Durchgangs zuweisungen In einer Ausgangszuweisung legen Sie fest wohin die Ausgangswerte die bei der Abarbeitung einer Funktion entstehen geschrieben werden Mit einer Durchgangszuweisung weisen Sie einem Durchgangsparameter einen Aktual wert zu Bild 16 13 zeigt die Syntax von Ausgangs und Durchgangszuweisungen Ausgangs Durchgangszuweisung Erweiterte BEZEICHNER Variable Parametername des Ausgangs oder Aktualparameter Durchgangsparameters Formalparameter Bild 16 13 Syntax Ausgangs Durchgangszuweisung Die Aktualparameter in Ausgangs und Durchgangszuweisungen m ssen eine Variable sein da die Funktion Werte in die Parameter schreiben soll Ein Eingangsparameter ist in Durchgangsanweisungen aus diesem Grund nicht zu weisbar der Wert k nnte nicht geschrieben werden In Ausgangs und Durch gangszuweisungen ist also nur die erweiterte Variable zuweisbar Tabelle 16 5 Aktualparameter in Ausgangs Durchganszuweisungen Aktualparameter Erl uterung Erweiterte Folgende Typen der erweiterten Variablen stehen zur Variable Verf gung einfache Variablen und Parameter Zugriff auf Absolutvariablen Zugriff auf Datenbausteine Funktions Aufrufe siehe auch Kapitel 14
308. t werden eine Festplatte mit einem freiem Speicherplatz von 78 MB 10 MB f r Anwenderdaten 60 MB f r Swap Dateien 8 MB f r das Optionspaket SCL mindestens 1 MB freien Speicherplatz auf dem Laufwerk C f r das Setup Setup Dateien werden nach Abschlu der Installation gel scht das Betriebssystem Windows 95 eine MPI Schnittstelle zwischen Programmierger t oder PC und AS Entweder ein PC MPI Kabel das an die Kommunikationsschnittstelle Ihres Ger ts angeschlossen wird oder eine MPI Baugruppe die in Ihrem Ger t installiert wird Bei einigen Programmierger ten ist die MPI Schnittstelle bereits vorhanden Kapitel bersicht Im Kapitel finden Sie auf Seite 3 1 Autorisierung Nutzungsberechtigung 3 2 3 2 Installieren Deinstallieren der SCL Software 3 4 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 3 1 Installieren der SCL Software 3 1 Autorisierung Nutzungsberechtigung Einleitung F r die Nutzung des Softwarepaketes SCL wird eine produktspezifische Autorisierung Nutzungsberechtigung ben tigt Die so gesch tzte Software ist nur benutzbar wenn auf der Festplatte des betreffenden PG PC die f r das Programm oder Softwarepaket erforderliche Autorisierung erkannt wird Autorisierungs F r die Autorisierung ben tigen Sie die zum Lieferumfang geh rende kopier diskette gesch tzte Autorisierungsdiskette Sie enth lt die Autorisierung und das zum Anzeigen
309. te Standardfunktion Bild 16 10 Syntax Funktionsaufrufs SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 16 13 Aufruf von Funktionen und Funktionsbausteinen Hinweis Wird in SCL eine Funktion aufgerufen deren R ckgabewert nicht versorgt wurde kann es zu einer fehlerhaften Ausf hrung des Anwenderprogramms kommen Bei einer SCL Funktion kann dieser Fall eintreten wenn der R ckgabewert zwar versorgt wurde die entsprechende Anweisung aber nicht durchlaufen wird Bei einer AWL KOP FUP Funktion kann dieser Fall eintreten wenn die Funktion ohne Versorgng des R ckgabewertes programmiert wurde oder die entsprechende Anweisung nicht durchlaufen wird Aufruf Der Aufruf einer Funktion erfolgt unter Angabe e des Funktionsnamens FC SFC BEZEICHNUNG BEZEICHNER e der Parameterliste Beispiel Der Funktionsname der den R ckgabewert bezeichnet kann absolut oder symbolisch angegeben werden z B FC31 X1 5 Ol Quersumme ABSTAND X1 5 Ql Quersumme Ergebnis des Die Ergebnisse eines Funktionsaufrufs stehen nach dem Aufruf als Al ufs e R ckgabewert oder e als Ausgangs und Durchgangsparameter Aktualparameter zur Verf gung Weitere Informationen hierzu finden Sie in Kapitel 18 SCL f r S7 300 400 Bausteine programmieren 16 14 C79000 G7000 C522 01 Aufruf von Funktionen und Funktionsbausteinen 16 3 1 FC Parameter Prinzip Regeln Im Gegensatz zu Funktionsbausteinen hab
310. te Zugriff Er unterscheidet sich nur in der Angabe der Adresse Anstelle der Adresse wird ein Index spezifiziert der eine Konstante eine Variable oder ein arithmetischer Ausdruck sein kann Der Absolutbezeichner setzt sich beim indizierten Zugriff aus dem Operanden kennzeichen nach Kapitel 12 7 sowie einem Basisausdruck f r das Indizieren zusammen Gr en Pr fix Speicher Pr fix DB Bezeichnung D X i J Adresse Basis Ausdruck f r Index eingeschlossen in eckige Klammern Operandenkennzeichen Die Indizierung mu den folgenden Regeln entsprechen e Jeder Index mu ein arithmetischer Ausdruck vom Datentyp INT sein e Bei einem Zugriff der vom Datentyp BYTE WORD oder DWORD ist m ssen Sie genau einen Index verwenden Der Index wird als Byteadresse inter pretiert Die Zugriffsbreite wird durch das Gr en Pr fix festgelegt e Bei einem Zugriff der vom Datentyp BOOL ist m ssen Sie zwei Indizes benutzen Der erste Index spezifiziert die Byteadresse der zweite Index die Bitposition innerhalb des Bytes STATUS_1 DB11 DW ZAEHLER STATUS_2 DB12 DX WNR BITNR STATUS_1 Datenbasis1 DW ZAEHLER STATUS_2 Datenbasis2 DX WNR BITNR STATUS_1 WORD_TO_BLOCK_DB INDEX DW ZAEHLER Beispiel 12 5 Indizierter Zugriff SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 12 11 Vereinbarung globaler Daten 12 9 S
311. teins z B Symbolik und Kommentare fehlen SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Glossar 11 Glossar RUN RUN P S S7 Anwender programm SCL SCL Compiler SCL Debugger SCL Editor SCL Quelle Schl sselwort Single Step Glossar 12 Im Betriebszustand RUN wird das Anwenderprogramm bearbeitet das Proze abbild wird zyklisch aktualisiert Alle digitalen Ausg nge sind freigegeben Der Betriebszustand RUN P entspricht dem Betriebszustand RUN mit dem Unterschied da bei dem Betriebszustand RUN P s mtliche Programmier ger tefunktionen ohne Einschr nkungen erlaubt sind Das S7 Anwenderprogramm befindet sich im Beh lter Bausteine Es ent h lt Bausteine die auf eine programmierbare S7 Baugruppe z B CPU geladen werden und dort lauff hig sind um eine Anlage oder einen Proze zu steuern PASCAL hnliche Hochsprache nach der Norm DIN EN 61131 3 int IEC 1131 3 zur Programmierung von komplexen Aufgaben in einer SPS z B Algorithmen Datenverarbeitungsaufgaben Abk rzung f r Structured Control Language Der SCL Compiler ist ein Batch Compiler mit dem das zuvor editierte Programm SCL Quelle in den MC7 Maschinencode bersetzt wird Die dadurch erzeugten Bausteine werden im S7 Programm im Beh lter Bausteine abgelegt Der SCL Debugger ist ein Hochsprachendebugger mit dem logische Programmierfehler im mit SCL erstellten Anwenderprogramm
312. tellt e Aufbau und Einsatz der verschiedenen Bausteinarten von SCL e Aufruf der Bausteine mit Parameter bergabe und Auswertung e Verschiedene Ein und Ausgabeformate e Programmierung mit elementaren Datentypen und Feldern e Initialisierung von Variablen e Programmstrukturen mit Verwendung von Verzweigungen und Schleifen Sie k nnen das Beispielprogramm mit SIMATIC S7 300 oder SIMATIC S7 400 zum Ablauf bringen und ben tigen dazu folgende Peripherie e eine Eingabebaugruppe mit 16 Kan len e eine Ausgabebaugruppe mit 16 Kan len Das Programm ist so aufgebaut da Sie es schnell ber die Schalter an der Eingabe und die Anzeigen an der Ausgabe testen k nnen F r einen ausf hrlichen Test benutzen Sie am besten die Testfunktionen von SCL siehe Kapitel 6 Weiterhin stehen Ihnen sprach bergreifend alle M glichkeiten des STEP 7 Basispaket zur Verf gung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Entwerfen eines SCL Programms 2 2 Aufgabenstellung bersicht Me werte erfassen Me werte verarbeiten Die Me werte sollen ber eine Eingabebaugruppe erfa t sortiert und verarbeitet werden Der geforderte Wertebereich der Me werte betr gt 0 bis 255 F r die Eingabe wird daher ein Byte ben tigt Als Verarbeitungsfunktionen sind Wurzel und Quadrat zu benutzen Die Ergebnisse sollen ber einer Ausgabebaugruppe angezeigt werden Daf r wird ein Wort ben tigt wird Die Programmsteuerung s
313. ter Funktionswert ACOS ANY_NUM REAL Arcus Cosinus ASIN ANY_NUM REAL Arcus Sinus ATAN ANY_NUM REAL Arcus Tangens COS ANY_NUM REAL Cosinus SIN ANY_NUMD REAL Sinus TAN ANY_NUM REAL Tangens 1D Beachten Sie da Eingangsparameter vom Typ ANY_NUM intern in Real Variablen umgewandelt werden Beispiele Tabelle 18 8 zeigt m gliche Aufrufe von numerischen Standardfunktionen und 18 10 die jeweiligen Ergebnisse Tabelle 18 8 Aufrufe numerischer Standardfunktionen Aufruf Ergebnis ERGEBNIS ABS 5 5 ERGEBNIS SQRT 81 0 9 ERGEBNIS SQR 23 529 ERGEBNIS EXP 4 1 60 340 ERGEBNIS EXPD 3 1_000 ERGEBNIS LN 2 718_281 1 ERGEBNIS LOG 245 2 389_166 PI 3 141 592 0 5 ERGEBNIS SIN PI 6 ERGEBNIS ACOS 0 5 1 047_197 PI 3 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 SCL Standardfunktionen und Standardfunktionsbausteine 18 4 Bitstring Standardfunktionen Funktionalit t Jede Bitstring Standardfunktion hat zwei Eingangsparameter die durch IN bzw N bezeichnet werden Das Ergebnis ist immer der Funktionswert Tabelle 18 9 zeigt die Funktionsnamen und die Datentypen der zwei Eingangsparameter und des Funktionswertes Es bedeuten e FEingangsparameter IN Puffer durchgef hrt werden in dem die Bitschiebeoperationen e Eingangsparameter N Anzahl der Rotationen bei den Umlaufpuffer funktionen RO
314. terne Darstellung des Zeitwerts siehe Bild 17 2 Das Aktualisieren der Zeit vermindert den Zeitwert um jeweils eine Einheit in einem Intervall der von der Zeitbasis festgelegt wurde Der Zeitwert wird solange vermindert bis er gleich 0 ist Der Zeitbereich umfa t 0 bis 9 990 Sekunden Bild 17 2 zeigt die interne Darstellung des Zeitwerts lo lee z090 x1x11101 010101 1 0101110 0 11111 N A A PS A gt ar 1 2 w 2 Zeitbasis Zeitwert im BCD Format 0 bis 999 1 Sekunde Irrelevant Diese Bits werden nicht beachtet wenn die Zeit gestartet wird Bild 17 2 Darstellung des Zeitwerts Mit folgenden Darstellungen k nnen Sie einen vordefinierten Zeitwert laden e In Stufendarstellung TIME aH_bbM_ccS_dddMS e In Dezimaldarstellung TIME 2 4H Das Ergebnis k nnen Sie in zwei verschiedenen Formaten auswerten e Als Funktionsergebnis Typ SSTIME im BCD Format e Als Ausgangsparameter Zeitwert ohne Zeitbasis vom Typ WORD bin r SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Zeiten und Z hler Zeitbasis Die Bits 12 und 13 des Timerworts enthalten die Zeitbasis bin r codiert Die Zeitbasis definiert das Intervall in dem der Zeitwert um eine Einheit vermindert wird siehe Tabelle 17 9 und Bild 17 2 Die kleinste Zeitbasis betr gt 10 ms die gr te 10 s Tabelle 17 9 Zeitbasis und Bin rcode Zeitbasis Bin rcode f r Zeitbas
315. tet werden e Logische Operanden sollten in Klammern stehen um deutlich zu machen in welcher Reihenfolge die logischen Operationen durchgef hrt werden sollen e Logische Ausdr cke k nnen nach dem Gesetz der booleschen Logik verkn pft werden um Abfragen wie wenn a lt b und b lt c dann zu realisieren Als Ausdruck k nnen Variablen oder Konstanten vom Typ BOOL sowie Vergleichsausdr cke verwendet werden e Innerhalb folgender Typklassen sind alle Variablen vergleichbar INT DINT REAL BOOL BYTE WORD DWORD CHAR STRING e Bei folgenden Zeittypen sind nur typgleiche Variablen vergleichbar DATE TIME TOD DT e Beim Vergleich von Zeichen Typ CHAR erfolgt die Auswertung entsprechend der ASCH Zeichenfolge e SSTIME Variablen sind nicht vergleichbar e Wenn beide Operanden vom Typ DT oder STRING sind m ssen Sie mit den entsprechenden IEC Funktionen verglichen werden SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Anweisungen Ausdr cke und Operatoren Beispiele Die folgenden Beispiele veranschaulichen die Bildung der Vergleichs ausdr cke Das Ergebnis des Vergleichausdrucks wird negiert IF NOT ZAEHLER gt 5 THEN EE OORE END_IF Das Ergebnis des ersten Vergleichsausdrucks wird negiert und mit dem Ergebnis des zweiten konjugiert A NOT ZAEHLER1 4 AND ZAEHLER2 10 D
316. tionen 222eensseeneneenen nennen 19 _ Aufrufschnittstelle Huusennunennnn nun nennen nennen en nenn 19 1 Aufrufschnitistelle 222222222 nennen nennen nennen 19 2 bergabeschnittstelle zu OB 2 222ceceaeeeeeeeeeenennnn Anh nge A Formale Sprachbeschreibung zHeusnssnnnnnn nn nn nun nennen A 1 bersicht a n ununun arenaene rarna rran BESSERE RER A 2 A 2 bersicht Terminale ae sa a nehten A 5 A 3 Terminale der lexikalischen Regeln 22esnenseeenen nn A 6 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 xl Inhaltsverzeichnis xii A 4 Formatierungs Trennzeichen und Operatoren sssssessansnnaa A 7 A 5 Schl sselw rter und vordefinierte Bezeichner 2 2222 200 A 9 A 6 Operandenkennzeichen und Bausteinschl sselw rter A 12 A 7 bersicht Non Terminale 2 2 2ncseaneeneeeneennnnnnnn A 14 A 8 bersicht Token sets sense reden A 14 A 9 Bezeichner ssiiuuiidsia ee a ia aiia a iai A 15 A 10 Namensvergabe bei SCL uasuneenunnennn nenna nrnna A 16 A 11 Vordefinierte Konstanten und Flags sasea A 18 Lexikalische Regeln uuunnnunnnnnn nun nennen nen B 1 BEZEichnungen u uud B 1 1 Eitferaleeie see ae eek B 1 2 Absolutadressierung B 2 Kommentare 2222 2se ss nennanen nennen nennen nennen nen B 3 Bausteinattribute 22H222 nennen nenne een een nn Syntaktisc
317. tionen erzeugen ja nein Test Informa tionen sind zum Testen mit dem Hochsprachen Debugger notwendig e OK Flag setzen Zur Laufzeit soll jede fehlerhafte Operation die OK Va riable auf FALSE setzen e Maximale Stringl nge Standardl nge des Datentyps STRING redu zieren Die Standardl nge betr gt in der Grundeinstellung 254 Zeichen Um die Ressourcen Ihrer CPU besser zu nutzen k nnen Sie die Standard l nge hier reduzieren e Geschachtelte Kommentare zulassen In der SCL Quelle d rfen meh rere Kommentare ineinander geschachtelt werden ja nein Im Register Baustein erzeugen haben Sie weitere M glichkeiten den bersetzungsvorgang zu beeinflussen e Sie k nnen einstellen ob bereits existierende Bausteine beim bersetzen berschrieben werden sollen oder nicht e Sie k nnen automatisch beim bersetzen einer Quelle Referenzdaten erzeugen lassen Ist diese Option angeklickt verl ngert sich allerdings der bersetzungsvorgang e Die Option Systemattribut S7_server ber cksichtigen klicken Sie an wenn der Baustein f r die Meldungs oder Verbindungsprojektierung relevant ist Auch diese Option verl ngert den bersetzungsvorgang Sie haben zwei M glichkeiten den bersetzungsvorgang anzusto en e W hlen Sie den Men befehl Datei bersetzen e Klicken Sie das Symbol bersetzen in der Funktionsleiste an Um sicherzugehen da Sie immer die neuste Version Ihrer SCL Quelle bersetzen is
318. trukturierter Zugriff auf Datenbausteine Prinzip Beispiele 12 12 Der strukturierte Zugriff erfolgt ber eine Wertzuweisung an eine typgleiche Variable ZEIT_1 DB11 TAGESZEIT Einfache Variable DB Bezeichnung Typgleiche Variable Die Variable in dem Datenbaustein referenzieren Sie indem Sie den DB Namen und getrennt durch einen Punkt den Namen der einfachen Variablen angeben Die Syntax dazu ist im Bild 12 6 beschrieben Die Einfache Variable steht f r eine Variable der Sie bei der Vereinbarung einen elementaren oder einen zusammengesetzten Datentyp zugeordnet haben Im Vereinbarungsteil des FB10 VAR Ergebnis STRUCT ERG1 INT ERG2 WORD END_STRUCT END_VAR Anwenderdefinierter Datentyp UDT1l YPE UDT1 STRUCT ERG1 INT ERG2 WORD END_STRUCT DB20 mit anwenderdefiniertem Datentyp DB20 UDT1 BEGIN DB30 ohne anwenderdefinierten Datentyp DB30 STRUCT ERG1 INT ERG2 WORD END_STRUCT BEGIN Beispiel 12 6 Vereinbarung der Daten f r die Datenbausteine Funktionsbaustein mit den Zugriffen FB10 DB10 ERGWORT_A DB10 Ergebnis ERG2 ERGWORT_B DB20 ERG2 ERGWORT_C DB30 ERG2 Beispiel 12 7 Zugriff auf die Daten der Datenbausteine SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Ausdr cke Operatoren und Operanden bersicht Ein Ausdruck steht f r einen Wert
319. ts an den rechten Rand schieben dann die nicht ben tigten Stellen mit AND ausblenden Bild 2 10 Algorithmus zum Erfassen der Me werte SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 2 15 Entwerfen eines SCL Programms Anweisungsteil Bild 2 11 zeigt die Formulierung des in Bild 2 10 dargestellten Flu von ERFASSEN diagrammes in SCL d h den Anweisungsteil des Codebausteins BEGIN Teil T Erfassung der Me werte kkkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkkxkkxkxkxkxx k Bei nderung von neuwert erfolgt Eingabe des Me werts Mit Operation MOD wird ein Ringpuffer f r Me werte realisiert IF neuwert lt gt altwert THEN zeiger zeiger MOD ANZAHL messwerte zeiger messwert_ein zeiger zeiger 1 END_IF altwert neuwert Teil 2 Sortierung und Berechnung ansto en EREA kkk iiw k Fkk Kikk A KR kkk Bei nderung von neusort Ansto zum Sortieren des Ringpuffers und zur Ausf hrung von Berechnungen mit den Me werten Ergebnisse werden in einem neuen Feld rechenpuffer gespeichert IF neusort lt gt altsort THEN zeiger 0 Ringpufferzeiger r cksetzen auswerte_instanz sortierpuffer messwerte AUSWERTEN aufrufen END_IF altsort neusort ergebnispuffer auswerte_instanz rechenpuffer Quadrat und Wurzel Teil 3 Codierung auswerten und Ausgabe vorbereiten FFrrrrrr kkk kkk kkk k kkk Bei nderung vo
320. tzuweisungen f r Felder sollen anhand der nachstehenden Beispiele verdeutlicht werden FUNCTION_BLOCK FB3 VAR SOLLWERTE ARRAY 0 127 OF INT ISTWERTE ARRAY 0 127 OF INT Vereinbarung einer Matrix zweidimensionales Feld mit 3 Zeilen und 4 REGLER ARRAY 1 Spalten 3 1 4 OF INT Vereinbarung eines Vektors eindimensionales Feld mit 4 Komponenten REGLER_1 ARRAY ND_VAR amp BEGIN 1 4 OF INT Zuweisung eines kompletten Feldes zu einem Feld SOLLWERTE ISTW Zuweisung eines Vek des Feldes REGLER REGLER 2 REG ERTE tors zu der zweiten Zeil ER_1 Zuweisung einer Feld Feldkomponente des F komponente zu einer ldes REGLER END_FUNCTION_BLOCK REGLER 1 4 R EGLER_1 4 Beispiel 14 3 Wertzuweisungen f r Felder SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 14 7 Wertzuweisungen 14 5 Wertzuweisungen mit Variablen vom Typ STRING STRING Variable Eine Variable vom Datentyp STRING enth lt eine Zeichenkette von maximal 254 Zeichen Zuweisung Jeder Variablen vom Datentyp STRING kann eine andere typengleiche Variable zugewiesen werden G ltige Zuweisungen sind stringvariable_l Stringliteral stringvariable_1l stringvariable_2 Beispiel Die Wertzuweisungen
321. uellen Parameter zu bergeben SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Globale Anwenderdaten Speicherbereiche einer CPU Globale Anwenderdaten sind Daten bzw Datenbereiche die Sie von jeder Programmstelle aus nutzen k nnen Dazu m ssen Sie Datenbausteine DB erstellen Wenn Sie einen DB erstellen legen Sie in einer Strukturvereinbarung seinen Aufbau fest Anstelle einer Strukturvereinbarung kann auch ein anwender definierter Datentyp UDT verwendet werden Die Reihenfolge in der Sie die Strukturkomponente angeben bestimmt die Reihenfolge der Daten in dem DB Auf die Speicherbereiche einer CPU k nnen Sie ber die Operandenkenn zeichen siehe Kapitel 7 5 direkt von jeder Programmstelle aus zugreifen ohne da Sie diese Variablen vereinbaren m ssen Sie haben dar ber hinaus immer die M glichkeit diese Datenbereiche auch symbolisch anzusprechen Die Symbolzuordnung erfolgt in diesem Fall global ber die Symboltabelle in STEP 7 Informationen hierzu finden sie in 231 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 7 15 Allgemeine SCL Grundbegriffe 7 9 Ausdr cke bersicht Arithmetischer Ausdruck Vergleichs ausdr cke Logischer Ausdruck 7 16 Ein Ausdruck steht f r einen Wert der entweder bei der bersetzung oder zur Laufzeit des Programms berechnet wird Er besteht aus einem oder mehreren Op
322. und damit die Anweisungs folge bersprungen Hinweis Beachten Sie da die Anweisung END_FOR mit einem Semikolon abzu schlie en ist SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Kontrollanweisungen Anfangszuweisung F r die Bildung des Startwertes der Laufvariablen steht die in Bild 15 5 dar gestellte Anfangszuweisung zur Verf gung Anfangszuweisung einfache m Ge Variable u vom Datentyp INT DINT Bild 15 5 Syntax Anfangszuweisung Beispiele FOR I FOR I 1 TO 20 DO 1 TO AnfangtJ DO Basis Ausdruck f r Anfangswert Endwert und F r die Bildung des Endwertes und der gew nschten Schrittweite k nnen Sie Schrittweite jeweils einen Basisausdruck bilden Regeln F r die FOR Anweisung gelten folgende Regeln e Die Angabe von BY Schrittweite kann entfallen Ist keine Schritt weite spezifiziert dann betr gt sie 1 e Anfangswert Endwert und Schrittweite sind Ausdr cke siehe Kapitel 13 Die Auswertung erfolgt einmalig am Beginn der Ausf hrung der FOR Anweisung e Eine Ver nderung der beiden Werte f r Endwert und Schrittweite w hrend der Ausf hrung der Schleife ist nicht erlaubt Beispiel Beispiel 15 3 veranschaulicht den Gebrauch der FOR Anweisung FUNCTION_BLOCK SUCHEN VAR INDEX INT KENNWORT ARRAY 1 50 OF STRING END_VAR BEGIN FOR INDEX 1 TO 50 BY 2 DO IF KENNWORT INDEX KEY THEN E
323. ung der m glichen Bausteinarten 2 3 3 Festlegung der Schnittstellen zwischen den Bausteinen 2 3 4 Festlegung der Ein Ausgabe Schnittstelle 22222ceeennen 2 3 5 Bausteine programmieren 2u22 sense nennen rennen en 2 4 Erstellen des Organisationsbausteins ZYKLUS rssrs 0 2 5 Erstellen des Funktionsbausteins ERFASSEN rssas 2 2 6 Erstellen des Funktionsbausteins AUSWERTEN 22 s22 0 2 7 Erstellen der Funktion QUADRAT 2 222neeeeneeeeneeeen nennen 2 8 Testdaten aiii a a wa na a ma a n nennen nennen een nn nen 3 Installieren der SCL Software uuuuuuenannunnnnen nennen nun nn 3 1 Autorisierung Nutzungsberechtigung sssaseaaraaaaaaa aan 3 2 Installieren Deinstallieren der SCL Software asssa neunana 3 4 Teil 2 Bedienen und Testen 4 B di nen von SCL u are eisernen 4 1 Starten der SCL Software sssus asuaan eaaa 4 2 4 2 Anpassen der Bedienoberfl che sssuunnaan nnana 4 3 4 3 Arbeiten mit dem SCL Editor a assa nun aaan eenen nennen 4 5 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 vii Inhaltsverzeichnis Programmieren mit SCL na nee 5 1 5 1 Erstellen von Anwenderprogammen in SCL asssaaassa nasaan 5 2 5 2 Anlegen und ffnen einer SCL Quelle 2 cccceeeecnenn 5 3 5 3 Eingeben von Vereinbarungen Anweisungen und Kommentaren 5 4 5 4 Speichern und Drucken e
324. utzerhandbuch STEP 7 Das Benutzerhandbuch STEP 7 erl utert Ihnen die prinzipielle Nutzung und die Funktionen der Automatisierungssoftware STEP 7 Als Erstanwender von STEP 7 ebenso wie als Kenner von STEP 5 verschafft Ihnen das Handbuch einen berblick ber die Vorgehensweise bei der Konfigurierung Programmierung und Inbetrieb nahme einer S7 300 400 Beim Arbeiten mit der SW K nnen Sie gezielt auf die Online Hilfe zugreifen die Ihnen Unterst tzung zu den Detailfragen der SW Nutzung bietet Umsteigerhandbuch Von S5 nach S7 Das Benutzerhandbuch Von S5 nach S7 ben tigen Sie wenn Sie vorhandene S5 Programme konvertieren wollen um diese dann in S7 CPUs zum Ablauf zu brin gen Das Handbuch gibt Ihnen einen berblick ber die Vorgehensweise und die Nutzung des Konverters die detaillierte Bedienung der Konverterfunktionen entnehmen Sie bitte der Online Hilfe Ebenso erhalten Sie ber die Online Hilfe die Schnittstellen beschreibung der verf gbaren konvertierten S7 Funktionen Handb cher AWL KOP FUP SCL Die Handb cher zu den Sprachpaketen AWL KOP FUP und SCL enthalten sowohl die Benutzeranleitungen als auch die Sprachbeschreibung Sie ben tigen f r die Programmierung einer S7 300 400 nur eine der Sprachen k nnen aber auch bei Bedarf die Sprachen innerhalb eines Projektes mischen F r den erstmaligen Einsatz der Sprachen ist es empfehlenswert sich anhand des Programmierhandbuchs Programmentwur
325. von der CPU abh ngig S BOOL Starteingang TV S5TIME Voreinstellung Zeitwert BCD Format R BOOL R cksetzeingang Q BOOL Status der Zeit BI WORD Rest Zeitwert bin r Der im Beispiel 17 4 genannte Aufruf bewirkt bei seiner Abarbeitung da ein globaler Speicherbereich vom Typ TIMER mit dem Namen T10 reserviert wird VERZ GERUNG Beispiel SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 S_ODT T_NO T10 S TRUE TV T ls R FALSE BI biVal Q actFlag 17 4 Aufruf einer Z hlfunktion abw rts 17 11 Zeiten und Z hler Dynamischer Aufruf Regeln 17 12 Anstelle der absoluten Zeitglied Nummer z B T10 k nnen Sie auch eine Variable mit dem Datentyp TIMER beim Aufruf angeben Das hat den Vorteil da Sie den Zeitgliedaufruf dynamisch gestalten k nnen indem Sie dieser Variablen bei jedem Aufruf eine andere absolute Nummer zuweisen Beispiel FUNCTION_BLOCK ZEITGEBER VAR_INPUT meineZeit timer END_VAR currTime S_ODT T_NO meineZeit Da die Parameterwerte global gespeichert sind ist ihre Angabe in bestimmten F llen optional Die folgenden allgemeinen Regeln sind bei der Parameterver sorgung zu beachten e Der Parameter f r die Zeitgliedbezeichnung T_NO mu beim Aufruf in symbolischer oder absoluter Form versorgt werden e Die Angabe der Parameter TV Vorbesetzwert und S
326. weisung die die EXIT Anweisung unmittelbar umgibt Die Ausf hrung des Programms wird nach dem Ende der Wiederholungs schleife z B nach END_FOR fortgesetzt Beispiel Beispiel 15 7 veranschaulicht den Gebrauch der EXIT Anweisung FUNCTION_BLOCK_EXIT VAR INDEX_1 INT INDEX_2 INT INDEX_GESUCHT INT KENNWORT ARRAY 1 51 OF STRING END_VAR BEGIN INDEX_2 0 FOR INDEX_1 1 TO 51 BY 2 DO Verlassen der FOR Schleife wenn KENNWORT INDEX_1 gleich KEY ist IF KENNWORT INDEX_1 KEY THEN INDEX_2 INDEX_1 EXIT END_IF END_FOR Die folgende Wertzuweisung kommt nach der Ausf hrung von EXIT oder nach dem regul ren Ende der FOR Schleife zur Ausf hrung INDEX_GESUCHT INDEX_2 END_FUNCTION_BLOCK Beispiel 15 7 EXIT Anweisung SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 15 13 Kontrollanweisungen 15 9 GOTO Anweisung Prinzip Regeln 15 14 Mit einer GOTO Anweisung k nnen Sie einen Programmsprung realisieren Sie bewirkt den sofortigen Sprung zu einer angegebenen Sprungmarke und damit zu einer anderen Anweisung innerhalb desselben Bausteines GOTO Anweisungen sollten nur in Sonderf llen z B Fehlerbearbeitung ein gesetzt werden Nach den Regeln der strukturierten Programmierung sollte die GOTO Anweisung nicht verwendet werden GOTO Anweisung Sprungmarke Bild 1
327. weisungen f r Absolutvariablen sollen anhand der nachstehenden Beispiele verdeutlicht werden FUNCTION_BLOCK_FB1O VAR STATUSWORT1 WORD STATUSWORT2 BOOL STATUSWORT3 BYTE STATUSWORT4 BOOL ADRESSE INT 10 END_VAR BEGIN Zuweisung eines Eingangsworts an eine Variable einfacher Zugriff STATUSWORT1 EWA Zuweisung eines Ausgangskbits an eine Variable einfacher Zugriff STATUSWORT2 al 1l Zuweisung eines Eingangsbytes an eine Variable indizierter Zugriff STATUSWORT3 EB ADRESSE Zuweisung eines Eingangskits an eine Variable indizierter Zugriff FOR ADRESSE 0 TO 7 BY 1 DO STATUSWORT4 e l ADRESSE END_FOR END_FUNCTION_BLOCK Beispiel 14 6 Wertzuweisungen f r Absolutvariablen SCL f r S7 300 400 Bausteine programmieren 14 10 C79000 G7000 C522 01 Wertzuweisungen 14 8 Wertzuweisungen mit globalen Variablen Variablen in DB Auch der Zugriff auf globale Variablen in Datenbausteinen erfolgt mittels einer Wertzuweisung an typgleiche Variablen oder umgekehrt Sie haben die M glichkeit strukturiert absolut oder indiziert zuzugreifen Kapitel 12 DB Variable Operandenkennzeichen DB Gr en BEZEICHNUNG D Pr fix Adresse gt Bild 14 3 Syntax DB Variable Zuweisung Sie k nnen jeder globalen Variablen eine typengleiche Variable oder einen typ gleichen Ausd
328. wender programm Attribut Aufrufhierarchie Bei der absoluten Adressierung wird die Adresse des zu bearbeitenden Operanden angegeben Beispiel Die Adresse A 4 0 bezeichnet das Bit 0 im Byte 4 des Proze abbilds der Ausg nge Bei der symbolischen Adressierung wird der zu bearbeitende Operand symbolisch angegeben anstelle einer Adresse Aktualparameter ersetzen beim Aufruf eines Funktionsbausteins FB oder einer Funktion FC die Formalparameter Beispiel Der Formalparameter Start wird ersetzt durch den Aktual parameter E 3 6 Eine Anweisung ist die kleinste selbst ndige Einheit eines in einer textuellen Sprache erstellten Anwenderprogramms Sie stellt eine Arbeitsvorschrift f r den Prozessor dar Die Anweisungsliste AWL ist eine maschinennahe textuelle Programmier sprache Das Anwenderprogramm enth lt alle Anweisungen und Deklarationen f r die Signalverarbeitung durch die eine Anlage oder ein Proze gesteuert werden k nnen Es ist einer programmierbaren Baugruppe z B CPU FM zugeordnet und kann in kleinere Einheiten Bausteine strukturiert werden Ein Attribut ist eine Eigenschaft die z B an eine Bausteinbezeichnung oder einen Variablennamen angeh ngt werden kann Bei SCL gibt es z B Attribute f r folgende Angaben Baustein berschrift Ausgabestand Bausteinschutz Autor Bausteinname Bausteinfamilie Alle Bausteine m ssen erst aufgerufen werden ehe sie bearbeitet werden k nnen Die Rei
329. z pr fung davorschalten oder die berpr fung vom System durchf hren lassen indem Sie bei der bersetzung die OK Option einschalten Das System setzt dann in den F llen in denen das Ergebnis undefiniert ist die OK Variable auf FALSE F r die Auswertung m ssen Sie selbst sorgen Tabelle 18 3 Datentyp Konvertierungs Funktionen der Klasse B Funktionsname Konvertierungsregel OK BYTE_TO_BOOL Kopieren des niedrigstwertigen Bits J BYTE_TO_CHAR bernahme des Bitstrings N CHAR_TO_BYTE bernahme des Bitstrings N CHAR_TO_INT Der im Eingangsparameter vorhandene Bitstring N wird in das niedrigerwertige Byte des Funktions wertes eingetragen Das h herwertige Byte wird mit Nullen aufgef llt DATE_TO_DINT bernahme des Bitstrings N DINT_TO_DATE bernahme des Bitstrings J DINT_TO_DWORD bernahme des Bitstrings N DINT_TO_INT Kopieren des Bits f r das Vorzeichen J Der im Eingangsparameter vorhandene Wert wird im Datentyp INT interpretiert Wenn der Wert kleiner als 32 _768 oder gr er als 32 _767 ist dann wird die OK Variable gleich FALSE gesetzt DINT_TO_TIME bernahme des Bitstrings N DINT_TO_TOD bernahme des Bitstrings J DWORD_TO_BOOL Kopieren des niedrigstwertigen Bits J DWORD_TO_BYTE Kopieren der 8 niedrigstwertigen Bits J DWORD_TO_DINT bernahme des Bitstrings N DWORD_TO_REAL bernahme des Bitstrings N DWORD_TO_WORD Kopieren der 16 niedrigstwertigen Bits
330. z B f r die Programmierung von Kommunikationsfunktionen genutzt werden Jeder Baustein besteht aus folgenden Teilen e Bausteinkopfanfang ende Schl sselwort entsprechend der Bausteinart e Vereinbarungsteil e Anweisungsteil wird bei Datenbausteinen als Zuweisungsteil bezeichnet SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Allgemeine SCL Grundbegriffe Vereinbarungsteil Anweisungsteil S7 Programm Im Vereinbarungsteil m ssen s mtliche Festlegungen getroffen werden die als Basis f r den Anweisungsteil notwendig sind z B Definition von Konstanten und Vereinbarung von Variablen und Parametern Der Anweisungsteil kann optional durch das Schl sselwort BEGIN eingeleitet werden Er endet mit dem Standardbezeichner f r das Bausteinende END_xxx siehe Kapitel 8 2 Jede Anweisung wird mit einem Semikolon abgeschlossen Optional kann vor jeder Anweisung eine Sprungmarke Label stehen Die Syntax des Anweisungsteils und der Einzelanweisungen finden Sie in Kapitel 13 Anweisungsteil en oe ol Sprungmarke Bild 7 7 Syntax Anweisungsteil Hier ein Beispiel f r den Anweisungsteil eines FB Ende Vereinbarungsteil BEGIN BEGIN des Anweisungsteils x X 1l LABELI Y Y 10 Z XY GOTO LABEL1 ABELn Ende des Anweisungsteils END_FUNCTION_BLOCK Im Anweisungsteil eines Datenbausteins k nnen
331. zeichen und Adresse einen symbolischen Namen f r die Adressierung eines CPU Speicherbereiches Symbol Operand Datentyp Kommentar Motorkontakt E17 BOOL Kontaktschalter I f r Motor Al Eingang EW 10 INT Eingangsstatuswort Eingangsbytel EB 1 BYTE Eingangsbyte Eingang 1 1 EII BOOL Lichtschranke Messkan le MW 2 WORD Messwertpuffer Die Zuordnung der symbolischen Namen zu den jeweiligen Operanden Ihres Anwenderprogrammes f hren Sie durch indem Sie eine Symboltabelle erstellen Als Datentypangabe sind alle elementaren Datentypen zugelassen sofern sie die Zugriffsbreite aufnehmen k nnen Der Zugriff erfolgt z B ber eine Wertzuweisung an eine typgleiche Variable mit der vereinbarten Symbolik MESSWERT_1 Motorkontakt Das Erstellen der Symboltabelle und die Werteingabe in die Symboltabelle erfolgt mit STEP 7 Sie k nnen die Symboltabelle mit dem SIMATIC Manager oder direkt mit SCL ber den Men befehl Extras Symboltabelle ffnen Dar berhinaus ist es m glich als Textdatei vorliegende Symboltabellen die mit beliebigen Texteditoren erstellt sein k nnen zu importieren und weiter zubearbeiten Informationen hierzu finden Sie in 231 Einige Beispiele f r den symbolischen Zugriff STATUSBYTE Eingangsbyte STATUS_3 Eingang 1 1 Messwert Messkan le Beispiel 12 2 Symbolischer Zugriff SCL f r S7 300 400 Bausteine progr
332. zen Informationen zu einzelnen IEC Funktionen finden Sie in 235J Im Beispiel 18 2 ist eine explizite Konvertierung notwendig da der Zieldaten typ weniger m chtig ist als der Quelldatentyp FUNCTION_BLOCK FB10 VAR SCHALTE INT REGLER DINT END_VAR BEGIN SCHALTER DINT_TO_INT REGLER INT ist weniger m chtig als DINT Beispiel 18 2 SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 END_FUNCTION_BLOCK Zieldatentyp pa t nicht zum Quelldatentyp 18 5 SCL Standardfunktionen und Standardfunktionsbausteine Im Beispiel 18 3 ist eine explizite Datentyp Konvertierung notwendig da der Datentyp REAL f r einen arithmetischen Ausdruck mit dem Operartor MOD nicht zul ssig ist FUNCTION_BLOCK FB20 VAR intwert INT 17 KONV2 INT END_VAR BEGIN KONV2 intwert MOD REAL_TO_INT 2 3 MOD darf nur auf Daten vom Typ INT oder DINT angewendet werden END_FUNCTION_BLOCK Beispiel 18 3 Konvertierung wegen unzul ssigem Datentyp Im Beispiel 18 4 ist eine Konvertierung notwendig da nicht der richtige Daten typ f r einen logischen Operator vorliegt Der Operator NOT darf nur auf Daten vom Typ BOOL BYTE WORD oder DWORD angewendet werden FUNCTION_BLOCK FB30 VAR intwert INT 17 KONV1 WORD END_VAR BEGIN KONV1 NOT INT_TO_WORD intwert NOT darf nicht auf Daten vom Typ INT angewendet werden
333. zifikation Komponentennamen innerhalb von Strukturen Nicht bei Initialisierung BEZEICHNER as initialisierung Q SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 0 5 Syntaktische Regeln Tabelle C 3 Syntax der Vereinbarungsbl cke Fortsetzung Regel Syntaxdiagramm Datentyp Initialisierung ER einfacher Daten Initialisierung Konstante H gt Feld N 2 Initialisierungsliste Feld Initialisierungs Konstante H liste Feld Initialisierungsliste Konstante H a DEZIMALZIFFERNFOLGE H J O gt Wiederholungsfaktor Feld Initialisierungsliste Q FB s m ssen Instanzdeklaration bereits existieren FB BEZEICHNUNG BEZEICHNER C lt gt Lokaler Instanzname Q SFB BEZEICHNUNG Tempor rer Variablenblock Variablen VAR_TEMP deklaration END_VAR gt Keine Initialisierung m glich SCL f r S7 300 400 Bausteine programmieren C 6 C79000 G7000 C0522 01 Syntaktische Regeln Tabelle C 3 Syntax der Vereinbarungsbl cke Fortsetzung Regel Syntaxdiagramm VAR_INPUT J VAR_OUTPUT Variablen END_VAR gt gt 7 deklaration lt VAR_IN_ OUT Initialisierung nur m glich f r VAR_INPUT und VAR_OUTPUT Parameterblock i Datentyp S
334. zur FOR Anweisung Schleifenbearbeitung FUNCTION Einleitung der Funktion Funktion FUNCTION_BLOCK Einleitung des Funktionsbausteins Funktionsbaustein GOTO Anweisung zur Durchf hrung eines Sprungs zu Programmsprung IF Einleitung Kontrollanweisung f r Selektion IF Anweisung INT Elementarer Datentyp f r Ganzzahl Integer Numerischer Datentyp einfacher Genauigkeit LABEL Einleitung des Sprungmarkenblocks Sprungmarkenblock MOD Arithmetischer Operator f r Divisionsrest Arithmetischer Basisoperator einfache Multiplikation NIL Nullpointer NOT Logischer Operator geh rt zu den Un ren Ausdruck Operand Operatoren OF Einleitung der Datentypspezifikation Array Datentyp Spezifikation CASE Anweisung OK Flag das aussagt ob die Anweisungen eines Bausteins fehlerfrei abgearbeitet wurden OR Logischer Operator Logischer Basisoperator ORGANIZATION _ Einleitung des Organisationsbausteins Organisationsbaustein BLOCK SCL f r S7 300 400 Bausteine programmieren C79000 G7000 C522 01 Formale Sprachbeschreibung Tabelle A 7 SCL Schl sselw rter und vordefinierte Bezeichner alphabetisch geordnet Schl sselw rter Beschreibung Syntaktische Regel POINTER Zeiger Datentyp nur erlaubt in Parameterdekla siehe Kapitel 10 ration im Parameterblock wird nicht in SCL bearbeitet REAL Elementarer Datentyp Numerischer Datentyp REPEAT Ei

Download Pdf Manuals

image

Related Search

Related Contents

  PFC - David Rodriguez Munoz  Pneumatics Catalog Selection Guide  Scotland's Environment Web User Guide  STARTPACK TRUCK  

Copyright © All rights reserved.
Failed to retrieve file