Vai al contenuto
PLC Forum


Funzioni Siemens S7 - funzione comparazione tabellare


dani1

Messaggi consigliati

Utilizzando da sempre omron come plc ho utilizzato la funzione TCMP(85) che confronta 16 word con un dato di confronto e quando il dato di confronto è uguale a qualche delle 16 word viene messo a 1 il bit corrispondente della word canale risultato.

Esiste qualcosa di simile in Step7 per plc siemens?

Ringrazio eventuali risposte

Saluti

Link al commento
Condividi su altri siti


Matteo Montanari

la funzione che cerchi è fc86, presente nelle librerie standard riguardanti la conversione da TI ad S7.

seleziona il blocco e premi F1 per avere informazioni

Link al commento
Condividi su altri siti

SE ho capito bene il funzionamento di fc86 non è quello che cerco, mi spiego meglio la funzione che vorrei trovare è la seguente:

-inserisco il dato di ingresso in una MW0 (ad esempio #3)

-inserisco primo canale della tabella dei confronti MW50 per una lunghezza tabella di 16word

-inserisco canale risultato MW100

Quindi quando l'operazione viene eseguita ho il seguente risultato:

-quando il valore #3 contentuo in MW0 è uguale a una o più delle 16word che vanno da MW50 a MW80, il o i bit corrispondenti all'eguaglianza contenuti in MW100 vanno a 1, quindi se per esempio il numero #3 contentuo in MW0 compare in MW52 e MW58 i bit a 1 saranno MB100,0 e MB100,3 mentro tutti gli altri saranno 0.

E così via...

Grazie per eventuali altri consigli ed indicazioni

Saluti.

Link al commento
Condividi su altri siti

Matteo Montanari

ti ho lasciato un programmino nella sezione download

sezione esempi programmi plc : tabella.zip (file PDF e sorgente awl)

vedi se fà al caso tuo

Modificato: da keosmm
Link al commento
Condividi su altri siti

si grazie direi che ci siamo devo solo farci una pensata su per vedere come alzare il bit corrispondente all'elemento uguale.

grazie ancora

Link al commento
Condividi su altri siti

Matteo Montanari

guarda che se tu prendi il dato di uscita e lo visualizzi a bit, alza il bit relativo alla riga della tabella uguale al valore di confronto.

l'ho costruito e testato questa mattina, quindi fidati.

nell'esempio ti ho appoggiato la db1.dbw32

sulla db1.dbw34

se nella tabella delle variabili visualizzi i 16 bit corrispondenti vedrai il risultato.

Link al commento
Condividi su altri siti

io ho utilizzato per il test il tuo prg nel pdf allegato vedo che hai scritto fc87 penso che dovrebbe essere fc86?

Ancora saluti.

Link al commento
Condividi su altri siti

Matteo Montanari

la fc86 è quella standard della siemens, nella libreria conversione TI-S7.

la fc87 è quella creata da me, comunque il nome non è importante puoi rinominarla con qualsiasi nome.

al suo interno ho anche descritto come cambiare le istruzioni, se devi elaborare più di 16 righe di tabella.

con quella sostituzione puoi arrivare sino a 32, nel caso ne servano di più si deve riscrivere una parte di codice, con un secondo puntatore. fammi sapere se ti necessita questa soluzione oppure realizzala da solo, tutti i dati che ti servono sono già nella funzione.

Link al commento
Condividi su altri siti

Scusa le banalità ma dopo 10anni di solo omron devo rivedere alcune cose per siemens, comunque se hai tempo ed è una cosa per te veloce io dovrei leggere fino 64 elementi con relativi bit correlati.

Ringrazio ancora e a buon rendere se hai bisogno su omron.

Cordiali saluti

Link al commento
Condividi su altri siti

Matteo Montanari

nella sezione dowload ti ho aggiornato il file relativo alla tabella.

rimasto invariato (o quasi) fc87

ti ho inserito fb87 ed fb88, ricerca di un intero e di un doppio intero in una tabella da 255 valori, spero bastino.

Link al commento
Condividi su altri siti

Tutto basta perchè è quello che volevo e ti ringrazio, ma ho ancora un problema non riesco a compilare il sorgente per trasformarlo in blocchi..............è più complicato il programma per fare il programma che fare l'applicazione.

Link al commento
Condividi su altri siti

Matteo Montanari

scusa il ritardo con cui ti rispondo ma sono stato in un bellissimo posto dove non c'era la possibilità di un collegamento internet. chiaramente non per vacanza.

seleziona il file *.awl ed utilizza la funzione importa sorgente nel tuo programma s7. (devi essere nella cartella sorgenti)

oppure, sempre nella cartella sorgenti, crea una nuoova sorgente "pippo". cambia il nome ad il file da .awl a .txt e da notepad seleziona tutto, copiandolo nella sorgente pippo. dopodiché seleziona comando complila.

!!! attenzione !!! utilizzando il comando complia, ti cancella e riscrive gli evenetuali blocchi con lo stesso nome, quindi attento

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