Attivazione di una uscita su comando da ingresso
Home › Forum › Controllori SlimLine e Netsyst (LogicLab) › Attivazione di una uscita su comando da ingresso
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 7 anni fa da
Sergio Bertana.
-
AutorePost
-
Aprile 3, 2018 alle 6:58 am #36193
Anonimo
InattivoSono un principiante, volevo provare ad attivare l’uscita digitale Luce in funzione dell’ingresso digitale IntAuto. Lancio la simulazione, clicco sull’ingresso cambiandone il valore, ma l’uscita resta FALSE. Come mai ? ho sbagliato la sintassi ?
IF (IntAuto = FALSE) THEN
Luce:= FALSE;
ELSE
Luce:= TRUE;
END_IF;Aprile 3, 2018 alle 8:15 am #40061Sergio Bertana
Amministratore del forumLa sintassi è corretta, probabilmente hai fatto errori nella assegnazione degli I/O o da qualche altra parte. Ti ho preparato il programma SimplyProgram che realizza quello che hai fatto tu, come vedi dallo screenshot eseguendolo in simulazione con SimuLab attivando l’ingresso IntAuto si attiva l’uscita Luce. Come vedi ho simulato un modulo CPU compact (6 ingressi, 4 uscite) e per comodità ho impostato l’ingresso a funzionare come selettore anzichè pulsante. Puoi scaricare il programma (Download) e continuare con il mio esempio. Un programma puramente logico come il tuo è preferibile realizzarlo con il linguaggio ladder (LD) anzichè il linguaggio strutturato (ST).Per il comando di lampade da pulsanti consiglio di realizzare un relè passo passo, in questo topic trovi un FB scritto in LD ma tu puoi cimentarti a scrivere un tuo FB in linguaggio ST che fà la stessa cosa.
Aprile 3, 2018 alle 10:13 am #40062Anonimo
InattivoGrazie della risposta, ho provato e ora funziona, vedendo il file ricevuto, forse avevo lasciato le parentesi tonde dopo IF. Però vedo il funzionamento dalla finestra watch, ma se provo a cambiare stato al PLC, premendo il tasto DIG. INPUT 0, l’uscita DIG. OUTPUT 0 non si attiva. Nella definizione delle variabili, in address ho messo automatico, poi nella mappa variabili avevo assegnato l’ingresso IntAuto e l’uscita Luce. Nel file ricevuto invece vedo che gli indirizzi non sono automatici. Come devo procedere ?
Stò facendo delle prove sul PLC virtuale, senza averlo uno fisicamente allacciato, per imparare il linguaggio ST. Sono un termotecnico, così farò uso di alcuni ingressi analogici, uscite digitali e analogiche (principalmente valvole modulanti con controllo PID). Ho dato i nomi Luce volendomi riferire solo ad una uscita digitale, non lo voglio usare solo per questo. Per capire però meglio, quando dici che nel caso così banale è preferibile usare il linguaggio LD, è perchè è più semplice, per il funzionamento è lo stesso, giusto ?
Aprile 3, 2018 alle 12:10 pm #40063Sergio Bertana
Amministratore del forumSe vuoi usare i pulsanti dei pannelli preconfigurati sul simulatore di SimuLab devi usare variabili allocate nella mappa di I/O del sistema, ma puoi anche crearti uno o più pannelli personalizzati solo eseguendo un drag delle variabili che vuoi gestire (Topic). Poi devi è importante capire la differenza tra le variabili globali e quelle locali (Topic).
Le variabili allocate all’interno di un programma (o POU) sono locali, cioè sono accessibili al solo POU dove sono dichiarate, mentre le variabili globali sono visibili da tutti i POU. Ma ttenzione se tu dichiari la variabile Luce come globale e la assegni ad una uscita reale e poi mi dichiari un’altra variabile Luce (Quindi con lo stesso nome) come variabile locale all’interno di un POU, quando ti riferisci a quel nome all’interno di quel POU agirai solo sulla variabile locale e non su quella globale.
Gli I/O logici sono gestiti in immagine di processo e per gestirli devi dichiararne l’indirizzo (Topic), le variabili automatiche sono variabili di appoggio e non possono essere I/O reali. Gli I/O analogici non sono gestiti in immagine di processo per utilizzarli occorre usare i blocchi funzioni appositi (Topic).
In riferimento al linguaggio da utilizzare, in generale la normativa ne ha normalizzati 5 proprio perchè per ogni tipo di operazione da svolgere vi è un linguaggio più approppriato, esempio per la logica si utilizza il ladder diagram, ma ognuno può scegliere di utilizzare il linguaggio che preferisce.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.