Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Agosto 22, 2011 alle 7:21 am in risposta a: Monitoraggio di una catena di negozi di surgelati #36891
Sergio Bertana
Amministratore del forumCon i moduli di ingressi analogici puoi collegare quante sonde tu vuoi, ogni modulo può accettare fina o 10 ingressi analogici e puoi mettere più moduli connessi alla CPU.
Da linguaggio ST puoi gestire in modo trasparente la porta seriale, ma per interfacciarti con le schede Micheletti devi conoscerne il protocollo.
Il pannello TouchScreen è fatto proprio per lo scopo che tu necessiti, con un tool di sviluppo grafico (Puoi farne il download dal sito) crei pagine dove puoi inserire pulsanti, lampade, strumenti analogici, bar graph che si “animano” con lo stato delle variabili PLC. Puoi creare anche una visualizzazione a lista degli allarmi con l’ora di quando sono avvenuti ed il testi in chiaro della condizione di allarme.
Perchè creare la porta tramite il PLC, il convertitore Ethernet/Seriale fà esattamente questo, permettendo al software Micheletti di entrare nel sistema. Diversa invece è la visualizzazione di dati letti dal sistema Micheletti, se sviluppi il protocollo, puoi visualizzare i dati di temperatura, anomalie, ecc direttamente sul pannello TouchScreen.
Il pannello di supervisione interrogabile da remoto solo con password ed indirizzo ip è lo stesso pannello TouchScreen, tu vedrai nella pagina web la rappresentazione virtuale del pannello con le spie luminose, i testi degli allarmi, e potrai interagire “pigiando” sui pulsanti virtuali.
Agosto 22, 2011 alle 6:40 am in risposta a: Gestione convertitore Ethernet/seriale da pagina web #36889Sergio Bertana
Amministratore del forumSembra tuto corretto tranne come hai correttamente notato tu stesso l’indirizzo di invio del form, devi modificare <form action=”/Procedures/ModbusSkt/ModbusSkt.php” method=”post”> con l’indirizzo di dove hai salvato la pagina sul tuo server <form action=”/Send Command.php” method=”post”>.
Non occorre creare altre pagine, come vedi la pagina php che ho creato contiene sia la parte HTML che viene visualizzata, con il form per la definizione dei comandi AT, sia la parte di script php che esegue la connessione con il convertitore ATC 2000. Sarà il server IIS ad inviare al browser la parte HTML della pagina ed ad eseguire la parte di script php.
Lo statement if (isset($_REQUEST[‘Command’])) infatti controlla se la richiesta di visualizazione della pagina contiene il parametro POST Command definito, se non è definito (Come nel caso di richiesta pagina da browser) lo script non fà nulla. Se è definito (come nel caso di richiesta pagina su invio del form), lo script esegue la connessione.
Non serve avere il virtual COM attivo, perchè tu non operi da porta seriale virtuale, anzi potrebbe essere dannoso, se il convertitore ATC 2000 è impostato per accettare una sola connessione TCP, il software virtual COM la impegna impedendo allo script php di potersi connettere.
Agosto 18, 2011 alle 4:31 pm in risposta a: Monitoraggio di una catena di negozi di surgelati #36887Sergio Bertana
Amministratore del forumLa domanda è molto articolata, vediamo di dare alcuni suggerimenti. Come sistema PLC consiglio la famiglia SlimLine, nella gamma oltre al modulo CPU si trovano estensioni per ingressi/uscite digitali e analogiche. Gli ingressi analogici sono già predisposti per acquisizione di sonde di temperatura Pt100/Pt1000. In alternativa si possono utilizzare le sonde One-Wire con l’apposito adattore (Vedi post). Mediante il linguaggio ST è possibile creare appositi blocchi funzioni per la gestione dei protocolli seriali verso le centrali frigo ed acquisirne i valori all’interno del PLC. La CPU SlimLine può gestire un modem GSM per la ricezione e l’invio di messaggi SMS (Vedi post), ma anche in questo caso scrivendo appositi blocchi funzione in ST è possibile in teoria anche gestire i protocolli richiesti dagli istituti di vigilanza. Come interfaccia operatore consiglio un pannello TouchScreen, su cui potrai realizzare anche un sinottico dell’impianto, i pannelli possono anche storicizzare valori di variabili in un file impotabile da Excel. Per sostituire Teamviewer, puoi utilizzare dei convertitori Ethernet/Seriali che saranno visti da remoto come porte seriali virtuali (Vedi post). Quello che non è chiaro è l’accessibilità web, premesso che si deve utilizzare un router per accedere da remoto via TCP/IP, il PLC SlimLine non ha un web server integrato, si può interrogarlo da un remoto via TCP/IP utilizzando uno script PHP (Vedi post). Oppure soluzione alternativa, si può raggiungere da remoto il pannello operatore (Utilizzando un client VNC) anche da uno smartphone (Vedi post).
Agosto 12, 2011 alle 3:39 pm in risposta a: Gestione convertitore Ethernet/seriale da pagina web #36884Sergio Bertana
Amministratore del forumCerto che è possibile fare quello che desideri, naturalmente occorre conoscere la programmazione in PHP. Anche se và al di là del puro supporto tecnico, visto che in periodo di ferie c’è un po più di tempo, ti ho preparato un programma PHP che visualizza un form con la richiesta di definizione del comando AT da inviare in uscita al convertitore.
Definito il comando nella apposita casella di testo con il tasto Send si invia il form allo script PHP che invia il comando al convertitore ed aspetta la risposta. La risposta termina con la ricezione di <CR> o per timeout. La stringa di risposta ricevuta è ritornata nella pagina web in una casella di testo. Questa è la pagina web con lo script PHP pronto per l’uso (Download), di seguito lo script PHP.
Attenzione! Affinchè funzioni lo script và caricato su di un server IIS o Apache che gestisca l’interprete PHP.
$IPAddress=”192.168.0.95″; //Indirizzo IP convertitore
$PortNr=23; //Porta host convertitore
set_time_limit(5); //Imposto tempo limite socket (5 Sec)// Eseguo creazione e connessione al socket.
if (($Skt=socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false)
{echo “socket_create “.socket_strerror(socket_last_error()); return;}
if (!socket_connect($Skt, $IPAddress, $PortNr ))
{echo “socket_connect “.socket_strerror(socket_last_error()); socket_close($TRPSkt); return;}// Eseguo invio comando e ricezione risposta.
$IString=””;
socket_set_nonblock($Skt); //Set nonblocking mode for socket
$TimeBf=time(); //Salvo tempo per timeout
socket_write($Skt, $_REQUEST[‘Command’].”r”);while(TRUE)
{
$Ch=socket_read ($Skt, 1, PHP_BINARY_READ);
$IString.=$Ch;// Esco su ricezione <CR> oppure per timeout.
if (($Ch == “r”) || (time() > $TimeBf+2))
{
echo “Answer: <input name=”Answer” type=”text” value=””.$IString.”” size=”20″/>”;
socket_close($Skt);
exit;
}
}Agosto 9, 2011 alle 4:10 pm in risposta a: Gestione convertitore Ethernet/seriale da pagina web #36882Sergio Bertana
Amministratore del forumAggiungo al post precedente alcune note relative all’interfacciamento verso la stufa a pellet o verso qualsiasi altro dispositivo anche non dotato di interfaccia seriale. E’ possibile utilizzare in alternativa al semplice convertitore Ethernet/seriale un dispositivo programmabile come i prodotti della nostra famiglia SlimLine. Questi prodotti sono programmabili secondo la IEC-61131 ed è possibile intefacciarli su rete ethernet utilizzando il protocollo modbus over IP. Ecco quindi che è possibile realizzare il programma che dialoga con la porta seriale della stufa a pellet, e/o acquisisce grandezze digitali e/o analogiche realizzando anche eventuali logiche di regolazione e di automazione. I dati utili per il preset e per la visualizzazione saranno poi appoggiati su variabili di memoria che lo script del web server andrà ad interrogare con il protocollo modbus over IP.
Agosto 9, 2011 alle 3:43 pm in risposta a: Gestione convertitore Ethernet/seriale da pagina web #36881Sergio Bertana
Amministratore del forumIl convertitore Ethernet/seriale ATC-2000 come tutti i dispositivi di questo tipo accetta una (o più) connessioni TCP o UDP dalla rete Ethernet su di una certa porta, e tutti i dati ricevuti da questa connessione sono ritrasmessi in uscita sulla porta seriale e viceversa. Il convertitore può essere configurato per operare da Server, in tal caso occorre aprire la connessione verso l’IP del convertitore con un programma client. Oppure da client, in tal caso appena acceso cercherà di connettersi ad un server (Esempio un programma su PC oppure un’altro convertitore per creare una rete seriale su TCP), il cui IP deve essere definito nella configurazione. La nostra utility Toolly permette di configurarsi sia come client che come server per testarne il funzionamento. Il server web del dispositivo serve solo per fornire una interfaccia web di configurazione, non è possibile gestire l’invio e la ricezione di dati. Per risolvere il tuo problema devi realizzare un programma sul tuo web server che gestisca l’apertura del socket verso il convertitore, e l’intera comunicazione con il dispositivo (Stufa a pellet) ad esso connesso, visualizzando i dati nella pagina web ritornata al browser. Puoi fare questo utilizzando qualsiasi programma di Server-side scripting (Php, ASP, Perl, Phyton, ecc).
Agosto 4, 2011 alle 10:16 am in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #36880Sergio Bertana
Amministratore del forumPer quanto riguarda la tua esigenza di scrivere su SDCard un file di log, ho realizzato un semplice programma LogicLab (Download) che salva un file denominato CLog.txt, con all’interno 50 records di log del valore di tensione acquisita da un ingresso analogico.
Il file contiene records salvati in formato CSV in modo da essere facilmente importabili in Excel, ogni record contiene 5 campi separati da “;” (Esempio: 01;12;12;03;01.8;). Il 1° campo è un progressivo di record da 0 a 49. Nel 2°, 3°, 4° campo è riportata l’ora, minuti, secondi di record. Nel 5° campo è riportato il valore di tensione acquisito in volt.
La scrittura del record di log è eseguita da questo programma in ST (Listato), che “riempie” l’array LogRecord con stringa la ascii di log (5 campi separati da “;”). La funzione SysVarsnprintf scrive il valore seguito dal codice terminatore “0”, quindi occorre iniziare la scrittura del valore successivo alla posizione dell’array dove la scrittura precedente ha posto il codice terminatore.
Terminato il record di log, con la funzione Sysfseek, viene eseguito il posizionamento sul file nella posizione di scrittura, e con la funzione Sysfwrite ne viene eseguita la scrittura.
Agosto 4, 2011 alle 8:46 am in risposta a: Come utilizzare la SDCard per il salvataggio di file di log #36879Sergio Bertana
Amministratore del forumIl sistema operativo dello SlimLine dalla versione SFW167C100 (Per l’upgrade vedi FAQ), supporta il file system. Sono gestite due directories Storage (Da 100 Kb) situata sulla memoria EEPROM presente sul modulo CPU, SDCard (Max 512 Mb) presente sulla scheda SD Card che deve essere inserita nel modulo CPU.Per poter accedere alle directories occorre eseguire la formattazione, comando Format da Telnet. Per l’elenco completo dei comandi Telnet riferirsi al manuale di riferimento, le credenziali di accesso di default sia Telnet che Ftp per l’amministratore sono Username: Admin, Password Admin.In linea al comando Format occorre definire il numero di files accettati per ogni directory, fino ad un massimo di 12 files totali. Il primo parametro è riferito ai files in Storage, il secondo ai files in SDCard (Se non presente inserire 0). Esempio, per avere 2 files su storage e 4 su SDCard daremo il comando Format 2, 4, se il comando viene eseguito correttamente ritornerà il messaggio Format Ok, Storage:2 files, SDCard:4 files.Collegandosi allo SlimLine con un client Ftp (Esempio FileZilla), sarà possibile visualizzare il tree delle directories ed accedere in lettura e scrittura, creando, cancellando, editando i files all’interno di esse (Vedi screenshot).
Sergio Bertana
Amministratore del forumAbbiamo rilasciato in data odierna la nuova versione SFW167C100 del sistema operativo che prevede la gestione del file system sia su memoria EEPROM interna allo slim line (Directory Storage) che su SDCard (Directory SDCard), vedi FAQ. In questo post un programma LogicLab per salvare un file di Log su SDCard.
Sergio Bertana
Amministratore del forum1) Non esiste la possibilità di modificare run time da macro il protocollo assegnato ad una risorsa (Esempio porta COM) nel menù Edit -> Parametri di sistema. Quindi il workaround da te trovato è sicuramente la soluzione migliore, certo capisco che utilizza due risorse del terminale.
2) Non esistono funzioni ne chiamate al sistema operativo per risolvere nomi DNS. Da macro è possibile modificare l’indirizzo IP e la porta di comunicazione del PLC agendo sui registri interni del terminale.
LW-9600~LW-9629 (IP0:IP1:IP2:IP3)/Port Nr PLC IP address setting
3) Non è possibile salvare stringhe in FLASH, l’unico modo è salvarle su variabili del terminale. Ma se le stringhe sono definite nella macro, di fatto sono salvate in memoria FLASH.
4) Effettivamente c’è questo bug nell’editor, l’ho comunicato al fornitore. Tutte le funzioni di gestione stringhe (StringFind, StringInsert, StringCompare, …) sono state aggiunte ultimamente nel programma EasyBuilder e “pagano” qualche errore di gioventù.
Agosto 1, 2011 alle 12:50 pm in risposta a: Conversione Ethernet/Seriale con PortStore client TCP/IP #36876Sergio Bertana
Amministratore del forumPer la configurazione in modalità Client occorre nella configurazione (Client/server) definire nel campo S:Send to IP, l’indirizzo IP del centralino, e nel campo U:Port la porta TCP/IP dove il centralino accetta la connessione TCP/IP per l’invio dei dati (Nel tuo caso 5100).
== Active (Client/Server) mode ==
S: Send to IP 192.168.0.38
U: Port 5100Attenzione! Il numero di porta definito nel parametro U deve essere la stessa definita nel parametro J:Port.
=========== IP Setup ============
I: Address 192.168.0.151
J: Port 5100Agosto 1, 2011 alle 12:47 pm in risposta a: Conversione Ethernet/Seriale con PortStore client TCP/IP #36875Sergio Bertana
Amministratore del forumIl PortStore è nato per convertire i dati in uscita da una linea RS-232 in pacchetti TCP/IP (UDP/IP) per acquisirli attraverso la rete Ethernet. A differenza dei convertitori Ethernet/Seriale, il prodotto è in grado di memorizzare i dati ricevuti dalla seriale in un buffer interno da 2 Mb di memoria Flash. I dati memorizzati nel dispositivo possono essere acquisiti periodicamente da un PC e salvati su disco.Ma oltre a questa sua funzionalità il prodotto può essere configurato anche per operare come semplice convertitore Ethernet/Seriale (Vedi tutta la gamma), e come tutti i convertitori Ethernet/Seriale, può operare sia da server che da client.In modalità Server, il prodotto attende la connessione da un client TCP/IP (Esempio Hyperterminal) e tutti i dati ricevuti dalla connessione TCP/IP sono riportati in uscita sulla seriale e viceversa. In modalità Client, il prodotto si connette alla porta TCP/IP di un server (Esempio un altro PortStore) e tutti i dati ricevuti dalla connessione TCP/IP sono riportati in uscita sulla seriale e viceversa. Nel vostro caso sembra che il centralino si comporti come server TCP/IP e quindi basterà configurare il PortStore in modalità Client per avere sulla sua uscita seriale i dati che il centralino invia e viceversa.
Agosto 1, 2011 alle 11:57 am in risposta a: Configurazione dispositivi Ubiquiti in modalità WDS #36874Sergio Bertana
Amministratore del forumCerto la tua necessità può essere sicuramente risolta utilizzando 3 Bullet. Tutti i 3 Bullet andranno configurati come Access point WDS, opereranno sullo stesso canale ed avranno stesso SSID e stessa password.
Il Bullet connesso alla rete (Principale) avrà come WDS Peers i due MAC dei due altri Bullet (Secondari), mentre i Bullet secondari avranno ognuno come WDS Peers il MAC address del Bullet principale.
Troverai indicazioni più dettagliate nella nota applicativa presente nei post precedenti.
Agosto 1, 2011 alle 7:18 am in risposta a: Come effettuare la configurazione del PortStore2 PL #36872Sergio Bertana
Amministratore del forumPer impostare il modo di comunicazione seriale Baud rate, parità, numero di bits, utilizzare i comandi:
&B: Speed: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 (Esempio &B19200<CR>)
&D: Data bits: 7, 8 (Esempio &D8<CR>)
&P: Parity: N: none, O: odd, E: even, M: mark, S: space (Esempio &PE<CR>)
&V: Variable Parity: 0: Variable Parity Off, 1: Variable Parity On (Esempio &V0<CR>)
&S: Stop bits: 1: 7 bits, 2: 8 bits (Esempio &S1<CR>)Attenzione! I nuovi valori impostati sono salvati nella memoria ritentiva, per rendere effettive le impostazioni occorre eseguire un reboot (R<CR>) oppure spegnere e riaccendere il PortStore.
In merito al livello dei segnali RS232 riporto le caratteristiche di tensione richieste dallo standard EIA RS-232 sui segnali, che sono:
Mark: Compresi tra -3 e -15 V;
Space: Compresi tra +3 e +15 V;
Incertezza: Compresi tra -3 e +3 V;Riporto una rilevazione oscillografica del segnale RS232 in uscita al PortStore.
Agosto 1, 2011 alle 6:27 am in risposta a: Realizzazione ponte radio punto-punto con distanza 1 Km #36871Sergio Bertana
Amministratore del forumQuindi se ho ho ben capito le IP Cam sono tutte nello stesso punto ed il tuo problema è realizzare un bridge tra il punto di raccolta delle telecamere e la sede dove verrà posto il videorecorder che dista 3,5 Km.
Se è cosi ti consiglio di utilizzare una coppia di NanoBridge M5-22, sono prodotti pensati proprio per realizzare conessioni PtP. La distanza di 3,5 Km è facilmente superabile, naturalmente le due antenne devono essere a vista. Non importa sche siano alla stessa altezza, naturalmente andranno orientate per avere i due fuochi che si puntano uno con l’altro.
Se hai le coordinate GPS dei due punti con l’utility airlink puoi verificare la fattibilità del collegamento.
-
AutorePost