Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,716 a 2,730 (di 4,367 totali)
  • Autore
    Post
  • in risposta a: Comunicazione dati wireless in campo fotovoltaico #38650
    Sergio Bertana
    Amministratore del forum

    La soluzione Radiant 868 o il radiomodem DL868H sono sicuramente le scelte più indicate, i due prodotti sono identici e utilizzando frequenze abbastanza basse non hanno problemi ad essere ubicati con l’antenna in prossimità del terreno quindi sotto i 120 cm del limite inferiore delle vele. Ed anche con questo posizionamento “infelice” sono sicuramente in grado di coprire le esigenze di distanza richieste. Pali metallici, le vele stesse ed altri ostacoli non sono molto influenti su queste frequenze di trasmissione. Nel settore fotovoltaico vi sono problemi dovuti alle interferenze degli inverter, dalle esperienze dei nostri clienti ti indico che dovrai porre un pò di cura nella alimentazione degli apparati, magari inserendo dei filtri sulla linea di alimentazione. Come hai visto gli apparati hanno più canali (Alla massima potenza 500mW i canali disponibili sono 10, scendendo di potenza 25mW i canali disponibili diventano 32). Quindi puoi creare linee di comunicazione indipendenti (1 master e tanti slaves) una per ogni canale. Consiglio se i master sono uno vicino all’altro di lasciare un canale libero tra un master e l’altro per evitare interferenze. Le antenne sono omnidirezionali quindi puoi disporre il master e gli slaves come meglio credi. In ultimo ti ricordo che la normativa ERC prescrive un Duty-Cycle del 10%, quindi in pratica non puoi utilizzare in continuazione il canale radio, ma considerando che hai una comunicazione Modbus hai già intrinsecamente tempi di attesa tra le domande e tra domanda e risposta. Poi considerando che sei su un tuo fondo ed in aperta campagna non dovresti dare fastidio a nessuno. Considerazione sui ritardi di comunicazione, i radiomodem utilizzano una trasmissione a pacchetto dei dati, quindi tra la creazione del pacchetto, l’invio e lo spacchettamento intercorrono dei tempi che si sommano ai tempi di comunicazione. Solitamente il master non ha problemi a tollerare questi tempi di ritardo, ma occorre comunque verificare che funzionino.

    in risposta a: Invio di stringhe con valore variabile su socket TCP #38649
    Sergio Bertana
    Amministratore del forum

    Premesso che per la gestione delle comunicazioni preferisco utilizzare il linguaggio ST, in quanto più adatto e più leggibile, ma nulla vieta di utilizzare anche altri linguaggi come FBD o LD. Nel manuale infatti solitamente si riportano esempi in linguaggio ladder.

    Veniamo al tuo problema ho realizzato un semplice programma LD (Stampa e Download programma), sono partito dall’esempio del manuale riferito alla FB SysSktListen ed ho aggiunto la stampa del valore della variabile SysDateTime. Come vedi però l’esecuzione della funzione SysVarfprintf viene condizionata sul fronte di attivazione della variabile SysClock1000. In questo modo si ha l’invio della stringa sul socket ogni 2 secondi.

    Se esegui in modo incondizionato la SysVarfPrintf viene continuamente inviato sul socket la stringa fino al raggiungimento del numero di caratteri pari alla dimensione del buffer di socket.

    Per la domanda relativa ai segnali EN/ENO ti rimando a questo topic.

    in risposta a: Cenni sull’utilizzo del linguaggio SFC #38648
    Sergio Bertana
    Amministratore del forum

    Ho rispolverato un vecchio progetto di esempio con un lampeggiante (Topic) ed ho aggiunto una transizione divergente. In una azione ho inserito il controllo su l’ingresso logico Di00CPU che oltre ad essere copiato sull’uscita logica Do01CPU sul fronte di attivazione setta la variabile Nome POU_RESET_SFC.

    E se attivi l’ingresso Di00CPU il flusso di esecuzione SFC si resetta come deve essere (Ecco lo screenshot). Allego il programma sorgente.

    in risposta a: Uso del calendario e dei temporizzatori #38646
    Sergio Bertana
    Amministratore del forum

    In tutti i dispositivi SlimLine abbiamo adottato la filosofia del basso impatto ambientale e quindi abbiamo eliminato le batterie, la riserva di carica per il funzionamento del Real Time Clock è garantita da un Supercap che si ricarica a sistema acceso e garantisce una riserva di funzionamento di ca un mese.

    Per aggiornare il valore dell’orologio dal terminale ti rimando a questo topic, dove l’argomento è trattato in modo esaustivo.

    Ti ricordo inoltre che se lo SlimLine è connesso ad una rete dove è presente un server NTP puoi anche utilizzare l’FB SNTPRequest per l’aggiornamento automatico dell’ora dal server (Topic).

    in risposta a: Cenni sull’utilizzo del linguaggio SFC #38641
    Sergio Bertana
    Amministratore del forum

    Ho contattato al riguardo la Axel che mi ha dato alcuni suggerimenti, abilitando la flag Check functions and functions blocks external variables (Screenshot) si attivano anche le flag di controllo dello stato SFC (Vedi nota tecnica).

    in risposta a: Termometro/Igrometro IP con portale web SensDesk #38639
    Sergio Bertana
    Amministratore del forum

    Come espresso nel post precedente, l’STE invia i dati automaticamente al portale quindi può essere utilizzato in una qualsiasi rete che preveda la connessione Internet. Non importa di che tipo sia l’indirizzo IP assegnato dal gestore può anche essere una rete sotto NAT in quanto è l’STE che si connette al portale.

    Naturalmente per la consultazione dei valori di temperatura bisogna sempre fare riferimento al portale, mentre l’email di segnalazione allarme di temperatura può essere inviata sia dall’STE stesso che dal portale.

    Se si desidera una archiviazione personale dei dati occorre scaricare dal portale il file XML con lo storico delle letture.

    in risposta a: Interazione con sistema di gestione riscaldamento Coster #38637
    Sergio Bertana
    Amministratore del forum

    Si la soluzione può essere quella che tu hai riportato, magari acquisendo con gli ingressi dello SlimLine i 4 comandi in uscita dal sistema Coster e poi gestire con  le sue uscite i comandi attuali. Così puoi completamente gestire i comandi come credi.

    Mi parlavi di tecontrollo, non mi dici se sul luogo c’è Internet, se hai disponibilità di indirizzo IP statico, o pubblico o se non vi è nessuna connessione Internet. Nel forum puoi trovare molti spunti sulle possibili configurazioni (Topic).

    in risposta a: Cenni sull’utilizzo del linguaggio SFC #38636
    Sergio Bertana
    Amministratore del forum

    Premesso che non sono un esperto di linguaggio SFC, concordo con te che lo scenario è quello descritto, e non esiste un modo per resettare il flusso di esecuzione di un programma SFC.

    Tu puoi in una azione modificare via linguaggio ST variabili utilizzate nel programma SFC ma non è possibile in nessun modo gestire il flusso di esecuzione. Quindi quando lo step ad alto livello cessa di essere attivo gli step che gestiscono le azioni a basso livello rimangono congelati allo stato in cui sono.

    in risposta a: Velocità acquisizione ingressi digitali moduli espansione #38635
    Sergio Bertana
    Amministratore del forum

    Il problema riguarda il modo in cui è gestita l’immagine di processo degli I/O, trovi ulteriori informazioni in questo topic. In pratica gli ingressi digitali sono acquisiti dal sistema operativo nella task Slow e sono trasferiti nelle variabili UDINT SysCPUDI e SysDIxx, poi sono trasferiti nella tabella di variabili BOOL %IXxx.

    Quando un programma si riferisce ad una variabile %IXxx LogicLab controlla che task stà eseguendo il programma e se è la task Slow, si riferisce alla variabile reale, se è la task Back esegue una copia della variabile reale in una variabile di appoggio creando una ulteriore immagine di processo.

    L’immagine di processo chiamiamola copia, viene fatta automaticamente solo sulle variabili %IXxx, quindi la soluzione al tuo problema è quella di eseguire il programma nella task Slow.

    In riferimento alla acquisizione da Modbus, sia il comando 16#02 Read input status che 16#03 Read holding registers, hanno grosso modo la stessa lunghezza in bytes nel frame di risposta quindi a livello di frame sono paragonabili. Poi certo la prima ti ritorna un array di BOOL mentre la seconda ti ritorna una o più words che poi dovrai ancora scompattare per avere i valori in variabili BOOL.

    in risposta a: Controllo motore passo-passo in Modbus #38633
    Sergio Bertana
    Amministratore del forum

    Il protocollo Modbus non specifica l’endiannes dei dati nel caso di lettura di variabili a 32 bits. Cito una risposta già presente in un altro post.

    Attenzione! Nella lettura di variabili a 32 bits tramite modbus occorre prestare attenzione all’endianness dei dati, il protocollo modbus infatti non specifica in che ordine devono essere ritornate le due parti a 16 bits del dato a 32 bits. Quindi è possibile che in alcuni sistema venga ritornata la parte più significativa prima della parte meno significativa o viceversa.
     
    SlimLine utilizza la rappresentazione in little-endian che inizia dal byte meno significativo per finire col più significativo, ora se il valore del registro da leggere è in formato intero a 32 bits basterà dopo la lettura del registro eseguire uno SWAP tra le due words lette. Dai una occhiata alla FB WordToDouble o al manule al capitolo Swap variabile DWORD.

    in risposta a: Bug in LogicLab programma in linguaggio SFC #38630
    Sergio Bertana
    Amministratore del forum

    Ho girato la segnalazione alla Axel che sviluppa il tool LogicLab. Come workaround ti posso consigliare di impostare la lingua in Inglese e questo dovrebbe permettere di scrivere FALSE (Screenshot).

    in risposta a: Remotizzare porta seriale COM su reti WiFi pubbliche #38629
    Sergio Bertana
    Amministratore del forum

    L’ATC 3200 è un convertitore ZigBee-Seriale e non si connette a reti WiFi. Quindi i due prodotti che potrebbero fare al caso tuo sono l’ATC-1000WF e l’ATC-2000WF. Tra i due prenderò in considerazione l’ATC-1000WF che è l’unico ad avere il server web di configurazione (Topic), l’altro si configura esclusivamente da telnet.

    Il convertitore non supporta il DNS dinamico, ma credo che comunque non sarebbe una soluzione perchè la retie WiFi pubblica a cui ti connetti probabilmente ti rilascia un indirizzo IP privato e quindi non sarebbe raggiungibile da Internet.

    La soluzione fattibile è configurare il prodotto come client impostando l’indirizzo IP (O il DNS) di un tuo server nel cloud, il convertitore quando si aggancia alla rete WiFi cercherà di connettersi al server sulla porta specificata. Il tuo server dovrà accettare la connessione su quella porta e poi mettere in comunicazione il socket con il tuo applicativo.

    Potrai definire porte diverse per ogni dispositivo, in modo che quando arriva la connessione in base alla porta su cui il client si connette puoi capire chi è il client. Oppure il server accetta connessioni multiple sulla stessa porta e sarà poi il protocollo di comunicazione a determinarechi è il client.

    in risposta a: Consiglio sviluppo grafica su dispositivo cMT-SVR #38628
    Sergio Bertana
    Amministratore del forum

    L’app CloudHMI non permette di eseguire lo zoom però disegnando opportunamente le pagine puoi fissare una dimensione adeguata agli oggetti di visualizzazione e/o inputazione grafica. Tenendo presente che la dimensione minima dei terminali operatore che proponiamo è 4 pollici e su questa dimensione abbiamo molte applicazioni sviluppate e perfettamente gestibili (Screenshot).

    Oggi qualsiasi smartphone o tablet è di dimensioni molto maggiori di 4 pollici quindi hai a disposizione spazio sufficente per disegnare oggetti di dimensioni adeguate.

    Ti ricordo che il Netsyst ha un web server integrato che permette di creare pagine di impostazione gestibili direttamente da browser (Screenshot) ed in questo caso l’app browser permette lo zoom (Screenshot) tutto questo senza utilizzare nessun terminale.

    Ricordo anche che utilizzando un terminale operatore tramite l’accesso via VNC, puoi operare sul terminale anche da smartphone (Topic) ed in questo caso l’app permette lo zoom della immagine grafica.

    in risposta a: Come connettere sensori ed attuatori ad un PC #38627
    Sergio Bertana
    Amministratore del forum

    Molti sono i clienti che sviluppano applicazioni su PC che poi devono essere interfacciate con l’impianto ed il consiglio che do è quello di utilizzare un sistema programmabile (Esempio ns serie SlimLine) connesso in Ethernet al PC. Questo perchè i prodotti che sono stati valutati dal cliente non sono adatti all’impiego in uso industriale (Immunità ai disturbi, funzionamento in real time, ecc), inoltre la serie Oak è dismessa dalla produzione.

    I sistemi SlimLine oltre ad avere un buon rapporto prezzo/prestazioni possono essere facilmente programmati in IEC61131 con il tool gratuito LogicLab e possono tramite i moduli di I/O acquisire direttamente sonde PT100, tensioni 0÷10V o correnti 4÷20mA. Un ampio numero di schede di I/O logici sia statiche che relè permette di comporre il sistema in base alle proprie esigenze.

    Per la connessione con il PC si può utilizzare il protocollo Modbus OverIP (Topic) oppure sviluppare protocolli TCP e/o UDP di comunicazione ad hoc (Topic). Il sistema SlimLine può essere programmato per agire da semplice I/O remoto oppure si può delegare a lui alcuni compiti di regolazione svincolando il PC da compiti di regolazione real time (Esempio di regolazione PID).

    Per i sensori di temperatura proponiamo tutta la gamma Sensit dove si possono sicuramente trovare i sensori necessari alla applicazione, sia il semplice sensore che una serie di amplificatori e convertitori.

    Navigando nel forum si trovano svariati esempi di programmi IEC61131 da cui trarre spunto per le proprie applicazioni.

    in risposta a: Domande su utilizzo del linguaggio FBD #38626
    Sergio Bertana
    Amministratore del forum

    Il grande vantaggio del linguaggio IEC61131 e dei suoi 5 linguaggi stà proprio nel poter realizzare progetti che miscelando opportunamente l’utilizzo dei linguaggi permette di rendere il progetto molto più leggibile. In linea di massima come dicevi tu il linguaggio ST è molto più immediato per questo tipo di operazioni, basterebbe scrivere statements del tipo.

    VarBool:=FALSE;
    VarWord:=0;

    Nel linguaggio FBD per assegnare un valore ad una variabile devi utilizzare l’operando MOVE. Se attivi (Tasto destro del mouse) gli ingressi EN/ENO dell’operando puoi anche condizionare la scrittura del valore nella variabile (Screenshot).

Stai visualizzando 15 post - dal 2,716 a 2,730 (di 4,367 totali)