IBH Link UA:S7 SoftSPS: Unterschied zwischen den Versionen
K (→SFB15 PUT Spezialfunktion im Anlauf OB 100) |
|||
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 102: | Zeile 102: | ||
| ID || INPUT ||WORD ||M, D, Konst. || Fester Wert:65400 | | ID || INPUT ||WORD ||M, D, Konst. || Fester Wert:65400 | ||
|- | |- | ||
− | | R_ID || INPUT || DWORD || E, A, M, D, L, Konst. || Modus: Low | + | | R_ID || INPUT || DWORD || E, A, M, D, L, Konst. || Modus: Low Byte<br/>0: Lesen(Variable als XML String)<br/>1: Schreiben(Variable als XML String)<br/>2: Lesen(SPS Variable)<br/>3: Schreiben(SPS Variable)<br/>4: Lesen(Spezial Variable)<br/>5: Schreiben(Spezial Variable)<br/>6: Lesen(Server Variable)<br/>7: Schreiben(Server Variable)<br/><br/>Bit 14: Der Any Pointer beim Schreiben zeigt auf DATE_AND_TIME<br/>Bit 15: Der Any Pointer beim Schreiben zeigt auf einen STRING<br/><br/>High Word:<br/>Abtastrate in Millisekunden |
|- | |- | ||
| DONE || OUTPUT || BOOL || E, A, M, D, L || Wird nicht gesetzt | | DONE || OUTPUT || BOOL || E, A, M, D, L || Wird nicht gesetzt | ||
Zeile 108: | Zeile 108: | ||
| ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:<br/>Die Parameter wurden korrekt übergeben<br/>ERROR=1:<br/>Die Parameter wurden nicht korrekt übergeben | | ERROR || OUTPUT || BOOL || E, A, M, D, L ||ERROR=0:<br/>Die Parameter wurden korrekt übergeben<br/>ERROR=1:<br/>Die Parameter wurden nicht korrekt übergeben | ||
|- | |- | ||
− | | STATUS || OUTPUT || WORD || E, A, M, D, L || | + | | STATUS || OUTPUT || WORD || E, A, M, D, L || 0x0000 Bei Erfolg, 0x8090 bei Fehler. |
|- | |- | ||
| SD_1 || IN_OUT || ANY || D || Zeiger auf die OPC Variable. | | SD_1 || IN_OUT || ANY || D || Zeiger auf die OPC Variable. | ||
Zeile 169: | Zeile 169: | ||
[[Image:IBH_Link_UA_SoftSPS_Verbinde_Variable.png|769px]] | [[Image:IBH_Link_UA_SoftSPS_Verbinde_Variable.png|769px]] | ||
+ | |||
+ | === PUT / Get Funktionen === | ||
+ | |||
+ | ==== Projektierte Verbindung ==== | ||
+ | Um Daten mit der im IBH Link UA integrierten SoftSPS direkt aus einer S7 Steuerung auslesen zu können, können auch die Bausteine PUT (SFB 15) und GET (SFB 14) verwendet werden. Damit kann aus frei adressierbaren Datenbereichen der Partner Steuerung gelesen oder auch geschrieben werden. | ||
+ | |||
+ | Hierfür wird im Simatic Manager oder im TIA Portal eine S7 Verbindung von der IBH SoftSPS zur gewünschten Steuerung angelegt: | ||
+ | |||
+ | [[Image:IBH_Link_UA_SoftSPS_Put_Get_TIA.png|1166px]] | ||
+ | |||
+ | |||
+ | '''Download: [http://download.ibhsoftec.com/german/Beispiele/IBH_Link_UA_PUT_GET_S71200_V13_SP1.zip TIA Beispiel: IBH Link UA SoftSPS PUT GET S7-1200 ]''' | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | |||
+ | ==== SFB15 PUT Spezialfunktion im Anlauf OB 100 ==== | ||
+ | |||
+ | Mit dem SFB15 PUT können auch eigene S7-Verbindungen zusätzlich zu denen, die bereits mit STEP7 oder TIA gemacht wurden, erstellt werden. | ||
+ | |||
+ | In diesen Fall muss an der Partner CPU keine Hardwarekonfiguration geladen werden. | ||
+ | |||
+ | Dazu wird der SFB15 PUT mit der Sonder-ID 65400 im Anlaufbaustein OB100 aufgerufen. | ||
+ | |||
+ | Die Felder ADDR und SD werden dazu verwendet, die Verbindungsinformationen anzugeben. | ||
+ | |||
+ | |||
+ | Um auf eine andere SPS auf Rack 0 Slot 2 zuzugreifen, sind nur die IP-Adresse und die Nummer der neuen lokalen ID erforderlich: | ||
+ | |||
+ | CALL PUT , "InstanceDbPut" | ||
+ | REQ : = TRUE // Schreibvorgang bei steigender Flanke starten | ||
+ | ID : = 65400 // Sonder ID 65400 = HEX FF78 | ||
+ | DONE : = "Schreibvorgang" // Schreibvorgang abgeschlossen | ||
+ | ERROR : = "Fehlerbit" // Fehlerbit | ||
+ | STATUS : = "Statuswort" // Statuswort (siehe Dokumentation Siemens) | ||
+ | ADDR_1 : = P#DB10.DBX0.0 BYTE 20 // IP-Adresse oder Hostname als Zeichen-Array in der Form "192.168.1.22" | ||
+ | ADDR_2 : = | ||
+ | ADDR_3 : = | ||
+ | ADDR_4 : = P#DB10.DBX24.0 WORD 1 // Wenn ein anderer Port als 102 verwendet wird, kann er als WORD angegeben werden | ||
+ | SD_1 : = P#DB10.DBX26.0 WORD 1 // Nummer der neuen, freien lokalen Verbindungs ID als WORD angegeben | ||
+ | SD_2 : = | ||
+ | SD_3 : = | ||
+ | SD_4 : = | ||
+ | |||
+ | Um auf eine andere SPS auf Rack 0 Slot 1 (in unserem Beispiel eine S71200) zuzugreifen, sind nicht nur die IP-Adresse und die Nummer der neuen lokalen ID erforderlich, | ||
+ | In diesem Fall müssen auch die TSAPS angegeben werden. | ||
+ | |||
+ | CALL PUT , "InstanceDbPut" | ||
+ | REQ : = TRUE // Schreibvorgang bei steigender Flanke starten | ||
+ | ID : = 65400 // Sonder ID 65400 = HEX FF78 | ||
+ | DONE : = "Schreibvorgang" // Schreibvorgang abgeschlossen | ||
+ | ERROR : = "Fehlerbit" // Fehlerbit | ||
+ | STATUS : = "Statuswort" //// Statuswort (siehe Dokumentation Siemens) | ||
+ | ADDR_1 : = P#DB10.DBX0.0 BYTE 20 // IP-Adresse oder Hostname als Zeichen-Array in der Form "192.168.1.22" | ||
+ | ADDR_2 : = P#DB10.DBX20.0 BYTE 2 // Remote TSAP als Byte-Array in der Form b#16#1 b#16#1 | ||
+ | ADDR_3 : = P#DB10.DBX22.0 BYTE 2 // Lokaler TSAP als Byte-Array in der Form b#16#1 b#16#0 | ||
+ | ADDR_4 : = P#DB10.DBX24.0 WORD 1 // Wenn ein anderer Port als 102 verwendet wird, kann er als WORD angegeben werden | ||
+ | SD_1 : = P#DB10.DBX26.0 WORD 1 // Nummer der neuen, freien lokalen Verbindungs ID als WORD angegeben | ||
+ | SD_2 : = | ||
+ | SD_3 : = | ||
+ | SD_4 : = | ||
+ | |||
+ | '''Download: [http://download.ibhsoftec.com/german/Beispiele/IBH_Link_UA_Put_Get_Sonder_S7W.zip S7 für Windows® Beispiel: IBH Link UA SoftSPS PUT Sonderfunktion S7-1200 ]''' | ||
+ | |||
+ | '''Download: [http://download.ibhsoftec.com/german/Beispiele/IBH_Link_UA_Put_Get_Sonder_Step7.zip Step7 Beispiel: IBH Link UA SoftSPS PUT Sonderfunktion S7-1200 ]''' | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
===Operationsvorrat=== | ===Operationsvorrat=== |
Aktuelle Version vom 10. Mai 2017, 14:30 Uhr
Inhaltsverzeichnis
- 1 Einführung
- 2 Inbetriebnahme
- 3 SoftSPS Status und Einstellungen
- 4 Server Funktion
- 5 Client Funktion
- 6 PUT / Get Funktionen
- 7 Operationsvorrat
- 7.1 Binäre Verknüpfungsoperationen
- 7.2 Sonstige Verknüpfungen
- 7.3 Master Control Relay
- 7.4 Lade / Transferoperationen
- 7.5 Peripheriezugriffe
- 7.6 Akkumulatorbefehle
- 7.7 Schiebe- und Rotieroperationen
- 7.8 Zeitoperationen
- 7.9 Zähloperationen
- 7.10 Wortoperationen
- 7.11 Arithmetische Operationen
- 7.12 Umwandlungsfunktionen
- 7.13 Sprungoperationen
- 7.14 Aufruf-Operationen
- 7.15 Indirekte Adressierung
- 7.16 Sonstige Operationen
- 8 Integrierte Organisationsbausteine
- 9 Integrierte Systemfunktionen
- 10 Integrierte Systembausteine
- 11 Technische Daten
Einführung
Der IBH OPC UA Server enthält zusätzlich eine SoftSPS. Die SoftSPS ist in der Lage, Variablen von dem OPC UA Server zu lesen und zu schreiben. Die integrierte SoftSPS dient zur Datenvorverarbeitung und wird mit STEP7® in KOP, FUP, AWL, SCL oder S7-GRAPH programmiert.
Inbetriebnahme
Aktivieren der integrierten SoftSPS
Zunächst muss über die WEB-Oberfläche des IBH OPC UA Server die SoftSPS aktiviert werden:
SoftSPS im SPS Projekt definieren
Hierzu wird auf dem oben definierten Slot der PC Station des OPC UA Servers zusätzlich eine SoftSPS eingefügt.
SIMATIC Manager:
TIA Portal:
Es muss eine S7 Verbindung zum OPC UA Server hergestellt werden:
SIMATIC Manager:
TIA:
Die SoftSPS kann in KOP, FUP, AWL, SCL oder S7-GRAPH programmiert werden.
SoftSPS Status und Einstellungen
Der SoftSPS Status lässt sich auf der WEB-Oberfläche des Konfigurators beobachten:
Die Rechenleistung der SoftSPS kann wie folgt eingestellt werden:
CPU Anteil SPS | Rechenzeit 1000 gemischte Anweisungen |
---|---|
50% | ca. 360 µs |
33% | ca. 550 µs |
25% | ca. 720 µs |
20% | ca. 900 µs |
12% | ca. 1800 µs |
Weiterhin kann der Status der SoftSPS Clientverbindungen abgefragt werden:
Server Funktion
Es muss eine S7 Verbindung zum OPC UA Server hergestellt werden:
SIMATIC Manager:
TIA:
Im OPC Server unter <Allgemein> <S7> <OPC Tags verwenden> können jetzt u.a. die OPC Tags der IBH SoftSPS selektiert werden:
Danach wird die Konfiguration in den IBH Link UA geladen:
Damit ist die Konfiguration abgeschlossen, der IBH Link UA stellt die OPC Tags zur Verfügung:
Client Funktion
Zyklisches Lesen und Schreiben
Die SoftSPS ist in der Lage die OPC-Variablen zyklisch zu lesen bzw. zu schreiben.
Die Konfiguration wird über den SFB 8 (USEND) im Neustart (aufgerufen durch OB100) durchgeführt:
Parameter | Deklaration | Datentyp | Speicherbereich | Beschreibung |
---|---|---|---|---|
REQ | INPUT | BOOL | E, A, M, D, L | Wird nicht ausgewertet |
ID | INPUT | WORD | M, D, Konst. | Fester Wert:65400 |
R_ID | INPUT | DWORD | E, A, M, D, L, Konst. | Modus: Low Byte 0: Lesen(Variable als XML String) 1: Schreiben(Variable als XML String) 2: Lesen(SPS Variable) 3: Schreiben(SPS Variable) 4: Lesen(Spezial Variable) 5: Schreiben(Spezial Variable) 6: Lesen(Server Variable) 7: Schreiben(Server Variable) Bit 14: Der Any Pointer beim Schreiben zeigt auf DATE_AND_TIME Bit 15: Der Any Pointer beim Schreiben zeigt auf einen STRING High Word: Abtastrate in Millisekunden |
DONE | OUTPUT | BOOL | E, A, M, D, L | Wird nicht gesetzt |
ERROR | OUTPUT | BOOL | E, A, M, D, L | ERROR=0: Die Parameter wurden korrekt übergeben ERROR=1: Die Parameter wurden nicht korrekt übergeben |
STATUS | OUTPUT | WORD | E, A, M, D, L | 0x0000 Bei Erfolg, 0x8090 bei Fehler. |
SD_1 | IN_OUT | ANY | D | Zeiger auf die OPC Variable. |
SD_2 | IN_OUT | ANY | E, A, M, D | Zeiger auf die SPS Variable für den Wert der OPC Variablen. Zulässig sind nur die Datentypen BOOL, BYTE, CHAR, WORD, INT, DWORD, DINT, REAL, DATE, DATE_AND_TIME. Hinweis: |
SD_3 | IN_OUT | ANY | E, A, M, D | Zeiger auf die SPS Variable für den Variablenstatus. Zulässig ist der Datentyp DWORD Hinweis: Wenn der ANY-Pointer auf einen DB zugreift, ist der DB immer zu spezifizieren (z.B.: P# DB10.DBX5.0 Byte 10). |
SD_4 | IN_OUT | ANY | D | Zeiger auf die SPS Variable für die Aufzeichnungszeit. Zulässig ist der Datentyp DATE_AND_TIME. Hinweis: Wenn der ANY-Pointer auf einen DB zugreift, ist der DB immer zu spezifizieren (z.B.: P# DB10.DBX5.0 Byte 10). |
Die OPC Variablen sind folgendermaßen definiert:
- Modus 0 und 1: ´ns=<Namespace>;s=<Identifier>´
- oder:´ns=<Namespace>;i=<numerischer Identifier>´
- In diesem Modus kann jede OPC Variable gelesen werden. Der IBH Link UA kennt folgende Namespaces
Namespace Bereich 0 Allgemeine OPC Servervariablen 1, 2, 3, 5 Keine auswertbaren Variablen 4 Alle SPS spezifischen OPC Variablen 6 IBH Link UA Spezialvariablen
- Modus 2 und 3: ´<Identifier>´
- Der Identifier wird folgendermaßen gebildet:
<Stationsname>.<SPS Name>.<GlobalVars>.<Variablenname aus Variablentabelle>
oder:
<Stationsname>.<SPS Name>.<Programs>.<Datenbausteinname>.<Variablenname>
- Der Identifier wird folgendermaßen gebildet:
- Modus 4 und 5: <numerischer Identifier>
- Nummer der Spezialvariable aus dem Namespace 6.
- Modus 6 und 7: <numerischer Identifier>
- Nummer der Servervariable aus dem Namespace 0.
- Nummer der Servervariable aus dem Namespace 0.
Beispiel TIA Portal
Erstellen eines Funktions-Bausteines zur Client Konfiguration:
Es wird die SPS Variable OutputVal“ zyklisch in die OPC-Variable S7-1500.S7-1500.GlobalVars.InputVal geschrieben.
Die Abtastrate ist 16#00c8 bzw. 200 Millisekunden.
Der OPC Status wird im gleichen Zyklus wie OutputVal in die Variable #status_1 und der Zeitpunkt des Zyklus in die Variable #timestamp_1 geschrieben.
Der Konfigurationsbaustein muss jetzt nur noch im OB 100 aufgerufen werden.
Serverbrücke
Die pirnzipielle Vorgehensweis ist unter Client Funktionen beschrieben. Zunächst weden die Server, zwischen denen eine Kommunikation erfolgen soll, definiert. Als erstes wird die eigene Serveradresse des IBH link UA angegeben:
Weiterhin kann die gewünschte Sicherheitsstufe ausgewählt werden.
Jetzt können die Variablen der SoftSPS zum Lesen selektiert werden:
und mit einer Variable eines anderen Servers verbunden werden.
PUT / Get Funktionen
Projektierte Verbindung
Um Daten mit der im IBH Link UA integrierten SoftSPS direkt aus einer S7 Steuerung auslesen zu können, können auch die Bausteine PUT (SFB 15) und GET (SFB 14) verwendet werden. Damit kann aus frei adressierbaren Datenbereichen der Partner Steuerung gelesen oder auch geschrieben werden.
Hierfür wird im Simatic Manager oder im TIA Portal eine S7 Verbindung von der IBH SoftSPS zur gewünschten Steuerung angelegt:
Download: TIA Beispiel: IBH Link UA SoftSPS PUT GET S7-1200
SFB15 PUT Spezialfunktion im Anlauf OB 100
Mit dem SFB15 PUT können auch eigene S7-Verbindungen zusätzlich zu denen, die bereits mit STEP7 oder TIA gemacht wurden, erstellt werden.
In diesen Fall muss an der Partner CPU keine Hardwarekonfiguration geladen werden.
Dazu wird der SFB15 PUT mit der Sonder-ID 65400 im Anlaufbaustein OB100 aufgerufen.
Die Felder ADDR und SD werden dazu verwendet, die Verbindungsinformationen anzugeben.
Um auf eine andere SPS auf Rack 0 Slot 2 zuzugreifen, sind nur die IP-Adresse und die Nummer der neuen lokalen ID erforderlich:
CALL PUT , "InstanceDbPut" REQ : = TRUE // Schreibvorgang bei steigender Flanke starten ID : = 65400 // Sonder ID 65400 = HEX FF78 DONE : = "Schreibvorgang" // Schreibvorgang abgeschlossen ERROR : = "Fehlerbit" // Fehlerbit STATUS : = "Statuswort" // Statuswort (siehe Dokumentation Siemens) ADDR_1 : = P#DB10.DBX0.0 BYTE 20 // IP-Adresse oder Hostname als Zeichen-Array in der Form "192.168.1.22" ADDR_2 : = ADDR_3 : = ADDR_4 : = P#DB10.DBX24.0 WORD 1 // Wenn ein anderer Port als 102 verwendet wird, kann er als WORD angegeben werden SD_1 : = P#DB10.DBX26.0 WORD 1 // Nummer der neuen, freien lokalen Verbindungs ID als WORD angegeben SD_2 : = SD_3 : = SD_4 : =
Um auf eine andere SPS auf Rack 0 Slot 1 (in unserem Beispiel eine S71200) zuzugreifen, sind nicht nur die IP-Adresse und die Nummer der neuen lokalen ID erforderlich, In diesem Fall müssen auch die TSAPS angegeben werden.
CALL PUT , "InstanceDbPut" REQ : = TRUE // Schreibvorgang bei steigender Flanke starten ID : = 65400 // Sonder ID 65400 = HEX FF78 DONE : = "Schreibvorgang" // Schreibvorgang abgeschlossen ERROR : = "Fehlerbit" // Fehlerbit STATUS : = "Statuswort" //// Statuswort (siehe Dokumentation Siemens) ADDR_1 : = P#DB10.DBX0.0 BYTE 20 // IP-Adresse oder Hostname als Zeichen-Array in der Form "192.168.1.22" ADDR_2 : = P#DB10.DBX20.0 BYTE 2 // Remote TSAP als Byte-Array in der Form b#16#1 b#16#1 ADDR_3 : = P#DB10.DBX22.0 BYTE 2 // Lokaler TSAP als Byte-Array in der Form b#16#1 b#16#0 ADDR_4 : = P#DB10.DBX24.0 WORD 1 // Wenn ein anderer Port als 102 verwendet wird, kann er als WORD angegeben werden SD_1 : = P#DB10.DBX26.0 WORD 1 // Nummer der neuen, freien lokalen Verbindungs ID als WORD angegeben SD_2 : = SD_3 : = SD_4 : =
Download: S7 für Windows® Beispiel: IBH Link UA SoftSPS PUT Sonderfunktion S7-1200
Download: Step7 Beispiel: IBH Link UA SoftSPS PUT Sonderfunktion S7-1200
Operationsvorrat
Die S7-SoftSPS 416 besitzt den kompletten Befehlsvorrat der SIMATIC® S7-416 CPU.
Binäre Verknüpfungsoperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
U | UND mit Abfrage auf ,,1“ | |
UN | UND mit Abfrage auf ,,0“ | |
O | ODER mit Abfrage auf ,,1“ | |
ON | ODER mit Abfrage auf ,,0“ | |
X | Exklusiv-ODER mit Abfrage auf ,,1“ | |
XN | Exklusiv-ODER mit Abfrage auf ,,0“ | |
E | eines Eingangs | |
A | eines Ausgangs | |
M | eines Merkers | |
L | eines Lokaldatenbits | |
T | einer Zeitfunktion | |
Z | einer Zählfunktion | |
DBX | eines Globaldatenbits | |
DIX | eines Instanzdatenbits | |
==0 | Ergebnis gleich Null | |
<>0 | Ergebnis ungleich Null | |
>0 | Ergebnis größer Null | |
>=0 | Ergebnis größer-gleich Null | |
<0 | Ergebnis kleiner Null | |
<=0 | Ergebnis kleiner-gleich Null | |
UO | ungültiges Ergebnis | |
OV | Overflow | |
OS | Überlauf (speichernd) | |
BIE | Binärergebnis |
Sonstige Verknüpfungen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
U( | UND Klammer auf | |
UN( | UND-NICHT Klammer auf | |
O( | ODER Klammer auf | |
ON( | ODER-NICHT Klammer auf | |
X( | Exklusiv-ODER Klammer auf | |
XN( | Exklusiv-ODER-NICHT Klammer auf | |
) | Klammer zu | |
O | ODER-Verknüpfung von UND | |
NOT | VKE negieren | |
SET | VKE setzen | |
CLR | VKE rücksetzen | |
SAVE | VKE ins BIE retten |
Operation | Operand | Funktionsbeschreibung |
---|---|---|
= | Zuweisung | |
S | Setze | |
R | Rücksetze | |
FP | Positive Flanke | |
FN | Negative Flanke | |
E | eines Eingangsbits | |
A | eines Ausgangsbits | |
M | eines Merkerbits | |
L | eines Lokaldatenbits | |
DBX | eines Datenbits | |
DIX | eines Instanz-Datenbits |
Master Control Relay
Operation | Operand | Funktionsbeschreibung |
---|---|---|
MCRA | MCR-Bereich aktivieren | |
MCRD | MCR-Bereich deaktivieren | |
MCR( | MCR-Zone öffnen | |
)MCR | MCR-Zone schließen |
Lade / Transferoperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
L | Operand laden | |
T | Operand transferieren | |
EB | Eingangsbyte | |
EW | Eingangswort | |
ED | Eingangsdoppelwort | |
AB | Ausgangsbyte | |
AW | Ausgangswort | |
AD | Ausgangsdoppelwort | |
MB | Merkerbyte | |
MW | Merkerwort | |
MD | Merkerdoppelwort | |
LB | Lokaldatenbyte | |
LW | Lokaldatenwort | |
LD | Lokaldatendoppelwort | |
DBB | Datenbausteinbyte | |
DBW | Datenbausteinwort | |
DBD | Datenbausteindoppelwort | |
DIB | Instanz-Datenbausteinbyte | |
DIW | Instanz-Datenbausteinwort | |
DID | Instanz-Datenbausteindoppelwort | |
STW | Statuswort | |
L | konst | Laden einer Konstanten |
L | #Pointer | Laden eines Zeigers |
L | T | Zeitwert |
LC | T | Zeitwert (BCD codiert) |
L | Z | Zähler |
LC | Z | Zähler (BCD codiert) |
L | DBNO | Lade Datenbausteinnummer |
L | DBLG | Lade Datenbausteinlänge |
L | DINO | Lade Datenbausteinnummer (Instanz-DB) |
L | DILG | Lade Datenbausteinlänge (Instanz-DB) |
Peripheriezugriffe
Pheripheriezugriffe sind mit SoftSPS nicht möglich.
Akkumulatorbefehle
Operation | Operand | Funktionsbeschreibung |
---|---|---|
PUSH | Akkus ,,nach oben“ schieben | |
POP | Akkus ,,nach unten“ schieben | |
ENT | Akkus schieben (ohne Al) A2->A3, A3->A4 | |
LEAVE | Akkus schieben (ohne Al) A4->A3, A3->A2 | |
TAK | Akku 1 und Akku 2 tauschen | |
TAW | Akku 1 Bytes 0 und 1 tauschen | |
TAD | Akku 1 alle Bytes tauschen |
Schiebe- und Rotieroperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
SLW | Schieben links wortweise | |
SLD | Schieben links doppelwortweise | |
SRW | Schieben rechts wortweise | |
SRD | Schieben rechts doppelwortweise | |
SSI | Schieben mit Vorzeichen wortweise | |
SSD | Schieben mit Vorzeichen doppelwortweise | |
RLD | Rotieren links doppelwortweise | |
RLDA | Rotieren links durch Al | |
RRDA | Rotieren rechts durch Al | |
RRD | Rotieren rechts doppelwortweise | |
konst | um feste Anzahl von Bits | |
Schiebezahl im Akku 2 |
Zeitoperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
SI | T | Starten als Impuls |
SV | T | Starten als verlängerter Impuls |
SE | T | Starten als Einschaltverzögerung |
SS | T | Starten als speichernde Einschaltverzögerung |
SA | T | Starten als Ausschaltverzögerung |
R | T | Zeitfunktion rücksetzen |
FR | T | Zeitfunktion freigeben |
Zähloperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
ZV | Z | Zählfunktion vorwärtszählen |
ZR | Z | Zählfunktion rückwärtszählen |
S | Z | Zählfunktion setzen |
R | Z | Zählfunktion rücksetzen |
FR | Z | Zählfunktion freigeben |
Wortoperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
UW | UND wortweise | |
UD | UND doppelwortweise | |
OW | ODER wortweise | |
OD | ODER doppelwortweise | |
XOW | Exklusiv-ODER wortweise | |
XOD | Exklusiv-ODER doppelwortweise | |
konst | Mit einer Wort- bzw. Doppelwortkonstanten | |
mit dem Inhalt von Akku 2 |
Arithmetische Operationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
==I | Integervergleich GLEICH | |
<>I | Integervergleich UNGLEICH | |
>I | Integervergleich GRÖSSER | |
>=I | Integervergleich GRÖSSER GLEICH | |
<I | Integervergleich KLEINER | |
<=I | Integervergleich KLEINER GLEICH | |
==D | Doppel-Integervergleich GLEICH | |
<>D | Doppel-Integervergleich UNGLEICH | |
>D | Doppel-Integervergleich GRÖSSER | |
>=D | Doppel-Integervergleich GRÖSSER GLEICH | |
<D | Doppel-Integervergleich KLEINER | |
<=D | Doppel-Integervergleich KLEINER GLEICH | |
==R | REAL-Zahl Vergleich GLEICH | |
<>R | REAL-Zahl Vergleich UNGLEICH | |
>R | REAL-Zahl Vergleich GRÖSSER | |
>=R | REAL-Zahl Vergleich GRÖSSER GLEICH | |
<R | REAL-Zahl Vergleich KLEINER | |
<=R | REAL-Zahl Vergleich KLEINER GLEICH | |
SIN | Sinus | |
COS | Cosinus | |
TAN | Tangens | |
ASIN | Arcussinus | |
ACOS | Arcuscosinus | |
ATAN | Arcustangens | |
SQR | Quadrieren | |
SQRT | Wurzel (Radizieren) | |
EXP | Exponent zur Basis e | |
LN | Natürlicher Logarithmus | |
+I | Integer Addition | |
-I | Integer Subtraktion | |
*I | Integer Multiplikation | |
/I | Integer Division | |
+D | Doppel-Integer Addition | |
-D | Doppel-Integer Subtraktion | |
*D | Doppel-Integer Multiplikation | |
/D | Doppel-Integer Division | |
+R | Realzahl Addition | |
-R | Realzahl Subtraktion | |
*R | Realzahl Multiplikation | |
/R | Realzahl Division | |
MOD | Doppel-Integer Division (Rest) | |
+ | konst | Addieren einer Konstante |
+P# | konst | Addieren eines Zeigers |
DEC | Dekrementieren | |
INC | Inkrementieren |
Umwandlungsfunktionen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
ITD | Wandlung INT nach DINT | |
ITB | Wandlung INT nach BCD | |
DTB | Wandlung DINT nach BCD | |
DTR | Wandlung DINT nach REAL | |
BTI | Wandlung BCD nach INT | |
BTD | Wandlung BCD nach DINT | |
RND | Rundung zur nächsten ganzen Zahl | |
RND+ | Rundung zur nächstgrößeren Zahl | |
RND- | Rundung zur nächstkleineren Zahl | |
TRUNC | ohne Rundung | |
INVI | INT-Einerkomplement | |
INVD | DINT-Einerkomplement | |
NEGI | INT-Negation | |
NEGD | DINT-Negation | |
NEGR | REAL-Negation | |
ABS | REAL-Betragsbildung |
Sprungoperationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
SPA | Ziel | Sprung absolut (unbedingt) |
SPB | Ziel | Sprung wenn VKE = 1 |
SPBB | Ziel | Sprung wenn VKE = 1 (VKE speichern) |
SPBN | Ziel | Sprung wenn VKE = 0 |
SPBNB | Ziel | Sprung wenn VKE = 0 (VKE speichern) |
SPBI | Ziel | Sprung wenn BIE = 1 |
SPBIN | Ziel | Sprung wenn BIE = 0 |
SPZ | Ziel | Sprung bei Vergleichsergebnis = 0 |
SPN | Ziel | Sprung bei Vergleichsergebnis ≠ 0 |
SPP | Ziel | Sprung bei Vergleichsergebnis > 0 |
SPPZ | Ziel | Sprung bei Vergleichsergebnis >= 0 |
SPM | Ziel | Sprung bei Vergleichsergebnis < 0 |
SPMZ | Ziel | Sprung bei Vergleichsergebnis <= 0 |
SPU | Ziel | Sprung bei Vergleichsergebnis ungültig |
SPO | Ziel | Sprung bei Overflow |
SPS | Ziel | Sprung bei speicherndem Overflow |
SPL | Ziel | Sprungverteiler |
LOOP | Ziel | Schleife |
Aufruf-Operationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
CALL FB | Sprung zum Funktionsbaustein | |
CALL FC | Sprung zur Funktion | |
CALL SFB | Sprung zum System-Funktionsbaustein | |
CALL SFC | Sprung zur System-Funktion | |
UC FB | Funktionsbaustein absolut aufrufen | |
CC FB | Funktionsbaustein bedingt aufrufen | |
UC FC | Funktion absolut aufrufen | |
CC FC | Funktion bedingt aufrufen | |
BEA | Bausteinende absolut | |
BEB | Bausteinende bedingt | |
BE | Bausteinende | |
AUF | DB | Datenbaustein öffnen |
DI | Instanz-Datenbaustein öffnen | |
TDB | Datenbausteinregister tauschen |
Indirekte Adressierung
Operation | Operand | Funktionsbeschreibung |
---|---|---|
LAR1 | AR1 laden | |
LAR2 | AR2 laden | |
MD | mit Merkerdoppelwort | |
LD | mit Lokaldatendoppelwort | |
DBD | mit Datenbausteindoppelwort | |
DID | mit Instanz-Datenbausteindoppelwort | |
LAR1 | AR1 laden mit Inhalt aus Akku1 | |
LAR2 | AR2 laden mit Inhalt aus Akku1 | |
LAR1 | AR2 | AR1 laden mit Inhalt aus A2 |
LAR1 | P# | AR1 laden mit Zeiger |
LAR2 | P# | AR2 laden mit Zeiger |
TAR1 | Schreibe AR1 | |
TAR2 | Schreibe AR2 | |
MD | in Merkerdoppelwort | |
LD | in Lokaldatendoppelwort | |
DBD | in Datenbausteindoppelwort | |
DID | in Instanz-Datenbausteindoppelwort | |
TAR1 | Schreibe AR1 in Akku1 | |
TAR2 | Schreibe AR2 in Akku1 | |
TAR1 | AR2 | AR1 nach AR2 transferieren |
TAR | AR1 mit AR2 tauschen | |
+AR1 | Addiere Akku1 zu AR1 | |
+AR2 | Addiere Akku1 zu AR2 | |
+AR1 | P# | Addiere Pointer zu AR1 |
+AR2 | P# | Addiere Pointer zu AR2 |
Sonstige Operationen
Operation | Operand | Funktionsbeschreibung |
---|---|---|
NOP | 0 | Nulloperation |
NOP | 1 | Nulloperation |
BLD | konst | Bildaufbau |
Integrierte Organisationsbausteine
Die in der folgenden Tabelle aufgeführten Organisationsbausteine werden ausgeführt, sofern sie programmiert sind:
OB-Nr | Kurzbeschreibung |
---|---|
OB 1 | Hauptprogramm |
OB 10 – OB 17 | Uhrzeitalarm |
OB 20 – OB 23 | Verzögerungsalarm |
OB 30 – OB 38 | Zeitbausteine (zyklischer Aufruf) |
OB 80 – OB 87 | Fehlerbausteine |
OB 90 | Hintergrundbearbeitung |
OB 100 | Neustart bzw. Wiederanlauf |
OB 121/OB 122 | Programmierfehler |
Integrierte Systemfunktionen
In der SoftSPS sind die für eine Software-SPS relevanten Systemfunktionen (SFC) integriert
Die folgende Tabelle zeigt (in numerischer Aufzählung) die vorhandenen SFC's.
SFC-Nr | SFC-Name | Kurzbeschreibung |
---|---|---|
SFC 0 | SET_CLK | Setzen der Systemzeit |
SFC 1 | READ_CLK | Lesen der Systemzeit |
SFC 6 | RD_SINFO | Startinformation des aktuellen OBs auslesen |
SFC 20 | BLKMOV | SPS-Variable in Zielbereich kopieren |
SFC 21 | FILL | SPS-Variable in Zielbereich vorbesetzen |
SFC 22 | CREAT_DB | Anlegen von Datenbausteinen |
SFC 23 | DEL_DB | Datenbaustein löschen |
SFC 24 | TEST_DB | Attribute eines Datenbausteins testen |
SFC 25 | COMPRESS | Ladespeicher komprimieren |
SFC 28 | SET_TINT | Stellen eines Uhrzeitalarms |
SFC 29 | CAN_TINT | Uhrzeitalarm anhalten (nicht ausführen) |
SFC 30 | ACT_TINT | Uhrzeitalarm freigeben |
SFC 31 | QRY_TINT | Status des Uhrzeitalarms |
SFC 32 | SRT_DINT | Starte Verzögerungsalarm |
SFC 33 | CAN_DINT | Unterbreche Verzögerungsalarm |
SFC 34 | QRY_DINT | Statusabfrage des Verzögerungsalarms |
SFC 36 | MSK_FLT | Maskieren eines synchronen Fehlerereignisses |
SFC 37 | DMSK_FLT | Demaskieren eines synchronen Fehlerereignisses |
SFC 38 | READ_ERR | Auslesen des Ereignisstatusregister |
SFC 39 | DIS_IRT | Sperren der Asynchron- und Alarmfehlerbearbeitung |
SFC 40 | EN_IRT | Freigeben der Asynchron- und Alarmfehlerbearbeitung |
SFC 41 | DIS_AIRT | Verzögerung höherpriorer Asynchron- und Alarmfehlerbearbeitung |
SFC 42 | EN_AIRT | Freigabe höherpriorer Asynchron- und Alarmfehlerbearbeitung |
SFC 43 | RE_TRIGR | Nachtriggern des Watchdogs |
SFC 46 | STP | CPU Betriebszustand STOP |
SFC 51 | RDSYST | Systemzustandsliste (SZL) auslesen |
SFC 64 | TIME_TCK | Timer Tick |
SFC 81 | UBLKMOV | Block Move der nicht unterbrochen werden kann |
Integrierte Systembausteine
In der SoftSPS sind die für eine Software-SPS relevanten Systembausteine (SFB) integriert.
S7 für Windows® unterstützt die SFB-Aufrufe durch intern vorhandene Bausteinkopf-Deklarationen (siehe Kapitel "Integrierte Systemfunktionen").
Folgende Systemfunktionsbausteine werden unterstützt:
SFB-Nr | SFB-Name | Kurzbeschreibung |
---|---|---|
SFB 0 | CTU | Vorwärtszähler (Counter Up) |
SFB 1 | CTD | Rückwärtszähler (Counter Down) |
SFB 2 | CTUD | Vorwärts- und Rückwärtszähler |
SFB 3 | TP | Zeitimpuls |
SFB 4 | TON | Einschaltverzögerung |
SFB 5 | TOF | Ausschaltverzögerung |
SFB 8 | USEND | OPC UA Client Konfiguration |
SFB 32 | DRUM | Schaltwerk zur Steuerung von Schrittketten |
Technische Daten
Ladespeicher | 5 MB |
Arbeitsspeicher | > 100 MB |
Bausteine | 16.384 |
Merker (Bit) | 131.072 |
Zeiten | 2048 |
Zähler | 2048 |
Digital E/A | 32.768 Bit |
Bearbeitungszeiten 1) | |
CPU Anteil SPS 50% | ca. 360 µs |
CPU Anteil SPS 33% | ca. 550 µs |
CPU Anteil SPS 25% | ca. 720 µs |
CPU Anteil SPS 20% | ca. 900 µs |
CPU Anteil SPS 12% | ca. 1800 µs |
1) 1024 gemischte Anweisungen (50% Binär, 50% Digital)