Marcello
Risposte nei forum create
-
AutorePost
-
Marcello
PartecipanteDi solito quello standard viaggia su TTL quindi ti servirà un convertitore TTL->RS232 poi necessiterai del protocollo di comunicazione del lettore tessere.
Con slimline ho gestito il lettore di tessere magnetiche delle “casette di distribuzione dell’acqua”, tessere RFID ecc… quindi posso assicurarti che una volta ottenuto il protocollo di comunicazione potrai certamente leggere i dati contenuti nella tessera.
Marcello
PartecipantePosto queste informazioni sperando possano essere utile per altri.
Dopo aver controllato tutti gli indirizzi IP e verificato che non ci fossero problemi di sovrapposizioni e non risolvendo il mancato funzionamento, ho installato un programma pilota che mettesse in evidenza lo stato di tutte le periferiche comprese schede SD e porte USB. Il problema in questo caso non si verificava e avevo tutti check OK sullo stato di comunicazione di tutti i dispositivi.
Ma se rimettevo il programma originale il Cloud HMI ritornava l’errore solito.
A questo punto ho installato un altro programma pilota che facesse, con una Macro, la scansione di tutte le memorie (LB,LW,PLW,RW, EM ecc…), arrivato a scansionare le memorie EM è andato in crash.
Ho estratto la scheda SD e l’ho trovata illeggibile (anche se lo stato di dava OK). Ne ho messa un’altra e installato il programma originale. Ripartito tutto alla perfezione. Considerando che non utilizzo i Get o i Set con il suffisso Ex nelle Macro credo che il programma si bloccasse per la memoria corrotta sulla scheda SD.
I condomini mi hanno poi confermato che c’era stato un brutto sbalzo di tensione giorni prima che aveva fulminato molte lampade a led, magari quello sbalzo di tensione ha interferito sulla scrittura della scheda e l’ha danneggiata.
Dicembre 9, 2021 alle 8:35 am in risposta a: Backup (Scaricamento) programma pannello serie IE #62435Marcello
PartecipanteRiprendo questo topic per formulare una domanda sulla decompilazione.
Un vecchio cliente ci ha contattato per delle modifiche/implementazioni sul sistema di controllo climatico del suo condominio realizzato con un “pannello” cMT e tre SlimLine. Purtroppo negli ultimi 5 anni ho cambiato più di un PC e nei vari backup sono andate perse quasi tutte le icone che avevo realizzato per lui. Ho pensato di recuperarle scaricando il programma CXOB dal “pannello” cMT e decompilarlo. Purtroppo ho scoperto che allora avevo flaggato su “impedisci decompilazione”.
E’ possibile in qualche modo recuperare le librerie shape e immagini sicuramente salvate all’interno del programma?
Marcello
PartecipantePer cambiare l’indirizzo all’SDM120 si deve premere il tasto del dispositivo per 3 secondi, o fino a quando non appare il la scritta SET. Poi tramite il comando 16 Preset multiple registers inviare il numero del nuovo nodo in formato FLOAT all’indirizzo di memoria 21
Esempio se dal nodo 1 vuoi impostare il nodo 2 devi inviare il comando:
01 10 00 14 00 02 04 40 00 00 00 <CRC><CRC>Definisci una variabile REAL (Esempio NuovoNodo:=2.0;), poi usando l’FB ModusMaster la configuri nel modo
MM.Node:=1; MM.FCode:=16#10; MM.Address:=21; MM.Points:=2; MM.Buffer:=ADR(NuovoNodo);
Nota: Sviluppando il programma SDM120SetUp mi sono accorto che c’è una differenza di endianness tra lo SlimLine ed il meter quindi il valore REAL da scrivere và swappato.
Dicembre 3, 2020 alle 9:26 am in risposta a: Domande su utilizzo del blocco funzione ModbusMaster #58390Marcello
PartecipanteRiprendo questo post per capire la differenza degli errori di tipo 10007500-7. Mi spiego meglio. Ho uno SlimLine Cortex M7 [MPS054B110], tramite connessione TCP/IP interrogo un dispositivo modBus che mi restituisce su 8 indirizzi diversi 4 BYTE ognuno per comporre dei valori float (REAL). La richiesta avviene in continuo e mi capita in modo assolutamente casuale (ho verificato di tutto: ora, contemporaneità con altre funzioni ecc..) che dopo 2-3 giorni o dopo 5, la comunicazione si interrompa generando l’errore 10007505.
L’unico modo per riavviare la comunicazione è eseguire il reboot dello SlimLine. Pensando potesse essere un problema del dispositivo, ho collegato un PC al dispositivo stesso e con un programmino in Python l’ho monitorato per 2 settimane consecutive ma la comunicazione non si è mai interrotta. In dettaglio questo errore cosa significa oltre al generico “Errore in ricezione frame risposta (Carattere errato, lunghezza errata, CRC)”?. Vi viene in mente qualche altra prova da effettuare?
Marcello
PartecipanteBuongiorno, volevo sapere se via ModBus da terminale Weintek sia possibile accedere alle memorie di sistema in sola lettura %MW0.130, %MW0.132 e %MB0.567.
Marcello
PartecipanteSulla FB non vedo il parametro Header, la mia HTTPClient l’ho presa dalla libreria eLLabNetworkLib_B210.plclib.
Marcello
PartecipanteStò usando con successo la FB HTTPClient e ora che ci sto prendendo gusto, vorrei poter usare questa FB per configurare via HTTP dei dispositivi connessi alla rete, in particolare cambiare l’indirizzo IP, settare dei parametri ecc… Ho richiesto ad un nostro fornitore i comandi per cambiare l’indirizzo IP di alcune sonde (KMTronic) e mi hanno inviato questa serie di comandi (compreso quello di reboot).
Cambio IP:
POST /net_config.htm HTTP/1.1
Host: 192.168.1.199
Connection: keep-alive
Content-Length: 57
Cache-Control: max-age=0
Authorization: Basic YWRtaW46YWRtaW4=
Origin: http://192.168.1.199
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://192.168.1.198/net_config.htm
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,bg;q=0.8
ip=192.168.1.190&gw=192.168.1.1&sub=255.255.255.0&htpt=80Reboot:
GET /reboot.cgi HTTP/1.1\r\nAuthorization: Basic YWRtaW46YWRtaW4=\r\nAccept: */*\r\n\r\n
Ho configurato l’FB in questo modo:
Cambio IP:
Method: 1
HostAddress: 192.168.1.199
HostName:192.168.1.198
HostPort:80
Page:net_config.htm HTTP/1.1
Request: ip=192.168.1.190&gw=192.168.1.1&sub=255.255.255.0&htpt=80
DBSize:57Reboot:
Method:0
HostAddress: 192.168.1.199
HostName:192.168.1.198
HostPort:80
Page: reboot.cgi HTTP/1.1\r
Request: nAuthorization: Basic YWRtaW46YWRtaW4=\r\nAccept: */*\r\n\r\n
DBSize:61Ho “tradotto” bene?
Giugno 14, 2019 alle 6:35 am in risposta a: Come interfacciarsi via WiFi con i moduli Sonoff della Itead #48143Marcello
PartecipanteL’errore stava proprio sulla Webpage mi era sfuggita “/”.
Ho visto anche che dopo circa 75 sec il tempo di risposta del relè si allunga fino alla soglia di timeout. Se si vuole il relè sempre pronto, ogni 60 sec reinvio il comando di stato sostituendo TOGGLE con ON o OFF. Riprendendo il tuo programma ho modificato IF (Relay) <> (RStarus) OR SysTime-timeStart > 60000 THEN …
timeStart viene ricaricato con SysTime ad ogni invio comando.
Giugno 13, 2019 alle 4:39 pm in risposta a: Come interfacciarsi via WiFi con i moduli Sonoff della Itead #48137Marcello
PartecipanteHo provato anche altri tipi di Firmware, quello della ESpurna ha il “limite” di chiedere il codice API per inviare i comandi. Ho trovato in rete TASMOTA che ha il vantaggio di ricevere l’on/off con semplice interfaccia REST. Volevo utilizzare il FB HTTPClient per passare il comando di on/off che dal browser invio così:
http://192.168.0.9/cm?cmnd=Power%20TOGGLE
Ho configurato la mia FB così: IF (SysFirstLoop) THEN HTTP.SpyOn:=TRUE; (* Activate the spy *) HTTP.Method:=2; (* Request method, PUT *) HTTP.HostAddress:=ADR('192.168.0.9'); (* SonOff device *) HTTP.HostName:=ADR('192.168.0.9'); (* Hostname *) HTTP.HostPort:=80; (* Server port *) HTTP.Page:=ADR('/cm'); (* Web page *) HTTP.Request:=ADR('cmnd=Power%20TOGGLE'); (* Request string *) HTTP.DBSize:=256; (* Data buffer size *) HTTP.Timeout:=60000; (* Execution timeout *) END_IF
ma spiando con toolly ottengo questo risultato:
21:43:41( 384)|Tx|PUT //cm HTTP/1.1.. 21:43:41(.130)|Rq|cmnd=Power%20TOGGLE 21:43:41(.000)|Rx|HTTP/1.1 404 Not Found.. 21:43:41(.001)|Lg|Start Rx page, length:72 21:43:41(.002)|Rx|[72] File Not Found..URI: //cm *** s: 1. cmnd: Power TOGGLE. 21:43:41(.061)|Pi|Page length: 72 Page load time: 0.196 (S)
e ovviamente al relè non capita nulla.
Cosa posso fare? (ho provato anche con POST e GET ma non cambia il risultato)Giugno 3, 2019 alle 6:16 am in risposta a: Come interfacciarsi via WiFi con i moduli Sonoff della Itead #47968Marcello
PartecipanteRISOLTO:
Innanzi tutto il file .BIN è :espurna-1.13.5-itead-sonoff-basic.bin e lo SPI Mode è: DOUT, gli altri parametri in Advanced sono quelli di default.Ho abilitato anche Telnet ma non conosco i comandi per provare da Toolly l’on/off del modulo, voi li avete?
Maggio 31, 2019 alle 6:11 am in risposta a: Come interfacciarsi via WiFi con i moduli Sonoff della Itead #47942Marcello
PartecipanteHo seguito passo-passo le procedure indicate nelle Knowledge “Gestire Sonoff con ESPurna firmware da SlimLine” e in “Gestire dispositivo Sonoff da SlimLine”, purtroppo senza risultato.
Nel primo il modulo non genera la “wifi” quindi non posso connettermi alla pagina delle impostazioni, nel secondo nonostante abbia modificato i parametri della WiFi SSID, Passw, IP, ecc… il modulo non viene riconosciuto. L’unica cosa che ho notato è che il led del dispositivo (Sonoff Basic) non lampeggia.
Aggiungo che nella versione ESPurna ho installato il binario espurna-1.13.5-itead-sonoff-rf.bin come indicato negli esempi e che sia con ESP8266Flasher (primo caso) che con Arduino, al termine dell’upload, non vengono segnalati errori.
Da cosa può dipendere?
Marcello
PartecipanteAvevo capito che RecipeSetData potesse aggiungere elementi alla ricetta. Ho optato per: Oggetto Browse + il tasto “Trasferimento Dati” utilizzando notifica OFF con Segui come comando per aggiungere (il combo gestisce il trasferimento dati sui cMT).
Peccato che non ci sia la possibilità di accedere al nome dei file sulla chiavetta tramite macro.
Marcello
PartecipanteAllego la macro così per capire dove può essere sbagliata:
macro_command main()
int nrRec
char NomeFile[40]
bool ok
ok = RecipeQuery(“SELECT * FROM Immagini”,nrRec) //ottengo il numero di elementi nella ricetta
if ok == true then
GetData(NomeFile[0],”Local HMI”,LW,11320,40) //recupero nome del file
ok = RecipeSetData(NomeFile[0], “Immagini.IMG”,nrRec) //scrivo il nome del file sulla ricetta
end ifend macro_command
La ricetta è inizializzata con valori ASCII da 20 word. Questa macro è attivata da un tasto funzione.
Aprile 24, 2019 alle 8:14 am in risposta a: Visualizzazione immagini da file su HMI o su PenDrive USB #47358Marcello
PartecipanteRiprendo questo post perchè vorrei caricare sulla PenDrive USB di un MT8070IER delle immagini Jpg, che vengono lette dall’oggetto PictureView, da remoto. Le immagini sono degli “help” del programma e in caso di modifica del software non vorrei dover accedere al pannello operatore per ricaricare i file sulla chiavetta USB.
Ho provato tramite EasyAccess a creare un pass-through sull’indirizzo dell’HMI e tramite FileZilla accedere alla chiavetta, ho impostato utente: admin e password standard (111111) ma non sembra essere corretta.
Come posso fare? -
AutorePost