Vai al contenuto
PLC Forum


Swap Byte All'interno Di Una Db


rosatifrancesco

Messaggi consigliati

rosatifrancesco

Salve,

dopo molte peripezie e con l'aiuto essenziale di un utente di PLC Forum (grazie ancora) sono riuscito a cumunicare in modbus.

Adesso chiedo a qualcuno di voi se è possibile girare i byte all'interno di un DB.

Mi spiego meglio adesso io ho:

Word 0000_0000_0000_0000

NumBit 10 98

Invece vorrei ottenere

Word 0000_0000_0000_0000

NumBit 98 10

Esiste una funzione per fare ciò??

Grazie ancora a tutti

Ciao

Link al commento
Condividi su altri siti


Il mnemonic inglese CAW farebbe il "reverse of order" dei bytes in ACCU1.. LL-LH diventa LH-LL

..
L     DB2.DBW    0  // W#16#2233
CAW   
T     DB2.DBW    2  // W#16#3322

Non trovo il corrispondente mnemonic tedesco... ma provo a guardare.. ;)

Link al commento
Condividi su altri siti

rosatifrancesco

Grazie,

quindi mettendo

(io uso in ing)

L DB1.DBW 0

CAW

T DB1.DBW 36

in OB1 io mi trovo le mie 18 word (16bit) della word della Db1 scambiati?

quindi troverei 15-14-13-12_11-10-9-8-_7-6-5-4_3-2-1-0

Giusto??

Grazie

Link al commento
Condividi su altri siti

in OB1 io mi trovo le mie 18 word (16bit) della word della Db1 scambiati?
No!

L'istruzione CAW esegue il swapping solo per la word indirizzata sulla riga precedente , trasferendo il risultato sulla word indirizzata sulla riga successiva, soltanto. In sostanza,se dovresti "girare" piu' di una word, bisognerebbe eseguire un CAW per ogni word. Secondo me, sarebbe conveniente fare il swapping dei bytes a monte, intendo dire nella routine che gestisce la scrittura del buffer di ricezione per i telegrammi oppure meglio nel HMI che invia le stringhe di dati alla CPU.

Modificato: da Savino
Link al commento
Condividi su altri siti

rosatifrancesco

Grazie penso di aver capito,

ma il fatto è che io non gestisco in telegrammi.

In caso in cui quindi non potessi girarli a monte dovrei fare:

L DB1.DBW 0 // W#16#2233

CAW

T DB1.DBW 100 // W#16#3322

Questa mi girerebbe solo il primo ed il secondo byte della DB1DBW0 mettendola in DB1.DBW100

L DB1.DBW 2 // W#16#2233

CAW

T DB1.DBW 102 // W#16#3322

Questa mi girerebbe solo il primo ed il secondo byte della DB1DBW2 mettendola in DB1.DBW102

.....

..

..

e così via...

Giusto???

Grazie

Link al commento
Condividi su altri siti

Posso fare io una domanda?

Perché nessuno legge mai i manuali?

Fare una domanda ed attendere la risposta è sicuramente comodo, ma bastava aprire la guida awl all'interno di Step7, fare un doppio clic su "Operazioni di conversione", leggere l'elenco delle operazioni disponibili, fare un altro doppio clic su TAW e avevi già tutte le risposte.

Link al commento
Condividi su altri siti

Matteo Montanari
Perché nessuno legge mai i manuali?

sai i manuali richiamano il "senso" della carta, non vengono letti e nemmeno presi in considerazione per rispettare le foreste... ogni buon programmatore, infondo al cuore è un pochino ecologista.

Fare una domanda ed attendere la risposta è sicuramente comodo

è per rendere il freddo computer interattivo, sapere che in un altro luogo c'è una persona, nelle tue stesse condizioni che ti aiuta nel momento del bisogno ti fà sentire meno solo...in fondo quando un altra persona ti degna di attenzioni ti senti utile...

Link al commento
Condividi su altri siti

Non vorrei essere frainteso.

La mia non era una critica rivolta a rosatifrancesco.

Era solo una considerazione generale.

Sembra che il non consultare i manuali sia un vizio molto diffuso. E per chi, come me, ha imparato quasi tutto leggendosi i manuali (esclusa ovviamente l'esperienza sul campo), la cosa è difficilmente comprensibile.

Specialmente ora che non c'è più bisogno, come una volta, di continuare a sfogliare avanti e indietro centinaia di pagine di manuali cartacei. Ora ci sono i manuali elettronici con le funzioni di ricerca, c'è l'aiuto in linea, ci sono molti più mezzi che aiutano a trovare velocemente quello di cui si ha bisogno.

Leggere i manuali è di una utilità immensa, anche perché spesso cercando una cosa se ne trova un'altra, che magari al momento non ci serve, ma domani si presenta un nuovo problema e ci potrebbe venire in mente che, un giorno, cercando una cosa, ci eravamo imbattuti in una istruzione che ci potrebbe dare una mano. Leggendo i manuali si impara a conoscere le istruzioni nei minimi dettagli, e questo aiuta a scrivere programmi ben fatti. Si potrebbe continuare a parlare dell'utilità dei manuali, ma il concetto mi sembra chiaro anche senza portare altri inutili esempi.

Per finire, chiedo scusa a rosatifrancesco se sono sembrato un po' duro nei suoi confronti. Non era mia intenzione.

Però torno a ripetere: gente, leggete i manuali!

Link al commento
Condividi su altri siti

  • 1 year later...

ciao a tutti,

Il mio principale sostiene che su un temporizzatore luce scale; sui morsetti L - N è possibile collegare fase e fase,premetto che dove va installato non c'è il neutro.

Secondo me non è possibile anche perchè il temporizzatore si è guastato subito dopo.

Mi sapreste dire chi ha ragione???

Non vorrei imparare cose sbagliate..

Grazie

Link al commento
Condividi su altri siti

Secondo me non è possibile anche perchè il temporizzatore si è guastato subito dopo.

Mi sapreste dire chi ha ragione???

Un normale collegamento di questi apparati (ma di norma tutti) suppone che la tensione di esercizio

sia quella 220 VAc 50Hz appunto la tensione tra fase e neutro, se ti al contrario utilizzi fase/fase non ai

più ai capi il 220VAc ma il 380 Vac quindi superi le caratteristiche dell'apparato, oltre questo secondo dove

è installato il prodotto rischi anche un incendio (Doloso)!!

Questo salvo l'apparato non sia costruito per essere alimentato a 380 Vac, ma non penso che i normali temporizzatori per

luci scale lo siano.

Link al commento
Condividi su altri siti

Questa fesseria andrebbe messa nel libro nero degli installatori, il rele' a tempo luci scale finder funziona con fase e neutro,quindi 220 v , se lo fai andare con fase fase adios povero luci scale,rimanda il tuo principale a zappare la terra che e' meglio, chissa' poi che lampadine avrebbe usato :unsure:

Link al commento
Condividi su altri siti

Beh, però pensandoci bene non è un problema da sottovalutare, se hai fase-fase, dove lo trovi il neutro da portare ai pulsanti? :lol::lol:

Modificato: da mzara
Link al commento
Condividi su altri siti

chiariamoci bene perche a sto mondo se uno mi dice fase e fase subito penso che tutti la pensano come me che si tratti di 380V,

invece se unomi dice fase e neutro inteno 220v

Non offenderti, ma se scrivi chiaramente colui che legge comprendera che problema ai, senza darti risposte errate, se non riesci cosi fai uno schemino a mano e vedrai che il prblema rlo risolviamo.

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