-> Hier kostenlos registrieren
Hallo,
Ich versuche jetzt schon seit stunden diesen Fehler zu beseitigen. Und zwar experimentiere ich gerade mit dem Simatic Manager und PLCSim hab mir einen FC10 geschrieben der später in FBs aufgerufen werden kann.
Der FC nimmt als Grundlage einen DB 10 “BrandMatrix“ dort ist einen Array angelegt ARRAY[0..15] Type INT.
Der DB wird einmal bei Inbetriebnahme festgelegt
0.0 : INT RecipeBrandMap[0] Wert = z.B 6
2.0 : INT RecipeBrandMap[1] Wert = z.B 3
4.0 : INT RecipeBrandMap[2] Wert = z.B 4
...
30.0 : INT RecipeBrandMap[15] Wert = z.B 1
Nun wird der FC zur zeit im OB 1 aufgerufen und vorbelegt (spaeter in einem FB)
der FC wird von außen beschaltet und bekommt von einem Füller die Rezept Nummer als INT und von Produkt TANK die Nummer des Produktes in dem Tank (auch als INT.)
Wenn die zwei werte passen auf Grundlage des DBs “BrandMatrix“ wird eine Freigabe Bit ausgegeben.
Wenn ich das Programm lade geht die CPU in Stop
(Fehler 8x28 Ausrichtungsfehler beim Lesen eines Parameters) und zwar an der stelle:
L W [AR1,P#0.0] // brand ID from array
Der ganze Code in diesem Netzwerk NW2 :
OPN DB 10 // array: RecipeBrandMap[0..15]
LAR1 P#DBX 0.0
L #iFillerRecipeNo
SLD 1 // multiply by 2 (INT size)
+AR1
L W [AR1,P#0.0] // brand ID from array
T #iFillerBrandID
Kann mir jemand weiterhelfen ?
Ich versuche jetzt schon seit stunden diesen Fehler zu beseitigen. Und zwar experimentiere ich gerade mit dem Simatic Manager und PLCSim hab mir einen FC10 geschrieben der später in FBs aufgerufen werden kann.
Der FC nimmt als Grundlage einen DB 10 “BrandMatrix“ dort ist einen Array angelegt ARRAY[0..15] Type INT.
Der DB wird einmal bei Inbetriebnahme festgelegt
0.0 : INT RecipeBrandMap[0] Wert = z.B 6
2.0 : INT RecipeBrandMap[1] Wert = z.B 3
4.0 : INT RecipeBrandMap[2] Wert = z.B 4
...
30.0 : INT RecipeBrandMap[15] Wert = z.B 1
Nun wird der FC zur zeit im OB 1 aufgerufen und vorbelegt (spaeter in einem FB)
der FC wird von außen beschaltet und bekommt von einem Füller die Rezept Nummer als INT und von Produkt TANK die Nummer des Produktes in dem Tank (auch als INT.)
Wenn die zwei werte passen auf Grundlage des DBs “BrandMatrix“ wird eine Freigabe Bit ausgegeben.
Wenn ich das Programm lade geht die CPU in Stop
(Fehler 8x28 Ausrichtungsfehler beim Lesen eines Parameters) und zwar an der stelle:
L W [AR1,P#0.0] // brand ID from array
Der ganze Code in diesem Netzwerk NW2 :
OPN DB 10 // array: RecipeBrandMap[0..15]
LAR1 P#DBX 0.0
L #iFillerRecipeNo
SLD 1 // multiply by 2 (INT size)
+AR1
L W [AR1,P#0.0] // brand ID from array
T #iFillerBrandID
Kann mir jemand weiterhelfen ?