Skip to main content

Programmare l'applicazione di controllo nel progetto

Dichiarare le variabili globali

Per prima cosa dichiarare le variabili che si desidera utilizzare nell'applicazione. Per fare questo, metti sotto Applicazione un elenco di variabili globali:

  1. Seleziona il Application ingresso e clic Aggiungi oggetto → Elenco globale delle variabili nel menu contestuale. Cambia il nome predefinito GVL a Glob_Var e fai clic Aggiungi per confermare.

    Le _cds_icon_gvl.png Glob_Var l'oggetto viene visualizzato di seguito _cds_icon_application.png Application. L'editor GVL si apre a destra dell'albero dei dispositivi

  2. Quando si apre la vista testuale, contiene già le parole chiave VAR_GLOBAL e END_VAR. Per il nostro esempio, fai clic su _cds_img_button_decl_editor_tabular.png pulsante nella barra laterale destra dell'editor per attivare la visualizzazione tabulare.

    Viene visualizzata una riga vuota. Il cursore si trova in Nome colonna.

  3. Nel menu contestuale, fai clic su Inserisci.

    Si apre un campo di immissione. Allo stesso tempo, Ambito VAR_GLOBAL e il Tipo di dati BOOL vengono inseriti automaticamente nella riga.

  4. Specificare rTempActual nel Nome campo.

  5. Fare doppio clic nel campo nella colonna tipo di dati.

    Ora il campo può essere modificato e cds_icon_open_input_asisstant.png viene visualizzato il pulsante.

  6. Fai clic su cds_icon_open_input_asisstant.png pulsante e quindi seleziona Input Assistant.

    Il dialogo aiuto di input si apre.

  7. Scegli il tipo di dati REAL e fare clic sul pulsante ok.

  8. Inserire un valore numerico nel Inizializzazione colonna (esempio: 8.0).

Dichiarare allo stesso modo le seguenti variabili:

Cognome

Tipo di dati

Inizializzazione

Commento

rTempActual

REAL

8.0

temperatura effettiva

rTempSet

REAL

8.0

temperatura obiettivo

xDoorOpen

BOOL

FALSE

porta di stato

timAlarmThreshold

TIME

T#30S

Tempo di funzionamento del compressore dopo il quale viene emesso un segnale

timDoorOpenThreshold

TIME

T#10S

Tempo dall'apertura della porta trascorso il quale viene emesso un segnale acustico

xCompressor

BOOL

FALSE

segnale di controllo

xSignal

BOOL

FALSE

segnale di controllo

xLamp

BOOL

FALSE

messaggio di stato

Creare il programma principale per il controllo del raffreddamento nell'editor CFC

Ora descriverai la funzione principale del programma applicativo nel modo principale PLC_PRG POU, che viene creato di default. Il compressore si attiva e si raffredda quando la temperatura effettiva è superiore alla temperatura impostata più un'isteresi. Il compressore si spegne quando la temperatura effettiva è inferiore alla temperatura impostata meno l'isteresi

