Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Leggere Una Db E Raccogliere Int


Messaggi consigliati

Inserito:

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


Gianmario Pedrani
Inserita:

Devi utilizzare i puntatori,

e ti sposti di un ofset costante

Inserita:

perche non usi 2 db una per gli intreri e una per le dint

altrimenti devi usare i puntatori

Inserita:

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

Inserita:

io sono neofila nessuno puo spiegarmi meglio

Inserita:

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.

Inserita:

si una cosa del genere...

potrebbe andare

Inserita:

ma non so propio come fare...

io faccio

opn db401

l dbb 0

...poi booo

Inserita:

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

Inserita:

qualcuno mi puo spiegare come funziona il loop?

Inserita:

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

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...