Sergio Bertana
Risposte nei forum create
-
AutorePost
-
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).
Sergio Bertana
Amministratore del forumI dispositivi STE come tutte le soluzioni per monitoraggio IP della HWgroup supportano il protocollo SNMP, sono in grado sia di rispondere ad interrogazione SNMP che di inviare TRAP su condizioni di allarme.
Presso il fornitore è disponibile un prodotto On-Line per i test (Segui il link dal ns sito), dal menù system della pagina web del prodotto è possibile scaricare la SNMP MIB table con tutti gli OID delle grandezze rilevabili.
Nel Vs caso disponete gìà di un software di monitoraggio, ma ricordo che HWgroup rende disponibile il software di monitoraggio PDMS (Gratuito fino a 3 sensori).
Gennaio 16, 2015 alle 10:57 am in risposta a: Invio di stringhe con valore variabile su socket TCP #38660Sergio Bertana
Amministratore del forumEcco lo screenshot del tuo programma (Tanti piccoli errori da correggere e/o migliorie da consigliarti).
Come vedi parlo di effetto -]P[- da creare in ST, nel linguaggio LD basta mettere il simbolo in ST devi creare l’effetto transizione per poter gestire il fronte di salita e/o discesa ecco come fare. AuxPls è una variabile BOOL locale nel tuo programma.
IF (Ingresso <> AuxPls) THEN
AuxPls:=Ingresso; (* Auxiliary pulse *)IF (Ingresso) THEN
Tutto quello scritto qui avviene sul fronte di attivazione -]P[-
END_IF;IF NOT(Ingresso) THEN
Tutto quello scritto qui avviene sul fronte di disattivazione -]N[-
END_IF;
END_IF;Nel tuo progetto hai anche scelto di eseguire il download del codice sorgente ad ogni download e questo rallenta il download ad ogni modifica di programma, leggi attentamente questo topic.
Gennaio 16, 2015 alle 9:53 am in risposta a: Invio di stringhe con valore variabile su socket TCP #38658Sergio Bertana
Amministratore del forumMi parli di array in cui mappi gli ingressi digitali da programma LD e sinceramente non ho ben chiaro a cosa ti riferisci in questo topic si parla di array di I/O digitali.
Però vista la complessità della domanda forse è meglio se invii alla nostra eMail di supporto il programma così da poterlo verificare direttamente.
Gennaio 16, 2015 alle 8:54 am in risposta a: Controllo accessi con lettore RFID con protocollo Wiegand #38656Sergio Bertana
Amministratore del forumPer la lettura dei badge RFID come giustamente facevi notare abbiamo sviluppato un FB per gestire i lettori della HID con interfaccia Clock e Data (Topic). Si è utilizzato questo tipo di interfaccia e non la Wiegand in quanto la gestione del protocollo è demandata interamente al software.
Il protocollo Wiegand ha un impulso di durata 50uS ed impulsi di durata così limitata possono essere gestiti solo da hardware. I moduli di espansione I/O implementano un logica programmabile PLD che può tranquillamente gestire il protocollo Wiegand, ogni modulo dispone di 4 ingressi optoisolati veloci a 5V, quindi è possibile per ogni modulo acquisire 2 lettori Wiegand.
Al momento attuale non abbiamo sviluppato una FB apposita per il Wiegand, ma contattando il ns ufficio commerciale è possibile richiedere una offerta per lo sviluppo sia del package hardware da installare sui moduli di I/O che della FB software di gestione. Non è comunque possibile gestire il protocollo Wiegand con gli ingressi digitali presenti sui moduli CPU.
Gennaio 16, 2015 alle 7:30 am in risposta a: Invio di stringhe con valore variabile su socket TCP #38655Sergio Bertana
Amministratore del forumNon capisco esattamente cosa intendi quando dici che gli I/O non vengono sentiti dal programma ST. Gli I/O logici possono essere gestiti indifferentemente da tutti e 5 i linguaggi della IEC61131. Mi viene il dubbio che tu abbia scritto il programma ma poi non lo abbia inserito in nessuna task di esecuzione.
Anche se è più logico un circuito di Marcia/Arresto gestirlo in linguaggio LD ecco lo screenshot di un programma di esempio in linguaggio ST. Come vedi tutti gli I/O sono gestiti da ST, l’esecuzione del programma trattandosi di sequenze logiche l’ho inserita nella task Slow (Download programma).
Attenzione, il programma postato precedentemente che gestiva una comunicazione su stream andava necessariamente eseguito nella task Back. Le varie tasks possono contenere più programmi da eseguire e l’esecuzione all’interno della task è effettuata in base all’elenco dall’alto verso il basso (Topic). Altro topic che tratta l’argomento.
Gennaio 15, 2015 alle 1:17 pm in risposta a: Invio di stringhe con valore variabile su socket TCP #38653Sergio Bertana
Amministratore del forumDevi considerare il modo in cui sono eseguiti i programmi PLC, il programma viene ciclicamente eseguito nella task dove è inserito. Il programma del post precedente ad esempio è eseguito nella task di Back, essendo un programma molto semplice il tempo di esecuzione è estremamente veloce, come vedi nello screenshot, l’esecuzione del programma (Variabile SysTBackExTm) dura 15uS, il programma viene eseguito (Variabile SysTBackLpTm) ogni 372uS.
Quindi quando tu dici che condizioni l’esecuzione all’ingresso logico del modulo CPU, tieni presente se attivi l’ingresso per 1 secondo, la funzione SysVarfprintf verrà eseguita circa 2700 volte.
Se noti nel mio esempio la variabile SysClock1000 e di tipo -]P[- cioè fronte di salita, in pratica il ramo è attivo per un solo loop di programma quando la variabile passa dallo stato inattivo ad attivo.
Gennaio 15, 2015 alle 10:29 am in risposta a: Comunicazione dati wireless in campo fotovoltaico #38651Sergio Bertana
Amministratore del forumIl prodotto ATC-3200 è sicuramente più veloce in aria, ma, utilizzando frequenze molto più elevate (2.4GHz) la normativa impone un range di comunicazione molto ridotto (500 mt). A differenza della frequenza 868Mhz la frequenza molto più elevata subisce enormemente il disturbo degli ostacoli e soprattutto si consiglia di posizionare l’antenna in posizione più elevata rispetto al terreno.
-
AutorePost