Per descrivere questa funzionalità nel linguaggio di implementazione CFC, attenersi alla seguente procedura:

  1. Doppio click PLC_PRG nell'albero dei dispositivi.

    L'editor CFC si apre nella PLC_PRG scheda. L'editor delle dichiarazioni viene visualizzato sopra l'area dell'editor grafico in forma testuale o tabulare. Cassetta degli attrezzi la vista è sul lato destro.

  2. Nel Casella degli attrezzi visualizza, seleziona Ingresso elemento e trascinalo nell'editor CFC sotto PLC_PRG scheda.

    L'ingresso senza nome ??? è stato inserito.

  3. Nell'editor CFC, fai clic su ??? all'ingresso, quindi fai clic su _cds_icon_input_assistent.png per aprire l'Input Assistant. Variabili categoria, seleziona rTempActual variabile qui sotto Applicazione → Glob_Var. Ecco come fare riferimento alla variabile globale rTempActual qui.

    Il nome di input è Glob_Var.rTempActual.

  4. Come nel passaggio 3, crea un altro input con il nome della variabile globale Glob_Var.rTempSet.

  5. Crea un altro input, fai clic sui tre punti interrogativi ??? e sostituirlo con il nome rHysteresis.

    Poiché questo non è il nome di una variabile già nota, viene visualizzata la finestra di dialogo dichiarare variabile. Il nome è già incluso nella finestra di dialogo.

  6. Compila i campi nella finestra di dialogo dichiarare variabile con il tipo di datiREAL e il valore di inizializzazione1 fuori. Fare clic sul pulsante ok.

    La variabile rHysteresis appare nell'editor delle dichiarazioni.

  7. Nel Casella degli attrezzi visualizza, seleziona Blocca elemento e trascinalo nell'editor CFC sotto PLC_PRG scheda.

    Il blocco viene visualizzato nell'editor CFC.

  8. Sostituire ??? Con ADD.

    Il blocco aggiunge tutti gli ingressi ad esso collegati.

  9. Collega l'ingresso Glob_Var.rTempSet con l'elemento costitutivo ADD. Per fare ciò, fare clic sul pin di output dell'input e trascinarlo sul pin di input superiore del blocco ADD.

  10. Collegare l'ingresso allo stesso modo rHysteresis con l'ingresso inferiore del blocco ADD.

    I due ingressi rHysteresis e Glob_Var.rTempSet sono ora da ADD aggiunto.

  11. Se si desidera spostare un elemento nell'editor, fare clic su un punto libero nell'elemento o sulla cornice in modo che l'elemento sia selezionato (cornice rossa, ombreggiata in rosso). Tenere premuto il pulsante del mouse e trascinare l'elemento nella posizione desiderata.

  12. Posiziona un altro blocco di costruzione a destra del blocco di costruzione ADD in poi. Egli dovrebbe Glob_Var.rTempActual con la somma fuori Glob_Var.rTempSet + rHysteresis per confrontare. Assegna al blocco la funzione GT (Più grande di).

    il GTblocco funziona come segue: IF (oberer Eingang > unterer Eingang) THEN Ausgang := TRUE;

  13. Collega l'ingresso Glob_Var.rTempActual con l'ingresso superiore del blocco GT.

  14. Collegare l'uscita del blocco ADD con l'ingresso inferiore del blocco GT.

  15. Ora usa l'elemento block per creare un blocco funzione a destra del GT POU che avvia e arresta il compressore in base alle condizioni di ingresso (Set — Reset). Specificare il nome SR nel ??? campo. Premere il tasto Invio per chiudere il campo di immissione aperto sopra il POU (SR_0).

    Il dialogo dichiarare variabile appare.

  16. Dichiara la variabile con il nome SR_0 e il tipo di dati SR. Fare clic sul pulsante ok.

    L'elemento costitutivo SR dalla biblioteca Standard è istanziato. SR serve a definire il THEN all'uscita del blocco GT. Gli ingressi SET1 e RESET apparire.

  17. Collegare la connessione di uscita sul lato destro del blocco GT con l'ingresso SET1 del blocco edilizio SR_0.

    SR può essere una variabile booleana di FALSE in poi TRUE e rimetti a posto. Se la condizione all'ingresso SET1 è vero, la variabile booleana è attiva TRUE impostato. Soddisfa la condizione RESET a , la variabile viene reimpostata. La variabile booleana (globale) è nel nostro esempio Glob_Var.xCompressor.

  18. Inserisci un elemento Uscita e assegnargli la variabile globale Glob_Var.xCompressor a. Disegna una linea di collegamento tra Glob_Var.xCompressor e connessione di uscita Q1 a partire dal SR.

Ora si specifica la condizione in cui il compressore deve spegnersi nuovamente, ovvero il RESETingresso del blocco SR TRUE-Segnale ricevuto. Per fare ciò, formula la condizione opposta come sopra. Usa gli elementi costitutivi per questo SUB (Sottrai) e LT (Meno di).

Infine, viene creato il seguente piano CFC:

_cds_img_tutorial_refrigerator_plcprg_cfc_diagram.png

Creazione di un blocco di programma per la gestione dei segnali nell'editor del diagramma ladder

A questo punto si implementa la gestione del segnale per la sirena d'allarme e per l'accensione e lo spegnimento della lampada in un ulteriore modulo di programma. Il linguaggio di implementazione Ladder Diagram (LAD) è adatto a questo.

