Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 IEC - Grundlagen und Variablen Programmierstrategien der IEC 61131-3.

Ähnliche Präsentationen


Präsentation zum Thema: "1 IEC - Grundlagen und Variablen Programmierstrategien der IEC 61131-3."—  Präsentation transkript:

1 1 IEC - Grundlagen und Variablen Programmierstrategien der IEC

2 2 Programmierung nach IEC-Standard Vorteile: Bessere Übersichtlichkeit des Programms Wiederverwendbarkeit von Programmteilen durch Funktionen und Funktionsblöcken (dokumentiert und getestet) Erstellen einer eigenen Bibliothek Austausch von Bibliotheken zwischen verschiedenen Anwendern Der Programmierer kann Programmteile in anderen Programmiersprachen erstellen, z.B.: Strukturierten Text Globaler Standard Qualitätsverbesserung der SPS-Programme

3 3 Programmierung nach IEC-Standard In Sachen: Software-Qualität: Erlernte Programmiertechniken finden in unterschiedlichen industriellen Umgebungen wieder Verwendung Reduzierung von Missverständnissen und Fehlern Abgegrenzte Softwaremodule können einzeln ausgetestet werden (klare Schnittstellen)

4 4 IEC Allgemeine Elemente Software-Modell -Konfiguration -Resourcen -Tasks Programm-Organisations-Einheiten -Programme -Funktions-Blocks -Funktionen Datentypen & Variablen

5 5 Programme und Tasks nach IEC Tasks in der NJ sind zeitorientiert Es können mehrere Programme einer Task zugeordnet werden Programme einer Task werden nacheinander abgearbeitet POE = Programm- Organisations- Einheiten Resource

6 6 Task-Typen im NJ- Controller ArtBeschreibungAnzahlPriorität Primary Periodic Task Wird mit höhster Priorität ausgeführt! Beinhaltet PLC & Motion Engine sowie die EtherCAT Kommunikation 14 (fest). Periodic Task…wird in den Pausen des Primary Periodic Task ausgeführt ,17,18 Event Task (Units Ver.1.1) …wird abhängig von Bedingungen ausgeführt Steuerungsbefehlen Grenzwert überschreitungen Interrupt von CJ-series Unit (fest), 48 (fest) Execution priority 0 Execution priority 1 Execution priority 2 Hoch Niedrig

7 7 Unterschied FB und FUN (Funktion) Funktion: -Hat keinen Instanzspeicher, wie ein Befehl -Für einfache Berechnungen geeignet Funktionsblock: -Hat einen Instanzspeicher -benötigt einen Namen dafür -Kann sich Werte von der letzten Bearbeitung merken Kein Name benötigt Mit Name (Instanz) Mit Name (Instanz)

8 8 Variablen nach IEC-Standard Variable = (Name) + (Datentyp) + (Attribute) Die komplette NJ-Programmierung ist vollständig Variablen-orientiert Es gibt keine Adressen mehr Im Programm kommen nur noch (symbolische) Variablennamen vor. Es stehen alle IEC-Datentypen zur Verfügung Befehle funktionieren nur bei Variablen mit bestimmten Datentypen! (wie bei einer Hochsprache)

9 9 Variablen, globale und lokale Globale Variablen können überall verwendet werden. Lokale, interne Variablen, werden nur innerhalb des eigenen Programms verwendet

10 10 Tabelle der globalen Variablen Die Ein- und Ausgänge aus der E/A-Zuordnung und auch Achs-Variablen werden automatisch in die globale Symboltabelle eingetragen

11 11 Globale Variablen in Programmen Wird eine globale Variable in einem Programm benutzt, so wird sie dort automatisch als externe Variable deklariert, dies ist eine Besonderheit bei Sysmac Studio, da das sonst nur bei FBs üblich ist.

12 12 Lokale Variablen Die Werte von lokalen Variablen können außerhalb weder geschrieben noch gelesen werden Man kann in anderen Programmen den gleichen Namen noch einmal verwenden, es ist aber dann eine andere Variable und es stehen darauf andere Werte Project POE Algorithm Local variables table Internal variables Variable A Variable B Internal variables Variable A Variable B External Variable POE Algorithm Local variables table Internal variables Variable A Variable C Internal variables Variable A Variable C External Variable Man kann in anderen Programmen den gleichen Namen noch einmal verwenden, es ist aber dann eine andere Variable und es stehen darauf andere Werte Lokale, interne Variablen, werden nur innerhalb des eigenen Programms verwendet. OK NG Lokale, interne Variablen, werden nur innerhalb des eigenen Programms verwendet. OK

13 13 Lokale Variablen, Beispiel (In FBs gibt es verschiedene interne Variablentypen: Eingang, Ausgang, Ein/Aus) In jedem Programm (POE) gibt es eine lokale Symboltabelle

