Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,491 a 2,505 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Esportare dati sul web da SlimLine (Usando Php) #39027
    Sergio Bertana
    Amministratore del forum

    Non vi sono particolari problemi sul numero di variabili da acquisire, se vuoi suddividerle puoi realizzare nello SlimLine più file htm con all’interno le variabili da acquisire. Il programma in php dovrà leggere i vari files è gestire le variabili di ognuno, esempio:

    $Content1=file_get_contents(“http://xxx.xxx.xxx.xxx/Storage/Values1.htm”);
    $Content2=file_get_contents(“http://xxx.xxx.xxx.xxx/Storage/Values2.htm”);

    Ti consiglio di dare una occhiata anche a questo topic dove trovi una classe php per gestire il protocollo modbus master. In questo modo potrai da server interrogare i vari sistemi SlimLine via modbus TCP/IP, in questo modo puoi leggere e scrivere variabili senza alcun limite.

    in risposta a: Connessione sensore 4-20 mA a 2 fili con modulo mixed I/O #39025
    Sergio Bertana
    Amministratore del forum

    La connessione è la stessa ma la sostanziale differenza è che AGnd della scheda analogica non è in comune con il GND della alimentazione del modulo CPU. Inoltre se usi una modulo da 10 canali, o più moduli, i segnali AGnd di ogni banco da 5 ingressi sono tra loro isolati.

    Vantaggio principale è una minore sensibilità ai disturbi dovuta alla separazione galvanica tra le due masse, inoltre puoi utilizzare riferimenti di massa diversi tra i vari banchi da 5 ingressi.

    in risposta a: Problema con funzione SysVarsnprintf #39023
    Sergio Bertana
    Amministratore del forum

    La funzione SysVarsnprintf è esattamente la stessa su entrambe le due versioni del firmware che stai utilizzando. La funzione si appoggia sulla printf che è una funzione di libreria del compilatore GNU CC e quindi potrebbe esserci una qualche differenza in quella libreria.

    Il mio consiglio è di utilizzare una variabile STRING e non un ARRAY di BYTE come variabile di appoggio della stringa in uscita dalla SysVarsnprintf.

    IF (SysVarsnprintf(ADR(SOut), 19+1, ‘<CODIC:%u’, UDINT_TYPE, ADR(MData[i].codic))) == EOF) THEN Flt:=Flt OR 1; END_IF
    IF (SysVarsnprintf(ADR(SOut)+LEN(SOut), 18+1, ‘;LOTTO:%u’, UDINT_TYPE, ADR(MData[i].lotto)) == EOF) THEN Flt:=Flt OR 2; END_IF;

    In questo modo un errore nella funzione può essere controllato dal valore che assume Flt al termine e soratutto evita che la somma dei caratteri stampati sia errata. Se errore nella conversione del valore la funzione SysVarsnprintf ritorna EOF. EOF corrisponde al valore -1, questo potrebbe se sommato ad una variabile intera spostare completamente l’indice dell’array di appoggio mandando in eccezione il PLC.

    in risposta a: Connessione sensore 4-20 mA a 2 fili con modulo mixed I/O #39021
    Sergio Bertana
    Amministratore del forum

    Si certo lo schema di connessione è corretto, i sensori 4-20 mA a 2 fili si alimentano con la tensione di caduta sul circuito di misura. In pratica misurando la corrente con una resistenza di shunt da 62 Ω si avrà una caduta massima ai capi della resistenza di 1,24 Volt a 20 mA. E questa sarà la massima tensione che entrerà nel modulo Mixed I/O, per questo devi rimuovere il ponticello LK55 predisponendo l’ingresso a tensioni inferiori a 1,25 Volt.

    Certo dovrai verificare che il tuo sensore accetti il 24 Vdc di alimentazione. Comunque anche nel caso di rottura dello shunt e/o errori di connessione ti ricordo che l’ingresso analogico del modulo mixed I/O è protetto dalle sovratensioni ed un eventuale 24 Vdc applicato all’ingresso non crea problemi.

    Ricordo che il modulo mixed I/O, a differenza del Modulo espansione I/O Analogico, non è galvanicamente isolato, quindi l’ingresso di riferimento analogico AGnd è in comune con il GND di alimentazione del modulo CPU.

    in risposta a: Acquisizione codice scheda da lettore RFiD #39020
    Sergio Bertana
    Amministratore del forum

    Prendendo spunto da altri programmi presenti nel forum ho realizzato un semplice blocco funzione RFiDInterface che esegue l’interfaccia con il lettore RFiD. Come si vede dalla stampa del programma il FB è realizzato in linguaggio ST e viene gestito da un programma ladder.

    Ho gestito nel FB la completa interfaccia con il lettore e due uscite impulsive (Un loop di programma) indicano se carta presente oppure no. Nel caso di carta presente viene ritornato su di una variabile UDINT CardCode, il codice UID letto dalla carta. Naturalmente dovrai gestire un array di UINT con i vari codici UID abilitati, su attivazione dell’uscita BOOL CardOk, puoi eseguire un loop di ricerca nell’array per verificare se il codice letto è presente (Download programma).

    Nel forum puoi trovare questo topicquesto topic dove viene trattata la gestione del Mifare Reader/Writer SL025B.

    in risposta a: Gestione database sqlite #39019
    Sergio Bertana
    Amministratore del forum

    Non abbiamo sviluppato nessuna libreria per la gestione di databases da linguaggio CODESYS, ma credo che la soluzione migliore sia afffidare la gestione del database ad un connettore su PC. Puoi realizzare un programma su PC che gestisce la connessione al database e da CODESYS passare i dati a questo programma.

    Abbiamo sviluppato alcune applicazioni di questo tipo con interfaccia verso script PHP che girano sia su servers in rete locale che nel cloud abbinandole a SlimLine della serie LogicLab. In alcuni casi lo SlimLine passa le richieste allo script PHP con un GET od un POST in HTTP, in altri è lo script PHP che interroga lo SlimLine con richieste Modbus. Ricevute le richieste dallo SlimLine lo script in PHP accede con le sue librerie al database (Nel nostro caso sempre MySQL) (Topic).

    in risposta a: Progetto startup HMI e modulo CPU SlimLine #39017
    Sergio Bertana
    Amministratore del forum

    Il messaggio PLC no response stà ad indicare la mancata connessione con lo SlimLine, il messaggio compare nel caso anche solo uno degli oggetti della pagina del terminale non riceva risposta dallo SlimLine. In caso di errore l’oggetto non viene visualizzato ecco perchè non vedi nulla sul terminale. Anche se ovvie mi sorgono alcune domande.

    Nella configurazione del PLC hai definito l’indirizzo IP e la porta (Quella di default è la 502) correttamente ?
    Il nodo Modbus è coretto (Lo SlimLine ha di default nodo 1) ?
    L’indirizzo della variabile BOOL nell’oggetto grafico è corretta (Da 40016 a 44096) ?

    in risposta a: Progetto startup HMI e modulo CPU SlimLine #39015
    Sergio Bertana
    Amministratore del forum

    Non ho ben capito, tu stai simulando il funzionamento del terminale sul PC attraverso il simulatore ma ti stai collegando ad uno SlimLine reale immagino (Il simulatore del PLC sul PC non supporta la connessione Modbus).

    Che tipo di connessione hai tra il PC e lo SlimLine, sei connesso in rete Ethernet (Anche usando l’USB con RNDIS) oppure sei connesso in seriale RS232/485 ?

    Hai provato ad utilizzare il progetto sorgente postato nei primi post di questo topic, ti funziona ?

    in risposta a: Progetto startup HMI e modulo CPU SlimLine #39013
    Sergio Bertana
    Amministratore del forum

    Si tu trovi le definizioni %MWD, %MW, %MX e %MW_Bit perchè hai selezionato il protocollo Elsist (Screenshot). Ti consiglio di selezionare il protocollo Modbus IDA che è quello che ho utilizzato in tutti gli esempi (Screenshot). Il protocollo Elsist è stato aggiunto da poco nell’elenco dei protocolli disponibili e purtroppo ci sono alcuni problemi di funzionamento.

    Tutti i nostri prodotti sono compatibili allo standard Modbus quindi puoi tranquillamente utilizzarli con qualsiasi dispositivo che lo gestisca, compreso programmi SCADA (Topic) e/o altri programmi di supervisione (Topic).

    in risposta a: Progetto startup HMI e modulo CPU SlimLine #39009
    Sergio Bertana
    Amministratore del forum

    La risposta la trovi nell’esempio riportato nel post precedente. Ti consiglio di scaricare l’esempio, collegando lo SlimLine in ethernet con il PC potrai testare con il simulatore del pannello direttamente dal PC.

    Ma per rispondere alla tua domanda per l’accesso ai bits dello SlimLine da pannello si utilizza il codice 0x, e per l’indirizzo si somma 40000 all’indirizzo del bit. Nel tuo caso per accedere al bit 100.17 devi utilizzare l’indirizzo 40017 (Dai una occhiata a questo topic).

    Ecco lo screenshot di un pulsante Toggle (Preso dal programma di esempio). Il pulsante agisce sul bit 100.32 dello SlimLine e lo stato del bit viene sia letto che scritto in quanto il pulsante ne riporta graficamente lo stato. Se utilizzi un bit allocato nella zona tampone dello SlimLine (Da 2048 in avanti, esempio 0x 42048) lo stato del bit è mantenuto anche a sistema spento.

    in risposta a: Comportamento uscite digitali con PLC in stop #39007
    Sergio Bertana
    Amministratore del forum

    Nei moduli della gamma LogicLab dove il sistema operativo è interamente sviluppato da noi garantiamo sempre la disattivazione delle uscite su arresti sia volontari che per  errori di esecuzione del programma. Nei moduli CODESYS il sistema operativo è proprietario e non possiamo intervenire sul suo comportamento.

    Però l’ambiente CODESYS ha molte possibilità di configurazione, nel Task Configuration è possibile definire un programma da eseguire su condizione di stop e/o su condizioni di failure (Esempio errore WatchDog). Ecco lo screenshot di un programma che illustra come utilizzare questa tecnica (Download programma).

    in risposta a: Comportamento uscite digitali con PLC in stop #39005
    Sergio Bertana
    Amministratore del forum

    La condizione di stop non resetta l’esecuzione del programma ma la congela nello stato in cui si trova. Da uno stop è quindi possibile ripartire con un comando di run continuando l’esecuzone delle logiche come se nulla fosse successo. E’ per questo motivo che anche le uscite logiche rimangono congelate nello stato in cui si trovano.

    Concordo con te che questo comportamento in un processo industriale potrebbe creare seri problemi. Se la tua necessità è su di un comando fermare l’esecuzione del programma PLC azzerandone lo stato per poi ripartire dall’inizio, devi usare il comando di Reset e non di Stop.

    in risposta a: Eseguire aggiornamento listbox tramite una macro #39004
    Sergio Bertana
    Amministratore del forum

    Certo nell’oggeto ListBox devi indicare come sorgente dati item Indirizzo item, e con le due words di controllo puoi impostare il numero di items presenti e forzare l’aggiornamento del ListBox con i nuovi items definiti.

    Per rendere meglio l’idea ti ho preparato un semplice progetto di esempio (Download progetto).

    in risposta a: Informazioni su programmazione #38990
    Sergio Bertana
    Amministratore del forum

    Ricordo che tutte le funzioni ed i FB presenti in libreria sono comunque realizzabili dall’utente tramite LogicLab, in questo topic c’è una spiegazione di come è fatto il blocco funzione eTON.

    Nel forum ci sono moltissimi programmi tutti corredati di codice sorgente scaricabile, alcuni sono complessi e possono funzionare solo disponendo del PLC fisico (Esempio uno SlimLine compact), ma molti di essi possono essere testati direttamente sul PC utilizzando il simulatore (Topic).

    in risposta a: Informazioni su programmazione #38989
    Sergio Bertana
    Amministratore del forum

    Installando il tool di programmazione LogicLab (Scaricabile gratuitamente dal nostro sito) vengono installate oltre al programma una serie di librerie e molti programmi di esempio. Le librerie e i programmi di esempio si trovano nella cartella di installazione del programma Esempio C:Programmi(x86)ElsistLogicLab… (Screenshot). Per l’elenco delle funzioni e FB disponibili nelle varie librerie ti consiglio di scaricare il Manuale programmazione IEC61131-3 che comunque è incluso nella installazione di LogicLab.

    Sul manuale per ogni funzione ed FB è indicato come si utilizza e in che libreria si trova (Screenshot). Come vedi il FB eTON si trova nella libreria ePLCStdLib a partire dalla versione B000 (In alcune installazioni di LogicLab è indicato solo il nome della libreria e non la versione). Ora per per utilizzare il FB lo devi importare nel tuo progetto (Leggiti il capitolo Importazione oggetti da libreria sul manuale).

    Per ogni funzione e/o FB sul manuale viene anche riportato uno o più esempi di utilizzo, per ogni esempio è indicato in che programma dimostrativo l’esempio si trova. Analogamente a quanto detto per l’importazione oggetti da libreria è possibile importare il programma di esempio. Nel programma dimostrativo si troverà un elenco di programmi e selezionando quello con il nome indicato nel manuale sarà possibile importarlo (Screenshot).

Stai visualizzando 15 post - dal 2,491 a 2,505 (di 4,374 totali)