Vai al contenuto

Suggerimenti su come iniziare la programmazione

Home Forum Controllori SlimLine e Netsyst (LogicLab) Suggerimenti su come iniziare la programmazione

Stai visualizzando 11 post - dal 1 a 11 (di 11 totali)
  • Autore
    Post
  • #35120
    Mario
    Partecipante

    Mi sto avvicinando ora al mondo di SlimLine vorrei sapere come scrivere un programma analogico di ingressi e uscite.

    #37011
    Sergio Bertana
    Amministratore del forum

    SlimLine è un PLC modulare che si programma con LogicLab, un tool di programmazione che supporta tutti i 5 linguaggi standard della IEC 611131. Il modo più semplice per iniziare è dare una occhiata ai nostri videocorsi dove si insegna come creare un progetto, realizzare un semplice programma ladder, eseguirlo e debuggarlo sul simulatore PC.
     
    Acquisita la dimestichezza con l’ambiente LogicLab, puoi trovare sul Manuale programmazione IEC61131-3 su sistema SlimLine (Download), il riferimento a tutte le funzioni e blocchi funzioni disponibili. Per ognuna di esse vi è un semplice esempio di utilizzo scritto in linguaggio ladder.
     
    Alcuni esempi del manuale sono disponibili anche in codice sorgente, in tal caso noterai accanto alla dicitura Esempio … anche il codice del programma dimostrativo racchiuso tra parentesi (Ptp…) che contiene l’esempio. Se tu crei un progetto LogicLab vuoto, dal menù Project -> Import object from library, potrai aprire il programma di esempio indicato ed importare l’esempio.
     
    In merito alla tua domanda sulla gestione degli ingressi analogici, basta realizzare un programma in FBD che utilizzando i blocchi funzioni SysGetAnInp e SysSetAnOut, acquisisca l’ingresso e gestisca le uscite analogiche.

    #37025
    Mario
    Partecipante

    Devo attivare un ingresso analogico che mi abilita una uscita analogica che varia in base al variare dell’ingresso, è possibilile avere informazioni è magari anche un esempio ?

    #37026
    Sergio Bertana
    Amministratore del forum

    La tua domanda è molto vaga, ed in parte ti ho già risposto nel post precedente. La lettura di un ingresso analogico si effettua con il blocco funzione SysGetAnInp e l’uscita analogica si gestisce con il blocco funzione SysSetAnOut. Se tu leggi il manuale di programmazione vedrai che sulla spiegazione dei blocchi funzione vi è anche un esempio di utilizzo.

    Per aiutarti ti allego un semplice programma in linguaggio ladder che acquisisce un ingresso analogico e lo copia su una uscita analogica (Stampa programma) (Download programma).

    #38298
    Fabio
    Partecipante

    Sto utilizzando una CPU Slimline versione B e non riesco ad impostare breakpoints ne per la simulazione ne quando ho già scaricato il porogramma sul target ed è già in esecuzione ed in debug mode. Mi sto riferendo più che altro al linguaggio ST per cui se tento di aggiungere un breakpoint da menu Debug mi viene visualizzato un errore.

    Non capisco perchè anche se nel manuale è prevista questa funzione non ci sia nessuno che l’abbia usata nel forum.

    #38299
    Massimo
    Moderatore

    Date le modeste dimensioni di memoria disponibile, sui prodotti SlimLine ARM7 sia Compact che non, sia sui prodotti NetlogIII, non è possibile l’utilizzo dei breakpoints.

    E’ invece possibile utilizzare i breakpoints in modo simulazione (tasto “Simulation mode”) cioè quando si fa girare il proprio programma sul simulatore presente nel PC senza quindi collegarsi al target reale. I breakpoints sono utilizzabili dopo aver impostato il “Debug mode”.

    #38303
    Fabio
    Partecipante

    In simulation mode target X11 riesco a vedere tutte le variabili dei programmi aperti ma non delle FB o Function chiamate.  Se tento di aggiungere un breakpoint in un qualsiasi programma mi appare l’errore “Debugging information is not valid (listing file does not match with the application currently executing on the target device).

    #38304
    Massimo
    Moderatore

    Non riesco a riprodurre il problema che lamenti. Con Simulab riesco tranquillamente ad inserire i breakpoints sia in program che in function block che in function. Per vedere le variabili in watch, normalmente non vi sono problemi per i program e i function block, mentre possono esserci per le function. 

    #38318
    Fabio
    Partecipante

    E’ possibile in qualche modo chiamare programmi da un programma Main ? non ho trovato nulla nel manuale LogicLab. Se no la soluzione potrebbe essere di crearmi una funzione ?

    #38320
    Sergio Bertana
    Amministratore del forum

    I programmi possono solo essere eseguiti inserendoli nella relativa task di esecuzione. Non è possibile da un programma eseguire “chiamare” un altro programma.

    Come dici giustamente tu puoi creare funzioni o blocchi funzioni che poi sono eseguibili dai programmi. Naturalmente le funzioni non possono avere variabili statiche al loro interno e non possono fare riferimenti a variabili esterne, inoltre hanno una unica variabile di ritorno.

    I blocchi funzioni invece possono avere variabili statiche al loro interno, possono avere infinite variabili di uscita e possono fare riferimento a variabili esterne (Direttiva EXTERNAL). Naturalmente i blocchi funzioni devono essere istanziati tutte le volte che sono utilizzati.

    #38892
    Luciano
    Partecipante

    Approfitto per fare i complimenti per il libro “Plc in pratica” che e’ fatto molto bene e anche il CD allegato rappresenta un’ottima raccolta di esempi e soprattuto di documentazione pdf.

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