Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumSi come puoi vedere da questo topic i sockets disponibili per il protocollo Modbus (Standard sulla porta 502) sono 3. Quindi puoi avere 3 connessioni Modbus TCP/IP contemporanee.
Ti ricordo che l’ambiente di sviluppo LogicLab si connette in Modbus TCP/IP con il modulo CPU e quindi se vuoi connetterti con LogicLab devi lasciare una delle connessioni libera.
Gennaio 23, 2015 alle 1:30 pm in risposta a: Informazioni su uscita DC OK alimentatori MeanWell #38683Sergio Bertana
Amministratore del forumGli alimentatori MeanWell serie MDR hanno una uscita indicata come “DC OK”, questa uscita è un’indicazione che l’alimentazione è regolata entro limiti prefissati. Se attiva indica che la tensione in uscita dall’alimentatore è corretta, può essere utilizzata per la connessione a sistemi di allarme esterni e/o sistemi di monitoraggio.Come si vede nel datasheet (Vedi estratto) l’uscita è un valore in tensione che varia in funzione della tensione di uscita dell’alimentatore. Nel tuo caso che hai un alimentatore da 24Vdc il valore della tensione in uscita può variare da 18~27V con una corrente massima di 20mA. Naturalmente è una tensione positiva riferita al polo – dell’alimentatore.Come vedi dall’estratto puoi collegare a questa uscita un diodo LED o un relè di segnalazione, o puoi alimentare l’ingresso di un PLC.
Sergio Bertana
Amministratore del forumIl modbus slave nativo gestito dal sistema operativo opera sulla memoria della DB 100, pui accedere da Modbus con indirizzi a partire da 40000. Ti consiglio di leggere attentamente il capitolo relativo al protocollo Modbus sul Manuale programmazione IEC61131-3.
Se invece non utilizzi il modbus slave nativo e vuoi implementare una tua gestione modbus slave puoi realizzare un tuo programma con il FB ModbusSlave. In questo caso il range di indirizzi Modbus e l’area di memoria su cui i comandi operano lo decidi parametrizzando opportunamente il FB.
Stessa cosa vale per il FB UDPDataTxfer in cui è gestito lo scambio di una area di memoria definita nella parametrizzazione del FB.
Sergio Bertana
Amministratore del forumPer farlo devi utilizzare le macro. Per il layout ad esempio puoi partire da una delle tastiere standard del programma (Esempio quella in pagina 50), selezioni e copi tutti gli oggetti e li incolli in una tua pagina (Esempio pagina 10) (Screenshot).
La tastiera è composta da un disegno di sfondo e da oggetti pulsanti, sostituisci tutti i pulsanti con oggetti Imposta Bit. Ecco l’esempio del tasto 7 (Screenshot). Come vedi ho scelto di settare sui vari tasti un bit diverso tasto per tasto (LB 7 per il tasto 7). Sulla pressione tasto eseguo la macro che controllerà quale bit è attivo determinando quale tasto è premuto.
Ecco la parte di macro che gestisce il data entry sul display, ad ogni tasto premuto il numero relativo è aggiunto al valore del display.
macro_command main()
int i, KeyStatus, Displayfor i=0 to 10
GetData(KeyStatus, “Local HMI”, LB, i, 1)if (KeyStatus == true) then
KeyStatus=false
SetData(KeyStatus, “Local HMI”, LB, i, 1)
GetData(Display, “Local HMI”, LW, 1, 1)
Display=(Display*10)+i
SetData(Display, “Local HMI”, LW, 1, 1)
end if
next
end macro_commandQuesta è una mia scelta operativa, ci possono essere altre strade per raggiungere l’obbiettivo, naturalmente ho solo dato una traccia tutto il lavoro è da portare avanti da te. Ma come vedi ti basterà disegnare altri pulsanti sulla tastiera ed abbinare ad essi le relative funzionalità nella macro di gestione.
Sergio Bertana
Amministratore del forumPer leggere variabili da altri PLC devi utilizzare il FB ModbsMaster che è utilizzabile su uno stream di comunicazione in questo topic trovi un esempio di comunicazione in RS485 tra un master e molti slaves. Purtroppo però allo stato attuale del sistema operativo è possibile aprire connessioni TCP/IP solo in modalità server e non è possibile aprire connessioni in modalità client. Quindi non è possibile aprire uno stream di comunicazione TCP/IP da collegare alla FB ModbusMaster.
Per il dialogo tra diversi sistemi SlimLine in TCP/IP è disponibile il FB UDPDataTxfer (Topic).
Sergio Bertana
Amministratore del forumLa gestione delle connessioni al web server è gestita dal sistema operativo, e purtroppo non vi è modo di sapere l’indirizzo IP del client collegato.
Sergio Bertana
Amministratore del forumTi ricordo cher il Modbus TCP/IP slave è nativo nei moduli CPU SlimLine, sono gestibili fino a 3 connessioni sulla porta standard 502. Indirizzo di nodo di default è 1. Dalla pagina web di configurazione è possibile modificare questi parametri (Screenshot).
Se invece l’esigenza è di sviluppare un tuo protocollo di comunicazione TCP/IP puoi dare una occhiata a questo topic. Va da sè che utilizzando il programma postato nel topic, una volta che hai il FILEP del socket TCP/IP puoi inserire nel programma il FB ModbusSlave ed utilizzare il FB in alternativa alla gestione Modbus nativa.
Sergio Bertana
Amministratore del forumEsistono diverse possibilità per soddisfare la tua esigenza, vediamo alcuni suggerimenti.
Sistema programmabile SlimLine e/o NetlogIII
Questi prodotti hanno un web server integrato con cui è possibile visualizzare pagine web dinamiche (Topic). Tramite una rete RS485 è possibile acquisire in Modbus RTU i valori di peso dagli amplificatori di cella di carico (Topic) che saranno visualizzati nella pagina Web. Aggiungendo al modulo CPU uno o più moduli espansione I/O analogico è possibile acquisire il segnale di peso direttamente dalla cella di carico eliminando il costo dell’amplificatore (Topic).Terminale operatore
Tramite una rete RS485 è possibile acquisire in Modbus RTU i valori di peso dagli amplificatori di cella di carico e visualizzarli sul terminale. Il terminale è visualizzabile da Web browser (Topic) e/o da Smartphone (Topic). E’ anche possibile utilizzare il modello Cloud HMI cMT-SVR direttamente visualizzabile tramite apposita App.Ora tu parli di poterli visualizzare da remoto, bisogna capire come tu puoi collegare i dispositivi ad Internet, se disponi di un IP pubblico (Statico o no), puoi configurare il Port Forwarding/NAT sul router per reindirizzare l’IP pubblico verso l’IP privato del dispositivo.
Se non disponi di un IP pubblico devi realizzare una VPN o meglio utilizzare l’Easy Access 2.0 sul terminale operatore. In alternativa puoi pensare a soluzioni basate sul cloud (Topic).
Sergio Bertana
Amministratore del forumCome tutti i convertitori Ethernet-Seriale, anche l’ATC-1000 esegue la conversione pura dei dati ricevuti dalla connessione Ethernet verso la porta seriale e viceversa. A differenza dei gateway Modbus che eseguono la conversione dei protocolli, se sulla connessione Ethernet arriva un frame Modbus TCP/IP il frame viene passato esattamente uguale alla porta seriale e viceversa.
Quindi per utilizzarlo sui tuoi azionamenti è obbligatorio che vengano eseguite modifiche sulla gestione del protocollo lato RS485. Il protocollo Modbus TC/IP in realtà incapsula il protocollo RTU, vengono aggiunti in testa 6 bytes e viene eliminato il campo CRC (2 bytes), vedi manuale.
Detto questo, è possibile realizzare in uscita dalla seriale del convertitore una connessione RS485 in multidrop tra diversi azionamenti, ma in questo caso chiaramente dovrai interrogare gli azionamenti uno ad uno sulla stessa connessione TCP/IP senza alcun vantaggio di tempi.
Diverso invece se equipaggi ogni azionamento con un converitore Ethernet-Seriale, in questo caso il PLC master potrà gestire tante connessioni TCP/IP con i vari convertitori, ed in questo caso le comunicazioni saranno in parallelo guadagnando sui tempi di comunicazione totali.
Gennaio 20, 2015 alle 1:14 pm in risposta a: Compatibilità I/O Controller II con versioni precedenti #38670Sergio Bertana
Amministratore del forumHo sentito il fornitore al riguardo che assicura la completa intercambiabilità dell’I/O Controller II con il modello precedente.
Si scusano per le informazioni errate riportate sul manuale e ricordano di fare riferimento sempre alla tabella Technical specifications, provvedono subito a correggere i manuali.
Quindi è possibile intercambiare l’I/O Controller II con il modello precedente senza preoccuparsi della compatibilità.
Sergio Bertana
Amministratore del forumSe guardi la nota il costrutto esatto per riferirsi alla flag di reset SFC della Action è [Programma]_[Action]_RESET_SFC. Quindi nel tuo esempio sarà Main_subSFC_RESET_SFC.
Ho modificato l’esempio di prima aggiungendo una Action in SFC (ABlink) ed ho gestito il comando di reset del SFC della Action sia dal programma SFC principale (Screenshot), allego il programma sorgente.
Il programma esegue 10 lampeggi della uscita e poi resta in attesa per 5 secondi con l’uscita attiva, prima di riprendere il ciclo dall’inizio. Con un ingresso digitale Di00CPU è possibile resettare in qualsiasi momento l’esecuzione del ciclo.
Gennaio 19, 2015 alle 3:23 pm in risposta a: Monitoraggio temperatura e consumi di punti vendita #38667Sergio Bertana
Amministratore del forumContinuo la descrizione della applicazione dando indicazione sul rilevamento dei consumi elettrici. Come visto già nei vari links del post precedente essendo il sistema programmabile è aperto a varie soluzioni per il monitoraggio dei consumi elettrici.
La soluzione più naturale è quella di interfacciare il sistema con l’analizzatore da quadro che solitamente è già presente nel quadro di distribuzione. Nel caso non fosse presente si può montare un qualsiasi analizzatore commerciale provvisto di porta seriale con protocollo Modbus RTU, cito ad esempio il modello Smart più della Ducati Energia (Vedi datasheet), il modello Nano della Frer (Vedi datasheet) o ancora il modello ADR-D230 della Vemer (Vedi datasheet).
Se ci si vuole limitare al solo controllo del consumo è possibile utilizzare dei contatori di energia da porre in cascata al contatore generale magari suddividendo le varie utenze. Esistono contatori con uscita Modbus e con uscita ad impulsi (Vedi datasheet).
Esiste anche la possibilità di utilizzare un modulo di conversione da impulso ottico a segnale (Vedi datasheet) da applicare direttamente al contatore Enel esistente che permette tramite due ingressi digitali del modulo SlimLine di acquisire i consumi.
Tutte queste soluzioni utilizzano prodotti facilmente reperibili sul mercato, alcuni di essi sono forniti da aziende con cui collaboriamo e di cui possiamo su richiesta farne fornitura.
Sergio Bertana
Amministratore del forumIl manuale a cui faccio riferimento è il Manuale programmazione IEC61131-3 che si trova nel pacchetto di installazione di LogicLab.Il topic è riferito ai sistemi programmabili con LogicLab, la tecnica AJAX è sviluppata utilizzando il Javascript all’interno di pagine HTML e si appoggia al server HTTP standard dei sistemi SlimLine e NetlogIII. Abbiamo un modulo SlimLine CPU CODESYS IEC61131-3 che si programma in CODESYS.
Gennaio 16, 2015 alle 3:38 pm in risposta a: Invio di stringhe con valore variabile su socket TCP #38664Sergio Bertana
Amministratore del forumNon ho l’ultimo tuo programma, ma il perchè il quell’esempio ST viene ignorato l’ingresso l’ho spiegato nello screnshot, entri nella IF dove leggi l’ingresso solo sul fronte di connessione del socket poi non entri più.
In pratica tutto quello che è scritto dentro la IF non viene mai eseguito IF vuol dire se… se è vera la condizione THEN allora esegui…
IF (SktLsn.Connect <> WMsgPulse) THEN è vera solo sul fronte di connessione perchè dopo
WMsgPulse:=SktLsn.Connect; copia lo stato della connessione sul BOOL WMsgPulseE tu copiavi l’ingresso proprio dentro l’IF quindi non lo copiavi mai… o meglio lo avresti copiato una sola volta sulla connessione del socket.
Sergio Bertana
Amministratore del forumPer poter visualizzare in forma grafica 2 variabili combinate su unico grafico bisogna utilizzare l’oggetto Plot XY (Estratto manuale) dove il pannello legge da una tabella di dati il grafico da realizzare, la tabella si può leggere da registri del PLC o da registri del pannello (Screenshot).
-
AutorePost