Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 2,776 a 2,790 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Uso del calendario e dei temporizzatori #38562
    Sergio Bertana
    Amministratore del forum

    Si l’uso delle strutture dati permette di aggregare sutto un unico tipo di dati, dati di tipo eterogeneo, permettendo un ordine ed una semplificazione nella stesura del programma ed una mnemonicità di accesso ai dati. La visualizzazione automatica dei membri della struttura durante la scrittura del programma “IntelliSense” gestita da LogicLab ne rende ancora più agevole l’uso.

    Corretto il conteggio del numero di bytes utilizzati, e corretto l’indirizzo definito nella pagina HTM, attenzione invece per quanto riguarda l’indirizzamento da parte del terminale HMI. L’indirizzo 3×40000 corrisponde alla UINT allocata a DB100.0, Quando si accede a registri a 16 bits occorre dividere per 2 l’indirizzo quindi DB100.0->3×40000, DB100.2->3×40001, …, DB100.2048->3×41024.

    Ti segnalo questi topics che possono essere utili (1), (2), (3), inoltre visto che ti piace utilizzare le corrette tecniche di programmazione, su HMI ti consiglio di utilizzare le Tags, questo permette una facile modifica degli indirizzi nel programma HMI in caso di variazione allocazione variabili nel PLC (Topic).

    in risposta a: Errore 9996200 su scrittura in directory Storage #38560
    Sergio Bertana
    Amministratore del forum

    E’ una situazione davvero strana vediamo di fare altri tests per capire, se tu elimini dal programma l’accesso al file, dopo la formattazione provi a scrivere un file da una connessione FTP riesci a scriverlo ?

    Puoi mandarmi il report del comando da telnet fsstats, subito dopo la formattazione, dopo la scrittura di un file da FTP (Sempre se riesci a scriverlo) e quando hai il problema con il tuo programma.

    Eventualmente se puoi mandarmi in privato il programma che provo a fare dei tests.

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

    Il più semplice è creare un array 336 variabili USINT che allocherai nella DB100.2048, ogni elemento dell’array corrisponde ad un campo da impostare a gruppi di 6 avremo (HOn, MOn, SOn, HOff, MOff, SOff). Per accedere da pagina web basterà definirne l’indirizzo 2048, 2049, 2050, … è così via.

    Ma questo non si sposa bene con il pannello operatore, perchè operando in Modbus si opera su variabili a 16 bits, quindi se vuoi avere una assegnazione che vada bene anche per il pannello userei un array di UINT. Certo si sprecano 336 bytes ma tanto ve ne sono 2048 disponibili.

    Se vuoi cimentarti in qualcosa di esteticamente più finito allora devi definire una struttura dati, esempio una struttura che contiene i 6 dati di una programmazione (HOn, MOn, SOn, HOff, MOff, SOff) e poi fai un array di strutture dati. Ancora meglio crei un’altra struttura dati con la programmazione giornaliera e poi un array di queste strutture. Ho cercato di farti un semplice esempio che come vedi dalla stampa gestisce due zone con due orari per zona per tutti i giorni della settimana. L’uso delle strutture semplifica enormemente l’accesso alle variabili di orario, basterà aggiungere altre 2 zone ed il programma è completo (Download programma).

    in risposta a: Comunicazione wireless tra PLC Siemens S7-200 #38556
    Sergio Bertana
    Amministratore del forum

    Aggiungo per completare l’argomento che la comunicazione via radiomodem è comunque più lenta rispetto alla comunicazione WiFi, nel radiomodem i dati seriali sono prima ricevuti dal radiomodem, poi impacchettati e spediti via radio all’altro radiomodem che li spacchetta e li invia in seriale al dispositivo.

    Nel WiFi la comunicazione è molto più veloce ed i pacchetti dati possono essere di dimensioni maggiori, inoltre la stessa connessione veicola oltre che il traffico dati anche il protocollo di programmazione e debug del PLC. Esempio con i nostri prodotti serie SlimLine abbiamo blocchi funzioni già predisposti per lo scambio dati su Ethernet e quindi in WiFi (Vedi topictopic).

    in risposta a: Comunicazione wireless tra PLC Siemens S7-200 #38555
    Sergio Bertana
    Amministratore del forum

    Trattandosi di S7-200 non hanno nativa la connessione Ethernet quindi escludo una connessione WiFi, possiamo utilizzare una soluzione basata su linea seriale. Utilizzando le librerie Modbus sul PLC possiamo scambiare dati in seriale tra un PLC master e tanti PLC slaves.L’area non è molto grande ed essendo i carri ponte in posizione rialzata immagino che ci possa essere sempre una visibilità ottica tra l’antenna del dispositivo master e le antenne dei dispositivi slaves. Se questa condizione è assicurata possiamo utilizzare il radiomodem ATC-3200. Un radiomodem configurato come master connesso alla seriale del PLC master e un radiomodem configurato come slave connesso alla seriale di ogni PLC slave (Topic). Se l’ambiente operativo presenta ostacoli che impediscono la visibilità ottica o è un ambiente più grande, occorre utilizzare dei radiomodem a frequenze più basse rispetto all’ATC-3200. Nella gamma di radiomodem serie D5 abbiamo modelli a 868Mhz e modelli a 169Mhz, con questi modelli si possono raggiungere distanze in aria superiori ad una decina di Km.

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

    La pagina HTM a cui ti riferisci è quella che noi utilizziamo al nostro interno per schedulare le accensioni della climatizzazione (Screenshot). Il sorgente pagina non è altro che una serie di tags di vualizzazione e tags di impostazione variabili allocate nella DB100 dello SlimLine (Download file HTM).

    Ho suddiviso ogni zona in un form di impostazione, agendo sul pulsante Save i dati definiti sono inviati in POST allo SlimLine che automaticamente provvede a scriverli nelle variabili relative. Come vedi dal sorgente pagina ho utilizzato tutte variabili a partire  dall’indirizzo 2048 in avanti, queste variabili infatti sono RETAIN e quindi mantengono il valore anche allo spegnimento del sistema.

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

    Il problema nella somma in FBD deriva dal fatto che nella operazione di MUL moltiplichiamo due UINT e quando arrivi alle 19 il valore è 19*3600=68400 che non può essere contenuto in un UINT. Per risolverlo bisogna convertire tutti i numeri in UDINT, quindi occorre mettere uno statement TO_UDINT su ogni ingresso della MUL e della ADD. Oppure utilizzare tutte variabili UDINT nel calcolo ed automaticamente il compilatore considererà anche il risultato di tipo UDINT.

    Per quanto riguarda la tua funzione in linea di massima è Ok, ma vorrei fare due considerazioni, non fare il confronto IF NOT(STTimeSwitch1) THEN perchè la variabile STTimeSwitch1 è il risultato della funzione e entrando in funzione il suo valore è indeterminato. Diverso discorso sarebbe se tu facessi un blocco funzione che essendo istanziato ha sempre valori definiti.

    Seconda considerazione, non farei una funzione con due confronti, ma farei un programma che esegue la funzione da un singolo confronto per tutte le volte che serve. Così puoi avere tutte le temporizzazioni che vuoi.

    Ti ho realizzato un progetto di esempio con le due temporizzazioni come tu desideri, ma puoi aumentare il numero delle temporizzazioni aggiungendo rami nel programma. Nell’esempio ho accorciato il nome alle variabili per dare maggiore leggibilità, ecco la stampa del programma ed il programma sorgente.

    in risposta a: Errore 9996200 su scrittura in directory Storage #38550
    Sergio Bertana
    Amministratore del forum

    Mi sembra di capire che stai facendo delle prove, non è un programma definitivo su di un impianto che dà questo tipo di problema, almeno credo.

    Il problema deriva dal fatto che stai utilizzando troppe risorse di I/O stream (Variabili tipo FILEP). Non è che hai aperto più volte quersto file o altri file senza mai chiuderlo. Oppure hai aperto troppi sockets TCP o UDP. Il messaggio è generico tutti gli stream di I/O sono indicati come porte. Sono stream di I/O le porte COM, i sockets TCP/UDP e i files sul file system.

    Per essere più preciso dovresti indicarmi la versione del sistema operativo in uso (Esempio SFW167xx00), e se accedi da Telnet (Porta 23) dopo il login con il comando Syslog puoi avere un elenco dettagliato degli errori.

    Dovresti avere un errore del tipo “Too many resources: …” oppure “Cannot open: …” dove al posto dei … è indicata la risorsa che non può essere allocata, nel tuo caso il file Storage/Log.csv.

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

    Nel simulatore il valore di SysDateTime è indeterminato all’avvio del programma per questo ho inserito nel mio esempio il ramo con la FB DateToEpoch. Impostando i valori sulle variabili in ingresso alla FB ed attivando in m odo impulsivo l’ingresso Di00CPU è possibile impostare l’orario che si desidera. L’orario attuale viene visualizzato mettendo in debug la FB EpochToDate.

    Ma nell’esempio per verificare l’attenzione di chi lo utilizza ho inserito un errore…

    In effetti nella fretta ho definito nelle variabili globali le due uscite Do00CPU e Do01CPU entrambe mappate sulla stessa uscita %QX255.0. Non mi sono accorto dell’errore perchè ho provato la FB scritta in ST che essendo eseguita dopo attivava l’uscita. Ho provveduto a correggere l’esempio, eseguendone il download ora è corretto.

    in risposta a: Accesso Modbus ad inverter KEB #38547
    Sergio Bertana
    Amministratore del forum

    Hai diverse soluzioni possibili, la prima è collegare il pannello operatore in RS232 liberando la RS485 per l’inverter, in tal modo non fai modifiche al programma del pannello operatore.

    Per la gestione dell’inverter connesso alla RS485 del modulo CPU devi utilizzare il blocco funzione ModbusMaster che permette di essere eseguito in cascata collegando l’uscita Done di uno sull’ingresso Enable di quello successivo e così via. L’uscita Done dell’ultimo FB andrà a fare ripartire la sequenza (Screenshot). In questo modo potrai definire tante FB in cascata per Leggere/Scrivere i vari registri dell’inverter. Se i registri dell’inverter hanno indirizzi contigui puoi usare una solo istanza della FB per Leggere/Scrivere più registri contemporaneamente. Per impostare i parametri di comunicazione puoi utilizzare nel tuo programma il FB SysSetSerialMode.

    Una alternativa è gestire la comunicazione con l’inverter dal pannello operatore che rimane master Modbus verso i due slaves (Uno è lo SlimLine e l’altro è l’inverter). Puoi usare l’oggetto DataTransfer che permette di trasferire dati tra diversi sistemi slaves, il trasferimento può essere ciclico e quindi puoi prendere variabili PLC e trasferirle nell’inverter e viceversa. Naturalmente la gestione fatta da terminale è molto più lenta che quella fatta da PLC.

    Sconsiglio di trasformare il pannello in slave modbus, e poi di gestirlo da master PLC, con questa soluzione devi ciclicamente trasferire dal PLC al pannello le variabili in visualizzazione è leggere le variabili in impostazione. Il trasferimento và fatto sempre di tutte le variabili gestite dal pannello indipendentemente dalla pagina visualizzata e se le variabili sono molte il traffico dati è molto elevato. Ti rimando a questo topic per informazioni più dettagliate sull’uso della FB ModbusMaster.

    in risposta a: Telegestione di sistemi produzione eolica #38546
    Sergio Bertana
    Amministratore del forum

    Il router Conel prevede la possibilità di invio di messaggi SMS ma la nostra FB è stata “cablata” sui modem Gemalto, quindi  prevede una connessione seriale con il modem (E non Ethernet). Quindi per inviare SMS tramite il router andrebbe prevista l’opzione XC-RS232 – Opzione porta RS232 con cui connettersi ad una seriale del modulo SlimLine. Poi però è da verificare se tutti i comandi gestiti dall FB ModemCore sono compatibili, in caso contrario occorre applicare modifiche alla FB, e questo và concordato con il nostro ufficio commerciale. In alternativa è possibile utilizzando il macro linguaggio del terminale gestire l’invio dal router anche in connessione Ethernet.Ricordo che il router ha un ingresso digitale agendo sul quale è possibile inviare un SMS fino a tre destinatari, quindi se l’esigenza è di inviare un SMS di avvertimento a seguito del quale poi si accederà al sistema per verificarne il funzionamento, è possibile farlo solo agendo da PLC sull’ingresso. Inoltre mi domando fino a quando l’SMS è ancora una priorità, oggi siamo costantemente connessi anche da smartphone e l’email ci raggiunge in ogni luogo prprio come l’SMS.

    in risposta a: Telegestione di sistemi produzione eolica #38544
    Sergio Bertana
    Amministratore del forum

    Come alternativa al PLC Siemens possiamo indicare la nostra famiglia SlimLine, e come alternativa al pannello operatore i prodotti Weintek. Vediamo di illustrare come è possibile sodisfare i punti della Vs richiesta.
    Interfacciamento apparato tramite MODBUS RTU
    Abbiamo un FB di gestione Modbus master che può interfacciarsi con uno o più apparati in rete RS485, utilizzando più istanze della FB su seriali diverse e possibile gestire anche più connessioni anche in punto-punto RS232 (Topic).

    Telegestione con interfaccia web, connessione VPN su WAN ADSL e 3G in backup
    I routers Conel garantiscono sia la connessione 3G che la creazione di VPN e la gestione della commutazione in backup tra ADSL e 3G (Vedi estratto manuale). I moduli CPU hanno un Web server integrato (Topic), il pannello operatore può essere consultato da remoto con un client VNC (Topic).

    Elaborazione in loco dati produzione e lettura da anemometro
    I prodotti SlimLine sono programmabili con i 5 linguaggi della normativa IEC61131-3 con il software gratuito LogicLab, nel forum si trovano moltissimi esempi di programmi. In questo topic trattiamo la lettura di un anemometro.

    Registrazione dati per visualizzazione e prelievo da remoto.
    Nel file system dei sistemi SlimLine è possibile memorizzare files, esempio in formato CSV (Topic), è anche possibile salvare i dati storici nel pannello operatore (Topic). Entrambi i sistemi sono accessibili via FTP da remoto.

    Invio di email e SMS per notifiche
    I pannelli operatore possono inviare eMail di notifica (Topic), mentre da SlimLine utilizzando un modem è possibile inviare/ricevere SMS (Topic).

    in risposta a: Approfondimenti sul web server integrato #38543
    Sergio Bertana
    Amministratore del forum

    L’utilizzo di PHP invece prevede un web server con l’interprete PHP, questo è disponibile su sistemi più complessi, ma nostri clienti utilizzano la tecnica di trasferire i dati dai sistemi SlimLine e Netsyst verso un server (Su rete locale o su Cloud) e poi demandare al server la gestione della pubblicazione di pagine web usando linguaggi di scripting lato server (ASP o PHP).

    Utilizzando il FB di gestione modem è possibile trasferire dati verso un server nel cloud semplicemente indirizzando un URL a cui corrisponde una pagina ASP o PHP ed inviando i dati da trasferire in GET (Topic).

    In alternativa il server può richiedere una pagina HTM allo SlimLine inviando in POST i dati da impostare nel sistema e ricevendo come ritorno una pagina HTM con i dati acquisisti dal sistema (Topic).

    in risposta a: Approfondimenti sul web server integrato #38542
    Sergio Bertana
    Amministratore del forum

    Tutti i dispositivi SlimLine e Netsyst hanno un web server integrato accessibile in connessione HTPP su porta 80. Sulle versioni compact che non hanno la porta Ethernet è possibile accedere al server web utilizzando una connessione USB. Collegando il dispositivo al PC viene installato un driver RNDIS (Topic) che di fatto è una scheda Ethernet virtuale e tramite questa scheda è possibile connettersi in TCP/IP con il dispositivo.

    Il web server è in grado di pubblicare pagine HTM che possono essere trasferite in FTP (Topic) nel file system del dispositivo (Topic). Le pagine HTM hanno il limite che non possono contenere inclusione di alltre pagine, quindi la definizione degli stili css, i javascript e le immagini devono essere embedded nella pagina. Utilizzando gli stili css è comunque possibile realizzare pagine web accattivanti (Topic).

    Il server web analizza il sorgente della pagina HTM prima di pubblicarla verso il browser e ricerca dei tags specifici al suo interno, i tags sono del tipo < !–[“%d”, UINT, 10]– >. Quindi come si nota sono in realtà dei commenti HTM ma indicano l’indirizzo ed il tipo di variabile (Riferiti alla DB 100) ed il formato di visualizzazione. Nella pubblicazione della pagina sostituisce ai tags il reale valore della variabile che verrà visualizzato dal browser, nell’esempio la variabile UINT allocata a DB 100.10 (Topic).

    Per impostare i valori (Sempre su variabili allocate in DB 100) basterà inserire nella pagina un form definendo l’invio in post dei dati, ecco quindi che il valore scritto da browser in una casella di testo < input name=”UINT 12″ type=”text” /> verrà trasferito nella variabile UINT allocata a DB 100.12.

    Se il sistema (PC, tablet, smartphone) che esegue il browsing delle pagine web dallo SlimLine è connesso ad Internet è possibile integrare nelle pagine web gli oggetti di Google Charts (Topic). E’ disponibile anche un javascript per gestire il rinfresco automatico delle variabili senza dover ricaricare la pagina con una tecnica chiamata AJAX (Topic).

    in risposta a: Impianto domotico presso struttura turistica #38541
    Sergio Bertana
    Amministratore del forum

    Ottima soluzione, la versatilità di poter disporre di un modulo programmabile in ogni stanza rende molto semplice l’eventuale implementazione di nuove funzioni. Basterà connettere localmente al modulo di camera nuovi sensori e/o attuatori per gestire la funzione richiesta.

    Per l’acquisizione della temperatura del bagno ti posso consigliare l’NS700, un sensore di temperatura da parete per uso interno con uscita 0÷10V connesso ad uno degli ingressi analogici del modulo di camera.

    Mentre per la temperatura dell’acqua di caldaia immagino tu voglia utilizzare un sensore con fissaggio su tubo, nella gamma Sensit ti posso consigliare il modello NS740 (Allego datasheet).

Stai visualizzando 15 post - dal 2,776 a 2,790 (di 4,374 totali)