Vai al contenuto
PLC Forum


Kernel - logic paint - linguaggio ladder


and_ga10

Messaggi consigliati

Salve, ho preso da poco un VP116. Devo inserire una funzione matematica, per semplificare supponiamo T3 =(T1 + T2)/2, dove fisso all'inizio del software i valori T1 e T2. Inserendo prima la funzione EADD,  poi EDIV, il risultato lo leggo nel DATA che ho definito. T1 e T2, in quali DATA li devo inserire e come? nella EEPROM così non mi cambiano valori? come faccio? perchè mi è riuscito inserire solo valori di prova nel debugger , ma non valori fissi.  Poi come mai quando nel debugger inserirsco un valore (con segno) negativo, nel debugger mi viene un numero altissimo, tipo 63400? 

grazie

Link al commento
Condividi su altri siti


Per prima cosa devi inserire i tuoi T1 e T2 in altrettanti DATA e lo puoi fare sia da debugger ma anche con dei mov incondizionati o con un mov associato ad esempio al sys 1°ciclo. Adesso, le operazioni E (ADD DIV SUB E MUL) prevedono tre operandi: i primi due sono i tuoi data (o una costante e un DATA) e il terzo operatore che è il risultato (che so..DATA.800 ad esempio).Quindi, la prima cosa è EADD DATA T1 DATA T2 DATA 800. Il risultato della somma è in data 800.

Adesso EDIV #2 (una costante) DATA.800 DATA 801 dove 801 è il valore finale.

Chiaramente le operazioni potranno essere subordinate ad eventi o essere incondizionate cioè eseguite sempre ogni ciclo di scansione del plc (sta a te deciderlo a seconda di cosa ti serve). Per quanto riguarda il discorso del negativo qui siamo all?ABC e ti consiglio di googlare la voce " COMPLEMENTO A DUE".

 

Link al commento
Condividi su altri siti

Riguardo al discordo del negativo, ok, cercherò quel che dici, so che un bit è preso dal segno ma comunque cercherò di capire meglio. Per l'altro aspetto, ho fatto con i MOV e le funzioni matematiche, ma quando è che devo (o è meglio) salvare i valori nei DATA dopo il 4097 (memoria EPROM)? cioè, se devo fare una curva di temperatura climatica dove ho dei parametri fissi per costruirmi la curva, questi li posso inserire nella EPROM, giusto? ho visto sul  manuale come si dovrebbe fare, ma non ho ben capito, dice di fare i MOV definendo l'intervallo dal data.58 al data.59 ala destinazione data....... e scelgo due valori dopo il data.4097, poi faccio un set sys. Quindi all'inizio i parametri della curva (fissi) devo salvarli nei MOV data.58...data.59?, non li posso direttamente salvare nella EPROM? e queste istruzioni, è consigliato che li metta nella prima SUB INITIALIZE ? 

Grazie

Link al commento
Condividi su altri siti

Senza scomodare la eeprom tieni conto che hai una 40ina di NVDATA che sono dati non volatili tamponati dalla batteria del plc. Se invece vuoi proprio utilizzare la eeprom utilizzi il metodo che hai più o meno descritto (DATA 58 DATA59 e SYS_20) e va bene farglielo fare nella prima SUB initialize o con una procedura che si attiva ad esempio solo al primo ciclo dopo l'accensione (ricordarsi che hai un limite di scrittura di circa 100.000 scritture. Un altro metodo facile è quello di immettere i dati dalle pagine del visualizzatore. Se immetti i dati da lì sono automaticamente salvati in eeprom senza procedure strane. Questo può farti comodo così puoi anche agire da plc se devi fare degli aggiustamenti sui parametri della tua curva (magari mettendo le pagine che eseguono questa funzione sotto psw).

Link al commento
Condividi su altri siti

1 ora fa, felino scrisse:

 Le locazioni da DATA.4096 a DATA.8191 sono utilizzate per il salvataggio dati in E²PROM e quindi sono data non volatili. premi qui

Dipende da come le scrivi...se tu fai un semplice MOV xx in DATA 4096 il dato non sarà ritenuto. Se invece lo fai come ho detto dal visualizzatore del plc, e quindi da remoto, sarà ritentivo. Se lo vuoi ritentivo da programma devi passare dalla procedua DATA 58 59 e SYS 20

Link al commento
Condividi su altri siti

Grazie delle risposte. Ho provato a fare una curva climatica, ho definito gli estremi per esempio Tm max (con Te=-5°) = 40°, Tm min (con Te=20°) = 28°. La curva funziona  ma non ho capito alcune cose, provo a spiegarmi:

1) definita nel debugger la variabile T°est di tipo INT e salvata nel DATA.4104, nel creare l'equazione ho l'operazione (20-T°est), così faccio prima un ESUB (A=20, B=DATA.4104, C=DATA 1001). Poi faccio un MUL (-1 , DATA.1001) così da avere (20-T°est). Vdo però che se Te = 3, la prima operazione doveva dare -17 mentre vedo 17, analogo alla seconda. Come mai?

2) Se ho capito bene, i numeri nel plc sono tutti interi, se definisco la variabile INT, un bit prende il segno e logicamente il numero massimo rappresentabile è la metà per segno. Se allora voglio vedere le temperature con un numero decimale, col valore reale giusto che assume, come devo impostare le variabili? devo eseguire i calcoli moltiplicando fin dall'inizio tutto per un fattore 10? quindi per esempio il plc leggere su T°mandata 393°, poi in pagina aggiungo la variabile T° mandata con la visualizzazione reale? è solo un fatto di visualizzazione, ma per il plc a quel punto il valore di TM è 393°?

3) durante il debugger, per salvare lo storico  dei valori assunti dalle variabili aggiunte, mi hanno detto di spuntare "scrivi file di log" in basso, dovrebbe creare il file .txt nel percorso che si legge portandoci sopra il cursore, ma non mi salva niente.

Grazie

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