Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

IEC - Grundlagen und Variablen

Ähnliche Präsentationen


Präsentation zum Thema: "IEC - Grundlagen und Variablen"—  Präsentation transkript:

1 IEC - Grundlagen und Variablen
Programmierstrategien der IEC

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 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 IEC 61131-3 Allgemeine Elemente
Software-Modell Konfiguration Resourcen Tasks Programm-Organisations-Einheiten Programme Funktions-Blocks Funktionen Datentypen & Variablen

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 Task-Typen im NJ- Controller
Art Beschreibung Anzahl Priorität “Primary Periodic Task” Wird mit höhster Priorität ausgeführt! Beinhaltet PLC & Motion Engine sowie die EtherCAT Kommunikation 1 4 (fest). “Periodic Task” …wird in den “Pausen” des “Primary Periodic Task” ausgeführt. 0-3 16,17,18 “Event Task” (Units Ver.1.1) …wird abhängig von Bedingungen ausgeführt ・Steuerungsbefehlen ・Grenzwert überschreitungen ・Interrupt von CJ-series Unit 0-32 8 (fest), 48 (fest) The priority becomes it here and there for the future scalability. (To the greatest 63. ) Hoch Execution priority 0 Execution priority 1 Execution priority 2 Niedrig

7 Unterschied FB und FUN (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)

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 Variablen, globale und lokale
Globale Variablen können überall verwendet werden. Lokale, interne Variablen, werden nur innerhalb des eigenen Programms verwendet

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 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 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 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 POE Local variables table Local variables table Internal variables Variable A Variable B OK Internal variables Variable A Variable C OK External Variable External Variable NG Algorithm Algorithm Lokale, interne Variablen, werden nur innerhalb des eigenen Programms verwendet . Lokale, interne Variablen, werden nur innerhalb des eigenen Programms verwendet.

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

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 Symbol-Attribute Attribute Beschreibung Variablenname
Name, um die Variable zu identifizieren. Datentyp Datentyp und einen Wertebereich der Variable. AT - Adresse Wenn eine feste E/A-Adresse einer CJ-Baugruppe als Variable verwendet wird. Remanent Behält Werte bei, wenn die Stromversorgung abgeschaltet wird. Anfangswert Wird der Variable zugewiesen, in einer der nachfolgenden Situationen: Beim Einschalten Bei Übergang in den RUN Modus Bei Übertragung des Programms. Konstante Schreibschutz, 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) Flanke Steigende/fallende Flanke der Eingänge von Funktionsblöcken

16 Beispiele für Zahlenwerte bzw. Konstanten (literal)
Datentypen nach IEC-Standard Klassifikation Datentyp Größe (Byte) Wertebereich Beispiele für Zahlenwerte bzw. Konstanten (literal) Bit BOOL 2 0/1 oder FALSE/TRUE TRUE/FALSE BOOL#1 Bit-kombination BYTE 1 16#00 bis FF BYTE#16#A5 BYTE#2# BYTE#2#1010_0101 (*) Dezimalzahlen sind nicht erlaubt WORD 16#0000 bis FFFF DWORD 4 16# bis FFFFFFFF LWORD 8 16# bis FFFFFFFFFFFFFFFF Ganzzahl/ Integer SINT -128 bis +127 SINT#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 USINT 0 bis +255 UINT 0 bis UDINT 0 bis ULINT 0 bis

