Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumAggiungo 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.
Sergio Bertana
Amministratore del forumNon 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.
Sergio Bertana
Amministratore del forumHo 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).
Sergio Bertana
Amministratore del forumPer 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.
Marzo 17, 2020 alle 8:57 am in risposta a: Passaggio dati in POST in formato JSON verso server HTTP #54035Sergio Bertana
Amministratore del forumTutte 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.
Marzo 17, 2020 alle 7:54 am in risposta a: Passaggio dati in POST in formato JSON verso server HTTP #54027Sergio Bertana
Amministratore del forumHai importato nel progetto gli oggetti HTTPClient_v1 e JSONEncode_v1 dalla libreria eLLabHTTPLib ?
La libreria si trova nella cartella di installazione di LogicLab.
Marzo 16, 2020 alle 8:46 pm in risposta a: Passaggio dati in POST in formato JSON verso server HTTP #54003Sergio Bertana
Amministratore del forumPer 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.
Sergio Bertana
Amministratore del forumIn 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.
Sergio Bertana
Amministratore del forumTutti 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.
Sergio Bertana
Amministratore del forumL’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.
Marzo 16, 2020 alle 9:18 am in risposta a: Posizionamento asse con acquisizione quota da encoder #53953Sergio Bertana
Amministratore del forumCerto è 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.
Sergio Bertana
Amministratore del forumEasyAccess 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.
Marzo 16, 2020 alle 8:52 am in risposta a: Libreria per comunicazione tra sistemi su Internet #53946Sergio Bertana
Amministratore del forumI 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.
Sergio Bertana
Amministratore del forumSui 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.
Sergio Bertana
Amministratore del forumDalla 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.
-
AutorePost