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 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
|