Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Gennaio 18, 2021 alle 8:30 am in risposta a: Connessioni Modbus RTU/TCP con rete di dispositivi #58812
Sergio Bertana
Amministratore del forumSi certo puoi usare il FB ModbusMaster con connessione seriale per gestire la comunicazione in RTU e visto che mi parli di Host PC credo che anche loro agiscano come slave Modbus quindi puoi usare il FB ModbusMaster anche per comunicare con loro in TCP/IP usando il FB SysTCPClient. C’è già un esempio nella pagina del FB ModbusMaster.
Se i registri sono continuativi puoi utilizzare più istanze della FB ModbusMaster in cascata, in pratica il Done della 1a FB si connette all’Enable della successiva e così via fino all’ultima il cui Done negato si connette all’Enable della 1a.
Se invece i registri sono distanti tra di loro e devi quindi gestire più richieste Modbus puoi utilizzare il FB ACModbus.
Siccome devi collegarti a più hosts se vuoi avere più velocità puoi istanziare 6…8 FB SysTCPClient e altrettante istanze ModbusMaster in modo da poter comnunicare in parallelo con tutti gli Hosts.
Gennaio 15, 2021 alle 10:56 am in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58807Sergio Bertana
Amministratore del forumQuindi se ho capito non utilizzi il FB EastronSDM120, ma vuoi provare a realizzare tu il programma con il FB ModbusMaster?
Allora se devi comunicare con più dispositivi in RS485 multidrop devi utilizzare la tecnica delle FB in cascata, in pratica istanzi più FB ModbusMaster tutte condividono il File in uscita dalla SysSerialPort. Il Done della prima FB lo colleghi all’Enable della seconda e così via, il Done dell’ultima istanza lo colleghi invertito all’Enable della prima. Puoi intrudurre una pausa di attesa tra le comunicazioni defindendo il valore di Delay.
Ma molto meglio in questo caso utilizzare il FB ACModbus, che ti permette di connetterti a più dispositivi in multidrop utilizzando un solo FB ModbusMaster.
Sergio Bertana
Amministratore del forumYes the SlimLine must be powered with a voltage from 10 to 30 Vdc.
Gennaio 15, 2021 alle 8:23 am in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #58798Sergio Bertana
Amministratore del forumQuando parli di tutorial credo tu ti riferisca a questo video, dove ho spiegato come eseguire l’acquisizione dei dati dagli Energy meter SDM120.
Ora immagino tu abbia utilizzato per la lettura il FB EastronSDM120, che ne gestisce completamente la lettura. Ma come vedi il FB ha il parametro Node dove devi definire il nodo Modbus del meter da acquisisre.
In pratica ogni SDM120 deve avere il proprio indirizzo di nodo uno diverso dall’altro, di default l’indirizzo di nodo è 1, per cambiarlo devi seguire le informazioni del manuale, in pratica devi tenere premutoil tasto sul frontale per entrare in Set parametri e poi inviare un comando Modbus di scrittura indirizzo di nodo.
Sergio Bertana
Amministratore del forumRicordo che attualmente SlimLine Raspberry rispetto alle altre versioni di SlimLine, non è realtime e quindi i task Slow e Fast sono eseguiti con jitter che potrebbero essere elevati in relazione al carico dei vari core della CPU. Quindi nel tuo caso non conoscendo quanto il server MySQL appesantisca la CPU, non posso darti una risposta precisa.
Può lanciare il comando “top” o “htop” da una connessione SSH (Utilizza Putty o MobaXTerm) per verificare il carico CPU.
Prossimamente ma al momento non ho una data, nelle prossime versioni del runtime LogicLab, ci sarà una FB utilizzabile per calcolare sia i tempi di esecuzione dei vari task che i jitter di ognuno di essi.
Gennaio 13, 2021 alle 1:28 pm in risposta a: EasyBuilderPro, modifica multipla attributi oggetti #58780Sergio Bertana
Amministratore del forumMettendo a video la visualizzazione delle librerie shape ed immagine come da screenshot, puoi selezionare più oggetti e poi con un doppio click sulla nuova immagine da usare saranno tutte cambiate.
Gennaio 13, 2021 alle 12:21 pm in risposta a: Realizzare una comunicazione TCP/IP con protocollo libero #58777Sergio Bertana
Amministratore del forumSui terminali Weintek direi che la soluzione FreeProtocol sia corretta, eventualmente da verificare l’uso dell’INPORT, di questi ce ne sono 3 differenti a seconda del tipo di risposta che può arrivare.
Proverei con inport2 in modo da poter non definire il numero di byte che mi aspetto ma tenendo aperta la lettura per x ms quindi analizzarli.
[Description] Read data from a communication port. After the data is read, if there's no upcoming data during the designated time interval, the function returns. [Usage] INPORT2(response[start], device_name, receive_len, wait_time) note : the length of data being recieved is written into receive_len (unit : byte). [Example] short wResponse[6], receive_len, wait_time=20 INPORT2(wResponse[0], "Free Protocol", receive_len, wait_time) //wait_time's unit : millisecond if receive_len >= 6 then SetData(wResponse[0], "Local HMI", LW, 0, 6) //set responses to LW0 end if
Aggiungo, visto che produciamo PLC che utilizzando un sistema SlimLine con il FB SysTCPClient puoi gestire la connessione al server e poi hai le classiche funzione Sysfread, Sysfwrite, SysVsscanf, SysVfprintf, ecc.. per gestire il tuo protocollo in piena libertà.
Sergio Bertana
Amministratore del forumSe si parla di pagine base, basta andare a scrivere il valore della pagina che si vuole aprire (Quindi chiudendo quella attuale) su una LW libera ed impostarla nelle funzioni PLC come cambio pagina.
Se invece parliamo di una pagina di pop up da chiudersi è meglio richiamarli come pagina diretta o indiretta quindi andare ad azzerare il bit o la word di richiamo cosi da chiuderla.
Sergio Bertana
Amministratore del forumNon conosco il prodotto in questione ma immagino che il prodotto sia un server Modbus e tu debba connetterti come client. Quindi puoi utilizzare il FB TCPClient per aprire la connessione TCP verso il dispositivo, poi passerai il File in uscita come parametro al FB ModbusMaster che potrai parametrizzarlo in base al codice funzione ed indirizzo Modbus necessario.
In fondo alla pagina di manuale del FB ModbusMaster c’è il programma ST_ModbusMaster_v1 che puoi copiare ed importare in un tuo progetto LogicLab che è già pronto con tutto quello che serve, in realtà c’è anche la gestione da porta seriale che puoi cancellare.
Se le variabili Modbus da leggere/scrivere su dispositivo sono molte e distanti tra di loro e quindi richiedono l’utilizzo di più pacchetti Modbus ti consiglio di abbinare il FB ACModbus che ti semplifica il lavoro.
Sergio Bertana
Amministratore del forumNon è possibile creare cartelle sul file system da programma, l’unico modo per creare nuove cartelle è utilizzando una connessione FTP al sistema. Dal client FTP potrai gestire completamente il file system creando e cancellando cartelle, rinominando file e cartelle.
Le cartelle create potranno poi essere accessibili da programma con la funzione Sysfopen in cui definirai il percorso completo del file da aprire o da creare (Nel caso lo apri in write od in append).
Sergio Bertana
Amministratore del forum- Usando i TAGS per pagine html…
E’ vero che per gestire variabili da pagina web utilizzando il server HTTP del sistema devi allocare le variabili in DB100, ma puoi definire la tua struttura dati che poi allocherai nella DB100 rendendone posibile l’accesso da pagine web e questo senza creare doppioni. - Potrei usare il blocco HTTPServer…
Se utilizzi il FB HTTPServer devi agganciarlo ad una porta libera, volendo utilizzare la 80 devi definire una porta diversa per il server HTTP del sistema. Potrai così utilizzare il FB per visualizzare tutte le tue pagine e gestire lo scambio dati in AJAX. - Qual è il modo migliore…
Per passare molti dati alla pagina web certo il modo migliore è utilizzare il FB HTTPServer che ti permette di definire in completa libertà le stringhe da inviare al browser.
Sergio Bertana
Amministratore del forumNon riesco a spiegarmi il motivo del tuo problema, giorni fà ti ho mandato una eMail in privato chiedendoti di chiamarmi al telefono per aprire una sessione TeamViewer per vedere il problema direttamente sul tuo sistema.
Magari è finita nello spam, se vuoi contattami per telefono così vediamo di capire il problema.
Sergio Bertana
Amministratore del forumNaturalmente avendo la necessità di dover comunicare con più drivers devi forzatamente utilizzare una connessione in RS485. Meglio in questo caso sarebbe stato utilizzare un modulo CPU MPS054B110 che ha già l’interfaccia RS485 isolata ed essendo basato su CPU CortexM7 avresti anche una maggiore velocità di esecuzione ed un maggior spazio di programma. Visto che disponi di un MPS053 puoi eventualmente utilizzare un convertitore RS232/Rs485 con i vari adattatori per RJ45 per lo scopo.
Certo devi tenere presente quale è la velocità richiesta nella comunicazione, tenendo conto che il massimo baud rate e 115200 (ca 10000 caratteri al secodo) e nel protocollo Modbus oltre ai dati ci sono i controlli ed ad ogni pacchetto vi è un pacchetto di risposta con tutti i tempi relativi per gestirli.
Sergio Bertana
Amministratore del forumNel parsing dei TAGs è importante la posizione delle virgole e degli spazi, devi scrivere la TAG nel modo:
Intero: <!--["%d", UINT, 10]-->
Così vedrai che tutto ti funzionerà.
Sergio Bertana
Amministratore del forumVista la dipendenza delle pagine web dalla versione del firmware del sistema abbiamo realizzato e distribuiamo un package che contiene tutto quello che serve per eseguire l’upgrade del sistema puoi trovare le informazioni sull’upgrade dei sistemi ed eseguire il download del package dalle pagine relative sia ai sistemi basati su ARM7 che CortexM7.
Aggiungo che dopo avere aggiornato il firmware e caricato le nuove pagine, devi dare da telnet (Loggandoti come Admin) il comando “CfgCommit -d” che aggiorna i diritti di accesso alle varie directories del sistema seguito dal comando “Reboot”. Puoi verificare nella pagina Security come sono settati i diritti.
C:/Web - Anonymous - Admin C:/Web/webpages - Guest - Admin
Attenzione che il comando resetta a default l’indirizzo IP, sui sistemi Cortex si attiva il client DHCP ed aspetta l’indirizzo dal server. Se non c’è server DHCP va in IP di fallback 192.168.0.122. Per vedere che indirizzo IP assume il sistema utilizza la funzione Discovery di Toolly.
Per le impostazioni occorre agire sull’icona ingranaggio come da screenshot.
- Usando i TAGS per pagine html…
-
AutorePost