Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,561 a 1,575 (di 4,504 totali)
  • Autore
    Post
  • in risposta a: Informazioni su utilizzo server MySQL #54119
    Sergio Bertana
    Amministratore del forum

    Aggiungo il progetto di esempio DatabaseServerDemo, un’altro progetto che utilizza la connessione ad un database MySQL per esportare nel database dei dati acquisiti dal terminale.

    in risposta a: Informazioni su utilizzo server MySQL #54117
    Sergio Bertana
    Amministratore del forum

    Non specifichi se si tratta di modelli MT8102iP o MT8102iE, come puoi vedere dal capitolo Appendix A del manuale EsyBuilder Pro (Il documento è scaricabile dal ns sito). i modelli iP essendo la gamma entry level della famiglia non possono gestire nè le ricette ne la connessione al server SQL.

    I modelli iE hanno invece la possibilità di gestire ricette sul loro database interno ma non possono connettersi a database SQL esterni.

    Per poter gestire la connessione a database SQL esterni devi utilizzare prodotti della gamma cMT.

    Nel forum trovi topics che trattano gli argomenti che cerchi, in questo topic  ed in questo topic si parla di ricette.

    In questo topic si parla di connessione a server SQL.

    Allego per il download il progetto SQLQueryDemo che si connette ad un server MySQL (Nel progetto si utilizza la connessione in localhost). Il progetto si può testare direttamente sul PC in emulazione, occorre avere il server MySQL attivo.

    in risposta a: Macro per gestione items ID ricetta #54095
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un semplice progetto con una macro che esporta il nome del’Item della ricetta, ecco la macro:

    macro_command main()
    
    char nome[5]
    short i,num
    short  loc=0 
    
    // verifico il numero di ricette presenti
    
    GetData(num, "Local HMI", RECIPE, "test.Count")
    num=num-1
    
    // Prelevo i singoli nomi e li metto su local word
    // Modificare SetData se si vuole trasferire su PLC
    
    for i=0 to num
      RecipeGetData(nome[0], "test.NOME",i)
      loc=i*5
      SetData(nome[0], "Local HMI", LW, loc, 5)
    next i
    
    end macro_command

    E’ possibile scaricare il progetto GetRecipeItem per testarlo da EasyBuilder Pro direttamente in emulazione su PC (Download).

    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.

Stai visualizzando 15 post - dal 1,561 a 1,575 (di 4,504 totali)