Vai al contenuto

Domande generiche sulla programmazione

Home Forum Informazioni ambiente di sviluppo LogicLab Domande generiche sulla programmazione

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #54859
    Anonimo
    Inattivo

    Stò realizzando un impianto domotico con il Vs sistema SlimLine MPS054 ed ho alcune domande generiche sulla programmazione.

    1) Le variabili globali che hanno corrispondenza nella memoria del PLC (es.: Pulsante , LuceSalone, ecc…) vanno dichiarate come ritentive per poter far sì che in caso di blocco della corrente elettrica, al riavvio le luci si riaccendano?

    2) Aldilà della definzione quando si usa function e quando un function block (FB)? Non è così chiara la differenza tra le due, oltre alle definizioni che ho letto e riletto nel manuale (la function ha un solo RESULT mentre la FB può dare più RESULT!?)…

    3) Interfacciamento SlimLine con Arduino? Come? Lo consigli in caso di necessità o vi sono criticità? Sai indirizzarmi?

    4) La CPU mi confermi abbia 4 I/O gestibili come gli altri (presenti nei moduli di espansione) e dichiarabili da %IX255.0, %QX255.0?

    5) Per eseguire delle istruzioni al solo avvio (quello che in Arduino è il void setup() ) vedo che viene usata la funzione SysFirstLoop.. si può in alternativa associare il POU al task Boot per essere eseguito una solta volta (al boot)?

    #54861
    Sergio Bertana
    Amministratore del forum

    1) Non si possono dichiarare RETAIN le variabili di I/O, se vuoi mantenere la situazione di una variabili allo spegnimento del sistema dichiare una variabile globale BOOL di tipo RETAIN ed appoggi lo stato sulla variabile e poi copi la variabile sulla relativa variabile di uscita.

    E’ evidente che non puoi e sarebbe inutile mantenere lo stato delle variabili di ingresso, quelle riportano lo stato reale dell’ingresso quindi lo stato del dispositivo che lo comanda.

    2) Si usano i FB quando hai più uscite ma sopratutto quando hai variabili di memoria definite all’interno. I FB mantengono la memoria allocata e quindi lo stato delle variabili, mentre nelle function tutte le variabili interne sono distrutte all’uscita della function.

    3) Si può fare, riportiamo esempi di collegamento con Raspberry utilizando Node-RED, tra l’altro l’MPS055 è basato su Raspberry e permette in un unico prodotto di avere la programmazione LogicLab e di utilizare Node-RED (Vedi esempio).

    4) Si il modello MPS054 ha 4 I/O, e sono mappati come %IX255.0, %IX255.1, %QX255.0, %QX255.1.

    5) SysFirstLoop non è una funzione, è una variabile globale (ce ne sono molte) che è attiva solo al primo loop di esecuzione programma. Ma come hai visto c’è la task Boot sotto alla quale puoi collegare tutti i program che vuoi e questi sono eseguiti una sola volta alla prima esecuzione.

    Viene utilizzato SysFirstLoop per comodità nei programmi dove si deve agire al primo loop di esecuzione sulle variabili locali, che non sarebbero visibili da altri program e quindi non potrebbero essere gestite da un program eseguito in task di Boot.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.