S7-SoftSPS:Operationsvorrat: Unterschied zwischen den Versionen

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Die Programmierung der IBHsoftec Steuerungen '''S7-SoftSPS 315''' und '''S7-SoftSPS 416''' erfolgt in STEP® 7 über die Programmierwerkzeuge '''S7 für Window…“)
 
(Integrierte Systemfunktionen)
 
(10 dazwischenliegende Versionen des gleichen Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Die Programmierung der IBHsoftec Steuerungen '''S7-SoftSPS 315''' und '''S7-SoftSPS 416''' erfolgt in STEP® 7 über die Programmierwerkzeuge '''S7 für Windows®''' oder STEP® 7 der Firma Siemens. Es wird der komplette Befehlsvorrat der Programmiersprache STEP® 7 unterstützt.
+
Die Programmierung der IBHsoftec Steuerungen ''S7-SoftSPS 315'' und ''S7-SoftSPS 416'' erfolgt in STEP® 7 über die Programmierwerkzeuge ''S7 für Windows®'' oder STEP® 7 der Firma Siemens. Es wird der komplette Befehlsvorrat der Programmiersprache STEP® 7 unterstützt.
 
+
Die '''S7-SoftSPS 315''' besitzt den kompletten Befehlsvorrat der SIMATIC® S7-315 CPU.
+
 
+
Die '''S7-SoftSPS 416''' besitzt den kompletten Befehlsvorrat der SIMATIC® S7-416 CPU.
+
  
 +
Die ''S7-SoftSPS 315'' besitzt den kompletten Befehlsvorrat der SIMATIC® S7-315 CPU.
  
 +
Die ''S7-SoftSPS 416'' besitzt den kompletten Befehlsvorrat der SIMATIC® S7-416 CPU.
  
 
== Binäre Verknüpfungsoperationen ==
 
== Binäre Verknüpfungsoperationen ==
Zeile 124: Zeile 122:
  
 
== Master Control Relay ==
 
== Master Control Relay ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 139: Zeile 138:
  
 
== Lade / Transferoperationen ==
 
== Lade / Transferoperationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 196: Zeile 196:
 
| L || Z || Zähler
 
| L || Z || Zähler
 
|-
 
|-
| LC || C || Zähler (BCD codiert)
+
| LC || Z || Zähler (BCD codiert)
 
|-
 
|-
 
| L || DBNO || Lade Datenbausteinnummer
 
| L || DBNO || Lade Datenbausteinnummer
Zeile 208: Zeile 208:
  
 
== Peripheriezugriffe ==
 
== Peripheriezugriffe ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 227: Zeile 228:
  
 
== Akkumulatorbefehle ==
 
== Akkumulatorbefehle ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 248: Zeile 250:
  
 
== Schiebe- und Rotieroperationen ==
 
== Schiebe- und Rotieroperationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 279: Zeile 282:
  
 
== Zeitoperationen ==
 
== Zeitoperationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 318: Zeile 322:
  
 
== Wortoperationen ==
 
== Wortoperationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 341: Zeile 346:
  
 
== Arithmetische Operationen ==
 
== Arithmetische Operationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 438: Zeile 444:
  
 
== Umwandlungsfunktionen ==
 
== Umwandlungsfunktionen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 475: Zeile 482:
 
| ABS ||  || REAL-Betragsbildung
 
| ABS ||  || REAL-Betragsbildung
 
|}
 
|}
 
  
 
== Sprungoperationen ==
 
== Sprungoperationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 521: Zeile 528:
  
 
== Aufruf-Operationen ==
 
== Aufruf-Operationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 614: Zeile 622:
  
 
== Sonstige Operationen ==
 
== Sonstige Operationen ==
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 625: Zeile 634:
 
| BLD || konst || Bildaufbau
 
| BLD || konst || Bildaufbau
 
|}
 
|}
 +
 +
 +
'''Aufbau des SPS-Speichers der ''S7-SoftSPS'''''
 +
 +
Der Speicher der ''SoftSPSPLC S7-315'' und ''SoftSPS PLC S7-416'' gleicht im Wesentlichen dem Speicher der SIMATIC<sup>®</sup>-Steuerung S7-315 bzw. S7-416.
 +
 +
Beachten Sie, dass bei einem Zugriff von Windows-Programmen auf diesen Speicher das niederwertige mit dem höherwertigen Byte getauscht werden muss.
 +
 +
 +
'''Aufbau der Systemdaten SoftSPS'''
 +
 +
Der Aufbau der Systemdaten in den Systemdatenbausteinen gleicht im Wesentlichen dem Aufbau der Systemdaten in der SIMATIC<sup>®</sup>-Steuerung S7-315 bzw. S7-416.
 +
 +
==Integrierte Organisationsbausteine==
 +
 +
 +
Die in der folgenden Tabelle aufgeführten Organisationsbausteine werden ausgeführt, sofern sie programmiert sind:
 +
 +
{| class="wikitable"
 +
|-
 +
! OB-Nr !! Kurzbeschreibung
 +
|-
 +
|style="width:14em"| OB 1 ||style="width:14em"| 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/OB 101 || 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.
 +
 +
{| class="wikitable"
 +
|-
 +
! SFC-Nr !! SFC-Name !! Kurzbeschreibung
 +
|-
 +
|style="width:7em"| SFC 0 ||style="width:8em"| SET_CLK || Setzen der Systemzeit
 +
|-
 +
| SFC 1 || READ_CLK || Lesen der Systemzeit
 +
|-
 +
| SFC 5  (3) || GADR_LGC || Logische Basisadresse einer Baugruppe ermitteln
 +
|-
 +
| SFC 6 || RD_SINFO || Startinformation des aktuellen OBs auslesen
 +
|-
 +
| SFC 13 (1) || DPNRM_DG || Slave-Diagnose eines DP-Slaves
 +
|-
 +
| SFC 14 (2) || DPRD_DAT || Konsistente Daten eines DP-Normslaves lesen
 +
|-
 +
| SFC 15 (2) || DPWR_DAT || Daten konsistent auf DP-Normslave schreiben
 +
|-
 +
| 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 49 (3) || LGC_GADR || Ermitteln des Steckplatzes einer logischen Adresse
 +
|-
 +
| SFC 50 (3) || RD_LAGADR || Ermitteln aller logischer Adressen einer Baugruppe
 +
|-
 +
| SFC 51 || RDSYST || Systemzustandsliste (SZL) auslesen
 +
|-
 +
| SFC 64 || TIME_TCK || Timer Tick
 +
|-
 +
| SFC 81 || UBLKMOV || Block Move der nicht unterbrochen werden kann
 +
|}
 +
 +
(1) Die SFC 13 ist nur vorhanden, wenn der Treiber Cifcfg.dll eingebunden ist. Zudem kann diese nur  gültige Ergebnisse liefern, wenn die PROFIBUS<sup>®</sup>-Konfiguration über den ''S7 für Windows''<sup>®</sup> Hardwarekonfigurator oder den STEP<sup>®</sup>7 Hardwarekonfigurator erzeugt wurde. Dies ist nur bei Verwendung des Treibers  (im Lieferumfang) CIFCFG.DLL  möglich.
 +
 +
(2) Die SFC 14 und SFC 15 sind nur verfügbar, wenn diese über den Treiber CIF30D0.dll oder den Treiber CIFCFG.DLL eingebunden sind.
 +
 +
(3) Die SFCs können nur gültige Ergebnisse liefern, wenn die PROFIBUS<sup>®</sup>-Konfiguration über den ''S7 für Windows''<sup>®</sup> Hardwarekonfigurator oder den STEP<sup>®</sup>7 Hardwarekonfigurator erzeugt wurde. Dies ist nur bei Verwendung des Treibers (im Lieferumfang)  CIFCFG.DLL  möglich.
 +
 +
==Integrierte Systembausteine==
 +
 +
 +
In der ''SoftSPS'' sind die für eine Software-SPS relevanten Systembausteine (SFB) integriert.
 +
 +
''S7 für Windows''<sup>®</sup> unterstützt die SFB-Aufrufe durch intern vorhandene Bausteinkopf-Deklarationen (siehe Kapitel &quot;Integrierte Systemfunktionen&quot;).
 +
 +
Folgende Systemfunktionsbausteine werden unterstützt:
 +
 +
{| class="wikitable"
 +
|-
 +
! SFB-Nr !! SFB-Name !! Kurzbeschreibung
 +
|-
 +
|style="width:7em"| SFB 0 ||style="width:7em"| 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 32 || DRUM || Schaltwerk zur Steuerung von Schrittketten
 +
|-
 +
| SFB 52 (4) || RDREC_DP || Datensatz lesen
 +
|-
 +
| SFB 53 (4) || WRREC_DP || Datensatz schreiben
 +
|}
 +
 +
(4) Die SFB 52 und SFB 53 sind nur unter Verwendung des Treibers CIFCFG.DLL und entsprechendem Eintrag DPV1=1 in der Sektion [CIFCFG] der Konfigurationsdatei PLC43.ini verfügbar.

Aktuelle Version vom 19. Dezember 2012, 09:46 Uhr

Die Programmierung der IBHsoftec Steuerungen S7-SoftSPS 315 und S7-SoftSPS 416 erfolgt in STEP® 7 über die Programmierwerkzeuge S7 für Windows® oder STEP® 7 der Firma Siemens. Es wird der komplette Befehlsvorrat der Programmiersprache STEP® 7 unterstützt.

Die S7-SoftSPS 315 besitzt den kompletten Befehlsvorrat der SIMATIC® S7-315 CPU.

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

Operation Operand Funktionsbeschreibung
L PEB Peripherieeingangsbyte
L PEW Peripherieeingangswort
L PED Peripherieeingangsdoppelwort
T PAB Peripherieausgangsbyte
T PAW Peripherieausgangswort
T PAD Peripherieausgangsdoppelwort

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 doppelwort­weise
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


Aufbau des SPS-Speichers der S7-SoftSPS

Der Speicher der SoftSPSPLC S7-315 und SoftSPS PLC S7-416 gleicht im Wesentlichen dem Speicher der SIMATIC®-Steuerung S7-315 bzw. S7-416.

Beachten Sie, dass bei einem Zugriff von Windows-Programmen auf diesen Speicher das niederwertige mit dem höherwertigen Byte getauscht werden muss.


Aufbau der Systemdaten SoftSPS

Der Aufbau der Systemdaten in den Systemdatenbausteinen gleicht im Wesentlichen dem Aufbau der Systemdaten in der SIMATIC®-Steuerung S7-315 bzw. S7-416.

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/OB 101 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 5 (3) GADR_LGC Logische Basisadresse einer Baugruppe ermitteln
SFC 6 RD_SINFO Startinformation des aktuellen OBs auslesen
SFC 13 (1) DPNRM_DG Slave-Diagnose eines DP-Slaves
SFC 14 (2) DPRD_DAT Konsistente Daten eines DP-Normslaves lesen
SFC 15 (2) DPWR_DAT Daten konsistent auf DP-Normslave schreiben
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 49 (3) LGC_GADR Ermitteln des Steckplatzes einer logischen Adresse
SFC 50 (3) RD_LAGADR Ermitteln aller logischer Adressen einer Baugruppe
SFC 51 RDSYST Systemzustandsliste (SZL) auslesen
SFC 64 TIME_TCK Timer Tick
SFC 81 UBLKMOV Block Move der nicht unterbrochen werden kann

(1) Die SFC 13 ist nur vorhanden, wenn der Treiber Cifcfg.dll eingebunden ist. Zudem kann diese nur  gültige Ergebnisse liefern, wenn die PROFIBUS®-Konfiguration über den S7 für Windows® Hardwarekonfigurator oder den STEP®7 Hardwarekonfigurator erzeugt wurde. Dies ist nur bei Verwendung des Treibers  (im Lieferumfang) CIFCFG.DLL  möglich.

(2) Die SFC 14 und SFC 15 sind nur verfügbar, wenn diese über den Treiber CIF30D0.dll oder den Treiber CIFCFG.DLL eingebunden sind.

(3) Die SFCs können nur gültige Ergebnisse liefern, wenn die PROFIBUS®-Konfiguration über den S7 für Windows® Hardwarekonfigurator oder den STEP®7 Hardwarekonfigurator erzeugt wurde. Dies ist nur bei Verwendung des Treibers (im Lieferumfang)  CIFCFG.DLL  möglich.

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 32 DRUM Schaltwerk zur Steuerung von Schrittketten
SFB 52 (4) RDREC_DP Datensatz lesen
SFB 53 (4) WRREC_DP Datensatz schreiben

(4) Die SFB 52 und SFB 53 sind nur unter Verwendung des Treibers CIFCFG.DLL und entsprechendem Eintrag DPV1=1 in der Sektion [CIFCFG] der Konfigurationsdatei PLC43.ini verfügbar.