Jochen Kühner
Well-known member
- Beiträge
- 4.251
- Punkte Reaktionen
- 506
-> Hier kostenlos registrieren
Ich bin jetzt in meiner Bibliothek nochmals dran UC in Calls umzuwandeln.
Jezd ist das ganze bei den FBs schon etwas komplizierter und schlägt mit meiner bisherigen Methode öfters Fehl.
Jetzt muss z.B. aus diesem Code ausgelesen werden, das der aktuelle DI in DB umgespeichert wird, über " L DBW[AR2,P#0.0]" indirekt der erste Parameter ausgelesen wird. Dieser wird in ein Lokalwort gespeichert und das dann als DI geöffnet.
D.h. der erste an den FB übergebene Parameter ist der DI für diesen Call.
Nun hatte ich mir gedacht einen Parser für jede Zeile ab dem BLD bis zum UC zu bauen, und immer die aktuellen werte der Register zu speichern. z.b.
Register DI = DI
Register DB = ""
dann kommt TDB
Register DI = ""
Register DB = DI
dann kommt
L DBW[AR2,P#0.0]
d.h.
Akku1 = DBW[AR2,P#0.0] da aber in DB Register DI steht muss ich in die Parameter des DI schauen...
oder hat jemand andere gute Ideen das zu lösen?
Jezd ist das ganze bei den FBs schon etwas komplizierter und schlägt mit meiner bisherigen Methode öfters Fehl.
Code:
BLD 3
= L23.0
TDB
L DBW[AR2,P#0.0]
T LW24
AUF DI[LW24]
TAR2 LD19
L DBW[AR2,P#2.0]
T DIW10
CLR
= DIX12.1
CLR
= DIX12.2
SET
= DIX12.3
U DBX[AR2,P#20.1]
= DIX12.4
U DBX[AR2,P#21.1]
= DIX12.5
L #h.Bits[1]
T DIW16
L #h.Bits[2]
T DIW18
L 0
T DIW20
L P#V 4.0
T DID22
L 0
T DIW26
L P#V 0.0
T DID28
UC "blabla"
L DIW16
T #h.Bits[1]
L DIW18
T #h.Bits[2]
TDB
BLD 4
Jetzt muss z.B. aus diesem Code ausgelesen werden, das der aktuelle DI in DB umgespeichert wird, über " L DBW[AR2,P#0.0]" indirekt der erste Parameter ausgelesen wird. Dieser wird in ein Lokalwort gespeichert und das dann als DI geöffnet.
D.h. der erste an den FB übergebene Parameter ist der DI für diesen Call.
Nun hatte ich mir gedacht einen Parser für jede Zeile ab dem BLD bis zum UC zu bauen, und immer die aktuellen werte der Register zu speichern. z.b.
Register DI = DI
Register DB = ""
dann kommt TDB
Register DI = ""
Register DB = DI
dann kommt
L DBW[AR2,P#0.0]
d.h.
Akku1 = DBW[AR2,P#0.0] da aber in DB Register DI steht muss ich in die Parameter des DI schauen...
oder hat jemand andere gute Ideen das zu lösen?