Netzwerk1
U "Start Posmo"
UN "Antrieb fährt"
UN "Fehler"
SPBN M1
L MW 110
T MW 112
M1: NOP 0
NW2
I_O_adress: Dezimale Adresse aus Step7 HW Konfig hier: 256
Initialization: ständige 1
Jogging_1: Tippen Schlitten auf
Jogging_2: Tippen Schlitten ab
Jogging override: optional auf 20 %
Start: Start Posmo MDI Schrittmaßfahrt absolut ( Flanke z.B. vom Starttaster)
No_intermediate_stop: immer 1
No_stop: immer 1
Quittieren: Flanke z.B. über Taster wenn Fehler
Override: optional 100 %
MDI velocity
ptional 100 %
MDI acceleration: optional 100 %
MDI Position: Vorgabe der Zielposition als Real Format
Timer for wait: Freier Timer hier: T1
Koordination: Ein gleicher Merker für FB10 un FB11 ( wird von Bausteine
verändert)
Fault: Ausgang wenn Fehler = 1
U "VKE=1"
= L 12.0
BLD 103
U "Jog +"
= L 12.2
BLD 103
U "Jog -"
= L 12.3
BLD 103
U "Start Posmo"
= L 12.4
BLD 103
U "VKE=1"
= L 12.5
BLD 103
U "VKE=1"
= L 12.6
BLD 103
U "Quittieren"
= L 13.3
BLD 103
U "VKE=0"
= L 13.4
BLD 103
CALL FB 10 , DB10
I_O_adresss :=256
Initialization :=L12.0
Referencing :=
Jogging_1 :=L12.2
Jogging_2 :=L12.3
Jogging_override :=10
Start :=L12.4
No_intermediate_stop :=L12.5
No_stop :=L12.6
automatic_operation :=
external_blockchange :=
Read_in_enable :=
Brake_release :=
Fault_acknowledgement :=L13.3
Block_number :=B#16#3
Override :=100
Start_byte :=
MDI_type :=L13.4
MDI_velocity :="Geschw."
MDI_acceleration :=100
MDI_position :=DB10.DBD16
Timer_for_wait :="FB10_Timer"
Warning :=
Fault :="Fehler"
Ready :=
Data_transfer_ready :=
Status_word :=
Actual_block :=
Check_back_signal_byte:=
Warn_number :=
Warn_info :=
Fault_number :=
FB_coordination :="Koordinations_Merker"
NOP 0
NW3
Aufbereitung des Sollwertes vom Panel
Der Sollwert wird Dezimal(Integer) im Panel eingegeben, da Real zB. 999,99
nicht
möglich ist.
Umwandlung von Integer nach Double-Integer und dann Wandlung in Real.
Wert wurde mit Faktor 10 in Panel skaliert ( multipliziert) daher Division
durch 10 ( wegen Genauigkeit ) und dann Transfer in DB 10 MDI_position
Sollwert
U(
U(
L "Sollwert_Posmo"
ITD
T #Soll_DINT
SET
SAVE
CLR
U BIE
)
SPBNB _001
L #Soll_DINT
DTR
T #Soll_Real
SET
SAVE
CLR
_001: U BIE
)
SPBNB _002
L #Soll_Real
L 1.000000e+001
/R
T DB10.DBD 16
_002: NOP 0
NW4
Wenn Referenzierungsbit vom Panel auf 1, dann Wert 0 Position in Parameterwert
schreiben.Damit wird die Achse bei der gewünschten Position auf 0 gesetzt
U "Start_Referenzierung"
SPBNB _003
L 0
T DB11.DBD 10
_003: NOP 0
NW 5
Durch den FB11 wird
1. Der Istwert der Position ständig gelesen
2. Der Sollwert 0 für die Referenzierung geschrieben
"I_O_adress" : Dezimale Adresse aus Step7 HW Konfig hier: 256
"Number" : Auftrag Nummer 40 bedeutet die Istposition oder Sollposition zum
Posmo lesen oder schreiben
"Read" : Wenn nicht refernziert wird, dann nur lesen. Dies muß verriegelt
werden, da ein gleichzeitiges lesen und schreiben nicht möglich ist
"value" :Speicherbereich für die Ist und Sollwerte
"Koordination" : Ein gleicher Merker für FB10 un FB11 (wird von den Bausteinen
verändert)
UN "Start_Referenzierung"
= L 12.0
BLD 103
U "Start_Referenzierung"
= L 12.1
BLD 103
CALL FB 11 , DB11
I_O_adress :=256
Number :=40
Index :=
Read :=L12.0
Write :=L12.1
Factory_default:=
Parameter_save :=
fault_present :=
task_completed :=
Fault_number :=
value :=DB11.DBD10
FB_coordination:="Koordinations_Merker"
NOP 0
NW6
Der Istwert im Realformat wird mit 100 multipliziert ( wegen Genauigkeit )und
dann
zur Double Integer gewandelt um am Panel angezeigt werden zu können.
U(
L DB11.DBD 10
L 1.000000e+002
*R
T #Ist_Real
UN OV
SAVE
CLR
U BIE
)
SPBNB _004
L #Ist_Real
RND
T "Istwert_Panel"
_004: NOP 0
NW 7
Rückmeldung Antrieb fährt =1 / steht=0 ( Bit aus Statuswort und kann zur
Weiterverabeitung im Programm genutzt werden. Weiterleitung zur Anzeige an
Panel
U DB10.DBX 24.5
= "Antrieb fährt"