Difference between revisions of "S7-PCI315:Instruction set"
From IBHsoftec Wiki English
(→Load / Transfer instructions) |
(→Program display and null operation instructions) |
||
(4 intermediate revisions by one other user not shown) | |||
Line 59: | Line 59: | ||
== Other boolean logic instructions == | == Other boolean logic instructions == | ||
− | |||
{| class="wikitable" | {| class="wikitable" | ||
Line 117: | Line 116: | ||
| || DIX || of an instance data bit | | || DIX || of an instance data bit | ||
|} | |} | ||
− | |||
== Master Control Relay == | == Master Control Relay == | ||
Line 133: | Line 131: | ||
| )MCR || || Close MCR zone | | )MCR || || Close MCR zone | ||
|} | |} | ||
− | |||
== Load / Transfer instructions == | == Load / Transfer instructions == | ||
+ | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 222: | Line 220: | ||
|} | |} | ||
− | + | == Accumulator instructions == | |
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 243: | Line 240: | ||
| CAD || || Change ACCU1 bytes 0 and 3, 1 and 2 | | CAD || || Change ACCU1 bytes 0 and 3, 1 and 2 | ||
|} | |} | ||
− | |||
== Shift and rotating instructions == | == Shift and rotating instructions == | ||
Line 297: | Line 293: | ||
|} | |} | ||
− | + | == Counter instructions == | |
{| class="wikitable" | {| class="wikitable" | ||
Line 314: | Line 310: | ||
|} | |} | ||
− | + | == Word instructions == | |
{| class="wikitable" | {| class="wikitable" | ||
Line 330: | Line 326: | ||
| XOW || || Exclusive-OR ACCU (XOR word) | | XOW || || Exclusive-OR ACCU (XOR word) | ||
|- | |- | ||
− | | XOD || || | + | | XOD || || Exclusive-OR ACCU (XOR double word) |
|- | |- | ||
| || Const || with a word or double word constant | | || Const || with a word or double word constant | ||
Line 337: | Line 333: | ||
|} | |} | ||
− | + | == Arithmetic instructions == | |
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 435: | Line 430: | ||
|} | |} | ||
− | + | == Data type conversion instructions == | |
− | + | ||
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 476: | Line 469: | ||
|} | |} | ||
− | + | == Jump instructions == | |
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 519: | Line 511: | ||
| LOOP || Destination || Loop programming (decrement ACCU1-L and jump if ≠ 0 | | LOOP || Destination || Loop programming (decrement ACCU1-L and jump if ≠ 0 | ||
|} | |} | ||
− | |||
== Block call instructions == | == Block call instructions == | ||
Line 556: | Line 547: | ||
|} | |} | ||
− | + | == Indirect adressing instructions == | |
− | + | ||
− | + | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! Operation !! Operand !! | + | ! Operation !! Operand !! Description |
|- | |- | ||
|style="width: 6em"| LAR1 ||style="width: 6em"| ||style="width: 27em"| Load AR1 | |style="width: 6em"| LAR1 ||style="width: 6em"| ||style="width: 27em"| Load AR1 | ||
Line 614: | Line 603: | ||
| +AR2 || P# || Add pointer to AR2 | | +AR2 || P# || Add pointer to AR2 | ||
|} | |} | ||
− | |||
== Program display and null operation instructions == | == Program display and null operation instructions == | ||
Line 620: | Line 608: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! Operation !! Operand !! | + | ! Operation !! Operand !! Description |
|- | |- | ||
|style="width: 6em"| NOP ||style="width: 6em"| 0 ||style="width: 27em"| Null operation instruction | |style="width: 6em"| NOP ||style="width: 6em"| 0 ||style="width: 27em"| Null operation instruction |
Latest revision as of 14:22, 6 August 2012
Contents
- 1 S7-PCI315 instruction set
- 2 Bit logic instructions
- 3 Other boolean logic instructions
- 4 Master Control Relay
- 5 Load / Transfer instructions
- 6 Peripheral access instructions
- 7 Accumulator instructions
- 8 Shift and rotating instructions
- 9 Timer instructions
- 10 Counter instructions
- 11 Word instructions
- 12 Arithmetic instructions
- 13 Data type conversion instructions
- 14 Jump instructions
- 15 Block call instructions
- 16 Indirect adressing instructions
- 17 Program display and null operation instructions
S7-PCI315 instruction set
The S7-PCI315 PLC has the complete instruction set of the SIMATIC® S7-315 PLC.
Bit logic instructions
Instruction | Operand | Description |
---|---|---|
A | AND with a scan to "1" | |
AN | AND with a scan to "0" | |
O | OR with scan to "1" | |
ON | OR with scan to "0" | |
X | Exclusive-OR with a scan to "1" | |
XN | Exclusive-OR with a scan to "0" | |
I | of an input | |
Q | of an output | |
M | of a memory flag | |
L | of a local data bit | |
T | of a timer | |
C | of a counter | |
DBX | of a data bit | |
DIX | of an instance data bit | |
==0 | result equal zero | |
<>0 | result unequal zero | |
>0 | result greater than zero | |
>=0 | result greater or equal zero | |
<0 | result less than zero | |
<=0 | result less or equal zero | |
UO | invalid result | |
OV | overflow | |
OS | overflow (saved) | |
BR | binary result |
Other boolean logic instructions
Operation | Operand | Description |
---|---|---|
A( | AND left parenthesis | |
AN( | AND NOT left parenthesis | |
O( | OR left parenthesis | |
ON( | OR NOT left parenthesis | |
X( | Exclusive OR left parenthesis | |
XN( | Exclusive OR NOT left parenthesis | |
) | Right parenthesis | |
O | OR-ing AND operations | |
NOT | Negate RLO | |
SET | Set RLO to "1" | |
CLR | Set RLO to "0" | |
SAVE | Save RLO to the BR bit |
Operation | Operand | Description |
---|---|---|
= | Assign value of RLO | |
S | Set | |
R | Reset | |
FP | Positive edge detection | |
FN | Negative edge detection | |
I | of an input bit | |
Q | of an output bit | |
M | of a flag memory bit | |
L | of a local data bit | |
DBX | of a data bit | |
DIX | of an instance data bit |
Master Control Relay
Operation | Operand | Description |
---|---|---|
MCRA | Activate MCR | |
MCRD | Deactivate MCR | |
MCR( | Open MCR zone | |
)MCR | Close MCR zone |
Load / Transfer instructions
Operation | Operand | Description |
---|---|---|
L | Load operand | |
T | Transfer operand | |
IB | Input byte | |
IW | Input word | |
ID | Input double word | |
QB | Output byte | |
QW | Output word | |
QD | Output double word | |
MB | Memory byte | |
MW | Memory word | |
MD | Memory double word | |
LB | Local data byte | |
LW | Local data word | |
LD | Local data double word | |
DBB | Data block byte | |
DBW | Data block word | |
DBD | Data block double word | |
DIB | Instance data block byte | |
DIW | Instance data block word | |
DID | Instance data block double word | |
STW | Status word | |
L | Const | Load constant value |
L | #Pointer | Load pointer |
L | T | Timer |
LC | T | Timer (BCD coded) |
L | C | Counter |
LC | C | Counter (BCD coded) |
L | DBNO | Data block number |
L | DBLG | Data block length |
L | DINO | Instance data block number |
L | DILG | Instance data block length |
Peripheral access instructions
Operation | Operand | Description |
---|---|---|
L | PIB | Load peripheral input byte |
L | PIW | Load peripheral input word |
L | PID | Load peripheral input double word |
T | PQB | Transfer peripheral output byte |
T | PQW | Transfer peripheral output word |
T | PQD | Transfer peripheral output double word |
Accumulator instructions
Operation | Operand | Description |
---|---|---|
PUSH | Push accumulators upwards | |
POP | Push accumulators downwards | |
ENT | Push accumulators (without A1) A2->A3, A3->A4 | |
LEAVE | Push accumulators (without A1) A4->A3, A3->A2 | |
TAK | Change ACCU1 with ACCU2 | |
CAW | Change ACCU1 bytes 0 and 1 | |
CAD | Change ACCU1 bytes 0 and 3, 1 and 2 |
Shift and rotating instructions
Operation | Operand | Description |
---|---|---|
SLW | Shift ACCU1-L left (word shift) | |
SLD | Shift ACCU1 left (double word shift) | |
SRW | Shift ACCU1-L right (word shift) | |
SRD | Shift ACCU1 right (double word shift) | |
SSI | Shift ACCU1-L right (word shift with sign) | |
SSD | Shift ACCU1 right (double word shift with sign) | |
RLD | Rotate ACCU1 left (double word) | |
RLDA | Rotate ACCU1 left through CC1 | |
RRDA | Rotate ACCU1 right through CC1 | |
RRD | Rotate ACCU1 right (double word) | |
Const | Number of places to shift/rotate | |
Number of places to shift/rotate located in ACCU2 |
Timer instructions
Operation | Operand | Description |
---|---|---|
SP | T | Start as impulse |
SE | T | Start as extended impulse |
SD | T | Start as ON-delay |
SS | T | Start as saving ON-delay |
SF | T | Start as OFF-delay |
R | T | Reset timer |
FR | T | Enable timer |
Counter instructions
Operation | Operand | Description |
---|---|---|
CU | C | Count up (increment) |
CD | C | Count down (decrement) |
S | C | Set counter |
R | C | Reset counter |
FR | C | Enable counter |
Word instructions
Operation | Operand | Description |
---|---|---|
AW | AND ACCU1-L (AND word) | |
AD | AND ACCU1 (AND double word) | |
OW | OR ACCU1-L (OR word) | |
OD | OR ACCU1 (OR double word) | |
XOW | Exclusive-OR ACCU (XOR word) | |
XOD | Exclusive-OR ACCU (XOR double word) | |
Const | with a word or double word constant | |
with ACCU2 |
Arithmetic instructions
Operation | Operand | Description |
---|---|---|
==I | Integer values equal | |
<>I | Integer values unequal | |
>I | Integer values greater | |
>=I | Integer values greater or equal | |
<I | Integer values less | |
<=I | Integer values less or equal | |
==D | Double integer values equal | |
<>D | Double integer values unequal | |
>D | Double integer values greater | |
>=D | Double integer values greater or equal | |
<D | Double integer values less | |
<=D | Double integer values less or equal | |
==R | Real values equal | |
<>R | Real values unequal | |
>R | Real values greater | |
>=R | Real values greater or equal | |
<R | Real values less | |
<=R | Real values less or equal | |
SIN | Sine of a real value | |
COS | Cosine of a real value | |
TAN | Tangent of a real value | |
ASIN | Arcsine of a real value | |
ACOS | Arccosine of a real value | |
ATAN | Arctanget of a real value | |
SQR | Square a real value | |
SQRT | Square root a real value | |
EXP | e to the power of a real value | |
LN | Natural logarithm of a real value | |
+I | Integer addition | |
-I | Integer subtraction | |
*I | Integer multiplication | |
/I | Integer division | |
+D | Double-integer addition | |
-D | Double-integer subtraction | |
*D | Double-integer multiplication | |
/D | Double-integer division | |
+R | Real addition | |
-R | Real subtraction | |
*R | Real multiplication | |
/R | Real division | |
MOD | Double integer division (modulo) | |
+ | Const | Add a constant |
+P# | Const | Add a pointer |
DEC | decrement ACCU1-LL (one byte) | |
INC | increment ACCU1-LL (one byte) |
Data type conversion instructions
Operation | Operand | Description |
---|---|---|
ITD | Convert integer to double integer | |
ITB | Convert integer to BCD | |
DTB | Convert double integer to BCD | |
DTR | Convert double integer to real | |
BTI | Convert BCD to integer | |
BTD | Convert BCD to double integer | |
RND | Convert real to double integer (round) | |
RND+ | Convert real to double integer (round up) | |
RND- | Convert real to double integer (round down) | |
TRUNC | Convert real to double integer (truncate) | |
INVI | Invert ACCU1-L (integer) | |
INVD | Invert ACCU1 (double integer) | |
NEGI | Negate ACCU1-L (integer) | |
NEGD | Negate ACCU1 (double integer) | |
NEGR | Negate ACCU1 (real) | |
ABS | REAbsolute value (real) |
Jump instructions
Operation | Operand | Description |
---|---|---|
JU | Destination | Jump unconditional |
JC | Destination | Jump if RLO = 1 |
JCB | Destination | Jump if RLO = 1 (save RLO) |
JCN | Destination | Jump if RLO = 0 |
JNB | Destination | Jump if RLO = 0 (save RLO) |
JBI | Destination | Jump if BR = 1 |
JNBI | Destination | Jump if BR = 0 |
JZ | Destination | Jump if compare result = 0 |
JN | Destination | Jump if compare result ≠ 0 |
JP | Destination | Jump if compare result > 0 |
JPZ | Destination | Jump if compare result >= 0 |
JM | Destination | Jump if compare result < 0 |
JMZ | Destination | Jump if compare result <= 0 |
JUO | Destination | Jump if compare result "Unordered Math Instruction" |
JO | Destination | Jump on overflow |
JOS | Destination | Jump on saved overflow |
JL | Destination | Jump distributor |
LOOP | Destination | Loop programming (decrement ACCU1-L and jump if ≠ 0 |
Block call instructions
Operation | Operand | Description |
---|---|---|
CALL FB | Unconditional call of an FB with parameter transfer | |
CALL FC | Unconditional call of an FC with parameter transfer | |
CALL SFB | Unconditional call of an SFB with parameter transfer | |
CALL SFC | Unconditional call of an SFC with parameter transfer | |
UC FB | Unconditional call of an FB without parameter transfer | |
CC FB | Conditional call of an FB without parameter transfer | |
UC FC | Unconditional call of an FC without parameter transfer | |
CC FC | Conditional call of an FC without parameter transfer | |
BEU | End block unconditionally | |
BEC | End block conditionally (RLO = 1) | |
BE | End block | |
OPN | DB | Open data block |
DI | Open instance data block | |
TDB | Exchange data block registers |
Indirect adressing instructions
Operation | Operand | Description |
---|---|---|
LAR1 | Load AR1 | |
LAR2 | Load AR2 | |
MD | with memory double word | |
LD | with local data double word | |
DBD | with datablock double word | |
DID | with instance data block double word | |
LAR1 | Load AR1 with ACCU1 | |
LAR2 | Load AR2 with ACCU1 | |
LAR1 | AR2 | Load AR1 with AR2 |
LAR1 | P# | Load AR1 with pointer |
LAR2 | P# | Load AR2 with pointer |
TAR1 | Transfer in AR1 | |
TAR2 | Transfer in AR2 | |
MD | in memory double word | |
LD | in local data double word | |
DBD | in datablock double word | |
DID | in instance data block double word | |
TAR1 | Transfer AR1 in ACCU1 | |
TAR2 | Transfer AR2 in ACCU1 | |
TAR1 | AR2 | Transfer AR1 in AR2 |
TAR | Swap AR1 with AR2 | |
+AR1 | Add ACCU1 to AR1 | |
+AR2 | Add ACCU1 to AR2 | |
+AR1 | P# | Add pointer to AR1 |
+AR2 | P# | Add pointer to AR2 |
Program display and null operation instructions
Operation | Operand | Description |
---|---|---|
NOP | 0 | Null operation instruction |
NOP | 1 | Null operation instruction |
BLD | Const | Program display instruction (null operation) |