NOP 0
//#############################################################
//### Wenn Stage 6 aktiv
//### -> Netzwerk aktiviern
//#############################################################
U #Stage_6.Stage_Start
SPB SST6
SPA EST6
SST6: NOP 0
L 1
T #Schleife.Zaehler
L150: NOP 0
//#############################################################
//### START: Loetpunkte aufsplitten
//#############################################################
//#############################################################
//### QUELLE: Errechnen der Stelle im Stage 5-Block für Datensatz
//#############################################################
L #Schleife.Zaehler
L 1 //=> Zähler wird bei 1 Initailisert, deswegen 0 für Multiplikator
-I
L "DB_Sold_Mgr_1".Parameter.Loetpunkt_Groesse //==> Speichergröße (100 Byte pro Datensatz)
*I
L "DB_Sold_Mgr_1".Parameter.Stage_5_Startbyte //==> Startbyte (Byte 332)
+I
T #Stage_6.src_Addresse_Offset
//#############################################################
//### QUELLE: Aufbau des Ziel-Any-Pointers
//#############################################################
L P##src_Any_Pointer
LAR1
L W#16#1002 //Typ BYTE
T LW [AR1,P#0.0]
L "DB_Sold_Mgr_1".Parameter.Loetpunkt_Groesse //Anzahl Bytes
T LW [AR1,P#2.0]
L "DB_Sold_Mgr_1".Parameter.Temp_Job_DB //Ziel-DB
T LW [AR1,P#4.0]
L #Stage_6.src_Addresse_Offset //Anfang der Quelle
SLD 3
OD DW#16#84000000
T LD [AR1,P#6.0]
//#############################################################
//### ZIEL: Errechnen der Stelle im Stage 6-Block für Datensatz
//#############################################################
L 50 //<== Größe eines auftrags
L 2
*I
T #Stage_6.dest_Data_Size //<== Loetpunkt stellt 2 Aufträge das
L #Schleife.Zaehler
L 1 //=> Zähler wird bei 1 Initailisert, deswegen 0 für Multiplikator
-I
L #Stage_6.dest_Data_Size //==> Speichergröße (100 Byte für 2 Aufträge)
*I
L "DB_Sold_Mgr_1".Parameter.Stage_6_Startbyte //==> Startbyte (Byte 6832)
+I
T #Stage_6.dest_Addresse_Offset
//#############################################################
//### ZIEL: Aufbau des Ziel-Any-Pointers
//#############################################################
L P##dest_Any_Pointer
LAR1
L W#16#1002 //Typ BYTE
T LW [AR1,P#0.0]
L #Stage_6.dest_Data_Size //Anzahl Bytes
T LW [AR1,P#2.0]
L "DB_Sold_Mgr_1".Parameter.Temp_Job_DB //Ziel-DB
T LW [AR1,P#4.0]
L #Stage_6.dest_Addresse_Offset //Anfang der Quelle
SLD 3
OD DW#16#84000000
T LD [AR1,P#6.0]
//#############################################################
//### Daten temp. Zwischenspeichern
//#############################################################
CALL "BLKMOV"
SRCBLK :=#src_Any_Pointer
RET_VAL:=#Stage_6.BLKMOV_Return
DSTBLK :="DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original
//#############################################################
//### Orignal-Daten aufsplitten und speichern in Auftrags-Daten
//#############################################################
L 0
T #Clear_Int
CALL "FILL"
BVAL :=#Clear_Int
RET_VAL:=#iDummy
BLK :="DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera
CALL "FILL"
BVAL :=#Clear_Int
RET_VAL:=#iDummy
BLK :="DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser
//#############################################################
//### Kamera-Daten
//#############################################################
SET
S "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Kamera.Kamera_Punkt
L "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original.Kamera.Roboter_Index_Nummer
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Kamera.Roboter_Index_Nummer
L "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original.Kamera.Kamera_Prog
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Kamera.Kamera_Prog
//#############################################################
//### Laser-Daten
//#############################################################
SET
S "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Laser.Laser_Punkt
L "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original.Laser.Roboter_Index_Nummer
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Laser.Roboter_Index_Nummer
L "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original.Laser.Laser_Dummy_Nr
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Laser.Laser_Dummy_Nr
U "DB_Sold_Mgr_1".Berechnung.Nachloeten
SPB NL_1
UN "DB_Sold_Mgr_1".Berechnung.Nachloeten
SPB NL_0
SPA NL_E
NL_1: NOP 0 //<== Nachloeten ist aktiv!
L "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original.Laser.Laser_Nachloeten_Nr
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Laser.Laser_Scharf_Nr
SPA NL_E
NL_0: NOP 0 //<== Nachloeten ist Inaktiv!
L "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Original.Laser.Laser_Scharf_Nr
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Laser.Laser_Scharf_Nr
SPA NL_E
NL_E: NOP 0
//#############################################################
//### Auftragsmuster beschreiben
//### -> Auftragsmuster wird Anhand der Daten von Stage_1_Stage_2 errechnet
//#############################################################
L #Schleife.Zaehler
L 1
-I
L 2 //==> Speichergröße (2 Byte)
*I
L 4 //==> Startbyte (Byte 4)
+I
L P#1.0 //==> Ins Pointer-Format bringen
*D
T #Stage_6.Offset_Auftrag_Pointer //<== Pointer vom Ziel der Addresse
AUF "DB_Sold_Mgr_1_Job_1"
L DBW [#Stage_6.Offset_Auftrag_Pointer]
L #Daten_Allgemein.Arbeitsbereich_Startbyte
-I
T #Stage_6.Offset_Auftrag
L #Stage_6.Offset_Auftrag
L 100
/I
L 1
-I
T #Stage_6.Schiebewert_Muster
//#############################################################
//### ENTSCHEIDUNG: Schiebewert größer als ein DW
//### -> Auftragsmuster 1_2 löschen und mit 2_2 fortsetzen
//#############################################################
U(
L #Stage_6.Schiebewert_Muster
L 31
<=I
)
SPB A1_2
SPB A2_2
A1_2: NOP 0
L #Stage_6.Schiebewert_Muster
L "DB_Sold_Mgr_1".Berechnung.Auftragsmuster_1_2
SRD
SLD
T #Stage_6.Auftragsmuster_1_2
L #Stage_6.Auftragsmuster_1_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Auftragsmuster_1_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Auftragsmuster_1_2
L "DB_Sold_Mgr_1".Berechnung.Auftragsmuster_2_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Auftragsmuster_2_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Auftragsmuster_2_2
SPA AEND
A2_2: NOP 0
L #Stage_6.Schiebewert_Muster
L 32
-I
L "DB_Sold_Mgr_1".Berechnung.Auftragsmuster_2_2
SRD
SLD
T #Stage_6.Auftragsmuster_2_2
L 0
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Auftragsmuster_1_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Auftragsmuster_1_2
L #Stage_6.Auftragsmuster_2_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Kamera.Auftragsmuster_2_2
T "DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert.Laser.Auftragsmuster_2_2
SPA AEND
AEND: NOP 0
//#############################################################
//### Daten temp. Zwischenspeichern
//#############################################################
CALL "BLKMOV"
SRCBLK :="DB_Sold_Mgr_1_Job_1".Stage_6_Temp.Modifiziert
RET_VAL:=#Stage_6.BLKMOV_Return
DSTBLK :=#dest_Any_Pointer
//#############################################################
//### Ende: Umkopieren der Loetpunkte
//#############################################################
U(
O(
L #Schleife.Zaehler
L 64
>=I
)
O(
L #Schleife.Zaehler
L "DB_Sold_Mgr_1_Job_1".Stage_1_Stage_2.Letzter_Datensatz
>=I
)
)
SPB E150
L #Schleife.Zaehler
L 1
+I
T #Schleife.Zaehler
SPA L150
E150: NOP 0
SET
S "DB_Sold_Mgr_1".Status.Stage_6_Fertig
U "DB_Sold_Mgr_1".Parameter.Stage_6_BEA
BEB
EST6: NOP 0