Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Primo Esperimento In Ladder


Messaggi consigliati

Inserito:

Salve a tutti,

sto iniziando a sperimentare grazie ad un programma chiamato LogicLab, che è gratis ed incorpora anche un emulatore.

Dopo aver iniziato a capire di cosa si tratta ho provato a fare qualcosa di più complicato. Probabilmente ho sbagliato proprio la logica, però sbagliando si impara dico io. So che devo leggere ancora moltissimo ma pensavo di aver capito quel poco che ho letto fino ad ora, invece andando in compilazione sono stato smentito.

Qualcuno può spiegarmi perché questo primo programmino non funziona?

Praticamente era mia intenzione acquisire un ingresso analogico e a seconda del valore attivare out1, out2 o out3. out0 sempre attivo.

Ho definito dei range con "Greater or Equal" e "Lower or Equal" in cascata, come potete vedere.

Ho provato sia così come da allegato che ripetendo ainp0 su ogni GE, invece di collegarlo a tutti in questo modo.

L'errore che ricevo è:

Compiling programs ..

ASDF(1) - error F1027: Invalid connection (incomplete, more than a source etc.)

(asdf è il nome del programma :superlol: )

Grazie dell'attenzione!

primow.png


Inserita:

Mi rispondo da solo, visto che ho capito!

GE restituisce un valore BOOL, LE si aspetta un INT, almeno così mi è parso di capire.

Inserita:

Continuo con il mio monologo :D

Ho usato un AND !!! :D :D

Roberto Gioachin
Inserita:

Ciao Sperimento

Io non conosco LogicLab, ma vedo che si tratta comunque di un ambiente IEC61131.

Mi pare di capire che stai usando il linguaggio ladder, in genere con questo linguaggio si dovrebbe separare tutto in più network.

Quindi il tuo programmino dovrebbe essere composto da 4 network.

GE restituisce un valore BOOL, LE si aspetta un INT, almeno così mi è parso di capire

Corretto!

La modifica che hai fatto usando un AND è corretta, anzi ne devi usare uno per ogni network.

Altra cosa, secondo mè dovresti togliere tutti i collegamenti dagli ENO.

Ciao

Inserita:

Ciao Roberto, grazie per la tua attenzione, innanzitutto.

Il mondo dei PLC mi era totalmente estraneo fino a qualche giorno fa e devo dire che provo una certa "eccitazione" (per restare in tema:P) all'idea di imparare a programmarli.

Nel momento in cui ti leggo sono riuscito a fare quello che dicevo: gli output di GE e LE li ho mandati come input ad un AND, che a sua volta outputta un BOOL sul DO interessato.

Nel programma fatto inoltre, anche solo per un fatto di pulizia, avevo già separato tutto per network. Utilizzando così per ogni singolo network un ainp0, un GE, un LE, un AND ed un outN. Oltre, ovviamente, alle costanti in cui ho definito i range.

Ho inoltre eliminato la perenne eccitazione di out0 utilizzando un Coil "dummy" con address "auto".

Con MOVE ho inoltre riportato lo stato di ainp0 su aout0. Così tanto per provare a trasferire lo stato di un AI direttamente su un AO.

Il risultato è che funziona tutto !! :) :)

Il discorso dell'ENO invece mi è poco chiaro. Preciso: non ho errori di compilazione non collegando i "pin" ENO, pero' ero convinto di doverli collegare entrambi.

Adesso il prossimo step è subordinare tutto a delle fasce orarie. Suppongo a questo punto di dover abbandonare il ladder e passare a qualcosa di più complicato.

Roberto Gioachin
Inserita:

In genere quello che si fà in ladder lo si fà in ST, cambia solo il modo di farlo.

Se per te è più semplice programmare in ST, usa ST.

In genere risulta più semplice usare ST per fare operazioni con numeri, mentre risulta più semplice usare il LADDER per operazioni su variabili booleane.

Il discorso dell'ENO invece mi è poco chiaro

EN stà per Enable, su questo ingressi colleghi le condizioni (Booleane) che determinano l'elaborazione della funzione.

ENO stà per Enable Out. Sulle funzioni più comuni non è altro che una ripetizione di EN come uscita, sulle FC e FB invece può essere condizionato dal programma scritto sulla funzione.

Ciao

Roberto

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