14 14 FB-Ausgangsvariablen im Programm FB-Ausgangsvariablen müssen nicht zusäztlich als Variablen definiert werden, sie können mit vorgesetztem Instanznamen und Punkt im Programm verwendet werden, -Jedoch nur lesend V1.0 Beschränkung: -Keine gleichen Symbolnamen in globalen und lokalen Symboltabellen!

15 15 Symbol-Attribute AttributeBeschreibung VariablennameName, um die Variable zu identifizieren. DatentypDatentyp und einen Wertebereich der Variable. AT - AdresseWenn eine feste E/A-Adresse einer CJ-Baugruppe als Variable verwendet wird. RemanentBehält Werte bei, wenn die Stromversorgung abgeschaltet wird. AnfangswertWird der Variable zugewiesen, in einer der nachfolgenden Situationen: Beim Einschalten Bei Übergang in den RUN Modus Bei Übertragung des Programms. KonstanteSchreibschutz, Werte können vom Programm nicht geändert werden. Veröffentlichung im Netzwerk Variablen können gelesen / geschrieben werden von außerhalb des Controllers durch die CIP-Kommunikation und der Daten-Link-Funktion. Kommunikations Schreibschutz Schreibschutz des Wertes durch die CIP-Message Kommunikation. ( zukünftig unterstützt) FlankeSteigende/fallende Flanke der Eingänge von Funktionsblöcken

16 16 Datentypen nach IEC-Standard KlassifikationDatentypGröße (Byte)WertebereichBeispiele für Zahlenwerte bzw. Konstanten (literal) BitBOOL20/1 oder FALSE/TRUETRUE/FALSE BOOL#1 Bit- kombination BYTE116#00 bis FFBYTE#16#A5 BYTE#2# BYTE#2#1010_0101 (*) Dezimalzahlen sind nicht erlaubt WORD216#0000 bis FFFF DWORD416# bis FFFFFFFF LWORD816# bis FFFFFFFFFFFFFFFF Ganzzahl/ Integer SINT1-128 bis +127SINT#10#100 SINT#100 SINT#16#64 Konstanten ohne vorangestellten Datentyp wird DINT zugeordnet. (*)Einschränkung für U*** (U= unsigned) negative Zahlen sind nicht erlaubt. INT bis DINT bis LINT bis USINT10 bis +255 UINT20 bis UDINT40 bis ULINT80 bis

17 17 Datentypen nach IEC-Standard KlassifikationDatentypGröße (Byte)WertebereichBeispiele für Zahlenwerte bzw. Konstanten (literal) Fließkomma REAL 4Signifikante Ziffernzahl: 7 Digits e+38 bis e e-38 bis e+38 +/- REAL#10#-12.0 Konstanten ohne vorangestellten Datentyp wird LREAL zugeordnet LREAL8Signifikante Ziffernzahl: 15 Digits e+308 bis e e-308 bis e+308 +/- ZeitdauerTIME8T# ms bis T# ms TIME#60s500ms, T#60s500ms T#16d5h3m4s DatumDATE8D# bis D# DATE# ,D# ZeitTIME_OF_DAY8TOD#00:00: bis TOD#23:59: TOD#12:16:28.12 Datum und Zeit DATE_AND_TIME8DT# :00: bis DT# :34: DT# :16:28.12 ZeichenketteSTRING The character code is UTF-8.OMRON' PLC'

18 18 Array nach IEC-Standard In einem Array (deu:Feld) können die Daten so abgelegt werden, dass über ein Index darauf zugegriffen werden kann. Alle Daten haben den gleichen Datentyp. Spezifikation Elementnummer0 bis (Der Startindex eines Arrays muss nicht Null sein. ) Verfügbare Datentypen IndexKonstanten: Integer zwischen 0 bis und Variablen: Es gibt ein-, zwei- oder drei-dimensionale Arrays Der Index steht in eckigen Klammern, Beispiele: a[1] oder Temperatur[2,3] oder vektor [x,y,z] Im Strukturierten Text kann der Index auch Berechnungsausdrücke enthalten: Beispiel Y := x [a+b]; KlassifikationDatentyp Basic data typeBOOL data type, Bit string type, Integer type, REAL numbers, Duration type, Date data type, Time data type, Date und time data type, und String type unterstützt Derivative data typeStructure, Union, und Enumerationunterstützt POU Instance typeunterstützt KlassifikationDatentyp Basic data typeInteger typeSINT, INT, DINT, USINT, UINT, und UDINT Note: Array variables are available. unterstützt LINT, ULINTnicht unterstützt BOOL data type, Bit string type, REAL numbers, Duration type, Date data type, Time data type, Date und time data type, und String type nicht unterstützt Derivative data typeStructure, Union, und Enumerationnicht unterstützt POU Instance typenicht unterstützt

