Inquiry
Form loading...
Programmstruktur und Eigenschaften mehrerer gängiger SPS von Siemens

Nachricht

Programmstruktur und Eigenschaften mehrerer gängiger SPS von Siemens

08.12.2023
1. Programmstruktur einiger ausländischer Klein-SPS Das Anwenderprogramm dieser SPS besteht aus Hauptprogramm, Unterprogramm und Interruptprogramm. In jedem Zyklus ruft die CPU das Hauptprogramm einmal auf. Das Hauptprogramm kann das Unterprogramm aufrufen, und das kleine Steuerungssystem kann nur das Hauptprogramm haben. Das Interrupt-Programm wird verwendet, um schnell auf Interrupt-Ereignisse zu reagieren. Wenn ein Interrupt-Ereignis auftritt, stoppt die CPU die Ausführung des zu diesem Zeitpunkt verarbeiteten Programms oder der Task und führt das vom Benutzer geschriebene Interrupt-Programm aus. Führen Sie nach der Ausführung des unterbrochenen Programms das angehaltene Programm oder die angehaltene Aufgabe weiter aus. Ihre Unterprogramme und Interrupt-Programme haben keine lokalen Variablen und ihre Unterprogramme haben keine Ein- und Ausgabeparameter. 2. Programmstruktur von Siemens S7-200 Prozessabbild Ein-/Ausgang (I/Q), Variablenspeicher V, internes Speicherbit M, Timer T, Zähler C usw. sind globale Variablen. Die Programmorganisationseinheit (POE) der S7-200 umfasst Hauptprogramm, Unterprogramm und Interruptprogramm. Jede POE verfügt über eine eigene 64 Byte große lokale Variable, die nur in ihrer POE verwendet werden kann. Im Gegensatz dazu können in jeder POE globale Variablen verwendet werden. Im Folgenden sind die lokalen Variablen aufgeführt, die das Unterprogramm verwenden kann: 1) TEMP (temporäre Variable) ist eine Variable, die vorübergehend im lokalen Datenbereich gespeichert wird. Die definierte temporäre Variable wird nur verwendet, wenn die POE ausgeführt wird. Nach der Ausführung der POE wird der Wert der temporären Variablen nicht gespeichert. 2) IN ist der Eingabeparameter, der von der aufrufenden POE bereitgestellt wird. 3) OUT ist der Ausgabeparameter, der an die POU zurückgegeben wird, die ihn aufruft (das Ausführungsergebnis der Unterroutine). 4) IN_ OUT ist Eingabe_ Der Anfangswert des Ausgabeparameters wird von der POU, die ihn aufruft, an die Unterroutine übergeben, und das Ausführungsergebnis der Unterroutine wird mit derselben Variablen an die POU zurückgegeben, die sie aufruft. In den lokalen Variablen des Hauptprogramms und des Interrupt-Programms gibt es nur temporäre Variablen TEMP. Das Unterprogramm mit Ein- und Ausgabeparametern und lokalen Variablen ist eine einfach zu realisierende strukturierte Programmierung, die besonders für Hersteller nützlich ist, die seit langem ähnliche Geräte oder Produktionslinien produzieren. Programmierer dieser Hersteller haben eine große Anzahl allgemeiner Unterprogramme für jede Komponente oder Prozessfunktion des Geräts geschrieben. Selbst wenn Sie den internen Code des Unterprogramms nicht kennen, können Sie, solange Sie die Funktion des Unterprogramms und die Bedeutung der Eingabe- und Ausgabeparameter kennen, schnell das Steuerungsprogramm „zusammenstellen“, das den Anforderungen verschiedener Benutzer entspricht der Aufruf zwischen Programmen. Es ist, als würde man digitale integrierte Schaltkreischips verwenden, um komplexe digitale Schaltkreise zu bilden. Wenn die Unterroutine keine Eingabe- und Ausgabeparameter hat, gibt es keine klare Schnittstelle zwischen ihr und dem aufrufenden Programm, sodass eine strukturierte Programmierung schwierig zu realisieren ist. Wenn ein Unterprogramm keine lokalen Variablen hat, kann es nur über globale Variablen Daten mit dem Programm austauschen, das es aufruft, und innerhalb des Unterprogramms können nur globale Variablen verwendet werden. Wenn Sie Unterprogramme und Interrupt-Programme in andere Projekte migrieren, müssen Sie die von ihnen verwendeten globalen Variablen neu anordnen, um sicherzustellen, dass keine Adresskonflikte auftreten. Wenn das Programm sehr komplex ist und viele Unterprogramme und Interrupt-Programme vorhanden sind, ist der Arbeitsaufwand für diese Art der Adressneuzuweisung sehr groß. Wenn das Unterprogramm und das Interrupt-Programm lokale Variablen haben und nur lokale Variablen anstelle globaler Variablen verwenden, kann das Unterprogramm ohne Änderungen in andere Projekte übertragen werden, da kein Adresskonflikt mit anderen POEs besteht. 3. Programmstruktur von Siemens S7-300/400 S7-300/400 unterteilt Unterprogramme in Funktion (oder Funktion) und Funktionsbaustein. Die Funktionen der S7-300/400 entsprechen grundsätzlich denen der S7-200. Sie verfügen über Eingabe-, Ausgabeparameter und temporäre Variablen. Der Rückgabewert in den lokalen Daten der Funktion ist eigentlich ein Ausgabeparameter. Sie verfügen über keinen eigenen Lagerbereich. Nach Abschluss der Funktion werden die Daten in den temporären Variablen nicht gespeichert. Sie können globale Variablen verwenden, um die Daten zu speichern, die nach der Ausführung der Funktion gespeichert werden müssen. Dies wirkt sich jedoch auf die Portabilität der Funktion aus. Der Funktionsblock ist ein vom Benutzer geschriebener Programmblock mit einem eigenen dedizierten Speicherbereich (dh einem Hintergrunddatenblock). Die Eingabe- und Ausgabeparameter sowie die statischen Variablen des Funktionsblocks werden im angegebenen Hintergrunddatenblock und die temporären Variablen im lokalen Datenstapel gespeichert. Bei jedem Aufruf eines Funktionsbausteins muss ein Hintergrunddatenbaustein angegeben werden. Nachdem der Funktionsblock ausgeführt wurde, gehen die Daten im Hintergrunddatenblock nicht verloren, die Daten im lokalen Datenstapel werden jedoch nicht gespeichert. Der Funktionsblock übernimmt das Konzept der Kapselung ähnlich wie C++, das das Programm und die Daten zusammen kapselt und eine gute Portabilität aufweist. Der gemeinsame Datenbaustein der S7-300/400 kann von allen logischen Bausteinen genutzt werden. 4. Programmstruktur von IEC61131-3 IEC61131-3 ist der Programmiersprachenstandard der SPS. IEC61131-3 ist der weltweit erste und einzige Programmiersprachenstandard im Bereich der industriellen Steuerung. IEC 61131-3 verfügt über drei Arten von POUs: Programm, Funktionsblock und Funktion. Die Funktion ist eine POE mit mehreren Eingabeparametern und einem Ausgabeparameter (Rückgabewert). Der Name des Rückgabewerts ist derselbe wie der Name der Funktion. Der Datentyp des Rückgabewerts muss definiert werden. Gerät einstellen Funktionen mit demselben Eingabewert liefern immer das gleiche Ergebnis. Funktionen können andere Funktionen aufrufen, jedoch keine Funktionsblöcke oder Programme. Zu den lokalen Variablen, die durch Funktionen definiert werden können, gehören VAR und VAR_ INPUT。 Ein Funktionsblock ist eine POE mit mehreren Ein-/Ausgabeparametern und internen Speichereinheiten. Der Ausgabeparameterwert eines Funktionsblocks steht im Zusammenhang mit dem Wert seiner internen Speichereinheit. Der Funktionsblock kann andere Funktionen aufrufen Block oder Funktion, aber das Programm kann nicht aufgerufen werden. Bevor Sie einen Funktionsbaustein aufrufen, müssen Sie die Instanz des Funktionsbausteins für jeden Aufruf in der POE deklarieren, in der der Funktionsbaustein aufgerufen werden soll. Für jeden Aufruf weist das Betriebssystem dem Funktionsblock einen eigenen Speicherbereich zu (Ähnlich dem Hintergrunddatenbaustein der S7-300/400). Die Funktion muss beim Aufruf nicht instanziiert werden, da sie keinen internen Speicherbereich hat. Das Verhalten und der Zweck des Programms ähneln dem des Funktionsblocks. Das Programm verfügt über Eingabe- und Ausgabeparameter und kann über einen internen Speicherbereich verfügen. Programme enthalten normalerweise Aufrufe von Funktionen und Funktionsblöcken. IEC61131-3 definiert mehrere Standardfunktionen und Funktionsblöcke. 5. Unterschied zwischen der Programmstruktur von S7-300/400 und IEC61131-3 1) Die Funktion von S7-300/400 kann mehrere Ausgabeparameter haben, und der Rückgabewert ist auch ein Ausgabeparameter. Die Funktion von IEC61131-3 hat nur einen Rückgabewert. 2) Der spezielle Speicherbereich zum Speichern lokaler Variablen im IEC61131-3-Funktionsblock wird bei der Deklaration der Instanz des Funktionsblocks zugewiesen. Es ist für Benutzer undurchsichtig und andere POUs können nicht direkt auf den Speicherbereich zugreifen. Die lokalen Variablen (ausgenommen temporäre Variablen) des Funktionsbausteins der S7-300/400 werden in dessen Hintergrunddatenbaustein gespeichert. Andere Bausteine ​​können auf Variablen im Hintergrunddatenbaustein zugreifen. Wenn Sie denselben Funktionsblock mehrmals aufrufen müssen, um denselben Typ von gesteuertem Objekt zu steuern, müssen Sie für jeden Aufruf einen Hintergrunddatenblock angeben. Diese Hintergrunddatenblöcke enthalten jedoch nur wenige Variablen und daher eine große Anzahl Hintergrunddatenblöcke im Projekt. Um die Anzahl der Hintergrunddatenblöcke zu reduzieren, können mehrere Hintergrunddatenblöcke verwendet werden. Allerdings muss ein Funktionsblock zur Verwaltung mehrerer Hintergründe hinzugefügt werden. 3) Zu den lokalen Variablen des S7-300/400-Funktionsbausteins gehören temporäre Variablen und statische Variablen. Die interne Variable Var des IEC61131-3-Funktionsblocks entspricht der statischen Variablen von S7-300/400. 4) S7-300/400 unterteilt den Datenbereich zur Nutzung in Datenblöcke. Die Größe des Datenblocks hängt vom Datentyp und der Anzahl der im Datenblock definierten Variablen ab. IEC61131-3 kennt kein Konzept für Datenblöcke.