Description
ATAN establishes the arc tangent value of a floating-point number. The result represents an angle
in a radian measure within the range
-π/2 ≤ output value ≤ +π/2
where π = 3.1415....
See also Evaluating the Bits of the Status Word.
Status word
BR
CC 1
CC 0
OV
OS
OR
STA
RLO
/FC
writes:
x
x
x
x
x
0
x
x
1
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
105
9
Move Instructions
9.1
MOVE Assign a Value
Symbol
MOVE
IN
ENO
EN
OUT
Parameter
Data Type
Memory Area
Description
EN
BOOL
I, Q, M, L, D
Enable input
ENO
BOOL
I, Q, M, L, D
Enable output
IN
All elementary data types
with a length of 8, 16, or
32 bits
I, Q, M, L, D or constant Source value
OUT
All elementary data types
with a length of 8, 16, or
32 bits
I, Q, M, L, D
Destination address
Description
MOVE (Assign a Value) is activated by the Enable EN Input. The value specified at the IN input is
copied to the address specified at the OUT output. ENO has the same logic state as EN.
MOVE
can copy only BYTE, WORD, or DWORD data objects. User-defined data types like arrays or
structures have to be copied with the system function "BLKMOVE" (SFC 20).
Status word
BR
CC 1
CC 0
OV
OS
OR
STA
RLO
/FC
writes:
1
-
-
-
-
0
1
1
1
MCR (Master Control Relay) dependency
MCR dependency is activated only if a Move box is placed inside an active MCR zone. Within an
activated MCR zone, if the MCR is on and there is power flow to the enable input; the addressed
data is copied as described above. If the MCR is off, and a MOVE is executed, a logic "0" is written
to the specified OUT address regardless of current IN states.
Move Instructions
9.1 MOVE Assign a Value
Ladder Logic (LAD) for S7-300 and S7-400 Programming
106
Reference Manual, 04/2017, A5E41524738-AA
Note
When moving a value to a data type of a different length, higher-value bytes are truncated as
necessary or filled up with zeros:
Example: Double Word
1111 1111
0000 1111
1111 0000
0101 0101
Move
Result
to a double word:
1111 1111
0000 1111
1111 0000
0101 0101
to a byte:
0101 0101
to a word:
1111 0000
0101 0101
Example: Byte
1111 0000
Move
Result
to a byte:
1111 0000
to a word:
0000 0000
1111 0000
to a double word:
0000 0000
0000 0000
0000 0000
1111 0000
Example
MOVE
IN
ENO
EN
OUT
Q 4.0
I 0.0
MW10
DBW12
The instruction is executed if I0.0 is "1". The content of MW10 is copied to data word 12 of the
currently open DB.
Q4.0 is "1" if the instruction is executed.
If the example rungs are within an activated MCR zone:
•
When MCR is on, MW10 data is copied to DBW12 as described above.
•
When MCR is off, "0" is written to DBW12.
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
107
10
Program Control Instructions
10.1
Overview of Program Control Instructions
Description
The following program control instructions are available:
•
---(CALL) Call FC SFC from Coil (without Parameters)
•
CALL_FB Call FB from Box
•
CALL_FC Call FC from Box
•
CALL_SFB Call System FB from Box
•
CALL_SFC Call System FC from Box
•
Call Multiple Instance
•
Call Block from a Library
•
Important Notes on Using MCR Functions
•
---(MCR<) Master Control Relay On
•
---(MCR>) Master Control Relay Off
•
---(MCRA) Master Control Relay Activate
•
---(MCRD) Master Control Relay Deactivate
•
RET Return
Program Control Instructions
10.2 ---(Call) Call FC SFC from Coil (without Parameters)
Ladder Logic (LAD) for S7-300 and S7-400 Programming
108
Reference Manual, 04/2017, A5E41524738-AA
10.2
---(Call) Call FC SFC from Coil (without Parameters)
Symbol
---( CALL )
Parameter
Data Type
Memory Area
Description
BLOCK_FC
BLOCK_SFC
-
Number of FC/SFC; range depends on
CPU
Description
---(Call) (Call FC or SFC without Parameters) is used to call a function (FC) or system function
(SFC) that has no passed parameters. A call is only executed if RLO is "1" at the CALL coil. If
---
(Call) is executed,
•
The return address of the calling block is stored,
•
The previous local data area is replaced by the current local data area,
•
The MA bit (active MCR bit) is shifted to the B stack,
•
A new local data area for the called function is created.
After this, program processing continues in the called FC or SFC.
Status word
BR
CC 1 CC 0 OV
OS
OR
STA
RLO
/FC
Unconditional:
writes:
-
-
-
-
0
0
1
-
0
Conditional:
writes:
-
-
-
-
0
0
1
1
0
Program Control Instructions
10.3 CALL_FB Call FB from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
109
Example
MCRD
I 0.0
I 0.1
MCRA
CALL
Q 4.0
.
.
.
.
.
.
FC10
.
.
.
.
.
.
CALL
FC11
OPN
DB10
.
.
.
The Ladder rungs shown above are program sections from a function block written by a user. In
this FB, DB10 is opened and MCR functionality is activated. If the unconditional call of FC10 is
executed, the following occurs:
The return address of the calling FB plus selection data for DB10 and for the instance data block
for the calling FB are saved. The MA bit, set to "1" in the MCRA instruction, is pushed to the B
stack and then set to "0" for the called block (FC10). Program processing continues in FC10. If
MCR functionality is required by FC10, it must be re-activated within FC10. When FC10 is finished,
program processing returns to the calling FB. The MA bit is restored, DB10 and the instance data
block for the user-written FB become the current DBs again, regardless of which DBs FC10 has
used. The program continues with the next rung by assigning the logic state of I0.0 to output Q4.0.
The call of FC11 is a conditional call. It is only executed if I0.1 is "1". If it is executed, the process of
passing program control to and returning from FC11 is the same as was described for FC10.
Note
After returning to the calling block, the previously open DB is not always open again. Please make
sure you read the note in the README file.
Program Control Instructions
10.3 CALL_FB Call FB from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
110
Reference Manual, 04/2017, A5E41524738-AA
10.3
CALL_FB Call FB from Box
Symbol
FB no.
ENO
EN
The symbol depends on the FB (whether it has parameters and how many of them). It must have
the EN, ENO, and the name or number of the FB.
Parameter
Data Type
Memory Area
Description
EN
BOOL
I, Q, M, L, D
Enable input
ENO
BOOL
I, Q, M, L, D
Enable output
FB no.
DB no.
BLOCK_FB
BLOCK_DB
-
-
Number of FB/DB; range depends on
CPU
Description
CALL_FB (Call a Function Block from a Box) executed if EN is "1". If CALL_FB is executed,
•
The return address of the calling block is stored,
•
The selection data for the two current data blocks (DB and instance DB) are stored,
•
The previous local data area is replaced by the current local data area,
•
The MA bit (active MCR bit) is shifted to the B stack,
•
A new local data area for the called function block is created.
After this, program processing continues within the called function block. The BR bit is scanned in
order to find out the ENO. The user has to assign the required state (error evaluation) to the BR bit
in the called block using ---(SAVE).
Status word
BR
CC 1 CC 0 OV
OS
OR
STA
RLO
/FC
Unconditional:
writes:
x
-
-
-
0
0
x
x
x
Conditional:
writes:
-
-
-
-
0
0
x
x
x
Program Control Instructions
10.3 CALL_FB Call FB from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
111
Example
MCRA
.
.
.
Q 4.0
OPN
DB10
.
.
.
.
.
.
FB11
EN ENO
DB11
.
.
.
OPN
DB10
The Ladder rungs shown above are program sections from a function block written by a user. In
this FB, DB10 is opened and MCR functionality is activated. If the unconditional call of FB11 is
executed, the following occurs:
The return address of the calling FB plus selection data for DB10 and for the instance data block
for the calling FB are saved. The MA bit, set to "1" in the MCRA instruction, is pushed to the B
stack and then set to "0" for the called block (FB11). Program processing continues in FB11. If
MCR functionality is required by FB11, it must be re-activated within FB11. The state of the RLO
must be saved in the BR bit by the instruction ---(SAVE) in order to be able to evaluate errors in the
calling FB. When FB11 is finished, program processing returns to the calling FB. The MA bit is
restored and the instance data block of the user-written FB is opened again. If the FB11 is
processed correctly, ENO = "1" and therefore Q4.0 = "1".
Note
When opening an FB or SFB, the number of the previously opened DB is lost. The required DB has
to be reopened.
Program Control Instructions
10.4 CALL_FC Call FC from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
112
Reference Manual, 04/2017, A5E41524738-AA
10.4
CALL_FC Call FC from Box
Symbol
FC no.
ENO
EN
The symbol depends on the FC (whether it has parameters and how many of them). It must have
EN, ENO, and the name or number of the FC.
Parameter
Data Type
Memory Area
Description
EN
BOOL
I, Q, M, L, D
Enable input
ENO
BOOL
I, Q, M, L, D
Enable output
FC no.
BLOCK_FC
-
Number of FC; range depends on CPU
Description
CALL_FC (Call a Function from a Box) is used to call a function (FC). The call is executed if EN is
"1". If CALL_FC is executed,
•
The return address of the calling block is stored,
•
The previous local data area is replaced by the current local data area,
•
The MA bit (active MCR bit) is shifted to the B stack,
•
A new local data area for the called function is created.
After this, program processing continues in the called function.
The BR bit is scanned in order to find out the ENO. The user has to assign the required state (error
evaluation) to the BR bit in the called block using
---(SAVE).
If you call a function and the variable declaration table of the called block has IN, OUT, and
IN_OUT declarations, these variables are added in the program for the calling block as a list of
formal parameters.
When calling the function, you
must assign actual parameters to the formal parameters at the call
location. Any initial values in the function declaration have no significance.
Status word
BR
CC 1 CC 0 OV
OS
OR
STA
RLO
/FC
Unconditional:
writes:
x
-
-
-
0
0
x
x
x
Conditional:
writes:
-
-
-
-
0
0
x
x
x
Program Control Instructions
10.4 CALL_FC Call FC from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
113
Example
MCRA
.
.
.
.
.
.
Q 4.0
OPN
DB10
.
.
.
.
.
.
FC10
EN ENO
FC11
EN ENO
The Ladder rungs shown above are program sections from a function block written by a user. In
this FB, DB10 is opened and MCR functionality is activated. If the unconditional call of FC10 is
executed, the following occurs:
The return address of the calling FB plus selection data for DB10 and for the instance data block
for the calling FB are saved. The MA bit, set to "1" in the MCRA instruction, is pushed to the B
stack and then set to "0" for the called block (FC10). Program processing continues in FC10. If
MCR functionality is required by FC10, it must be re-activated within FC10. The state of the RLO
must be saved in the BR bit by the instruction ---(SAVE) in order to be able to evaluate errors in the
calling FB. When FC10 is finished, program processing returns to the calling FB. The MA bit is
restored. After execution of FC10, program processing is continued in the calling FB depending on
the ENO:
ENO = "1" FC11 is processed
ENO = "0" processing starts in the next network
If FC11 is also processed correctly, ENO = "1" and therefore Q
4.0 = "1"
.
Note
After returning to the calling block, the previously open DB is not always open again. Please make
sure you read the note in the README file.
Program Control Instructions
10.5 CALL_SFB Call System FB from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
114
Reference Manual, 04/2017, A5E41524738-AA
10.5
CALL_SFB Call System FB from Box
Symbol
SFB no.
ENO
EN
The symbol depends on the SFB (whether it has parameters and how many of them). It must have
the EN, ENO, and the name or number of the SFB.
Parameter
Data Type
Memory Area
Description
EN
BOOL
I, Q, M, L, D
Enable input
ENO
BOOL
I, Q, M, L, D
Enable output
SFB no.
DB no.
BLOCK_SFB
BLOCK_DB
-
-
Number of SFB; range depends on
CPU
Description
CALL_SFB (Call a System Function Block from a Box) is executed if EN is "1". If CALL_SFB is
executed,
•
The return address of the calling block is stored,
•
The selection data for the two current data blocks (DB and instance DB) are stored,
•
The previous local data area is replaced by the current local data area,
•
The MA bit (active MCR bit) is shifted to the B stack,
•
A new local data area for the called system function block is created.
Program processing then continues in the called SFB. ENO is "1" if the SFB was called (EN = "1")
and no error occurs.
Status word
BR
CC 1 CC 0 OV
OS
OR
STA
RLO
/FC
Unconditional:
writes:
x
-
-
-
0
0
x
x
x
Conditional:
writes:
-
-
-
-
0
0
x
x
x
Program Control Instructions
10.6 CALL_SFC Call System FC from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
115
Example
MCRA
.
.
.
.
.
.
Q 4.0
OPN
DB10
.
.
.
SFB 8
EN
ENO
REQ
DONE
ID
ERROR
R_ID
STATUS
SD_1
SD_2
SD_3
SD_4
M11.0
READY
M10.0
DB 8
CODE
DW12
DW14
DW16
OPN
DB10
The Ladder rungs shown above are program sections from a function block written by a user. In
this FB, DB10 is opened and MCR functionality is activated. If the unconditional call of SFB8 is
executed, the following occurs:
The return address of the calling FB plus selection data for DB10 and for the instance data block
for the calling FB are saved. The MA bit, set to "1" in the MCRA instruction, is pushed to the B
stack and then set to "0" for the called block (SFB8). Program processing continues in SFB8. When
SFB8 is finished, program processing returns to the calling FB. The MA bit is restored and the
instance data block of the user-written FB becomes the current instance DB. If the SFB8 is
processed correctly, ENO = "1" and therefore Q4.0 = "1".
Note
When opening an FB or SFB, the number of the previously opened DB is lost. The required DB has
to be reopened.
Program Control Instructions
10.6 CALL_SFC Call System FC from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
116
Reference Manual, 04/2017, A5E41524738-AA
10.6
CALL_SFC Call System FC from Box
Symbol
SFC no.
ENO
EN
The symbol depends on the SFC (whether it has parameters and how many of them). It must have
EN, ENO, and the name or number of the SFC.
Parameter
Data Type
Memory Area
Description
EN
BOOL
-
Enable input
ENO
BOOL
-
Enable output
SFC no.
BLOCK_SFC
-
Number of SFC; range depends on
CPU
Description
CALL_SFC (Call a System Function from a Box) is used to call an SFC. The call is executed if EN
is "1". If CALL_SFC is executed,
•
The return address of the calling block is stored,
•
The previous local data area is replaced by the current local data area,
•
The MA bit (active MCR bit) is shifted to the B stack,
•
A new local data area for the called system function is created.
After this, program processing continues in the called SFC. ENO is "1" if the SFC was called (EN =
"1") and no error occurs.
Status word
BR
CC 1 CC 0 OV
OS
OR
STA
RLO
/FC
Unconditional:
writes:
x
-
-
-
0
0
x
x
x
Conditional:
writes:
-
-
-
-
0
0
x
x
x
Program Control Instructions
10.6 CALL_SFC Call System FC from Box
Ladder Logic (LAD) for S7-300 and S7-400 Programming
Reference Manual, 04/2017, A5E41524738-AA
117
Example
MCRA
.
.
.
.
.
.
Q 4.0
OPN
DB10
.
.
.
.
.
.
SFC20
EN
ENO
SRCBLK RET_VAL
DSTBLK
DBDW12
MW10
MOTOR.SPEED
The Ladder rungs shown above are program sections from a function block written by a user. In
this FB, DB10 is opened and MCR functionality is activated. If the unconditional call of SFC20 is
executed, the following occurs:
The return address of the calling FB plus selection data for DB10 and for the instance data block
for the calling FB are saved. The MA bit, set to "1" in the MCRA instruction, is pushed to the B
stack and then set to "0" for the called block (SFC20). Program processing continues in SFC20.
When SFC20 is finished, program processing returns to the calling FB. The MA bit is restored.
After processing the SFC20, the program is continued in the calling FB depending on the ENO:
ENO = "1" Q4.0 = "1"
ENO = "0" Q4.0 = "0"
Dostları ilə paylaş: |