Tratta i seguenti segnali, ciascuno nella propria rete:

  • Quando il compressore funziona troppo a lungo perché la temperatura è troppo alta, viene emesso un segnale acustico continuo.

  • Se la porta è aperta troppo a lungo, un segnale temporizzato richiama l'attenzione su questo.

  • Finché la porta è aperta, la luce è accesa.

  1. Nell'albero dei dispositivi, fate clic con il pulsante destro del mouse su Application oggetto e aggiungere un oggetto POU di tipo Programma con il Scala (LD2) linguaggio di implementazione.

    Assegna un nome al programma come Signals.

    Le Signals il programma è elencato nell'albero dei dispositivi accanto a PLC_PRG. L'editor dei diagrammi a scala si apre in Signals scheda. L'editor delle dichiarazioni appare nella parte superiore, ToolBox vista a destra. Il diagramma a scala contiene una rete vuota

  2. Crea un programma nella rete in modo che venga emesso un segnale acustico quando il compressore funziona troppo a lungo senza raggiungere la temperatura specificata. Per fare ciò, inserisci un TON timer POU nei passaggi successivi. Commuta un segnale booleano TRUE dopo un periodo di tempo specificato.

  3. Nel Casella degli attrezzi visualizza, trascina Blocca elemento e rilascialo nella rete vuota in una posizione di inserimento disponibile.

    Il blocco viene visualizzato come un riquadro con ingressi e uscite.

  4. Fate doppio clic sui tre punti interrogativi (???) nel blocco e fai clic su _ld_icon_input_assistant.png simbolo nell'editor di riga.

    Le Assistente di input si apre una finestra di dialogo.

  5. Nel Assistente di input finestra di dialogo, nella Blocchi funzionali standard categoria, nella Standard libreria, seleziona TON Timer e fai clic OK.

  6. Ora nell'editor di riga del blocco, che mostra il nome del blocco funzionale TON, premere il tasto Invio.

    Le TON Il POU viene visualizzato con i relativi ingressi e uscite.

  7. Per rimuovere il EN ingresso e il ENO output, seleziona il blocco e clicca su IT/ITIT nel menu contestuale.

    Ora il blocco ha solo il IN E PT input e il Q E ET uscite.

  8. Fai doppio clic sui tre punti interrogativi [???] direttamente sopra il blocco, inserisci TON_0 come nome dell'istanza e premete il tasto Invio.

    Hai confermato il nome dell'istanza e la finestra di dialogo dichiarare variabile si apre.

  9. Conferma il dialogo con ok.

    Ora l'inserito TON POU viene istanziato con il nome TON_0.

  10. Programma il blocco da attivare non appena il compressore inizia a funzionare. Per prima cosa trascina Contact elemento scala del ToolBox vista davanti al IN ingresso del blocco. Fate doppio clic sui tre punti interrogativi e fate clic sull'icona nell'editor di riga_ld_icon_input_assistant.png). Nell'Input Assistant, ora seleziona la variabile globale già dichiarata Compressore e fai clic OK.

    Il nome della variabile Glob_Var.xCompressor viene visualizzato sopra il contatto.

    Suggerimento

    Quando inizi a digitare un nome di variabile nella posizione di input, ottieni sempre automaticamente un elenco di tutte le variabili i cui nomi iniziano con i caratteri che hai digitato e che possono essere utilizzate a questo punto. Questo supporto è un'impostazione predefinita nel CODESYS-Opzioni di codifica intelligenti.

  11. Inserire il segnale da attivare. Per fare ciò, trascina un Bobina dal ToolBox vista, scala categoria, alla Q uscita del TON bloccare. Specificare il nome Glob_Var.xSignal per la bobina.

  12. Definire il periodo di tempo dall'attivazione del POU TON_0 fino a quando il segnale non dovrebbe suonare. Questa definizione avviene tramite la variabile Glob_Var.timAlarmThreshold, che inserite a tale scopo all'ingresso PT di TON_0. Per fare ciò, sposta il puntatore del mouse all'estremità sinistra del pin di input PT. Fate clic sulla casella dai bordi sottili che ora viene visualizzata a sinistra del pin di input e specificate il nome della variabile

  13. Premere il tasto Invio.

    Le Dichiarazione automatica si apre una finestra di dialogo.

  14. Fare clic OK per confermare la finestra di dialogo.

    La nuova variabile dichiarata viene visualizzata nella parte relativa alla dichiarazione.

  15. Fate clic con il pulsante destro TON POU e clicca Rimuovi i pin non utilizzati nel menu contestuale.

    L'uscita inutilizzata ET è rimosso.

  16. Nella seconda rete del KOP, si programma che il segnale suoni ciclicamente se la porta è aperta troppo a lungo.

    Usa il mouse per trascinare un Rete elemento del ToolBox visualizza il punto di inserimento sotto la Rete 1.

    Una rete vuota con numero 2 appare.

  17. Come nella prima rete, implementa un TON POU per l'attivazione temporizzata del segnale. Questa volta viene attivato dalla variabile globale Glob_Var.xDoorOpen all'ingresso IN. All'ingresso PT, aggiungi la variabile globale Glob_Var.timDoorOpenThreshold.

  18. Dal Util libreria, aggiungi un BLINK POU in uscita Q del TON POU in questa rete e istanziatelo con il nome Blink_0.

  19. Le BLINK_0 POU blocca l'inoltro del segnale Q e quindi Glob_Var.xSignal.

    Innanzitutto, trascina due Contatti elementi del ToolBox vista su OUT uscita del POU. Assegna la variabile TON_1.Q al contatto direttamente dopo l'uscita Q e la variabile globale Glob_Var.xDoorOpen al secondo contatto.

  20. Aggiungi un elemento dopo i due contatti Lavandino della cucina e assegnargli la variabile globale Glob_Var.xSignal a.

  21. Dichiara la variabile locale timSignalTime : TIME := T#1S; e aggiungi questa variabile agli input TIMELOW e TIMEHIGH uno; il tempo di ciclo è quindi 1 secondo per ciascuno TRUE e 1 secondo per FALSE.

  22. Fate clic con il pulsante destro TON POU e clicca Rimuovi i pin non utilizzati nel menu contestuale.

    L'output non utilizzato ET viene rimosso.

  23. Nella terza rete, programmare in modo che la lampada si accenda finché la porta è aperta. Aggiungi una rete aggiuntiva e un contatto. Assegna la variabile GlobVar.xDoorOpen al contatto.

  24. Il contatto inserito porta direttamente a una bobina. Aggiungere una bobina a destra del contatto e assegnare la variabile globale Glob_Var.xLamp alla bobina.

  25. CODESYS elabora le reti di un LD una dopo l'altra. Ora installate un collegamento alla Rete 3 alla fine della Rete 1 per assicurarvi che venga eseguita solo la Rete 1 o solo la Rete 2:

    When you hover the mouse pointer over the 3rd line in the top left-hand edge of the network, the information <insert jump here> is displayed. Double-click this position and enter DoorIsOpen: as the jump label in the line editor.

    Seleziona la rete 1. ToolBox vista, Diagramma a scala categoria, trascina il Salta elemento nella posizione di inserimento contrassegnata da un triangolo davanti a Glob_Var.xSignal bobina.

    Viene visualizzato l'elemento di salto. L'obiettivo di salto è ancora incluso ??? specificato.

  26. Fai doppio clic sui tre punti interrogativi [???] e fate clic sull'icona nell'editor di riga_ld_icon_input_assistant.png). Assistente di input finestra di dialogo, seleziona DoorIsOpen dai possibili identificatori delle etichette e clicca OK per confermare.

    L'etichetta di salto alla rete 3 è implementata.

