wie lege ich daten in einem Datenbaustein mit arrays ab ?

Tom100

Level-1
Beiträge
65
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
sorry, bin nicht ganz im bild !
ich lese eine eingabe im op270 aus
und will nur die dazugehörige Zahl im DW eines Db ablegen,
raff heute nichts mehr:

L DB10.DBW0 = im eingabefeld vom oP 270 hat einer z.B 10 eingegeben

jetzt soll die 10 im 10 array stehen = anfang DW18

T DB100.DBW.. soll dann im DB100.DBW 18 stehen

DB100 ist der DB mit 100 Arrays Int

danke im voraus Tom
 
Ich werde aus deiner Beschreibung nicht ganz schlau, kannst du das nochmal genauer angeben, evtl. kannst du mit einer Multplex-Variablen arbeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Array Datenbausetein

klar ralle, blöd erklärt, weiß, also noch mal
1. Op 270 eine eingabefeld in welchem eine 3 stellige nummer eingegeben
wird, welche ich immer im DB10.DBW Integer ablege
2. diese nummer will ich aber speichern ab
DB100.DBW 0 = 1 Nummer z.B. 113
DB100.DBW 2 = 2 Nummer z.B. 234 etc.
den DB100 habe ich deklariert mit ARRAY(1..100) Integer
ich habe eine fortlaufende Nummer 1 = 113
2 = 234 etc.
nun wollte ich einfach sagen L DB10.DBW0
und nimmt 1. zahl und lege ab im 1. array des DB100.DBW0
2.zahl im 2. array des DB100.DBW2
10.zahl im 10.array des DB100.DBW18
etc. , hab ich's jetzt besser hinbekommen,
freu mich echt auch antwort, gruß tom
 
Mit SCL kannst du das direkt machen, in AWL nur über Pointer mit indirekter Adressierung. Suche mal im Forum nach "Array" und nach "indirekt", da sind diverse Hinweise zu finden. Wenn dann noch Fragen sind, melde dich bitte nochmal.

http://www.sps-forum.de/phpBB2/viewtopic.php?t=2363&highlight=array

http://www.sps-forum.de/phpBB2/viewtopic.php?t=1625&highlight=array

indirekt z.Bsp.:

Code:
Pos_Nr --> int Input
Start_DW --> int input
Adr --> int temp
Pos --> Dint out

      AUF DB10
      L     #Pos_Nr //Laufende Nummer 1-100 für das Array
      L     -1 //Wenn Array [1...100]
      +I    
      L     2 //2-->DBW, 4-->DBD
      *I    
      L     #START_DW //Offset, bei dem dein Array beginnt
      +I    
      T     #Adr 

      L     P#0.0 
      L     #Adr 
      SLD   3 
      +D    
      LAR1  

      L     DBD [AR1,P#0.0] 
      T     #Pos
 
danke esratmal

morgen ralle,
danke erst mal, werde es heute auf dem bau mal ausprobieren
gruß tom
 
Du hast recht, steht meistens bei mit auch so drin.
Da #Adr hier als INT angelegt ist sollte man es entweder als DINT anlegen, oder ITD nutzen. Wenn #Adr aber nie negativ wird (Vorzeichenbit) funktioniert es trotzdem, denn nur das Vorzeichenbit sitzt ja an anderer Stelle. Sauberer ist ITD!!!
 
Zurück
Oben