Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,476 a 2,490 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Sintassi statement CASE #39052
    Sergio Bertana
    Amministratore del forum

    Nel Manuale programmazione IEC61131-3 nel capitolo Statements linguaggio ST trovi una spiegazione dell’utilizzo dello statement CASE. Aggiungo comunque questa spiegazione che è ancora più esplicativa.

    Comunque se dai una occhiata agli esempi dei programmi nel forum troverai moltissimi programmi che utilizzano lo statement CASE. Lo utilizzo quasi sempre nei miei programmi ST per gestire la macchina stati, in questo topic ad esempio è stato utilizzato nel blocco funzione EasyProtocol (Stampa programma).

    in risposta a: Aggiornamento impianto con ICU 2000 (Micromaster) #39051
    Sergio Bertana
    Amministratore del forum

    Hai tantissimi modi per gestire lo schedulatore settimanale, il più immediato è utilizzare l’oggetto Scheduler sul pannello operatore, ecco la spiegazione di un esempio fornita da Weintek (Download esempio). Ecco lo screenshot di una applicazione cronotermostato realizzata da un nostro cliente.

    Ma puoi anche gestirla interamente dallo SlimLine, in questo topic trattiamo un argomento simile al tuo,  in questo topic una spiegazione di come eseguire operazioni con data e ora. Ecco un’altro esempio, in questo topic gli orari Accensione/Spegnimento sono definiti in un file CSV (Che si può redigere con Excel).

    Ricordo che lo SlimLine ha un server HTTP integrato ed è quindi possibile gestire pagine HTML visualizzabili con un normale browser, in tal caso puoi effettuare tutta la programmazione oraria direttamente da pagina web. Ecco lo screenshot della pagina che utilizziamo noi internamente per la programmazione della climatizzazione gestita da un sistema SlimLine.

    in risposta a: Aggiornamento impianto con ICU 2000 (Micromaster) #39049
    Sergio Bertana
    Amministratore del forum

    Non conosco nello specifico il prodotto ICU2000, bisogna capire se è come dici tu soltanto un esecutore di comandi Modbus oppure  se è un sistema in grado di prendere autonomamente delle decisioni.

    Comunque in entrambi i casi puoi sicuramente gestirlo da pannello Weintek via Modbus RTU, naturalmente devi avere un elenco dei registri su cui operare per leggere la temperatura e gestire le uscite. Puoi usare sia i pannelli serie iE (Utilizzi VNC per accedere da remoto, Topic) che la versione cloud cMT (Esiste una apposita App per tutti idispositivi). In entrambi i casi nessun problema di accesso via rete locale WiFi mentre per accedere da remoto via Internet consiglio EasyAccess 2.0.

    Ti ricordo che la programmazione è la stessa per entrambi i prodotti e che puoi scaricare il programma EasyBuilder Pro dal sito e con il programma puoi simulare perfettamente il funzionamento del pannello (Per connetterti agli ICU2000 dovrai munire il PC di una porta seriale RS485, Vedi converitore).

    Una riflessione… se l’ICU2000 è un mero esecutore e devi realizzare tutta la logica nel pannello dovrai lavorare parecchio di macro. Valuta se può essere conveniente interfacciare i dispositivi ICU2000 con un modulo CPU SlimLine e scrivere la logica di funzionamento in linguaggio IEC sul PLC, lasciando al pannello la sola visualizzazione grafica.

    in risposta a: Convertitore Ethernet-Seriale con livelli compatibili TTL #39048
    Sergio Bertana
    Amministratore del forum

    Il convertitore Ethernet-Seriale ATC-1000 utilizza al suo interno un modulo OEM ATC-1000M Low-cost serial port device networking. Utilizzzando questo modulo puoi avere a disposizione i segnali seriali con livello compatibile TTL.

    Come vedi dal manuale però il modulo si alimenta a 3.3 Volt, questo significa che dispone di ingressi TTL level tolerant ma sicuramente le uscite saranno a livello 3.3 Volt. Devi quindi verificare se la tua elettronica accetta e funziona con segnali a 3.3 Volt.

    in risposta a: Definizione di costanti utilizzabili nel programma #39047
    Sergio Bertana
    Amministratore del forum

    Lo scrivere un numero REAL in una variabile INT non è bloccante, è una operazione che si può fare. Ad esempio si utilizza per togliere la parte decimale ad un numero oppure nel caso di appoggio del valore in un registro che verrà poi letto da Modbus.

    A differenza di altri linguaggi come ad esempio il C dove il cast tra variabili è implicito, la normativa IEC impone di esplicitarlo con il costrutto TO_INT(). In caso contrario il compilatore segnala warning.

    in risposta a: Definizione di costanti utilizzabili nel programma #39045
    Sergio Bertana
    Amministratore del forum

    Ho scritto un programma esattamente uguale al tuo e come vedi dallo screenshot il risultato è corretto. Ti allego anche il progetto così puoi testarlo sul tuo sistema, funziona anche con il simulatore (Download progetto).

    Se da te non funziona, puoi controllare la versione del firmware del tuo sistema e la versione del programma LogicLab.

    in risposta a: Definizione di costanti utilizzabili nel programma #39043
    Sergio Bertana
    Amministratore del forum

    Non esistono costanti predefinite, però è possibile definire variabili che sono assunte come costanti in tutto il programma. Nella tabella di definizione delle variabili globali si defiscono le nuove costanti con l’attributo CONSTANT (Screenshot).

    in risposta a: Come utilizzare gli esempi forniti con SlimLine #39040
    Sergio Bertana
    Amministratore del forum

    Si certo è un esempio e vuole dimostrare come sia possibile gestire una connessione modbus in TCP. Non sono in ufficio e quindi non posso fare tests, ma guardando il codice basta modificare il case 3 nel modo:

    3: Mdb.Enable:=NOT(Mdb.Done);

    In pratica sul Done togli l’Enable che fà ripartire la richiesta. In questa fase puoi anche modificare i registri da leggere/scrivere. Naturalmente un occhio al CSk.Fault se cade il socket devi ripartire dall’inizio.

    in risposta a: Come utilizzare gli esempi forniti con SlimLine #39038
    Sergio Bertana
    Amministratore del forum

    Anche LogicLab si attiene alla normativa IEC61131 che indica anche come definire le aree di memoria. Esssendo Siemens il leader del mercato PLC, la normativa si è molto ispirata a loro.

    La famiglia SlimLine LogicLab utilizza l’ambiente di sviluppo LogicLab sviluppato da una azienda italiana. L’ambiene essendo conforme alla IEC61131 è molto simile al CODESYS. Crediamo molto in questo prodotto, ed proprio per la famiglia LogicLab abbiamo sviluppato tantissime funzioni e FB. Dando una occhiata al forum dedicato al prodotto troverai moltissimi esempi con relativo codice sorgente.

    in risposta a: Come utilizzare gli esempi forniti con SlimLine #39036
    Sergio Bertana
    Amministratore del forum

    Nell’esempio il master Modbus si connette ad un sistema SlimLine LogicLab che agisce come slave. Ora nello SlimLine LogicLab il Modbus è gestito dal sistema operativo e l’area di memoria accessibile è la DB 100 che ha 4096 bytes di memoria.

    L’indirizzo Modbus per accedere a quest’area si ottiene sommando 40000 all’indirizzo di allocazione della variabile in memoria  nel caso di comandi Modbus con accesso a bit. Nel caso di comandi Modbus con accesso a WORD l’indirizzo di allocazione della variabile và diviso per 2. Ecco quindi che nel mio caso accedendo a due variabili WORD consecutive allocate a DB 100.2312. L’indirizzo Modbus diventa: 40000+(2312/2) =41156 (Topic).

    Ma se tu accedi a dispositivi commerciali dovrai fare riferimento alla documentazione del dispositivo che indicherà l’indirizzo Modbus da utilizzare. Attenzione, in accordo alle  specifiche Modbus il FB invia come frame di richiesta il valore Mdb.Address-1. Ma non tutti i sistemi slaves sommano 1 all’indirizzo ricevuto quindi molte volte devi falsare di 1 il valore di Mdb.Address.

    in risposta a: Come utilizzare gli esempi forniti con SlimLine #39034
    Sergio Bertana
    Amministratore del forum

    Il programma dimostrativo PTP131A100 è ancora in sviluppo probabilmente hai visto il riferimento in qualche stralcio del manuale postato sul forum. Quindi non è ancora disponibile nella sezione download, ne posto una copia preliminare qui nel forum (Download programma).

    in risposta a: Gestione backup dati automatico #39032
    Sergio Bertana
    Amministratore del forum

    Non ho idea del perchè capita questo devo contattare Weintek al riguardo (Lo farò dopo le ferie). Ma come consiglio puoi provare a mettere l’oggetto di Backup nella Common Window. Essendo una finestra sempre attiva dovrebbe garantire il funzionamento costante della procedura.

    Se non vuoi vedere l’oggetto puoi eliminare lo shape così sarà del tutto invisibile anche se di fatto visualizzato dietro a tutte le finestre attive.

    in risposta a: Interfaccia grafica WebVisu su dispositivi mobili #39031
    Sergio Bertana
    Amministratore del forum

    Non ho provato personalmente ma Googlando ho trovato questa risposta: Ti confermo che funziona sia su dispositivi mobili con Android, (ho verificato con Chrome) che con IOS.

    Nel PlayStore puoi trovare la App SpiderControl che è a pagamento.

    Se il browser Android supporta HTML5, si puo’ provare ad vedere questo interessante progetto su Sourceforge WebVisu beta Pure Browser based Visualisation for PLCs. Ho provato e funziona a parte qualche problema di visualizzazione su alcuni tipi di controlli grafici, d’altronde il progetto è in fase beta.

    in risposta a: Dimensionamento batterie su modulo DR-UPS40 #39030
    Sergio Bertana
    Amministratore del forum

    Certo puoi collegare la batteria senza problemi, naturalmente controlla la massima corrente che il dispositivo può erogare non collegare carichi da pilotare con correnti più elevate del massimo (40 A).

    in risposta a: Visualizzazione interfaccia grafica da web browser #39029
    Sergio Bertana
    Amministratore del forum

    Come tutti i PLC anche lo SlimLine ha un controllo di watch dog sul tempo di esecuzione del programma. I programmi eseguiti in automatico hanno un tempo prefissato e non modificabile. Si è visto che accedendo da pagina web si allunga il tempo di esecuzione del programma al punto da fare intervenire il controllo di watch dog che ne ferma l’esecuzione.

    Eseguendo il programma in una task è invece possibile definire se si vuole o no il controllo di watch dog e/o definirne il tempo su quel programma. Ecco quindi che si evita il problema che un allungamento del tempo di esecuzione provochi l’errore.

Stai visualizzando 15 post - dal 2,476 a 2,490 (di 4,374 totali)