Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,196 a 3,210 (di 4,374 totali)
  • Autore
    Post
  • in risposta a: Lettura dati protocollo modbus da circolatore elettronico #37911
    Sergio Bertana
    Amministratore del forum

    La rete RS485 permette proprio di poter dialogare con più dispositivi utilizzando una connessione multidrop (Tutti connessi sullo stesso doppino), per fare questo dovrai dare un indirizzo di nodo diverso ad ogni circolatore.

    Il Profilab-Expert permette di gestire il protocollo Modbus RTU e quindi ti permette di gestire la comunicazione e la visualizzazione dei dati. Naturalmente devi crearti un programma per le tue esigenze Profilab-Expert è un ambiente di sviluppo non è un programma finito.

    Per fare test sulla comunicazione Modbus ti consiglio di dare una occhiata al programma Modbus Poll.

    in risposta a: Lettura dati protocollo modbus da circolatore elettronico #37909
    Sergio Bertana
    Amministratore del forum

    Ho dato una occhiata al circolatore in questione e come si vede dal manuale modbus, è possibile acquisire i valori andando a leggere i relativi registri modbus, ad esempio:

    Registro 00216: Pump1RPM (1rpm) Giri al minuto del motore
    Registro 00218: Pump1OperatingTimeHI (1h) Tempo di utilizzo della pompa

    La connessione modbus è una seriale RS485, per la connessione al PC puoi utilizzare un convertitore USB/Seriale (Esempio ATC-850). Ma poi ti servirà un programma sul PC che gestisca il protocollo Modbus andando ad acquisire i registri che ti interessano, in questo topic trovi ulteriori informazioni.

    Se invece vuoi visualizzare i valori e/o gestire una automazione utilizzando i prodotti della linea SlimLine puoi acquisire i registri via Modbus e visualizzarli su pagina web e/o su pannello operatore. Se fai una ricerca nel forum con la parola Modbus troverai centinaia di topics che trattano l’argomento.

    in risposta a: Gestione pagine web dinamiche da parte dell’utente #37908
    Sergio Bertana
    Amministratore del forum

    In questo topic viene trattato l’utilizzo delle Google Charts per la visualizzazione di dati in forma grafica su pagine web.

    in risposta a: Come scrivere funzioni e blocchi funzioni in LogicLab #37907
    Sergio Bertana
    Amministratore del forum

    Un blocco funzione per decomprimere la WORD in 16 BOOL potrebbe essere scritto nel modo che ti indico sotto. Naturalmente devi mettere tutti i bits, io ti ho solo messo un esempio con i primi e gli ultimi.

      b00:=TO_BOOL(In AND 16#0001); (* Bit 0 result *)
      b01:=TO_BOOL(In AND 16#0002); (* Bit 1 result *)

      b07:=TO_BOOL(In AND 16#0080); (* Bit 7 result *)
      b08:=TO_BOOL(In AND 16#0100); (* Bit 8 result *)

      b15:=TO_BOOL(In AND 16#8000); (* Bit 15 result *)

    Per il problema dell’orologio, ti consiglio di eseguire un upgrade del firmware dei moduli (Vedi nota). Ma aspetta qualche giorno che sia stata pubblicata la versione SFW184A800 che ha anche le pagine web così come hai visto nel mio screenshot.

    in risposta a: Come scrivere funzioni e blocchi funzioni in LogicLab #37905
    Sergio Bertana
    Amministratore del forum

    Prendo spunto dalla tua richiesta per realizzare un programma in cui ho definito due FB identiche nel funzionamento ma realizzate con due linguaggi diversi. In questo modo desidero dimostrare come sia possibile ad esempio utilizzando il linguaggio FBD realizzare la FB di cui tu hai bisogno BitToWordFBD, semplicemente richiamando altre FB di libreria.

    Nello stesso programma troverai anche la BitToWordST, dove realizzo quello di cui hai bisogno in modo nativo in linguaggio ST. Ora ognuno può usare la tecnica che vuole per realizzare le proprie FB ma credo sia preferibile sempre raggruppare funzioni o FB già scritte e testate piuttosto che realizzare una FB completamente da zero. Ecco la stampa ed il download del programma.

    In merito alla impostazione della data nella pagina General Setup basta impostare il nuovo valore di data ed ora e agire sul tasto Save (Screenshot). Devi fare attenzione a scrivere la data e l’ora nel formato in cui sono visualizzate, mantenendo sia la barra che i due punti di separazione tra le cifre senza interporre spazi, l’anno và scritto su 4 cifre.

    in risposta a: Effettuare la scalatura di un valore #37903
    Sergio Bertana
    Amministratore del forum

    Si è proprio la funzione Linearize (Estratto manuale) che ti serve. Come vedi dal manuale devi fornire alla funzione gli indirizzi di due array di variabili REAL.

    VInReference, Array con i valori in ingresso da linearizzare (Nel tuo caso 1.0, 2.0, ecc.).
    VOutReference, Array con i valori di uscita linearizzati (Nel tuo caso 1.0, 1.5, ecc.).

    La funzione esegue la ricerca nell’array VinReference del valore immediatamente superiore al valore in ingresso interpolando linearmente tra il valore trovato e quello precedente, calcolando il valore in uscita in base ai due valori presenti nelle stesse posizioni dell’array VOutReference. Naturalmente il valore in uscita sarà molto piuù preciso quanti più punti avrai tabellato nei due arrays.

    in risposta a: Riconoscere da programma utente i moduli di espansione #37900
    Sergio Bertana
    Amministratore del forum

    SlimLine come tutti i PLC lavora in immagine di processo, il sistema riconosce i moduli di I/O logici connessi al bus di estensione che vengono gestiti automaticamente sulla esecuzione della task Slow. La funzione SysSetPhrDO si utilizza solo nel caso si desideri acquisire ingressi o gestire uscite immediatamente senza attendere la gestione automatica in immagine di processo.

    Naturalmente la gestione del bus I2C utilizza tempo processore e quello che succede è che il tempo di esecuzione della task Slow ha subito un aumento solo per il fatto di avere collegato il modulo al sistema. La task Slow interrompe l’esecuzione della task Back.

    Però ti voglio ricordare che la gestione seriale è eseguita in interrupt sul processore e quindi i dati seriali sono sicuramente ricevuti e caricati nel buffer di ricezione a qualsiasi velocità essi arrivino. Sarà poi il tuo programma con la chiamata alla funzione SysGetIChars a verificare se sono stati ricevuti dati tra una esecuzione e l’altra e potrà leggerli con le funzioni Sysfgetc e Sysfread fino a svuotare il buffer.

    Lo stesso vale per la trasmissione, il programma utente con la funzione SysGetOSpace può controllare quanto spazio c’è nel buffer di trasmissione seriale e con le funzioni Sysfputc e Sysfwrite, potrà trasferire i caratteri da trasmettere nel buffer di trasmissione. Il sistema operativo autonomamente provvederà ad inviarli sulla seriale indipendentemente dalla esecuzione del programma utente.

    in risposta a: Comando in frequenza di inverter Power-One per eolico #37898
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione SysSetPWMOut può operare solo sulla uscita DO00 del modulo CPU ARM7. La nuova versione del firmware SFW184A800 è pronta, stiamo facendo gli ultimi aggiornamenti sull’ambiente di sviluppo LogicLab per implementare le nuove funzionalità, non ho ancora una data certa di rilascio ma è sicuramente questione di un paio di settimane.

    Per la gestione di stepping motors ho trovato interessante l’approccio che ho consigliato ad un nostro cliente un po di tempo fa (Topic).

    in risposta a: Blocco momentaneo di comunicazione tra Bullet M5 HP #37896
    Sergio Bertana
    Amministratore del forum

    Credo che la tua sia una configurazione Brigded con 1 access point e 2 stations, visto che la comunicazione viene a mancare su entrambi gli slaves (Per slaves credo tu intenda le 2 stations) potrebbe anche trattarsi di una anomalia sul funzionamento del bullet configurato come access point. Puoi provare ad invertire l’access point con una station.

    Le reti punto punto sarebbe sempre preferibile realizzarle con soluzioni ad antenna direttiva proprio per non incappare in disturbi dovuti ad altre apparecchiature che trasmettono nella tua stessa zona. Puoi provare ad eseguire l’utility AirView (Screenshot) che ti crea un report dell’impegno di banda (Questa utility arresta la comunicazione WiFi), così potrai individuare quale canale è più libero e cambiare il canale utilizzato nella tua configurazione.

    in risposta a: Comando in frequenza di inverter Power-One per eolico #37895
    Sergio Bertana
    Amministratore del forum

    Il tuo errore è che non hai gestito direttamente le uscite del modulo CPU ma ne hai demandata la gestione all’immagine di processo che la esegue ogni 10 mS (Topic) e non so in che task hai eseguito il programma. Se vedi nel programma che ti allego (Stampa e Download), viene eseguita la gestione nella task fast a cui ho modificato il tempo di esecuzione portandolo da 1 mS a 100 uS.

    Con questo programma si riescono ad ottenere frequenze anche vicine ad 1 Khz, naturalmente si ha una “granulosità” nella impostazione del tempo di 100 uS che è il tempo con cui è eseguita la task fast.

    Completamente diverso invece è l’approccio utilizzando la funzione SysSetPWMOut la quale opera in hardware con una granulosità inferiore al uS.

    in risposta a: Cablaggio contatori con connessione in M-Bus #37893
    Sergio Bertana
    Amministratore del forum

    Il bus  di comunicazione M-Bus si caratterizza per:

    Bassi costi per la stesura del bus e per i collegamenti dei dispositivi
    Lunghe distanze senza l’utilizzo di particolari amplificatori di segnale
    Elevato numero di dispositivi centralizzabili
    Differenti scelte per la tipologie del bus: lineare, stella, albero (Unica tipologia non ammessa è ad anello)

    L’M-bus permette di raggiungere distanze fino a 10 Km (Un solo dispositivo M-bus, e sezione del cavo di 1,5 mm²). Si raccomanda comunque di non superare i 4 Km nella stesura del bus. Per la realizzazione della rete M-Bus si utilizza un cavo twistato a coppia non schermato (Tipicamente 2 poli da 0,5 mm²).

    in risposta a: Utilizzo radiomodems per uso con protocollo Pelco #37892
    Sergio Bertana
    Amministratore del forum

    Il protocollo Pelco è un protocollo binario a pacchetto con indirizzamento del nodo quindi adatto a comunicazioni multidrop. Il frame dati è molto corto dell’ordine di una decina di bytes quindi non vi sono problemi di buffering per qualsiasi radiomodem della nostra gamma tu voglia utilizzare. Ricordo che essendo una comunicazione multidrop se hai più telecamere puoi mettere un radiomodem per ogni telecamera ed un radiomodem sulla tastiera di comando e gestire tutte le telecamere come se fossero interconnesse su rete cablata RS485.La distanza da coprire è effettivamente molto limitata, potrebbe essere coperta anche dal semplicissimo ATC-3200 ma essendo uno ZigBee è molto sensibile agli ostacoli ed all’interno di edifici il suo raggio d’azione è molto limitato. Se non hai problemi di spazio ad un costo maggiore puoi trovare la serie DL (Esempio il DL868) che ti dà una garanzia di collegamento maggiore.

    in risposta a: Configurazione convertitore Ethernet/Seriale TRP-C37 #37891
    Sergio Bertana
    Amministratore del forum

    Mi scrivi che il convertitore TRP-C37 è visto nella rete ed è configurato come server, ma non mi hai detto se hai installato e configurato correttamente il VirtualCOM (Topic). Se il VirtualCOM è installato ed hai già configurato una porta COMx sul tuo PC dovresti provare se la porta funziona. Come primo test crei un loopback seriale sul convertitore (Colleghi i pins 2 e 3 del connettore DB9 tra di loro) ed utilizzando un programma di emulazione terminale (Esempio Toolly) provi ad inviare dati sulla porta COMx.

    Siccome hai realizzato un loop back i dati inviati verranno ritornati e visualizzati nella finestra terminale. Se questo funziona vuol dire che l’operatività della seriale c’è. Ora potrebbe essere che il tuo programma di collegamento con il CNC non riesce a forzare i corretti parametri di comunicazione sul convertitore, per risolvere il problema se conosci questi parametri li potrai impostare direttamente tu sul convertitore utilizzando la sua interfaccia web.

    in risposta a: Comando in frequenza di inverter Power-One per eolico #37889
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione PWMOut permette di gestisce una qualsiasi uscita logica per comandare un carico in modulazione di potenza variando il tempo di On/Off di comando del dispositivo. Questo è un blocco “tutto software” è scritto in linguaggio ST ed utilizza i temporizzatori per gestire i tempi.

    Il blocco funzione SysSetPWMOut invece gestisce moduli che hanno il circuito PWM realizzato in hardware, e questo permette di gestire uscite PWM con frequenze di lavoro elevate. Questo blocco funzione sarà disponibile dalla prossima versione firmware (Codice SFW184A800).

    in risposta a: Informazioni su bus I2C, possibilità utilizzo moduli custom #37887
    Sergio Bertana
    Amministratore del forum

    Le due tensioni in origine sul modulo CPU sono connesse tra di loro (Sono la stessa tensione), sono state diversificate sul bus di estensione per compensare la caduta di tensione dovuta ai cavi ed alle connessioni.

    +5Vdc: Deve essere utilizzato per alimentare tutti i circuiti logici connessi al bus di estensione.
    +5V (Aux): Deve essere utilizzato per alimentare eventuali dispositivi presenti sul modulo, esempio relè, LED, display, ecc. che non sono direttamente connessi al bus di estensione ma vengono pilotati da drivers.

Stai visualizzando 15 post - dal 3,196 a 3,210 (di 4,374 totali)