Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,441 a 1,455 (di 4,381 totali)
  • Autore
    Post
  • in risposta a: Blocco PLC su lettura encoder in task Fast #54049
    Sergio Bertana
    Amministratore del forum

    Per curiosità ho analizzato il problema ed ho eseguito il calcolo del tempo di esecuzione del tuo programma, ho inserito in testa al tuo programma il salvataggio del tempo di sistema, ed in coda il calcolo del tempo di esecuzione.

    VAR
        TimeBf : UDINT; (* Time buffer (uS) *)
        ExTime : UDINT; (* Tempo di esecuzione (uS) *)
        MaxTime : UDINT; (* Massimo tempo di esecuzione (uS) *)
    END_VAR
    
        TimeBf:=SysGetSysTime(TRUE);
        ...
        Programma cliente di cui calcolare tempo esecuzione.
        ...
        ExTime:=SysGetSysTime(TRUE)-TimeBf;
        IF (ExTime > MaxTime) THEN MaxTime:=ExTime; END_IF;

    Il tempo di esecuzione è di 315uS con un massimo di 320uS quindi occupa un terzo del tempo di task (1mS), infatti gira senza problemi. Ora visto che tu lamentavi il problema immagino avessi ridotto il tempo di esecuzione della task Fast, o che avessi altro codice da eseguire.

    Nota: Tutto il tempo è necessario per accedere alla scheda periferica di lettura encoder, se commento la riga di codice che esegue la lettura il tempo necessario per eseguire il programma passa a 7uS.

    in risposta a: Passaggio dati in POST in formato JSON verso server HTTP #54035
    Sergio Bertana
    Amministratore del forum

    Tutte le librerie sono comunque scaricabili dalla pagina di download del sito https://www.elsist.biz/lista-download/. Basta inserire nella casella di ricerca il nome o parte di esso della libreria cercata.

    Nota: Alle librerie inizialmente veniva aggiunto il suffisso _A000 dove la lettera ed i numeri indicavano la versione. Con l’ultima versione di LogicLab il suffisso è sparito e la libreria riporta un numero di versione che è visualizzato e gestito da LogicLab.

     

    in risposta a: Passaggio dati in POST in formato JSON verso server HTTP #54027
    Sergio Bertana
    Amministratore del forum

    Hai importato nel progetto gli oggetti HTTPClient_v1 e JSONEncode_v1 dalla libreria eLLabHTTPLib ?

    La libreria si trova nella cartella di installazione di LogicLab.

    in risposta a: Passaggio dati in POST in formato JSON verso server HTTP #54003
    Sergio Bertana
    Amministratore del forum

    Per fare quello che ti serve abbiamo un paio di blocchi funzioni già pronti che ti semplificano tutto il lavoro.

    Puoi utilizzare il FB HTTPClient per connetterti al server HTTP e passare in POST i parametri. Copiando l’esempio del manuale hai già praticamente il programma scritto. Dovrai solo impostare il parametro Method:=1 per passare i parametri in POST.

    Per creare la stringa JSON da passare al server puoi utilizzare il FB JSONEncode.

    in risposta a: Convertire in RS485 una seriale RS232 #53991
    Sergio Bertana
    Amministratore del forum

    In merito alla alimentazione, se leggiamo il datasheet del prodotto vediamo che prende l’alimentazione dai segnali della RS232.

    ATC-106 is powered from the RS-232 data TD or handshake lines. It will try to get its power from RTS or DTR (at least +5.5V or -5.5V in the quiescent state). If there are no RS-232 control signals (DTR or RTS) available. ATC-106 will get power from the data input TD pin (at least -5.5V in the quiescent state). 

    Nel manuale si aggiunge anche:

    In some case maybe no handshake lines are available and themTD can not drive ATC-106, then an external 5VDC/40mA power supply can be connected to two terminals on the RS-485 connector between terminals +5VDC and GND.

    In merito alla commutazione, viene usato un circuito noto ed utilizzato in tutti i convertitori, in pratica alla variazione del segnale Tx della RS232 si commuta immediatamente la parte RS485 in trasmissione per il tempo necessario a trasmettere il bit di dato. Il tempo è calcolato per soddisfare tutto il range operativo di baud rate.

    Io utilizzo l’ATC-106 da molto tempo per aggiungere porte RS5485 ai nostri moduli SlimLine e non ho mai avuto problemi ne di commutazione ne di alimentazione, ma sugli SlimLine abbiamo il segnale DTR da cui il convertitore può alimentarsi. Sinceramente non ho mai provato ad usarlo su di una seriale a 3 fili Rx-Tx-GND.

    in risposta a: Convertire in RS485 una seriale RS232 #53988
    Sergio Bertana
    Amministratore del forum

    Tutti i convertitori Seriale/Seriale eseguono automaticamente la commutazione Rx/Tx.

    Normalmente sono in Rx e convertono in RS232 i dati ricevuti dalla RS485, quando la RS232 và in trasmissione commutano automaticamente in Tx.

    in risposta a: Convertire in RS485 una seriale RS232 #53985
    Sergio Bertana
    Amministratore del forum

    L’ATC-106 è il modello più economico di convertitore RS232/RS485, questo convertitore si autoalimenta dalla seriale non occorre alimentarlo.

    Nella gamma dei convertitori Seriale/Seriale abbiamo altri convertitori RS232/RS485 che sono galvanicamente isolati e garantiscono una protezione sulla connessione ma vanno alimentati e se tu hai a disposizione il 24 VDC il modello adatto potrebbe essere l’ATC-108N.

    in risposta a: Posizionamento asse con acquisizione quota da encoder #53953
    Sergio Bertana
    Amministratore del forum

    Certo è fattibile ma bisogna scriversi tutto l’algoritmo di controllo, non abbiamo FB specifici per chiudere il loop di posizionamento su assi.

    Quando occorre gestire assi in loop di spazio c’è sempre un motore con il suo driver, ed oggi tutti i moderni drivers sia per motori stepping  che per motori brushless hanno già al  loro interno tutta la gestione del loop di posizionamento. Quindi molto meglio dialogare con il driver in RS485 o CAN e lasciare il compito della regolazione al driver.

    in risposta a: EasyAccess per connettermi a PLC e telecamera #53950
    Sergio Bertana
    Amministratore del forum

    EasyAccess permette di creare una connessione Ethernet tra l’app su PC o su smartphone ed il pannello senza dover modificare le impostazioni di rete. E’ sufficiente che il pannello sia connesso ad Internet, per la connessione puoi usare qualsiasi router (Noi abbiamo i modelli WLink, ad  esempio il WL-R100).

    Visto che la connessione  funziona anche su reti NATtate puoi usare qualsiasi SIM che permette una connessione Internet, non occorrono SIM particolari M2M o con IP pubblico.

    Per quanto riguarda la possibilità di connetterti al PLC, alla telecamera od a qualsiasi dispositivo IP connesso al pannello, EasyAccess ha la funzionalità Passthrough che permette di mappare un qualsiasi indirizzo IP della rete del pannello e di vederlo da remoto. Cambiando di volta in volta l’indirizzo potrai dialogare con tutti i dispositivi. Attenzione questa funzione è operativa solo da PC dallo smartphone puoi solo operare sul pannello.

    Per quanto riguarda i costi la licenza EasyAccess (Si acquista e non ha costi ripetitivi) include 1 GB di dati mensili ad alta velocità per ogni HMI. Superato il limite di banda la velocità diminuisce, ma è possibile acquistare ulteriore traffico.

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

    I vari sistemi scambiano un’area di memoria, stà poi al programma che viene fatto a decidere se appoggiare la memoria su I/O fisici o su gestire variabili interne.

    Ad esempio si potrebbe comunicare variabili acquisite e/o impostare variabili su altri sistemi connessi in Modbus.

    in risposta a: Modificare il tempo di loop di una task #53944
    Sergio Bertana
    Amministratore del forum

    Sui sistemi ARM e Cortex la funzione di configurazione tempi di esecuzione tasks di LogicLab non è operativa. Il tempo di esecuzione delle tasks Slow e Fast è impostabile solo attraverso la funzione SysSetTaskLpTime, set task loop time.

    in risposta a: Connection mode sempre disabilitato in LD #53941
    Sergio Bertana
    Amministratore del forum

    Dalla versione 3 di LogicLab è stata recepita in modo più stringente la normativa IEC ed è stato modificato l’editor dei programmi LD. Con il nuovo editor non è più possibile connettere i rami intermedi, quindi nel tuo caso devi forzatamente appoggiare l’uscita di una FB su di una variabile per poterla poi passare al blocco successivo.

    E’ rimasta comunque la possibilità di utilizzare il vecchio editor, anche per compatibilità con i vecchi progetti. Anche se consiglio di non farlo è possibile dal menù Project->Option togliere la spunta sulla scelta dell’editor (Screenshot).

    Consiglio quando possibile di realizzare programmi in FBD, l’editor FBD è molto più flessibile, l’uso del LD lo limiterei ai programmi puramente logici con utilizzo di variabili BOOL.

    in risposta a: Eseguire parsing di file TXT o CSV con LogicLab #53877
    Sergio Bertana
    Amministratore del forum

    Nei vari programmi che trovi nel forum il parsing di file CSV è sempre fatto nel modo in cui dici tu, si esegue la lettura dal file di una riga e si procede al parsing. Poi ci si posiziona sulla riga successiva e così di seguito (Vedi Sysfseek).

    In questo topic trovi anche un FB che permette di leggere i dati di una cella di un file CSV indicando riga e colonna della cella desiderata.

    Se per tua comodità vuoi scrivere un programma in C per gestire il parsing, puoi vedere in questo articolo come estendere il run time PLC LogicLab aggiungendo un PlugIn realizzato ad-hoc.

    Comunque non ci sono problemi a fare coesistere sul modulo Raspberry altri processi eseguiti in parallelo al programma LogicLab, in questo articolo c’è un esempio di utilizzo di Node-RED.

    in risposta a: Connettere centralino telefonico a PC #53845
    Sergio Bertana
    Amministratore del forum

    Se come immagino per la comunicazione sono sufficenti i segnali Rx e Tx della porta seriale, puoi utilizzare una coppia di convertitori Seriale/Seriale come ATC-108N tra di loro interconnessi in RS422. Per la connessione tra i due convertitori devi utilizzare un cavo a due doppini twistati (Và benissimo utilizzare due coppie di un cavo CAT5). La comunicazione in RS422 supporta connessioni fino a 1200 mt di distanza.

    Lato PC puoi sostituire il convertitore USB/Seriale con un ATC-850 e collegarlo direttamente all’ATC-108 lato centralino.

    La soluzione in RS422 è la più semplice, ma se non hai la possibilità di avere un cavo diretto tra il PC ed il centralino, puoi utilizzare i convertitori Ethernet/Seriale, o WiFi/Seriale, in questo caso è possibile lato PC utilizzare un software di VirtualCOM e quindi un solo convertitore lato centralino.

    Ma se guardi nel forum vedrai che il software di VirtualCOM alcune volte và in conflitto con programmi PC e quindi per ovviare al problema anche qui puoi usare due convertitori Ethernet/Seriali uno connesso alla seriale del PC ed uno connesso al centralino.

    in risposta a: Diritti di accesso alle directories su disco #53821
    Sergio Bertana
    Amministratore del forum

    Il sistema operativo Linux è un sistema operativo multiutente che consente a più utenti di accedere e utilizzare il computer. Per proteggere il computer (e la privacy degli utenti), ai vari utenti sono assegnati dei diritti di accesso alle varie directories su disco. Il comando ls -l /directory permette di visualizzare i diritti assegnati ai vari files/directories, ecco un esempio:

    pi@MPS055A200-00001:~ $ ls -l /opt/elsist/logiclab/
    -rw-r--r-- 1 root root   20412 feb 21 11:24 AlTracePrint
    ...
    drwxr-xr-x 4 root root    4096 feb 21 08:28 Web
    drwxr-xr-x 6 root root    4096 feb 21 08:28 webdata

    Come si vede la cartella Web è accessibile dall’utente root e dagli utenti appartenenti al gruppo root, l’utente di default (Username pi, password raspberry) appartiene al gruppo pi. Per poter accedere alle altre cartelle occorre assegnare all’utente pi gli stessi diritti dell’utente root, per fare questo occorre anteporre sudo ad ogni comando (Vedi articolo).

    Per rispondere alla tua domanda, essendoti loggato al sistema come utente pi, non puoi trasferire files direttamente nella directory /opt/elsist/logiclab/Web, ma puoi trasferirli in una cartella accessibile da pi (Esempio /tmp, o /home) e poi da console ssh trasferirlo nella cartella di destinazione con il comando cp. Ecco ad esempio il comando per trasferire il file Home.htm dalla cartella /tmp alla cartella desiderata.

    sudo cp /tmp/Home.htm /opt/elsist/logiclab/Web/
Stai visualizzando 15 post - dal 1,441 a 1,455 (di 4,381 totali)