Vai al contenuto
PLC Forum


Shiftare Le Word In Una Tabella - Shiftare word verso l'alto


zac1979

Messaggi consigliati

Salve vi chiedo un aiutino!!!!

Io dovrei usare una funzione che shifti una parola dall'ultima posizione della tabella alla prima.

Però lo shift della parola parte dall'ultimo e sale verso l'alto finchè non incontra una parola <> da zero.

In pratica shifta finchè le word che incontra salendo verso l'alto della tabella sono a zero.

Cioè partendo da una tabella vuota dovrei riempirla con dei valori ordinati in base al loro inserimento.

Per chi conosce l'Omron dovrei trovare in siemens la funzione "ASFT"

Esempio:

Tabella di 5 word tutte a zero.

inserisco valore 1 in word n5

e mi trovo word n1 valore 1 il resto a zero

inserisco valore 4 in word n5

e mi trovo word n1 valore 1 n2 valore 4 il resto a zero

scrivendo zero in word n1

mi troverò word n1 a 4 il resto a zero

se tabella tutta piena di valori <> da zero shift disabilitato

scusate ma non sapevo come spiegarlo diversamente

Link al commento
Condividi su altri siti


Forse sulla biblioteca TI-S7 trovi qualche funzione per la gestione delle tabelle, in caso contrario te la devi creare tu usando i puntatori.

Link al commento
Condividi su altri siti

Gia fatto.. Nella biblioteca c'è qualche cosa ma che non si adatta perfettamente. Per i puntatori non ho ancora una discreta conoscenza da prescindere dalle funzioni già fatte da SIEMENS.

Se qualcuno di voi riesce , con la sua bravura, a darmi delle dritte su questa problematica, per me sarebbe un punto di inzio per poi migliorarmi in seguito sull'argomento puntatori.

Grazie lo stesso.

Link al commento
Condividi su altri siti

Mi sembra di capire che vuoi fare un FIFO

se e' cosi ,

Forse sulla biblioteca TI-S7 trovi qualche funzione per la gestione delle tabelle

come ti hanno gia' detto

Luca

Link al commento
Condividi su altri siti

Esatto devo fare un fifo che shifta dalla coda alla testa.

quindi inserisco il valore in coda e mi shifta finchè non trova un valore diverso da zero.

Se scrivo zero in testa mi shifta tutto in alto.

Le funzioni presenti "FC87 LIFO TABLE e FC85 FIFO TABLE" non funzionano proprio così.

Oppure se, queste funzioni sono in grado di fare quello che io dico, sono io che non le adopero al modo giusto.

Scusate per il disturbo ma voglio capire............

Link al commento
Condividi su altri siti

FC85 FIFO TABLE

e' quello che ti serve , ma se conosci un'attimo il fnzionamento del fifo , non e' che scrivi 0 nella word iniziale

ma richiedi il valore e lo estrai dalla word iniziale ( e ovviamente ti si spostano tutte in alto )

Luca

Link al commento
Condividi su altri siti

Be! se funziona come dici mi va bene....

Inoltre o prelevare dalla testa o scrivere zero nella testa è una azione che serve per avere l'effetto di shiftare tutto in alto.

Siemens preleva il dato di testa Omron per shiftare devi scrivere zero.

Come dicevo nei precedenti messaggi.

[Per chi conosce l'Omron dovrei trovare in siemens la funzione "ASFT"]

Link al commento
Condividi su altri siti

Per chi conosce l'Omron dovrei trovare in siemens la funzione "ASFT"]

non conosco omron , pero' un fifo e' un fifo e non scrivi zero da nessuna parte ( se non in ingresso al fifo )

ti posso dire che se usi la funzione siemens ( che viene dal TI ) e' una scatola chiusa ( puoi mettere dentro e tirare fuori il primo valore , gli altri non li vedi ) ed e' un FC abbastanza pesante

con poche righe di programma te lo fai e te lo adatti alle tue esigenze

Luca

Link al commento
Condividi su altri siti

[non ho ancora una discreta conoscenza da prescindere dalle funzioni già fatte da SIEMENS.][]

Come dice un famoso libro di informatica: regola numero 1 non bisogna mai reinventare la ruota.

Se Siemens mette a disposizione una funzione perchè crearne un'altra, personalmente rischiando di crashare il programma.

Per ora non sono così bravo da crearne una...per ora.

Accetto comunque esempi da chi ha + conoscenza di me ....per ora.

Link al commento
Condividi su altri siti

Come dice un famoso libro di informatica: regola numero 1 non bisogna mai reinventare la ruota.

Se Siemens mette a disposizione una funzione perchè crearne un'altra, personalmente rischiando di crashare il programma

Non lo ho letto , ma Ti posso assicurare che in tanti non usano le funzioni siemens ma se ne creano ad Hoc

ovviamente se quella che vuoi usare copre tutte le tue necessita e anche se pesante , non ti da fastidio , usarla e' la strada piu' semplice

Nel mio caso la funzione FIFO che funziona molto bene , non soddisfava a pieno le mie necessita' , poiche' volevo poter vedere cosa c'era all'interno , quindi me ne sono fatto una io

per fare e testare queste cose il PLCsim e' molto valido

...per ora

questo significa che hai voglia di imparare , quindi la strada migliore e' "crashare" il programma e capire dove sbagli per poi evitarlo.

Luca

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