Il programma LD ora si presenta così:

_cds_img_first_cds_program_ld_signals.png

Chiamata del programma «Signals» nel programma principale

Nel nostro esempio di programma, il programma principale PLC_PRG il programma Signals richiesta di elaborazione del segnale.

  1. Fare doppio clic nella struttura dei dispositivi PLC_PRG.

    Il programma PLC_PRG si apre in Blocco note.

  2. Nel Cassetta degli attrezzi visualizza, trascina un Blocca elemento all'editor di PLC_PRG.

  3. Fai doppio clic sui tre punti interrogativi [???] e fai clic su _ld_icon_input_assistant.png simbolo nell'editor di linee. Assistente di input finestra di dialogo, nella POU/Chiamate di programmi e funzioni categoria, seleziona Signals programma e clicca OK per confermare.

Creazione di un blocco di programma ST per una simulazione

Poiché l'applicazione in questo progetto di esempio non è collegata a sensori e attuatori fisici, è inoltre necessario scrivere un programma per la simulazione dell'aumento e della diminuzione della temperatura. Ciò consentirà di monitorare successivamente il funzionamento del controller del frigorifero in modalità online

Il programma di simulazione viene creato in Testo strutturato.

Il programma aumenta la temperatura fino al programma principale PLC_PRG determina che la temperatura impostata è stata superata. Quindi il programma attiva il compressore. Quindi il programma di simulazione riduce la temperatura fino a quando il programma principale non disattiva nuovamente

  1. Nell'albero dei dispositivi, fate clic con il pulsante destro del mouse su Applicazione oggetto e aggiungere un oggetto POU di tipo Programma con il Testo strutturato (ST) linguaggio di implementazione. Denominare il POU Simulation.

  2. Implementare il seguente codice nell'editor ST:

    Parte della dichiarazione:

    PROGRAM Simulation
    VAR
            TON_1: TON;                         //The temperature is decreased on a time delay, when the comepressor has been activated
            P_Cooling: TIME:=T#500MS;
            xReduceTemp: BOOL;                  //Signal for dereasing the temperature
            TON_2: TON;                         //The temperature is increased on a time delay
            P_Environment: TIME:=T#2S;          //Delay time when the door is closed
            P_EnvironmentDoorOpen: TIME:=T#1S;  //Delay time when the door is open
            xRaiseTemp: BOOL;                   //Signal for increasing the temperature
            timTemp: TIME;                      //Delay time
            iCounter: INT;
    END_VAR
    
    

    Parte di implementazione:

    iCounter := iCounter + 1;     // No function, just for demonstration purposes.
    
    // After the compressor has been activated due to TempActual being too high, the temperature decreases.
    // The temperature is decremented by 0.1°C per cycle after a delay of P_Cooling
    IF Glob_VAR.xCompressor THEN
            TON_1(IN:= Glob_Var.xCompressor, PT:= P_Cooling, Q=>xReduceTemp);
            IF xReduceTemp THEN
                    Glob_Var.rTempActual := Glob_Var.rTempActual-0.1;
                    TON_1(IN:=FALSE);
            END_IF
    END_IF
    
    //If the door is open, the warming occurs faster; SEL selects P_EnvironmentDoorOpen
    timTemp:=SEL(Glob_Var.xDoorOpen, P_Environment, P_EnvironmentDoorOpen);
    
    //If the compressor is not in operation, then the cooling chamber becomes warmer.
    //The  temperature is incremented by 0.1°C per cycle after a delay of tTemp
    TON_2(IN:= TRUE, PT:= timTemp, Q=>xRaiseTemp);
    IF xRaiseTemp THEN
            Glob_Var.rTempActual := Glob_Var.rTempActual + 0.1;
            TON_2(IN:=FALSE);
    END_IF

