// +++ Temporäre Stringgrösse vorbelegen ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAR1 P##WZS_RStrg // WZS-Realstring hat
L 14 //
T LB [AR1,P#0.0] // *** Stringgrösse 14
LAR1 P##ZMI_IStrg // ZMI-Integerstring hat
L 5 //
T LB [AR1,P#0.0] // *** Stringgrösse 5
LAR1 P##ZMI_Strg // ZMI-MID-String hat
L 4 //
T LB [AR1,P#0.0] // *** Stringgrösse 4
LAR1 P##TBU_IStrg // TBU-Integerstring hat
L 3 //
T LB [AR1,P#0.0] // *** Stringgrösse 3
LAR1 P##TBU_Strg // TBU-MID-String hat
L 2 //
T LB [AR1,P#0.0] // *** Stringgrösse 2
LAR1 P##WZS // WZS Sendestring hat
L 5 //
T LB [AR1,P#0.0] // *** Stringgrösse 5
LAR1 P##ZMI // ZMI Sendestring hat
L 4 //
T LB [AR1,P#0.0] // *** Stringgrösse 4
T LB [AR1,P#1.0] // *** Istgrösse 4
LAR1 P##TBU // TBU Sendestring hat
L 2 //
T LB [AR1,P#0.0] // *** Stringgrösse 2
T LB [AR1,P#1.0] // *** Istgrösse 2
LAR1 P##ZDWoK // ZDW ohne Kommastellestring hat
L 20 //
T LB [AR1,P#0.0] // *** Stringgrösse 20
// +++ WZ-Wert als String aufbereiten +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CALL "R_STRNG" //
IN :=#WZS_Real //
RET_VAL:=#WZS_RStrg // *** Wandel REAL-Wert als String (±v.nnnnnnnE±xx)
CALL "MID" //
IN :=#WZS_RStrg //
L :=5 // es werden 5 Stellen benötigt
P :=2 // ab Position 2 (1. ist Vorzeichen)
RET_VAL:=#WZS // *** Wandel REAL-String zum Sollwert-String (v.nnn)
// +++ ZMI-Wert als String aufbereiten ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAR1 P##ZMI // Pointer auf ZMI setzen
L '0000' //
T LD [AR1,P#2.0] // *** ZMI - Wert auf '0000' initialisieren
CALL "I_STRNG" //
I :=#ZMI_INT //
RET_VAL:=#ZMI_IStrg // *** Wandel INT-Wert als String (±nnnn)
CALL "MID" //
IN :=#ZMI_IStrg //
L :=4 // es werden 4 Stellen benötigt
P :=2 // ab Position 2 (1. ist Vorzeichen)
RET_VAL:=#ZMI_Strg // *** Wandel INT-String zum Sollwert-String (nnnn)
LAR1 P##ZMI_Strg // Pointer auf ZMI-String setzen
L 4 // String hat maximal 4 Zeichen
L LB [AR1,P#1.0] //
T #StrgLaenge // *** Stringlänge auslesen
+ -1 //
-I //
T #StrgPos // *** Stringposition 1. Zeichen
CALL "REPLACE" // Zementgewicht rechtsbündig im String ausrichten
IN1 :=#ZMI //
IN2 :=#ZMI_Strg //
L :=#StrgLaenge //
P :=#StrgPos //
RET_VAL:=#ZMI // *** ZMI Wert im richtigen Format
// +++ TBU als String aufbereiten ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAR1 P##TBU // Pointer auf TBU setzen
L '00' //
T LW [AR1,P#2.0] // TBU - Wert auf '00' initialisieren
CALL "I_STRNG" //
I :=#BTU_INT //
RET_VAL:=#TBU_IStrg // *** Wandel INT-Wert als String (±nnnn)
CALL "MID" //
IN :=#TBU_IStrg //
L :=2 // es werden 2 Stellen benötigt
P :=2 // ab Position 2 (1. ist Vorzeichen)
RET_VAL:=#TBU_Strg // *** Wandel INT-String zum Sollwert-String (nnnn)
LAR1 P##TBU_Strg // Pointer auf TBU-String setzen
L 2 // String hat maximal 4 Zeichen
L LB [AR1,P#1.0] //
T #StrgLaenge // *** Stringlänge auslesen
+ -1 //
-I //
T #StrgPos // *** Stringposition 1. Zeichen
CALL "REPLACE" // Eichkurve rechtsbündig im String ausrichten
IN1 :=#TBU //
IN2 :=#TBU_Strg //
L :=#StrgLaenge //
P :=#StrgPos //
RET_VAL:=#TBU // *** TBU Wert im richtigen Format
// +++ Schreibe WZS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAR1 P##WZS // Pointer auf WZS
L LB [AR1,P#2.0] //
T #Send.WZS.Zpxxx // *** Schreibe Wert X.xxx
L LB [AR1,P#3.0] //
T #Send.WZS.xPxxx // *** Schreibe Pnkt xPxxx
L LB [AR1,P#4.0] //
T #Send.WZS.xpZxx // *** Schreibe Wert x.Xxx
L LB [AR1,P#5.0] //
T #Send.WZS.xpxZx // *** Schreibe Wert x.xXx
L LB [AR1,P#6.0] //
T #Send.WZS.xpxxZ // *** Schreibe Wert x.xxX
// +++ ZMI Sollwert ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAR1 P##ZMI // Pointer auf ZMI
L LB [AR1,P#2.0] //
T #Send.ZMI.Txxx // *** Schreibe Wert Xxxx
L LB [AR1,P#3.0] //
T #Send.ZMI.xHxx // *** Schreibe Wert xXxx
L LB [AR1,P#4.0] //
T #Send.ZMI.xxZx // *** Schreibe Wert xxXx
L LB [AR1,P#5.0] //
T #Send.ZMI.xxxE // *** Schreibe Wert xxxX
// +++ TBU ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
LAR1 P##TBU // Pointer auf TBU
L LB [AR1,P#2.0] //
T #Send.TBU.Zx // *** Schreibe Wert Xx
L LB [AR1,P#3.0] //
T #Send.TBU.xE // *** Schreibe Wert xX