Vai al contenuto
PLC Forum


Primi Passi Su Cx Programmar


macer

Messaggi consigliati

Voi direte, beh fatti il corso no! E' quello che mi sono detto anche io ma non decido io :rolleyes:

Conosco bene Siemens, e l'approdo a Omron e' un qualcosa di disarmante! Ho scaricato di ogni dal sito Omron ma trovo i manuali abbastanza tediosi anche se molto dettagliati. Quello che mi serve e' senz'altro una buona dose di esempi che non riesco a trovare in giro.

Ad esempio, devo tradurre un sw siemens. Le prime difficolta' che ho incontrato e' la necessita' del flag P_On per far funzionare le operazioni aritmetiche.

Ora mi servirebbero delle variabili locali, tipo le #Temp delle FC Siemens ma non le trovo in CX.

Link al commento
Condividi su altri siti


Le prime difficolta' che ho incontrato e' la necessita' del flag P_On per far funzionare le operazioni aritmetiche

Il flag P_On è semplicemente un bit di sempre attivo serve quando hai la necessità di attivare un rung in modo permanente.

Ora mi servirebbero delle variabili locali, tipo le #Temp delle FC Siemens ma non le trovo in CX.

Io n on conosco siemens ma le variabili le puoi creare a tuo piacimento devi solo specificare l'indirizzo fisico nella dichiarazione dei simboli. Se sono di tipo bool puoi utilizzare l'area cio nel caso non sono variabili retentive, viceversa area H. Se sono word o varibili long puoi utilizzare l'area DM ma attenzione questa è sempre ritentiva.

Puoi anche sfruttare la funzionalità di cx che alloca automaticamente gli indirizzi alle variabili, ma prima devi specificare la mappatura della memoria.

Link al commento
Condividi su altri siti

Inizi gia' a darmi una bella drizzata. Grazie

Adesso ad esempio devo chiamare una function block e mi segna errore nei parametri bool passati in ingresso.

ERRORE: Passo in rung 1 (2, 0) - Indirizzo - H1010.00 è riservato per l'utilizzo blocco funzione

ERRORE: Passo in rung 1 (2, 0) - Indirizzo - H1010.01 è riservato per l'utilizzo blocco funzione

ERRORE: Passo in rung 1 (2, 0) - Indirizzo - H1010.03 è riservato per l'utilizzo blocco funzione

ERRORE: Passo in rung 1 (2, 0) - Indirizzo - H1010.02 è riservato per l'utilizzo blocco funzione

ERRORE: Passo in rung 1 (2, 0) - Indirizzo - H1011.14 è riservato per l'utilizzo blocco funzione

Prima li avevo dichiarati D1010.00 ... erroneamente leggendo la tua ultima risposta.

Quindi per i parametri che saranno fissi per tutta la vita della macchina e' consigliabile usare i DM.

Per gli stati retentivi gli H

Le W a cosa servono?

Link al commento
Condividi su altri siti

LE W DONO SIMILI AI D, MA NON SONO RETENTIVI, NON SONO NELLA STESSA QUANTITA DEI D, E PER I W PUOI SCRIVERE IN MODO SEMPLICE I SINGOLI BIT.

PER L'ERRORE DEI H, IL PLC METTE IN UN'AREA DEGLI H LE AREE DEI FB, PER TANTO CREDI CHE TU CERCHI DI SCRIVERE SU UN'AREA DATI GIA IMPEGNATA PER GLI FB, ALTERNATIVA O TI SPOSTI CON LA SCRITTURA DEGLI H O SPOSTI L'AREA DATI DA USARE PER GLI FB.

Saluti.

Link al commento
Condividi su altri siti

Come dice RDA le locazioni sono utilizzate per i FB,

cambia gli indirizzi dei bool. Se ti servono retentivi puoi usare l'area H di solito le prime word dell'area H sono libere e non utilizzate di default nel plc.

Io di solito sfrutto poco l'area h per i bool. Utilizzo l'area CIO così non devo preoccuparmi di inizzializzare le variabili. Attenzione però le CIO indirizzano anche i moduli I/O quindi devi fare attenzione a non coprire locazioni utilizzate dagli stessi. Di solito per non incorrere in errori utilizzo dalla 100.00 in poi.

Link al commento
Condividi su altri siti

Claudio Negro

Effettivamente la funzione ABS non esiste, però basta fare un semplice confronto della variabile, se è minore di 0 la moltiplichi per -1 e hai il valore assoluto.

Esempio, immaginiamo di convertire D0 in valore assoluto

LD<S D0 &0

* D0 -1 D0

Ciao

Link al commento
Condividi su altri siti

Non Capisco L'Utilità Della Funzione ABS.

Se I Conti Sono Esatti Che Bisogno Ho Di Estrarre Il Valore Positivo Di Uno Negetivo?

Comunque Se Vuoi Convertire Il Valore Negativo Nel Suo Corrispondente Positivo Devi Eseguire Un Complemento A 2 Di Una Variabile Istruzione COM (INT 16 Bit) e COML (INT 32 Bit).

Se Invece Usi Numeri Reali Devi Moltiplicare Il Valore Per -1.

Ma Ripeto Se I Calcoli Sono Corretti A Cosa Serve?

Ciao

Link al commento
Condividi su altri siti

Per esempio lo puoi utilizzare per verificare una tolleranza.

Mi spiego: ipotiziamo di avere il setpoint e di avere una tolleranza

Per vedere se sei in tolleranza poui fare:

setpoit - reale = errore ==> abs errore > tolleranza genero un allarme

Se non usi l'abs dovresti fare:

setpoint + tool = limite max

setpoint - toll = limite min

reale > limite max genero un allarme

reale < limite min genero un allarme

Usando l'abs risparmio istruzioni.

Spero di essermi spiegato.

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