Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumAggiungo 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 topic, topic).
Sergio Bertana
Amministratore del forumTrattandosi 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.
Sergio Bertana
Amministratore del forumLa 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.
Sergio Bertana
Amministratore del forumIl 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.
Dicembre 1, 2014 alle 10:02 am in risposta a: Errore 9996200 su scrittura in directory Storage #38550Sergio Bertana
Amministratore del forumMi 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.
Sergio Bertana
Amministratore del forumNel 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.
Sergio Bertana
Amministratore del forumHai 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.
Sergio Bertana
Amministratore del forumIl 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.
Sergio Bertana
Amministratore del forumCome 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).Sergio Bertana
Amministratore del forumL’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).
Sergio Bertana
Amministratore del forumTutti 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).
Sergio Bertana
Amministratore del forumOttima 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).
Sergio Bertana
Amministratore del forumUtilizzando la connessione TCP/IP tra il pannello operatore ed il PLC (Nel tuo esempio lo SlimLine) il concetto di localizzazione è estendibile anche a reti geograficamente distribuite. Il pannello può dialogare con PLC disposti su aree geografiche estese (Su rete WAN) allo stesso modo con cui dialoga con PLC in rete locale LAN.
Il problema è nel networking, cioè nel come è visibile il PLC su Internet (Rete WAN). Immagino che i vari PLC siano in reti locali sotto a Router/Gateway di accesso ad Internet. In tal caso l’accesso ad Internet dovrà avere un IP pubblico (Meglio se statico) e nel router andrà impostato un NAT (O port forwarding) per ridirigere la porta a cui il pannello si connette (Nel caso di SlimLine vine utilizzato Modbus, porta 502), sull’indirizzo IP/Porta locale del PLC.
Novembre 26, 2014 alle 1:14 pm in risposta a: Selettore software 3 posizioni con funzione MUX in LogicLab #38537Sergio Bertana
Amministratore del forumHai premesso che sei un neofita e quindi accetto la domanda, ma se vedi nel programma la funzione multiplexer che ho realizzato utilizza variabili in ingresso di tipo BOOL su cui poi nel programma in ladder aggancio gli I/O reali.
Quindi va da sè che posso dare in ingresso alla funzione qualsiasi variabile di tipo BOOL. Ma non solo, se trasformo le variabili in ingresso ed in uscita da BOOL ad un’altro tipo (USINT, UINT, REAL, ecc) posso utilizzare la funzione multiplexer anche per multiplexare valori discreti.
Credo che acquisire un pò di pratica in programmazione ST sia molto utile, se cerchi in rete trovi informazioni. Ti posso suggerire anche due pinne e poi un bel tuffo nei vari posts del forum dedicati all’ambiente LogicLab ed alla famiglia SlimLine dove troverai molti programmi sorgente in linguaggio ST che possono essere d’aiuto.
Novembre 26, 2014 alle 10:16 am in risposta a: Assistenza remota con sistemi in connessione RS232 #38534Sergio Bertana
Amministratore del forumPuoi utilizzare la funzione VPN di TeamViewer questa funzione permette di creare una VPN tra il tuo PC ed il PC del cliente (Screenshot). Come vedi viene assegnato un indirizzo IP al PC dell’interlocutore, connettendoti a questo indirizzo sei virtualmente nel PC.
Sul PC dell’interlocutore puoi eseguire Toolly, che con l’opzione XConnect permette di incrociare i dati tra due connessioni. Crei un XConnect tra un server TCP ed una porta seriale (Screenshot). Ora dal tuo PC inviando i dati all’IP del PC remoto (Nell’esempio 7.220.177.21) alla porta in XConnect su seriale (Nell’esempio 1000) i dati inviati saranno ridiretti sulla seriale e viceversa.
Sul tuo PC puoi usare un’altro Toolly in XConnect oppure installi un VirtualCOM (Topic).
-
AutorePost