19 19 Strukturen nach IEC-Standard Benutzerdefinierte Datentypen Die Struktur kann Elemente mit unterschiedlichen Datentypen beinhalten Die Elemente werden nicht mit einer Zahl (Index) angesprochen, wie beim Array, sondern mit dem Namen des Elements. Strukturen und Arrays können gemischt werden. Strukturen eignen sich hervorragend für Rezepte und Datenbausteine

20 20 Array von Struktur nach IEC-Standard Nachdem die Struktur vom benutzerdefinierten Datentyp Rezept angelegt wurde, muss auch noch eine Variable angelegt werden. Dies kann ein Array sein für z.B. 100 Rezepte Einzelne Elemente ruft man denn mit Variablennamen und Index und Strukturelementnamen auf

21 21 Struktur der Programme nach IEC Eine Programm-Organisationseinheit (POE) besteht aus einem Algorithmus und einer lokalen Variablentabelle. Funktionen oder Funktionsblöcke können im Algorithmus beschrieben werden Eine Programm-POE kann nicht von anderen POEs aufgerufen werden. Programm POE Lokale Variablentabelle FUN FB Task Programm Zuordnung Algorithmus

22 22 Programme nach IEC-Standard Programmabarbeitung und Ausführungsreihenfolge In einer Task kann man die Reihenfolge der zugeordneten Programme bestimmen. Aufruf in Sysmac Studio unter Task-Einstellungen – Programmzuweisungseinstellungen Task und Programm haben keine eins-zu-eins - Zuordnung Bis zu 128 Programme können einer Task zugeordnet werden. Ausführungs-Reihenfolge Programm1->Programm0

23 23 Funktionen (FUN) nach IEC-Standard Eine Funktion besteht aus einer lokalen Variablentabelle und einem Algorithmus (Kontaktplan oder Strukturierter Text). Eine Funktion wird durch ihren Namen aufgerufen, genau wie ein Befehl. (Eine Instanz ist nicht notwendig. ) Aufbau einer Funktion Lokale Variablen einer Funktion kann man nicht überwachen. Local variable table Algorithmus Input variables Funktion EingängeAusgänge Befehle (außer FBs) FUN In-out variables Output variables (return value) Local variables EN Result := MAX(In1:=Value1, In2:=Value2); (* Aufruf ohne Formalparameter. *) Result := MAX Value1, Value2 ; (* EN/ENO können als Formalparameter übergeben werden *) Result := MAX( EN:=Trig, In1:=Value1, In2:=Value2, ENO=>Done); Verwendung im Kontaktplan Verwendung in ST Ergebniswert Rot: Eingänge. Blau: Ausgänge. OMRON-spezifisch

24 24 Funktionsblöcke (FB) nach IEC-Standard Eine Funktion besteht aus einer lokalen Variablentabelle und einem Algorithmus (Kontaktplan oder Strukturierter Text). Einem Funktionsblock muss ein Instanzspeicher zugewiesen werden. Aufbau einersFunktionsblocks Lokale Variablentabelle Kontaktplan oder Strukturierter Text. Alle Befehle, benutzerdefinierte FUN, und benutzerdefinierte FBs. Algorithmus Eingänge, Ausgänge, Lokale Variablen Instanzname Eingänge Ausgänge FB definition is set as an instance in the program Verwendung im Kontaktplan Use Image (ST) TON_instance(In:=Trig, PT:=SetValue, Q=>TimeUp, ET =>ElapValue); TRIG is substituted for In (Input). (* When the Input variables and the Output variables are omitted. *) TON_instance(Trig, SetValue, TimeUp, ElapTime); EingangsparameterAusgangsparameter Eingangs Variablen Ausgangs Variablen Instanzname Rot: Eingang. Blau: Ausgang.

25 25 Ereignis Task (fest) NJ501 Ver 1 unterstützt keine Ereignis-Tasks Ausführungsmethode/Task nach IEC Eine Task enthält Ausführungsvorschriften für Programme zur Laufzeit Ausführungs-Intervallzeit, Priorität, (Trigger) Multitasking mit 4 verschiedenen Prioritäten Periodische Task Primary Periodic task Periodische Task Ereignis Task Ausführungs Priorität (0 bis 63) Hoch Low Anzahl Tasks 4 (fest) (fest) Periodische Task NJ501 Ver 1 unterstützt keine Ereignis-Tasks

