Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumSe il terminale visualizza PLC no response significa che non riceve risposta al comando Modbus che invia al dispositivo, solitamente per un errore di indirizzo. La documentazione del dispositivo non è chiarissima e sopratutto non c’è un esempio di frame Modbus.
Ti consiglio di provare con un programma di simulazione modbus su PC (Esempio Modbus Master Simulator) per cercare di capire che comandi Modbus il prodotto accetta.
Se conosci bene il protocollo Modbus puoi anche tentare con il nostro programma Toolly che permette di inviare stringhe binarie su seriale ed ha nelle utilità anche un pratico calcolatore di CRC/LRC per protocollo Modbus (Vedi l’ultimo post di questo topic).
Sergio Bertana
Amministratore del forumIl protocollo Modbus standard ha offset 1, tu hai scelto la modalità zero base addressing e quindi hai eliminato l’offset. Molti dispositivi comunque lavorano senza offset (Puo darsi che anche il DAT3014 sia così) ma l’offset al limite ti sfalsa di 1 l’indirizzamento (Basta sommare o sottrarre 1 all’indirizzo per sistemarlo).
Il fatto che i Coils funzionano però significa che l’indirizzamento è corretto, ora per quanto riguarda i registri WORD leggendo il manuale mi sembra che il comando 4x operi sui registri banco 3xxxx che sono lo specchio dei registri 4xxxx. Quindi io proverei ad usare l’indirizzo 30015 al posto del 40015.
Per l’acquisizione analogica di Pt100/1000 specie se hai molti punti ti consiglio di dare una occhiata al nostro sistema modulare SlimLine con il suo modulo di espansione I/O analogico.
Sergio Bertana
Amministratore del forumSui modem BGS2 è disponibile anche il comando AT^SNMON=”INS”, 2 (Funziona anche senza SIM) che forza il modem ad una scansione della rete alla ricerca di tutti gli operatori presenti. Il comando ritorna i dati degli operatori trovati con le seguenti indicazioni.
^SNMON: “INS”,<mode>,<rb>,<rat>,<cid>,<lac>,<plmn>,<arfcn>,<rssi>
Ecco la scansione eseguita nel nostro ufficio.
^SNMON: “INS”,0,1,3,34480,14703,”22288″,106,27
^SNMON: “INS”,0,1,3,34480,11068,”22210″,48,23
^SNMON: “INS”,0,1,3,56196,14703,”22288″,115,19
^SNMON: “INS”,0,2,3,34319,14703,”22288″,704,18
^SNMON: “INS”,0,1,3,12128,5,”22201″,10,16Il campo plmn è il codice dell’operatore (Vedi post precedente) il campo rssi indica il livello del segnale, ecco la corrispondenza in dBm. Come si vede il segnale migliore è quello di una delle 3 cellule Wind.
0: -113 dBm or less
1: -111 dBm
2..30: -109… -53 dBm
31: -51 dBm or greater
99: Not known or not detectableAgosto 20, 2018 alle 11:59 am in risposta a: SIM dati M2M da utilizzarsi per soluzioni di telecontrollo #45212Sergio Bertana
Amministratore del forumGuardando il filmato sembra che la gestione avvenga su semplice chiamata telefonica, quindi devi utilizzare SIM per traffico voce, non puoi utilizzare SIM per comunicazioni M2M.
In riferimento all’antenna, certo è preferibile averla all’esterno del cassone che sicuramente attenua il segnale. Una verifica comunque potresti farla collegando la seriale del Modem ad un emulatore di terminale e utilizzando i comandi AT provare ad eseguire una chiamata dal modem e/o utilizzare il comando AT+CSQ per vedere il livello del segnale.
Puoi dare una occhiata a questo topic per la verifica della funzionalità ed a questo topic per le informazioni sugli operatori ricevuti dal modem.
Sergio Bertana
Amministratore del forumTramite l’oggetto Video In è possibile visualizzare sullo schermo del terminale il segnale proveniente da una telecamera (Sono gestite telecamere USB, IP e segnale da ingresso video) vedi la tabella comparazione per la scelta del modello corretto.
L’oggetto non solo visualizza il segnale della telecamera ma permette anche di salvarlo su disco per poterlo visualizzare in seguito con l’oggetto Picture View proprio come un NVR.
Utilizzando un client VNC (Topic) è possibile interagire con il pannello da PC, Tablet o Smartphone visualizzando lo schermo ed agendo sui comandi. Con EasyAccess (Topic) è possibile accedere al pannello in VNC anche da remoto via Internet.
Se nella schermata del pannello è visualizzata la telecamera anche da remoto potrò visualizzare l’immagine che arriva dalla telecamera. Naturalmente se il pannello ha uno schermo molto grande (Tu ipotizzavi un 12 pollici) e lo visualizzi su uno schermo ridotto tutte le immagini saranno scalate.
Luglio 31, 2018 alle 8:14 am in risposta a: Connessione a router Conel UR5I v2 in TCP per gestione SMS #45200Sergio Bertana
Amministratore del forumRiguardo all’errore, nel progetto hai incluso tutta la liberia o solo gli oggetti (FB) che utilizzi, ricordo che la libreria eModemLib_F000 và inclusa nel progetto. La variabile ModemID và comunque appoggiata su di una variabile UDINT.
Il FB ModemHttpGet non è utilizzabile con il router, se devi fare connessioni HTTP puoi usare i FBs SysTCPClient e HTTPClient, usando il router per la connessione Internet via Ethernet (Dovrai definirne l’IP come Gateway).
Dallo spionaggio vedo che il numero a cui inviare l’SMS non è compreso tra apici (“nnnnnn”), probabilmente non hai impostato il tipo 1 nel parametro Type del FB ModemCore_v5. Il router Advantech (Ex Conel) a differenza dei modem standard vuole che il numero a cui inviare l’SMS sia compreso tra apici.
Luglio 30, 2018 alle 7:04 am in risposta a: Connessione a router Conel UR5I v2 in TCP per gestione SMS #45193Sergio Bertana
Amministratore del forumIl supporto ai routers ex Conel ora Advantech è disponibile dalla libreria eModemLib_Fo00 che puoi scaricare dal ns sito. Tutto quello che hai fatto mi sembra corretto, ma per capire meglio il problema ti consiglio di attivare lo spionaggio (SpyOn:=TRUE) sulla ModemCore.
Con lo spionaggio attivo potrai verificare se il router risponde ai comandi inviati dalla FB ModemCore e comunque avere utili informazioni per capire la natura del problema. In
questo topicè indicato come eseguire un test di invio SMS tramite connessione TCP, i comandi utilizzati sono gli stessi che utilizza la FB ModemCore.Luglio 27, 2018 alle 6:57 am in risposta a: Realizzare DataLogger con storicizzazione su server FTP #45171Sergio Bertana
Amministratore del forumL’ultima versione della FTPClient_v1 si trova nella libreria networking eLLabNetworkLib_B000, scaricabile dal sito. La nuova versione v1 rispetto alla precedente gestisce l’allocazione dinamica dei buffer di memoria (Usando la funzione RMalloc). In questo modo è possibile dimensionare a piacere i pacchetti TCP scambiati con il server (Il massimo è 1500 bytes).
L’errore 10063030 indica che non è stata definita la dimensione del buffer (Parametro DBSize), probabilmente hai usato un progetto realizzato con la precedente versione e non hai definito il parametro. Dai una occhiata all’estratto del manuale e vedi l’esempio riportato.
Luglio 23, 2018 alle 3:50 pm in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45164Sergio Bertana
Amministratore del forumIl problema capita solo se attivo lo spionaggio, c’è un bug nella gestione dello spionaggio del frame trasmesso. Ho corretto il bug e tra poco sarà disponibile una nuova versione della libreria eLLabNetworkLib_B100 .
Sergio Bertana
Amministratore del forumGiusta osservazione, per calcolare la velocità di rotazione di un asse si possono utilizzare due metodi.
Contare gli impulsi generati da un generatore posto sull’asse, come nel tuo caso e contando il numero di impulsi in un certo tempo si può determinare la velocità dell’asse. Questa soluzione è adatta quando la velocità di rotazione è elevata (Molti impulsi nel tempo di campionamento). Se la velocità è lenta ci sono pochi impulsi nel tempo e quindi si ha una acquisizione imprecisa.
Misurare il tempo che intercorre tra un impulso e l’altro, questa soluzione è adatta quando la velocità di rotazione è lenta. Se la velocità è elevata il tempo tra gli impulsi è molto poco e quindi difficile da acquisire.
Conclusioni, se vuoi spaccare il capello in 4 puoi gestire entrambi i modi di acquisizione, passando da uno all’altro in base alla velocità di rotazione.
Luglio 23, 2018 alle 7:26 am in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45153Sergio Bertana
Amministratore del forumVisto il problema, in effetti non veniva inizializzato il buffer che contiene il nome del topic. Ho provveduto a correggere il FB ed a rilasciare la nuova versione di libreria eLLabNetworkLib_B000 scaricabile dal sito.
Luglio 21, 2018 alle 7:59 am in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45146Sergio Bertana
Amministratore del forumSi se la dimensione del messaggio ricevuto da un topic ha lunghezza pari a 0 o superiore alla dimensione del buffer definito per contenerlo (Parametro VBLengthRxD) il messaggio viene scartato segnalando errore 10067288.
Luglio 21, 2018 alle 7:52 am in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45143Sergio Bertana
Amministratore del forumSi certo è possibile sottoscriversi a tutti i topics che si desidera, ma venendo al tuo problema, se ho ben capito con TopicRxD tu intendi la variabile stringa il cui indirizzo è passato in:
MQTT.VBufferRxD:=ADR(TopicRxD); (* Value buffer (Received) *)
Quindi nella stringa tu vedi la ricezione del valore pubblicato da qualcuno su quel topic (Nel tuo caso la app sullo smartphone). Bene ho provato esattamente la tua situazione (Utilizzando il programma IOOnMQTT scaricabile da questa knowledge) e non noto alcun problema, io uso la app MyMQTT per i test.
Non è che sia l’app ad inviare insieme al dato anche il nome del topic?
Sergio Bertana
Amministratore del forumLa risposta è nell’errore, la funzione ValueScale ha più operandi
Input (REAL) Valore in ingresso da scalare.
ILow (REAL) Limite minimo del valore in ingresso da scalare.
IHigh (REAL) Limite massimo del valore in ingresso da scalare.
OLow (REAL) Limite minimo del valore in uscita scalato.
OHigh (REAL) Limite massimo del valore in uscita scalato.E tu non li hai messi. Devi scrivere ad esempio se vuoi trasformare un ingresso 4-20 mA in 10-50 PSI:
LD Sensore (* Input, Valore in ingresso da scalare *)
ValueScale 4.0, 20.0, 10.0, 50.0
ST PressioneSergio Bertana
Amministratore del forumLa risposta alla tua domanda è nel manuale di LogicLab, con LogicLab vi sono due manuali, uno è quello che spiega il funzionamento del programma (F1 su una qualunque finestra del programma) è l’altro è quello con i riferimenti a tutte le funzioni e FB fornite con i nostri prodotti (F1 su un nome di funzione o FB).
Ma venendo alla tua domanda per eseguire una funzione da IL basta metterne il nome come primo operando di una riga di programma. Occorre ricordare che il primo parametro alla funzione è passato tramite l’accumulatore, mentre gli altri vanno posti in linea alla definizione. Il risultato della funzione è ritornato in accumulatore. Ecco lo screenshot con un esempio.
-
AutorePost