17 Beispiele für Zahlenwerte bzw. Konstanten (literal)
Datentypen nach IEC-Standard Klassifikation Datentyp Größe (Byte) Wertebereich Beispiele für Zahlenwerte bzw. Konstanten (literal) Fließkomma REAL 4 Signifikante Ziffernzahl: 7 Digits e+38 bis e-38 e-38 bis e+38 +∞/-∞ REAL#10#-12.0 Konstanten ohne vorangestellten Datentyp wird LREAL zugeordnet LREAL 8 Signifikante Ziffernzahl: 15 Digits e+308 bis e-308 e-308 bis e+308 Zeitdauer TIME T# ms bis T# ms TIME#60s500ms , T#60s500ms T#16d5h3m4s Datum DATE D# bis D# DATE# ,D# Zeit TIME_OF_DAY TOD#00:00: bis TOD#23:59: TOD#12:16:28.12 Datum und Zeit DATE_AND_TIME DT# :00: bis DT# :34: DT# :16:28.12 Zeichenkette STRING The character code is UTF-8. ‘OMRON' ‘PLC'

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 Elementnummer 0 bis (Der Startindex eines Arrays muss nicht Null sein. ) Verfügbare Datentypen Index Konstanten: 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]; Klassifikation Datentyp Basic data type BOOL 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 type Structure, Union, und Enumeration POU Instance type Klassifikation Datentyp Basic data type Integer type SINT, INT, DINT, USINT, UINT, und UDINT Note: Array variables are available. unterstützt LINT, ULINT nicht 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 Derivative data type Structure, Union, und Enumeration POU Instance type

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 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 Lokale Variablentabelle
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 Programm POE Task Programm Lokale Variablentabelle Zuordnung Programm Algorithmus FUN FB Eine Programm-POE kann nicht von anderen POEs aufgerufen werden.

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 Ausführungs-Reihenfolge Programm1->Programm0 Task und Programm haben keine eins-zu-eins - Zuordnung Bis zu 128 Programme können einer Task zugeordnet werden.

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. ) Verwendung im Kontaktplan Aufbau einer Funktion Funktion Local variable table Ergebniswert EN Eingänge Ausgänge Input variables In-out variables Output variables (return value) Verwendung in ST Local variables 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); Algorithmus Befehle (außer FBs) OMRON-spezifisch FUN Lokale Variablen einer Funktion kann man nicht überwachen. Rot: Eingänge. Blau: Ausgänge.

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. Verwendung im Kontaktplan Aufbau einersFunktionsblocks Instanzname FB definition is set as an instance in the program Instanzname Lokale Variablentabelle ・Kontaktplan oder Strukturierter Text. ・Alle Befehle, benutzerdefinierte FUN, und benutzerdefinierte FBs. Algorithmus Eingänge, Ausgänge, Lokale Variablen Eingangs Variablen Ausgangs Variablen Eingangsparameter Ausgangsparameter Eingänge Ausgänge 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); Rot: Eingang. Blau: Ausgang.

25 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 Hoch Anzahl Tasks 4 (fest) Primary Periodic task 1 8 (fest) Ereignis Task NJ501 Ver 1 unterstützt keine Ereignis-Tasks 0-32 Ausführungs Priorität (0 bis 63) Periodische Task 16 0-1 Periodische Task 17 0-1 Periodische Task 18 0-1 48 (fest) Ereignis Task NJ501 Ver 1 unterstützt keine Ereignis-Tasks 0-32 Low

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) Servoantriebe Eingestellte Periode Ausführung des Kommandos E/A-Refresh Steuerungsprozess E/A-Refresh Ausgangsdaten Refresh Ausführung Eingangsdaten System Prozess 1 Abarbeitung des Programms Motion Control-Kern System Prozess 2 Ausgangsdaten Refresh Ausführung Eingangsdaten MC Wenn die Motion-Befehl aufgerufen wird, wird er erst nach Abarbeitung des gesamten restlichen Programms durch den "Motion-Kern" abgearbeitet. 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.

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 Task Periode Task Periode Primary Periodic Task Task Periode Periodisch Task Priorität 17 Standby

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. Task Periode OI UP MC System Service Primary 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 . Priorität Task Periode Hoch Niedrig OI UP MC 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. System Service Primary Periodische Task Priorität 16 Periodische Task Priorität 17

29 System Service Der System Service muss zusätzlich zur Ausführung des Anwenderprogramms ausgeführt werden. Folgendes ist mit “untergeordneten” Systemprozessen gemeint:. Systemprozesse Beschreibung USB Port Service Bearbeitung 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 Service Ausfü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.

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


Herunterladen ppt "IEC - Grundlagen und Variablen"

Ähnliche Präsentationen


Google-Anzeigen