26 26 Primäre Periodische Task Hat die allerhöchste Ausführungspriorität. Besteht aus E/A-Refresh, inkl. EtherCAT, Logik-Programm-Abarbeitung, Systemprozesse und der Motion-Kern In der Lücke finden untergeordnete Tasks und untergeordnete Systemprozesse statt. (z.B. Kommunikation zum Programmiergerät) Eingestellte Periode Das Ergebnis der Ausführung vom "Motion-Kern" wird erst am Anfang des nächsten Zyklus über das EtherCAT-Netzwerk an den Servoverstärker übertragen. Ausgangsdaten Eingangsdaten SteuerungsprozessE/A-Refresh MotionControl-Kern SystemProzess 1 Abarbeitung des Programms SystemProzess 2 Refresh Ausführung MC Ausgangsdaten Eingangsdaten E/A-Refresh Refresh Ausführung Wenn die Motion-Befehl aufgerufen wird, wird er erst nach Abarbeitung des gesamten restlichen Programms durch den "Motion-Kern" abgearbeitet. Servoantriebe Ausführung des Kommandos

27 27 Periodische Task (niederer Priorität) Eine periodische Task führt das Anwenderprogramm mit einer festen Periode aus, die ein ganzzahliges Vielfaches der Primary Periodic Task ist. Die periodischen Tasks sind für Prozesse, die eine langsamere Abarbeitung zulassen. -Temperatur-Prozesse, Füllstände, Befüllung, Lüftung -Bedienung, Alarm, Alarmquitierung, Auftragsannahme, Rezeptverwaltung, Anlagenstatus -Statistik, Zugriffe zur Datenbank für Qualitätsicherung. Wählt man Priorität 17 oder 18, ist man sicher, dass immer alle Betriebssystemfunktionen vollständig ausgeführt werden. Task Periode Primary Periodic Task Periodisch Task Priorität 17 Task Periode Standby

28 28 System Service Normales Zeitverhalten des untergeordneten Systemprozesses Normalerweise sollte es Lücken in der Programmabarbeitung geben, in diesen Zeiten wird der System Service ausgeführt. Priorität Task Periode Hoch Niedrig OIUPMC UPOI Innerhalb der eingestellten Zeit (10ms) konnte der System Service keine Lücke finden. Pause Dann unterbricht der System Service, die Tasks der Priorität -17 (und 18) und wird statt dessen in den Lücken ausgeführt. (max 10%) Die Primary Periodic Task und auch die Task mit der Priorität-16 wird nicht unterbrochen. OIUPMCOIUPMCOIUPMCOIUPMC System Service Primary Periodische Task Priorität 16 Periodische Task Priorität 17 Task Periode OIUPMC System Service OIUPMCOIUPMCOIUPMCOIUPMCPrimary Periodic task Zeitverhalten des Systemprozesses, wenn es keine Lücken gibt. Wenn innerhalb der eingestellten Zeit (10 ms) keine Lücke vom Systemprozess gefunden wurde, so unterbricht er die Ausführung der Tasks mit der Priorität 17 und 18 und wird dann statt dessen in den Lücken von der Primary Periodic Task und Task -16 ausgeführt. Maximal 10% (oder wie eingestellt) der Gesamtzykluszeit.

29 29 System Service SystemprozesseBeschreibung USB Port ServiceBearbeitung der Anfragen von Programmier- und Bediengeräten (CIP,FINS,HTTP) EtherNet/IP Port Service- Bearbeitung der Anfragen von Programmier- und Bediengeräten (CIP,FINS,HTTP), (oder Hostcomputer oder anderen Controller). - Ausführung der Kommunikationsbefehle (CIP, FINS, Socket) EtherCAT Port ServiceAusführung der EtherCAT Message-Kommunikation Service für CJ- Spezialbaugruppen - Event Service für CJ-Spezial-Baugruppen - Ausführung von Kommunikationsbefehlen (CIP und FINS) SD Speicherkarten Service- FTP Zugriff - SD-Speicherkarten-Zugriffe vom Programmiergerät - Ausführung von SD-Speicherkarten-Befehle Service für nicht- synchronisierte Befehle - Ausführung von nicht synchronisierten Befehlen Selbst-Diagnose (Prozess)Erkennung von Fehlern wie z.B. Hardware-Fehler, Firmware-Fehler, Ungültige Anwender-Einstellungen und Programmfehler. Der System Service muss zusätzlich zur Ausführung des Anwenderprogramms ausgeführt werden. Folgendes ist mit untergeordneten Systemprozessen gemeint:.

30 30 Zykluszeit anzeigen Wenn man online ist kann man die aktuelle, minimale und maximale Zykluszeit der einzelnen Tasks anzeigen, unter: Konfiguration und Einstellungen / Task-Einstellungen / Überwachung Task- Ausführungszeit (das letzte Icon, ganz unten)

31 31


Herunterladen ppt "1 IEC - Grundlagen und Variablen Programmierstrategien der IEC 61131-3."

Ähnliche Präsentationen


Google-Anzeigen