Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,261 a 1,275 (di 4,379 totali)
  • Autore
    Post
  • in risposta a: Check comunicazione con protocolli BACnet MSTP #58185
    Sergio Bertana
    Amministratore del forum

    Purtroppo sul protocollo MSTP non esiste un modo per testare lo stato del nodo.

    in risposta a: Libreria per comunicazione tra sistemi su Internet #58182
    Sergio Bertana
    Amministratore del forum

    Ho svelato l’arcano, sui sistemi ARM7 non viene gestito il localhost “127.0.0.1” ecco perchè non riesci a testare il programma su di un unico sistema, cosa invece che è fattibile sui sistemi basati su CortexM7 come l’MPS54 od il nuovo modulo compact MPS056 che sostituisce l’MPS053.

    Per quanto riguarda l’aggiornamento di un sistema basato su ARM7 a XUnified qui trovi le informazioni per eseguire l’upgrade, ho pubblicato la nuova versione del sistema operativo. Conviene fare l’upgrade se ti serve sfruttare le nuove caratteristiche.

    in risposta a: Libreria per comunicazione tra sistemi su Internet #58177
    Sergio Bertana
    Amministratore del forum

    Stò verificando per scrupolo i due programmi di esempio presi dalla TCPDataExchServer e dalla TCPDataExchClient sono in smartworking e non ho a disposizione un MPS053, quindi lo stò provando su un MPS054 XUnified e non trovo problemi di funzionamento. Mi riservo lunedì di fare una prova su di un MPS053. Questo è il risultato del comando NetStat sul mio sistema.

    [Admin]> netstat
     Id  Proto  Local Address          Foreign Address        Status
    [00] UDP    0.0.0.0:9999           *.*
    [01] TCP    0.0.0.0:23             0.0.0.0:0              LISTENING
    [02] TCP    0.0.0.0:502            0.0.0.0:0              LISTENING
    [03] TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
    [04] TCP    0.0.0.0:21             0.0.0.0:0              LISTENING
    [05] TCP    192.168.0.181:502      10.242.2.2:61462       ESTABLISHED
    [06] TCP    192.168.0.181:23       10.242.2.2:61815       ESTABLISHED
    [07] TCP    0.0.0.0:10000          0.0.0.0:0              LISTENING
    [08] TCP    127.0.0.1:52054        127.0.0.1:10000        ESTABLISHED
    [09] TCP    127.0.0.1:10000        127.0.0.1:52054        ESTABLISHED

    Come vedi c’è una connessione attiva tra la porta 52054 del client e la porta 10000 del server ed il server ha ancora una porta 10000 in ascolto, perchè nel programma server si accettano 2 connessioni TCPServer.Connections:=2;.

    Nel tuo programma invece sembra proprio ci sia un problema di connessione, ma la stranezza è anche sullo spionaggio che non è attivo. Solo una verifica hai eseguito i due programmi clien e server in task Back. Ricordo che tutte le operazioni di comunicazione su socket vanno eseguite in background.

    in risposta a: Acquisizione RTD, tensione/corrente modulo mixed signal #58162
    Sergio Bertana
    Amministratore del forum

    Il modulo PCB122 utilizza al suo interno il processore Analog Devices ADuC845 che dispone di un convertore ADC Sigma/Delta da 24 bits (Diagramma funzionale). Quando si utilizzano gli ingressi nella modalità 0~1.25 volts (Togliendo il ponticello sul relativo ingresso) si elimina il partitore resistivo sugli ingressi ma rimane la resistenza da 33KOhm in serie a protezione.

    Il range di tensione accettata di modo comune data dal costruttore è da –0.3 V a tensione alimentazione +0.3 V. Essendo alimentato a 5VDc  avremo un range da -0.3V a +5.3V. Avendo la resistenza in serie di protezione l’ingresso non si deteriora anche applicando tensioni superiori, certo che non saranno convertite.

    in risposta a: Come conoscere lo spazio libero su disco #58159
    Sergio Bertana
    Amministratore del forum

    Da programma LogicLab non c’è una funzione che ritorna lo spazio libero su disco.

    Se ti occorre conoscere se è possibile scrivere su di un file su disco, una volta aperto il file in write o in append puoi utilizzare la funzione SysFGetOSpace per sapere se c’è abbastanza spazio per scrivere ciò che si desidera.

    La funzione ritorna una variabile INT quindi al massimo ti darà disponibilità di 32767 bytes anche se in realtà avrai molto più spazio disponibile. Infatti è predisposta solo per conoscere la disponibilità di spazio per scrivere un record di dati prima di eseguire le funzioni di scrittura Sysfwrite o SysVfprintf.

    Ti ricordo che anche se non c’è un limite per lka dimensione dei files su disco consigliamo di non eccedere la dimensione di 640kB per ogni singolo file (Vedi articolo).

    in risposta a: Caratteristiche routers WLink #58138
    Sergio Bertana
    Amministratore del forum

    I routers WLink 4G hanno le caratteristiche che hai citato e tranne il modello entry-level WL-R200L hanno tutti la gestione della doppia SIM. Inoltre tutti hanno la possibilità di avere come opzione il ricevitore GPS integrato. Tutti hanno la possibilità di essere gestiti via SMS (Vedi articolo).

    I modelli WL-R210, WL-R220 e WL-G510 hanno in aggiunta 2 ingressi digitali ed 1 uscita digitale, e come dicevi il modello WL-G510 ha 4 porte ethernet (Vedi articolo). Tutti i modelli hanno interfaccia web nativa per la configurazione e tra le modalità di configurazione è possibile selezionare il Failover sulle SIM, in questo modo quando una SIM fallisce la connessione o termina il traffico passa automaticamente all’altra SIM.

    Porto in evidenza che il modello WL-R220L è basato su OpenWRT e questo permette una estrema flessibilità di utilizzo, potendo attingere alla enorme disponibilità di pacchetti sviluppati per questo sistema operativo. Naturalmente ha una configurazione leggermente più complessa rispetto agli altri modelli ma ne permette una estrema flessibilità di configurazione (Vedi articolo). Questo router permette la gestione dei comandi AT e invio e ricezione di messaggi SMS (Vedi topic).

    in risposta a: Connessione a SlimLine compact seriale #58133
    Sergio Bertana
    Amministratore del forum

    La mia raccomandazione per chi utilizza i nostri prodotti è quella di utilizzare per lo sviluppo versioni con ethernet (Esempio MPS056) perchè molto più versatili, poi se la connessione in rete non è necessaria per le applicazioni che si sviluppano è possibile utilizzare per la produzione le versioni senza ethernet come l’MPS050. In questo topic sono indicati i metodi di connessione. Puoi anche eseguire il download di questa Quick Start Guide.

    Il modello MPS050 è l’entry level della nostra serie di sistemi programmabili, il prodotto è dotato di porta seriale RS232 e di connettore USB client. Per la connessione con l’ambiente di sviluppo LogicLab puoi utilizzare la connessione seriale in questo caso devi impostare il protocollo di comunicazione Modbus RTU 115200, e, 8, 1.

    Utilizzando una connessione USB potrai attivare il driver RNDIS che ti permetterà di avere una connessione di rete virtuale ed in questo caso di default il sistema assumerà indirizzo IP 192.168.1.122 e quindi potrai connetterti in Modbus TCP. La connessione TCP ti permette di gestire oltre alla connessione con Logiclab anche connessioni Telnet (Per lo spionaggio), connessione al server HTPP ed al server FTP.

    in risposta a: Calcolo velocità esecuzione tasks #58129
    Sergio Bertana
    Amministratore del forum

    Tra le variabili di sistema sono pubblicate anche le variabili che ritornano i tempi di chiamata e di esecuzione delle varie tasks. Basta inserirle nella finestra di watch per vederne i tempi (Screenshot). Le variabili sono:

    SysTBackLpTm:    System Back task loop time (uS)
    SysTBackLpTmMin: System Back task loop time min (uS)
    SysTBackLpTmMax: System Back task loop time max (uS)
    
    SysTBackExTm:    System Back task execution time (uS)
    SysTBackExTmMin: System Back task execution time min (uS)
    SysTBackExTmMax: System Back task execution time max (uS)
    
    SysTBootExTm:    System Boot task execution time (uS)
    SysTBootExTmMin: System Boot task execution time min (uS)
    SysTBootExTmMax: System Boot task execution time max (uS)
    
    SysTFastExTm:    System Fast task execution time (uS)
    SysTFastExTmMin: System Fast task execution time min (uS)
    SysTFastExTmMax: System Fast task execution time max (uS)
    
    SysTSlowExTm:    System Slow task execution time (uS)
    SysTSlowExTmMin: System Slow task execution time min (uS)
    SysTSlowExTmMax: System Slow task execution time max (uS)
    
    SysTimeInit:     System timing calculation init

    Tutti i tempi sono espressi in uS, attivando da debug la variabile SysTimeInit vengono inizializzati i valori minimo e massimo di tutti i tempi.

    I valori di …ExTm… indicano il reale tempo di esecuzione della relativa task, solo per la task di back viene riportato anche il tempo …LpTm… che indica il tempo di loop. In pratica al tempo di esecuzione si somma il tempo necessario al sistema operativo.

    in risposta a: Acquisizione encoder #58126
    Sergio Bertana
    Amministratore del forum

    Da quello che dici gestendo tutto nelle task Fast e Slow non hai nessuna dipendenza dai carichi di lavoro della CPU, il programma viene CERTAMENTE eseguito nei tempi definiti.

    Certo che se tu gestisci le uscite come variabili utilizzi l’immagine di processo che come ti dicevo è gestita in Slow, quindi tu esegui la variazione della variabile in uscita ma questa verrà trasferita sulla uscita solo nella task di Slow.

    Quindi è inutile gestire tutti i calcoli e le comparazioni in task Fast (1000 volte al secondo) se poi l’azione vera di comando arresto motore si esegue 100 volte al secondo. Quindi riassumendo occorre stabilire bene a che velocità realmente ti serve agire sull’arresto ed eseguire sia i calcoli che il comando delle uscite con il tempo adeguato.

    Nota: se usi il FB SysSetPhrDO occorre impostare correttamente il parametro Mask per evitare che la task Slow quando esegue l’immagine di processo modifichi il valore settato.

    in risposta a: Errore nella importazione progetto da PLC #58118
    Sergio Bertana
    Amministratore del forum

    Il file sorgente viene trasferito nella cartella Project ed è di tipo *.rsm, se non lo trovi probabilmente LogicLab non l’ha trasferito.

    Ricordo che nelle impostazioni di progetto è possibile scegliere se trasferire oppure no il file sorgente nel target (Vedi topic).

    in risposta a: Libreria per comunicazione tra sistemi su Internet #58115
    Sergio Bertana
    Amministratore del forum

    Non capisco cosa intendi per “non si attiva la TCPServer” hai provato a vedere il comando SysLog da Telnet per vedere che errori segnala ?

    Stai utilizzando gli esempi copiati ed incollati dalla nostra Knowledge oppure hai qualcosa di diverso ?

    Nel nostro esempio l’istanza del FB TCPDataExchServer è sempre attiva e gestisce 2 connessioni client ed avendo attivato il bit AutoTxD nella struttura dati provvede ad inviare i dati al client in modo automatico.

    in risposta a: Acquisizione encoder #58111
    Sergio Bertana
    Amministratore del forum

    Probabilmente hai inserito tutta la gestione dell’arresto in task Back la cui esecuzione dipende dall’impegno del processore nell’eseguire le altre operazioni. Normalmente la gestione del Modbus non incide in modo determinante sul tempo di esecuzione.

    Diversa è l’eventuale gestione del disco che a seconda dell’operazione che stai eseguendo potrebbe fare variare il tempo anche di 100-300 mS. A tal proposito ricordo che il sistema autonomamente provvede a registrare log su disco e quindi potrebbe in caso di record di log da salvare creare un jitter di esecuzione della task Back.

    Se vuoi avere una esecuzione real time (con tempi certi senza jitters) devi mettere l’esecuzione di tutta la gestione del posizionamento in task Slow (Eseguita di default ogni 10 mS) o nella task Fast (Eseguita di default ogni 1mS). I tempi di esecuzione sono modificabili da programma.

    Ma ricorda che devi gestire nella stessa task anche le uscite di comando del driver, se la gestione la inserisci nella task Slow non devi fare nulla, l’immagine di processo gestisce gli I/O nella task Slow.

    Se invece inserisci la gestione nella task Fast devi usare il FB SysSetPhrDO ma verifica il tempo di esecuzione della task per non uscire dal tempo massimo (Eventualmente aumenta il tempo). La gestione delle s chede periferiche di I/O richiede un certo tempo 100-300 uS e tu devi  leggere l’encoder e settare le uscite quindi occupi già oltre la metà del tempo disponibile. Nota: per velocizzare puoi usare gli I/O del modulo CPU, in questo caso il tempo di gestione è una decina di uS.

    in risposta a: Connessione di molti terminali a SlimLine #58094
    Sergio Bertana
    Amministratore del forum

    Immagino che la connessione sia ethernet con il protocollo Modbus TCP, puoi tranquillamente collegare più terminali ai sistemi SlimLine, di default sono gestite 3 connessioni Modbus TCP simultanee ma puoi aumentarne il numero dalla pagina web di configurazione.

    Siccome anche l’ambiente di sviluppo LogicLab usa una connessione Modbus TCP ti conviene sempre abilitarne una in più dei terminali connessi al sistema.

    in risposta a: Acquisizione encoder #58091
    Sergio Bertana
    Amministratore del forum

    Credo tu abbia utilizzato il FB IOEncoder per l’acquisizione visto che utilizzi un normale modulo di I/O, in questo caso la gestione della quadratura encoder è tutta demandata al software che campiona i due ingressi encoder in base alla velocità di esecuzione del FB che essendo in programma eseguito in task Fast è di 1 mS.

    Se vuoi reattività e sopratutto non vuoi perdere impulsi di conteggio sugli encoder devi utilizzare il FB SysGetEncoder con i moduli di estensione che integrano la gestione encoder in modo hardware permettendo di gestire segnali fino a 50 kHz. Utilizzando queste schede non è più importante in che task ne esegui l’acquisizione perchè il valore ritornato dalla acquisizione è il valore del contatore gestito in modo hardware.

    Se cerchi nel forum troverai altri posts che trattano l’argomento.

    in risposta a: Connessione inverter ad un DCS #58083
    Sergio Bertana
    Amministratore del forum

    Aggiungo al post precedente che la configurazione dell’inverter è possibile dal tastierino addossato o più semplicemente tramite l’apposito software di configurazione (Vedi articolo).

    Essendo dotato di interfaccia RS485 con protocollo Modbus, è anche possibile collegarlo al sistema DCS utilizzando una connessione seriale evitando tutta una serie di cablaggi e con possibilità di gestire un maggior numero di variabili.

    E’ anche possibile e connettere i segnali logici ed analogici del DCS ad un nostro sistema programmabile SlimLine che si interfaccierà all’inverter in Modbus (Vedi FB apposita).

Stai visualizzando 15 post - dal 1,261 a 1,275 (di 4,379 totali)