Suggerimento

Si consiglia l'uso di una visualizzazione per un comodo comando e monitoraggio dell'intero programma di controllo. Nel progetto di esempio finito per questo tutorial, che viene creato con il file CODESYS-Installazione standard (directory Projekte) è fornito è uno con CODESYS Visualizzazione integrata. È possibile caricare e avviare questo progetto sul controller per vederlo funzionare insieme alla visualizzazione. All'avvio, il Live_Visu è iniziato con una rappresentazione del frigorifero, che riflette il funzionamento del programma di simulazione senza che tu debba inserire alcuna voce. Tuttavia, è possibile aprire e chiudere la porta facendo clic sull'interruttore di accensione/spegnimento e anche regolare la preselezione della temperatura utilizzando l'ago sulla manopola. Non entreremo nella creazione della visualizzazione in questo tutorial. Un tutorial corrispondente come parte della guida CODESYS La visualizzazione è pianificata.

Definizione dei programmi da eseguire nella configurazione delle attività

La configurazione dell'attività predefinita contiene la chiamata per il programma principale PLC_PRG. Per il nostro progetto di esempio devi ancora chiamare il programma Simulation Aggiungere.

  1. Nella struttura dei dispositivi, trascina la voce Simulation con il mouse MainTask sotto il configurazione dell'attività.

    Il programma Simulation viene inserito nella configurazione dell'attività.

  2. Se si desidera visualizzare la configurazione dell'attività, fare doppio clic sulla voce MainTaskper aprire Blocco note.

    Nella tabella nella parte inferiore dell'editor è possibile visualizzare le POU richiamate dal task: PLC_PRG (inserito per impostazione predefinita) e Simulation. Il tipo di chiamata dell'attività è ciclico a intervalli di 20 millisecondi. In modalità online, l'attività elaborerà i due blocchi una volta per ciclo.

Definizione dell'"Applicazione attiva" per la comunicazione con il PLC

Il nome dell'applicazione Application è nella finestra attrezzatura mostrato in grassetto. Ciò significa che questa applicazione è stata impostata come "applicazione attiva". La comunicazione con il controller si riferisce quindi a questa applicazione.

Se è presente una sola applicazione in un progetto, diventa automaticamente l'applicazione attiva. Se la tua applicazione non è ancora attiva, attivala come segue:

  • Fare clic con il pulsante destro del mouse Application e selezionare il comando nel menu contestuale Imposta applicazione attiva.

    L'applicazione Applicazione sarà in vista attrezzatura ora mostrato in grassetto.

Controllo degli errori del programma applicativo

Durante l'inserimento del codice istruisce CODESYS Avvisa immediatamente di errori di sintassi con ghirigori rossi. Puoi anche vedere i risultati del controllo nella finestra del messaggio. Se necessario, aprire la finestra del messaggio con il comando Visualizza → Messaggi. I messaggi vengono assegnati alla categoria dei messaggi precompilazione visualizzato. È possibile selezionare un messaggio e premere il pulsante F4 passare al codice corrispondente. Ulteriori controlli del programma applicativo vengono eseguiti quando l'applicazione viene caricata nel controllore.

È possibile caricare un'applicazione priva di errori sul controller solo in un secondo momento.