Vai al contenuto
PLC Forum


Leggere Una Db E Raccogliere Int


olaspa

Messaggi consigliati

ciao

vi spiego, io devo leggere una db(db401).

formata da vari dati alcuni int e altri dint.

es

furn000 dint L0

lenght000 int 0

furn001 dint L0

lenght001 int 0

furn002 dint L0

lenght002 int 0

e creare una funzione che mi raccolga tutti i furn Dint, e un funzione per lenght int.

come posso fare

Link al commento
Condividi su altri siti


io ho trovato questo

L #Slab_in_furn

L 0

>I

JC M001

L 0

T #Int_data

BEU

M001: NOP 0

poi seconda riga

NOP 0

L #Slab_in_furn

T #Source

L #N_Word

SLW 1

T #N_byte

CALL "Found_DB-DW" fc798

Number :=#Source

Nr_field :=#N_slabDB

Len_field :=#N_byte

Nr_first_DB:=#First_DB

Nr_DB :=#DB_sorgente

Nr_DW :=#DW_sorgente

L #DB_sorgente

T #DB_Point

//Found pointed word

L #DW_sorgente

L #Offset_check //byte

+I

SLW 3

T #DW_Point

//Load data

OPN DB [#DB_Point]

L DBW [#DW_Point]

T #Int_data

fc798

L #Number

L 0

<=I

JC zero

TAK

JU noze

zero: L 1

noze: NOP 0

L 1

-I

L #Nr_field

/I

T #result1

RRD 16

L #Len_field

*I

T #Nr_DW

L #result1

L #Nr_first_DB

+I

T #Nr_DB

Link al commento
Condividi su altri siti

non ho sinceramente voglia di capire quella spataffiata di codice che non so dove hai trovato o forse l'hai creato tu... ma potrei aiutarti se chiarisci bene la funzione che devi svolgere.

Cioè tu chiedi di leggere una dint e un int che sono intabellati alternativamente in una DB: vorresti riordinare i dati mettendo di seguito tutti i Dint e di seguito tutti gli Int????? giusto??

Potrebbe esserti utile la funzione LOOP (praticamente un salto all'indietro con incremento di un indice) per reiterare le letture dei dati di una tabella dopo averne incrementato l'indice. Poi magari guarda le operazioni sui puntatori tipo AR+ LAR ecc. ecc.

Link al commento
Condividi su altri siti

peche non usi i puntatori o non usi 2 db distinte ?

se vuoi usare i puntatori basta che usi la funzione cerca argomento ultra trattato

Link al commento
Condividi su altri siti

Io ho iniziato cosi

OPN "prova sinistra int"

L 2

next: T "MW 7004"

SLW 3

ITD

T #point_dw

L DBW [#point_dw]

LOOP next

//per leggere i dati nel prima Db e usare un puntatore

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...