Vai al contenuto
PLC Forum


rampa con uscita analogica


Spiddy1

Messaggi consigliati

Buon giorno,

Con un modlulo 2x Aq comando con un'analogica un  laser 0-10v(0-27647) corrisponde 0-2000w...il cliente mi chiede da passare ad esempio da 750 w a 100w(puo essere anche 0) in un tempo predefinito esempio in 5 secondi...

Come si potrebbe fare?

 

Grazie mille

Link al commento
Condividi su altri siti


bisogna definire una OB30 che gira per esempio a 100 ms. Se devi passare da 27000 a 7000 hai un delta di 20000. 
Quante volte cicla la OB30 in5 secondi = 5000/100 = 50 volte quindi fai 20000 / 50 = 400.
Ad ogni ciclo della OB30 sottrai 400 numeri finché non arrivi a 7000.

 

 

Link al commento
Condividi su altri siti

2000W / 27647 = 0,07234 Watt a impulso

 

750 W quindi corrispondono a 10368 impulsi

100 W a 1382 impulsi

quindi un range di 8986 impulsi da moltiplicare per il tempo di interrupt impostato a OB40... diciamo 100 mSec (ma dipende quanto morbida deve essere questa variazione) e diviso per il tempo di attuazione (i tuoi 5 sec)

 

perciò:

 

8986 * 100 msec / 5000 msec = 179 impulsi di decremento da 10368 ad arrivare a 1382  per ogni volta che scansiona OB40 dallo start

 

 

Questo per come lo farei io ...

 

(tutti questi numeri impostabili da pannello  giusto per non dover ritoccare il codice una volta che si voglia cambiare il tempo o le potenze)

 

 

Link al commento
Condividi su altri siti

Livio Orsini

Se il tempo di rampa deve essere variabile/impostabile devi impostare il tempo di interrupt di OB40 piuttosto breve.

Poi, riprendendo l'esempio fato da drn5, se son richiesti 5" per passare da750W a 100W decrementi di 17,6 passi il DA ogni interrupt; tieni un conteggio dei decimali in una varaibile a parte in cui sommi ad ogni decremento la parte decimale, quindo si supera l'unità il passo sarà non di 17ma di 18 e così via.

Questa complicazione serve perchè se il tempo richiesto si accorciasse o se la variazione richiesta fosse più ampia, si eviterebbe didare gradini troppo ampi.

Questo è il metodo che si usa per generare rampe di velocità dove una variazione troppo ampia viene notata e può anche dare problemi

Link al commento
Condividi su altri siti

Grazie mille delle info ricevuto ma sicuramente i tempi saranno più brevi magari in 0.8 o 1.5 s devo passare da 2000 w a 200… magari lo faccio girare in 10 ms che dite?
 

Link al commento
Condividi su altri siti

Un’altra informazione c’è chi parla di ob30 e chi di ob40  che differenza c’è tra i 2 ? Per il mio caso quale è meglio usare? Grazie ancora

Link al commento
Condividi su altri siti

image.png.a78670cb9e0168e5b542f519754ae9bf.png

 

per il tempo impostato per richiamare OB30 è da verificare all'atto pratico se la risposta dell'apparecchiatura laser è congrua con tempi di aggiornamento così rapidi. Inoltre se c'è differenza sull'azione fisica del laser per il tuo processo, tra il salire di 100W in 1 step ogni 100msec piuttosto che di 10W ogni 10msec....

Modificato: da drn5
Link al commento
Condividi su altri siti

  • 2 weeks later...

Il Move della word dell'analogica e dentro ad un Fb separato che gira nel Main..

Se mi faccio la gestione nell'Ob 30 non Vanno i conflitto i 2 move verso la Qw di uscita?

Spero di essermi Spiegato

Grazie

Link al commento
Condividi su altri siti

e tu scrivila in un punto solo.

Però non capisco... il cuore di questa rampa non sarà una cosa mastodontica. Che bisogno c'è di scrivere da una parte e poi da un altra. Raggruppi tutto in un punto solo.

D'altronde se usi i tempi che hai scritto sopra e ti aspetti un risultato almeno soddisfacente devi scivere del codice pulito e ottimizzato e di certo non sparso in punti diversi.

Link al commento
Condividi su altri siti

10 ore fa, Spiddy1 ha scritto:

Il Move della word dell'analogica e dentro ad un Fb separato che gira nel Main..

Se mi faccio la gestione nell'Ob 30 non Vanno i conflitto i 2 move verso la Qw di uscita?

Spero di essermi Spiegato

Grazie

 

 

La rampa sta tutta nell'OB30; impiega da 2 a 5 istruzioni AWL!

Nel caso più semplice, quello in cui incrementi la rampa ad ogni interrupt, incrementi la variabile ( o la decrementi se è una rampa indiscesa) e scrivi la variabile nell'uscita analogica direttamente. (si usa l'istruzione POKE [se ricordo correttamente]. Bi sogna scirvere direttamente la periferica perchè se si attende l'aggiornamento delle uscite al termine del ciclo del PLC la rampa non è più molto lineare.

Nel caso più complesso come quello che ho descritto in precedenza, le istruzioni AWL sono comunque meno di dieci, anche tenedo conto dei riporti.

 

Perchè andare a ricercare il blocco nelle migliaia di programmi che ho nel mio archivio (sono circa 40 CD9 di programmi accumulati in parecchi decenni di attività, mi richiederebbe una certa fatica, altrimenti te lo pubblicherei.

Link al commento
Condividi su altri siti

Eventualmente puoi pensare di usare anche la funzione di libreria Ramp Function che si trova nella sezione relativa alle istruzioni dei blocchi di regolazione PID.

Al seguente web link https://cache.industry.siemens.com/dl/files/036/108210036/att_916452/v2/s71500_pid_control_function_manual_it-IT_it-IT.pdf  da pagina 489 trovi comunque una descrizione completa della funzione.

 

Probabilmente nella tua applicazione, questa funzione di libreria può essere anche eccessiva per quanto concerne le informazioni e le possibilità di controllo messe a disposizione.

A te le valutazioni. 

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