Risposte nei forum create
-
AutorePost
-
Sergio BertanaAmministratore del forum
Per il collegamento in multidrop prova ad utilizzare il tipo di indirizzamento che ti ho suggerito nel post precedente, io non ho un PLC OMRON su cui provare, ma ho realizzato in EasyBuilder un progetto ed ho messo un oggetto in cui ho indicato come indirizzo la variabile 3#0 ed in compilazione non mi ha dato errori.
E’ da verificare se effettivamente funziona. Ti ricordo che le prove le puoi effettuare direttamente da PC, EasyBuilder permette la simulazione OnLine del progetto (CTRL+I). In pratica viene visualizzato il pannello virtuale e la porta COM definita del PC sarà utilizzata per il dialogo con il PLC.
La simulazione OnLine è molto comoda perchè permette di provare il progetto senza avere il terminale ed inoltre velocizza moltissimo la fase di sviluppo eliminando i tempi di download del progetto sul terminale.
Sergio BertanaAmministratore del forumDal manuale del terminale, i piedini 7 e 8 del connettore DB-9 risultano non connessi. Può essere che esista una ulteriore COM in RS485 non documentata. Dal manuale si evince che esiste una sola porta COM1 utilizzabile come RS232, o in RS422 od in RS485 usando pin diversi del connettore ma la porta è sempre la stessa.Puoi utilizzare più PLC connessi alla stessa porta seriale, i PLC devono utilizzare tutti lo stesso protocollo, e non devi dichiarare i vari PLC, ma dichiarare il solo protocollo di comunicazione utilizzato.Poi nel campo Indirizzo delle tags dovrai indicare l’indirizzo del PLC seguito dall’indirizzo della tag desiderata. Esempio con i dispositivi Modbus per leggere il registro 0x10 sul PLC di indirizzo 3 si usa una definizione del tipo 3#16. Dove 3 è l’indirizzo del nodo PLC e 16 è l’indirizzo del registro 0x10 in decimale.
Agosto 3, 2010 alle 12:23 pm in risposta a: Connessione terminali MT6000i/8000i con PLC OMRON #36509Sergio BertanaAmministratore del forumIl terminale MT-6050i, è il terminale più economico della gamma di prodotti Weintek, con un prezzo inferiore ai 200€ offre un display LCD TFT 65536 colori 4.3″ widescreen da 480×272 pixels, touchscreen. Naturalmente per contenere il prezzo è stata ridotta la disponibilità hardware, il pannello infatti non ha il real time clock integrato e non ha lo slot SD card. Il pannello ha 1 sola porta seriale che può essere usata in RS232 oppure in RS422/485. Per quanto riguarda la tua necessità di connettere il pannello a piu PLC, lo puoi tranquillamente fare utilizzando una connessione RS422 in multidrop se il modello del PLC scelto supporta questo tipo di connessione. Se il PLC dispone della sola RS232 puoi connetterlo in RS422 interponendo dei convertitori (Vedi ATC-105) i quali gestiscono in modo autonomo la commutazione da Rx a Tx sulla linea RS422. Per quanto riguarda il protocollo utilizzato è Host Link via FINS, attualmente non ho informazioni in merito alla implementazione del protocollo Omron NT-link.
Luglio 29, 2010 alle 4:23 pm in risposta a: Installazione di una porta di comunicazione virtuale #36508Sergio BertanaAmministratore del forumI convertitori Ethernet/Seriali possono essere utilizzati per l’applicazione da te richiesta.
In pratica, dopo avere impostato l’indirizzo IP sui due convertitori, occorrerà configurare direttamente da pagina web la modalità server su di un convertitore e la modalità client sull’altro.
Sul convertitore client occorrerà definire l’indirizzo IP del convertitore server a cui dovrà agganciarsi. A questo punto i due convertitori si connettono tra di loro tramite la rete ethernet ed i dati ricevuti dalla seriale di un convertitore vengono inviati all’altro che li ritrasmetterà in uscita sulla seriale.
Naturalmente essendo la connessione ethernet una connessione a pacchetto ci sarà un mimnimo di ritardo tra la ricezione del dato e la trasmissione in uscita dall’altro. Questo ritardo dipende anche dal traffico presente sulla rete, ma in generale nella quasi totalità delle applicazioni il ritardo non da problemi di funzionalità.
Se anzichè utilizzare una connessione TCP si configura i dispositivi per utilizzare una connessione UDP si ha un incremento delle prestazioni dovuto alla assenza del pacchetto di acknowledge per ogni pacchetto dati inviato.
I prodotti TRP della Trycom sono attualmente in fase di riprogettazione, pertanto ti consiglio di utilizzare il prodotto ATC2000, che ha le stesse funzionalità.
Sergio BertanaAmministratore del forumLe Function a differenza delle Function Block non vengono istanziate, pertanto non hanno memoria propria, quindi tutte le variabili definite all’interno delle funzioni sono transitorie, cioè valgono solo per il tempo di esecuzione della funzione.
Quindi le variabili interne alle funzioni devono essere valorizzate prima di essere utilizzate, ed ad ogni esecuzione della funzione il loro valore è “0”.
Allego un esempio di programma LogicLab in linguaggio ST per il download.
Sergio BertanaAmministratore del forumLe Function nello standard IEC61131 a differenza delle Function Block non possono operare su variabili globali. Tutti i valori devono essere passati per variabili ed è previsto un solo valore di ritorno. Ecco un esempio di funzione che effettua la somma tra due valori e ritorna il risultato.
FUNCTION FctAdd: UINT
VAR_INPUT
FirstAddend: UINT; { DE:”First addend” }
SecondAddend: UINT; { DE:”Second addend” }
END_VAR{ CODE:ST }
FctAdd:=FirstAddend+SecondAddend;END_FUNCTION
Ecco il codice che utilizza la funzione:
IOVar:=FctAdd(100, 200);
Nella variabile IOVar sarà trasferito il valore 300.
Sergio BertanaAmministratore del forumIl protocollo modbus sia TCP su seriale che OverIP su rete ethernet permette l’accesso a tutte le variabili relative alla memoria utente (MX100), come si evince dal manuale Programmazione IEC su sistema SLine di cui allego stralcio.
Attenzione! Siccome l’allocazione delle variabili nella memoria del PLC è eseguita a byte, mentre la lettura dei registri da modbus è eseguita a word, per indirizzare nel terminale le variabili PLC occorre dividerne per 2 l’indirizzo di allocazione. Vediamo per semplificazione una tabella di definizione variabili sul PLC ed il relativo indirizzo nel terminale:
Variabili su PLC Indirizzo HMI
Name Type Address
Var0 UINT %MW100.0 3x 40000
Var1 UINT %MW100.10 3x 40005
Var2 UINT %MW100.100 3x 40050
Var3 UINT %MW100.2048 3x 41024
Var4 UINT %MW100.4094 3x 42047Ricordo che la memoria da %MW100.2048 ad %MW100.4095 è memoria ritentiva, pertanto i valori presenti nelle variabili allocate in questo range di indirizzi sono mantenuti allo spegnimento del sistema.
Luglio 28, 2010 alle 6:54 am in risposta a: Come rilevare ed impostare l’indirizzo IP sulla CPU Slimline #36503Sergio BertanaAmministratore del forumRiporto lo screenshot dei comandi così come visualizzati nel programma di emulazione terminale:
Login: Admin
Password: *****
[Admin]>[Admin]> ifconfig
————————————————————-[Interface: eth]–
Interface:…. On board Ethernet interface
MAC address:.. 00-50-C2-C3-C0-0E
IP address:… 192.168.0.122
Subnet mask:.. 255.255.255.0
Gateway:…… 192.168.0.1
————————————————————-[Interface: slip]–
Disabled[Admin]> ifconfig eth -a 192.168.0.124
IP address: 192.168.0.124
Use “cfgcommit” and “reboot” commands to apply settings[Admin]> cfgcommit
System configuration saved[Admin]>
Adesso è possbile spegnere e riaccendere il sistema per rendere operative le impostazioni effettuate.
Sergio BertanaAmministratore del forumEsistono comunque anche i blocchi funzione eTOF, Timer Off ed eTON, Timer On che possono essere utilizzati in tutti e 5 i linguaggi della IEC61131. Entrambi i blocchi funzione eseguono temporizzazioni con tempo definibile in mS.
Sergio BertanaAmministratore del forumEsiste anche la funzione SysGetSysTime() che permette la lettura di un tick di sistema che si incrementa ogni uS, in questo caso il programma precedente può essere modificato nel modo.
(* Init the reference time at first program loop. *)
IF SysFirstLoop THEN
RefTimeBuf:=SysGetSysTime(TRUE); (* Save the reference time *)
END_IF;(* Check if 1 Sec is passed and invert the logic DoOOM00 state. *)
IF (SysGetSysTime(TRUE) > (RefTimeBuf+1000000)) THEN
RefTimeBuf:=SysGetSysTime(FALSE); (* Save the reference time *)
Do00M00:=NOT(Do00M00);
END_IF;Da notare la chiamata a SysGetSysTime() con la flag FALSE per avere lo stesso tempo utilizzato nel confronto e non perdere i uS di tempo necessari alla esecuzione delle istruzioni di confronto.
Sergio BertanaAmministratore del forumLa funzione IsMsecTimeOver() si basa sul controllo del tick di sistema che nei sistemi Picolog si incrementa automaticamente ogni 1 mS.
Nei sistemi SlimLine è possibile da linguaggio ST testare la variabile di sistema SysTime di tipo UDINT che si incrementa ad ogni mS raggiunto il valore massimo si reinizializza. In pratica per eseguire la temporizzazione similarmente a quanto facevi in “C” sui sistemi Picolog puoi fare qualcosa simile al programma sottoriportato che esegue l’inversione della uscita Do00M00 ogni secondo. La variabile RefTimeBuf deve essere dichiarata di tipo UDINT.
(* Init the reference time at first program loop. *)
IF SysFirstLoop THEN
RefTimeBuf:=SysTime; (* Save the reference time *)
END_IF;(* Check if 1 Sec is passed and invert the logic DoOOM00 state. *)
IF (SysTime > (RefTimeBuf+1000)) THEN
RefTimeBuf:=SysTime; (* Save the reference time *)
Do00M00:=NOT(Do00M00);
END_IF;Sergio BertanaAmministratore del forumNo nessun terminale touch screen Weintek da noi distribuito supporta la rete Profibus.
I terminali touch screen serie i MT80xx, che sono provvisti di interfaccia Ethernet, supportano la rete ProfiNet, quindi possono dialogare con i PLC Siemens utilizzando la rete ProfiNet.Luglio 20, 2010 alle 9:04 am in risposta a: Raccolta dati logici/analogici da campo con Modbus TCP #36498Sergio BertanaAmministratore del forumGuardando tra i nostri prodotti posso ipotizzare l’utilizzo dei nostri sistemi SlimLine, in merito ai costi puoi, essendo registrato al sito, vederli direttamente dalle nostre pagine web. La nuova gamma di prodotti SlimLine dispone di modulo CPU con interfaccia ethernet direttamente collegabile ad un dispositivo wireles. Il modulo supporta il protocollo Modbus over IP ed al modulo CPU come vedi possono essere collegati moduli di acquisizione logica ed analogica. Naturalmente il prodotto è programmabile in IEC61131 e quindi potresti oltre ad acquisire gli I/O anche gestire logiche locali.
Sergio BertanaAmministratore del forumLa soluzione proposta è fattibile, non conosco il protocollo 101 nei dettagli, ma abbiamo sicuramente già realizzato applicazioni simili con il protocollo modbus.
In modalità TCP i due convertitori ATC2000 vanno configurati come Client/Server, il convertitore che funziona da Client si connetterà al convertitore che funziona da Server creando una connessione TCP sulla quale verranno veicolati i dati seriali tra le apparecchiature (SCADA e RTU).
Essendo il protocollo 101 sicuramente in grado di controllare gli errori di trasmissione, per minimizzare il traffico TCP/IP è anche possibile realizzare una connessione UDP. In questo modo si evitano i messaggi di acknowledge del protocollo TCP diminuendo traffico e costo.
Come router GPRS e/o UMTS consiglio di dare una occhiata ai prodotti da noi commercializzati nella famiglia dei routers Conel, questi modelli hanno la possibilità di essere ordinati con una scheda di espansione seriale all’interno. Utilizzando questa opzione è possibile realizzare la connessione seriale to seriale direttamente con il router senza utilizzare il convertitore ATC2000.
Luglio 15, 2010 alle 8:07 am in risposta a: Riportare alle impostazioni di default su ATC2000 #36492Sergio BertanaAmministratore del forumLa connessione Client/Server tra due convertitori ethernet avviene utilizzando il protocollo TCP o UDP che sono protocolli standard, pertanto non vi sono vincoli tra i dispositivi da utilizzarsi lato Client e lato Server.
Quindi è possibile “mischiare” dispositivi diversi tra di loro, sia dello stesso produttore che di produttori differenti.
In pratica però è preferibile scegliere un modello e realizzare reti con modelli uguali, se non altro per avere una unica interfaccia utente sui diversi dispositivi della rete.
-
AutorePost