Einführung SPS-Programmierung - Beuth Hochschule für Technik
Transcription
Einführung SPS-Programmierung - Beuth Hochschule für Technik
Beuth Hochschule für Technik Berlin Fachbereich VI - Informatik und Medien Labor für Automatisierungstechnik, B054 WiSe 2010/2011 CAM – Computer Aided Manufacturing – Labor – Studiengang Technische Informatik H. Linnemann Kurzeinführung in die SPS-Programmierung nach ISO DIN EN 61131 1. Zyklische Arbeitsweise einer SPS Ein wichtiges Merkmal der SPS ist ihre zyklische Arbeitsweise. Das Programm selbst arbeitet auf den intern im RAM abgelegten Abbildern der Ein- und Ausgänge. Daher kann ein SPSProgramm auch wie ein Schaltnetz betrachtet werden. Es ist wichtig, dass die zyklische Arbeitsweise programmtechnisch nicht „unterlaufen“ wird, beispielsweise durch Rückwärtssprünge oder Schleifen. Systemstart •Initialisierung Systemverwaltung •Selbstdiagnose •Kommunikationsanforderungen Verzögerungszeit: Signalanstiegszeiten Eingangsfilter Lesen der Eingänge Ein Zyklus Abarbeiten des Programms Prozess Anweisung 1 Anweisung 2 … Anweisung n M Schreiben der Ausgänge Verzögerungszeit: Anstiegs- u. Abfallzeiten der Verstärker 2. SPS - Programmiersprachen Ältere Sprachen nach DIN 19239 bzw. VDI 2880 ISO DIN EN 61131-3 AWL – Anweisungsliste IL – Instruction List LD eingang_1 AND eingang_2 ST ausgang_0 ST ST – Strukturierter Text – Structured Text C := A AND NOT B KOP LD – Kontaktplan – Ladder Diagram FBS – FunktionsbausteinSprache – Function Block Diagram FBD AS SFC – Ablaufsprache – Sequential Function Chart Einführung SPS-Programmierung.doc AWL – Anweisungsliste eing_1 eing_2 ausg_0 KOP – Kontaktplan eing_1 eing_2 Schritt 1 & ausg_0 Behälter füllen Behälter voll? Schritt 2 Flüssigkeit rühren Nur für Lehrzwecke FUP – Funktionsplan Funktionsplan nach DIN 40719, Teil 6 Seite 1 von 4 3. Grundlagen der SPS-Programmierung nach ISO / DIN EN 61131 3.1 Auswahl wichtiger SPS-Befehle: Operatoren LD LDN AND ANDN AND( ANDN( OR ORN OR( ORN( XOR XORN XOR( XORN( ST STN S R ) JMP JMPC JMPCN Auswirkung auf aktuelles Ergebnis (AE) im Akku Erzeugen Weiter verarbeiten Undefiniert setzen Weiter verarbeiten Undefiniert setzen Weiter verarbeiten Undefiniert setzen Unverändert Unverändert Unverändert Unverändert Unverändert oder undefiniert Unverändert Unverändert Erklärung Lädt Operand in AE (Aktuelles Ergebnis, 1 Bit Akku) Lädt Operand negiert in AE UND-Verknüpfung des Operanden mit AE UND-Verknüpfung des negierten Operanden mit AE Operanden mit AE verknüpfen (Klammer auf) Operanden mit AE verknüpfen (Klammer auf) ODER-Verknüpfung des Operanden mit AE ODER-Verknüpfung des negierten Operanden mit AE Operanden mit AE verknüpfen (Klammer auf) Operanden mit AE verknüpfen (Klammer auf) Exklusiv-ODER-Verknüpfung des Operanden mit AE Exklusiv-ODER-Verknüpfung des negierten O.m. AE Operanden mit AE verknüpfen (Klammer auf) Negierten Operanden mit AE verknüpfen (Kl. auf) Speichert AE in den Operanden Speichert AE negiert in den Operanden Setzt Operand auf TRUE, wenn AE = 1 Setzt Operand auf FALSE, wenn AE = 1 Schließen der Klammerebene Unbedingter Sprung zu einer Marke Sprung zur Marke, wenn VE = 1 Sprung zur Marke, wenn VE = 0 Den kompletten Befehlssatz mit detaillierten Beschreibungen können Sie mittels der Hilfe des Programmierwerkzeugs Sucosoft einsehen. Ebenso die Befehle für Wortverarbeitung (Integer, Real, ADD, SUB, Vergleiche usw.). Hier Programmierung Schrittkette einfügen Einführung SPS-Programmierung.doc Nur für Lehrzwecke Seite 2 von 4 3.2 Funktionsbaustein Zeitgeber (Timer) – TON: Einschaltverzögerung Das Einschalten am Eingang „IN“ schaltet den Ausgang „Q“ ein, verzögert um die vorgegebene Zeitdauer. Die steigende Flanke von „IN“ startet den Zeitgeber „TON“ für die Dauer der über „PT“ vorgegebenen Zeit. Während der laufenden Zeit hat „Q“ den Zustand „0“. Nach Ablauf der Zeit wechselt „Q“ auf „1“ und hält, bis „IN“ auf „0“ wechselt. „ET“ zeigt den aktuellen Zeitwert an. Ist die Zeit abgelaufen, behält „ET“ den Wert, solange „IN“ den Zustand „1“ führt. Wenn „IN“ auf „0“ schaltet, wechselt der Wert von „ET“ auf „0“. Wechselt „IN“ während der laufenden Zeit auf „0“, wird der Vorgang abgebrochen und „ET“ nimmt wieder den Wert „0“ an. Prototyp: Beispiel: Um 777 ms verzögert einschalten TON BOOL IN TIME PT Q ET BOOL TIME Operanden: IN Startbedingung PT Zeitwertvorgabe Q Binärer Zustand des Zeitgebers ET Aktueller Zeitwert PROGRAM zeit777ein VAR Timer2 : TON; Start AT %I0.0.0.0.0 : BOOL; Zeitdauer : TIME := T#777ms; Ausgang AT %Q0.0.0.0.0 : BOOL; Istzeit : TIME; END_VAR CAL Timer2(IN := Start, PT := Zeitdauer) LD Timer2.Q ST Ausgang LD Timer2.ET ST Istzeit Beschreibung: IN Q T (PT) END_PROGRAM T (PT) 4. Programmerstellung für SPS Programm erstellen KOP FBS AS ST AWL Editor KOP, FBS, AS zu AWL-Compiler Diskette oder Festplatte Compiler (erzeugt Maschinencode) SPS Ggf. Binden (Linken) einzelner Module zu einem Gesamtprogramm Übertragen in die SPS Einführung SPS-Programmierung.doc DatenübertragungsProgramm Nur für Lehrzwecke Seite 3 von 4 5. Einführung in SPS-Programmierumgebung „Sucosoft, Fa. Klöckner Möller“ 1. Sucosoft-Navigator-Ikone anklicken: Navigator-Fenster öffnet sich 2. Neues Projekt anlegen mit Menü: Projekt Neu Im Dialogfenster erscheint beispielsweise C:\Labor Neuer Ordner anklicken und OK anklicken Projektname eingeben: z.B. Versuch1 OK anklicken SPS-Typ anwählen (ist auf der SPS angegeben) 3. Anwenderprogramm erstellen: Navigator-Fenster, Menü Werkzeuge POE-Editor (POE = Programm-Organisations-Einheit) POE-Typ anwählen: Hier Schaltfläche „P“ (Programm) Zwei Fenster öffnen sich: Deklarationsteil und Anweisungsteil 4. Deklarationsfenster ausfüllen: Syntax-Modus anwählen Unterer Registerreiter: Lokal anklicken Jetzt die Tabelle füllen, z.B.: Name Typ Adresse Kommentar EingangA BOOL %I0.0.0.0.0 SPS-Eingang A EingangB BOOL %I0.0.0.0.1 SPS-Eingang B AusgangA BOOL %Q0.0.0.0.0 SPS-Ausgang A 5. Anweisungsfenster ausfüllen: In Menüleiste bzw. Toolbox KOP (Kontaktplan) anwählen. Folgendes Programm eingeben: Schalten Sie anschließend in die EingangA AusgangA Darstellungen Anweisungsliste (AWL) und () Funktionsbausteinsprache (FBS) um. EingangB Welche Darstellung sagt Ihnen mehr zu? 6. Programm Speichern: Diskettensymbol anklicken POE-Name wird gefordert: Hier: Versuch1 7. Syntaxprüfung anwählen (Schaltfläche) ggf. Fehlermeldungen beachten und die Fehler korrigieren 8. Anwenderprogramm erzeugen In Navigator-Fenster gehen Menü: Werkzeug Generierung Generierliste neu Wenn obriges Menü leer ist: Werkzeug Topologie Datei neu: Erforderliche Gerätebezeichung von SPS ablesen, eintragen, dann „lokal erweitern“ und zusätzliche Komponenten ablesen, eintragen 9. Programmcode generieren Generierung alles generieren bzw. Projekt komplett neu generieren 10. Test und Inbetriebnahme: In Navigator-Fenster: „Verbindung Programmiergerät SPS aufbauen“ anklicken, dabei SPS-Typ sicherstellen und Voreinstellungen übernehmen Ankoppeln anklicken: Angekoppelt erscheint 11. Transfer anklicken und Datei Versuch1.PCD wählen Übertragen SPS anklicken Fenster schließen 12. Programm in SPS starten: Werkzeug Test und Inbetriebnahme wählen Programm Status … anklicken. Dialogfeld erscheint An der SPS: CPU in Stellung RUN Am PC: „Kaltstart“ erscheint; Kaltstart anklicken 13. Programm an der SPS mit Schalter und Meldeleuchte testen 14. Testfenster: POE-Editor online anwählen (grünes Symbol ganz links) Fenster Programm erscheint Resource: Das ist die SPS Instanz: Da steht der Programm-Name Programmname Versuch1 ganz links im rechten Fenster anklicken Schaltfläche „Anzeigen-Ändern wählen ganz rechts drei Schaltflächen: Zustandsanzeige wählen Programm testen und Bildschirm beobachten in KOP und AWL (Wenn die Anzeige „flackert“: Schaltfläche rechts neben den Fenstersymbolen klicken) Einführung SPS-Programmierung.doc Nur für Lehrzwecke Seite 4 von 4