Maurizio Conti
Risposte nei forum create
-
AutorePost
-
Febbraio 23, 2016 alle 9:06 am in risposta a: Tempo di riconnessione al server da FB TCP Client #39409
Maurizio Conti
PartecipanteSegnalo una piccola sbavatura. Dopo diverse ore che il sistema stava operando, pur risultando il flag di connected=TRUE e fault=FALSE (cioè situazione normale), ho riscontrato assenza di flusso di dati sul TCP Client. Ho riavviato il server… Mi aspettavo di vedere nella finestra di watch un palleggio sui tentativi di connessione ma invece il flag di connected sempre TRUE (in quel momento il server si stava riavviando, quindi penso che Connected riportasse uno stato non corretto…).
Per sbloccare la situazione ho dovuto, dalla finestra di watch, forzare manualmente la riconessione lato Client ponendo CONNECT=FALSE e tutto è ripartito (cioè i dati sono ricominciati a fluire). Quindi nell’applicazione mi sembra che il solo check sul flag Connected per rifare la connessione sia un pò debole, se questo non è assolutamente affidabile (socket appeso??).
Rimane sempre la considerazione che, vista la rapidità con cui la connessione può essere ripristinata, è probabilmente più sicuro, a fronte di un modesto rischio di perdere qualche dato inviato dal server, periodicamente chiudere e riaprire il TCPClient.
Febbraio 19, 2016 alle 2:53 pm in risposta a: Tempo di riconnessione al server da FB TCP Client #39401Maurizio Conti
PartecipanteMille grazie dell’aiuto! Il sistema così concepito funziona molto bene.
Maurizio Conti
PartecipanteLa variabile di sistema SysDateTime contiene/restituisce l’ora assoluta UTC oppure l’ora locale con già le correzioni relative a TimeZone e Daylight ?
Chiedo questo perchè la funzione Javascript toLocaleString, che formatta l’ora, me la pospone di un ora rispetto alla realtà ma dalla documentazione mi sembrava di aver letto che era l’ora UTC…
Maurizio Conti
PartecipanteRiesco a conoscere, col web server integrato, l’IP del client connesso ? Ed eventualmente gestirlo all’interno di una mia pagina ?
Gennaio 11, 2015 alle 9:45 am in risposta a: Velocità acquisizione ingressi digitali moduli espansione #38634Maurizio Conti
PartecipanteStò acquisendo una batteria di DI con lo SlimLine come da codice seguente:
FOR i:=0 TO 21 DO
(* CASE i OF
0..5: DIN[i]:= SysCPUDI[i];
6..21: DIN[i]:= SysDI00[i-6];
END_CASE; *)CASE i OF
0: DIN[0]:= %IX255.0;
1: DIN[1]:= %IX255.1;
…
21:DIN[21]:=%IX0.15;
END_CASE;
END_FOR;Mentre il CASE scommentato funziona, quando tento di compattare il codice (codice commentato) ottengo i seguenti errori: SysCPUDI => Complex variables cannot have process image
SysDI00 => Complex variables cannot have process imageL’accesso all’elemento dell’array SysDI00 però all’interno della finestra di watch invece non da problemi. Cosa sto sbagliando ?
Inoltre ti chiedo, volendo acquisire i DI tramite Modbus è consigliabile/preferibile usare la Read Input Status (FC=02) oppure appoggiarli su una variabile interna e leggeri con la funzione Read Holding Registers (FC=03)?
Maurizio Conti
PartecipanteHo la necessità di leggere da SlimLine un file in rete TCP/IP che risiede su un PC Windows, analizzarne il contenuto ed intraprendere alcune azioni verso il campo. Come posso fare ? Sono stati implementati i socket client e l’FTP client su SlimLine ?
Maurizio Conti
PartecipanteIl modulo OEM PCB131A020 recentemente acquistato risulta avere un comportamento diverso dal MPS050A020 a seguito di un reset forzato: infatti mentre quest’ultimo riparte regolarmente il primo rimane fermo (devo dare lo start da LogicLab). Devo configurare qualcosa da qualche parte ?
Febbraio 21, 2014 alle 7:01 pm in risposta a: Gestione pagine web dinamiche da parte dell’utente #38085Maurizio Conti
PartecipantePosso aggiornare uno Slimline MPS046A100 per poter gestire le pagine Web ?
Maurizio Conti
PartecipanteMille grazie per i consueti preziosi suggerimenti.
Maurizio Conti
PartecipanteSono cosciente che, non esistendo l’RTC, l’ora non possa essere mantenuta in caso di spegnimento del PLC. La variabile SysDateTime mi rappresenta comunque un orologio ‘software’ interno. Quindi mi chiedo: perchè non posso inizializzarlo (magari via WEB) allo startup ed usarlo nel programma, seppur con i limiti citati ?
Maurizio Conti
PartecipanteE’ possibile impostare l’ora di uno Slimline Compact MPS050A000 (senza RTC) ? Ci sto provando ma con scarsi risultati.
Gennaio 29, 2014 alle 5:25 pm in risposta a: Allocazione in memoria delle variabili strutturate #38040Maurizio Conti
PartecipanteMille grazie! Non mi era noto che il compilatore considera il tipo struttura come un tipo di dati da allineare ad indirizzo divisibile per 4.
Gennaio 29, 2014 alle 12:45 pm in risposta a: Allocazione in memoria delle variabili strutturate #38038Maurizio Conti
PartecipanteHo capito il problema dell’allineamento però c’è però una cosa che non mi torna: Definendo una struttura come segue ed allocandone un array:
ChannelSettingType : STRUCT Settings : USINT; Descrizione : USINT[ 24 ]; END_STRUCT;
ChannelSettings AT %MB100.2056 : ARRAY[ 0..15 ] OF ChannelSettingType;Gli indirizzi di allocazione che ritornano (ottenuti con la funzione ADR) sono:
1073766964 //ChannelSettings[0].Settings
1073766965 //ChannelSettings[0].Descrizione[0]
1073766992 //ChannelSettings[1].Settings
1073766993 //ChannelSettings[1].Descrizione[0]
1073767020 //ChannelSettings[2].Settings
1073767021 //ChannelSettings[2].Descrizione[0]Quindi la struttura di 25 bytes sembra essere allocata con passo 28 bytes che non mi sembra congruente. Stessa situazione con una struttura di 25 bytes o di 26 bytes come nei due casi seguenti.
ChannelSettingType : STRUCT Settings : UINT; Descrizione : STRING[ 23 ]; END_STRUCT;
ChannelSettingType : STRUCT Settings : UINT; Descrizione : USINT[ 24 ]; END_STRUCT;Novembre 19, 2013 alle 12:59 pm in risposta a: Riconoscere da programma utente i moduli di espansione #37899Maurizio Conti
PartecipanteE’ da diverso tempo che sto sbattendo la testa su una applicazione SlimLine che ha cessato ‘improvvisamente’ di funzionare in alcune sue parti. Dopo vari tentativi ho visto che il problema si presenta semplicemente collegando allo SlimLine il modulo di espansione 16IN/8OUT sul bus I2C.
Mi spiego: tra le varie attività, la mia applicazione riceve in modo serrato uno stream di dati sulla RS485 a 115200 bps (Task BACK), cui deve saltuariamente rispondere con un certo ‘pacchetto’ inserito anch’esso nella task Back. Tutto ha sempre funzionato fintanto che, per necessità, ho dovuto aggiungere il modulo di espansione di cui sopra: a quel punto le trasmissioni in uscita ‘probabilmente’ non sono riuscite più a rispettare le attese tempistiche e tutto ha smesso di funzionare (preciso: anche senza di fatto fare chiamate al blocco SysSetPhrDO, solo col bus collegato!).
Che modo ho di imbrigliare le tempistiche di gestione dell’I2C (che non conosco) a vantaggio delle mie comunicazioni seriali ?
Ottobre 2, 2013 alle 8:05 am in risposta a: Utilizzo tipi dati definiti da utente nelle funzioni e FB #36309Maurizio Conti
PartecipanteHo notato anch’io il problema, sarebbe importante che venisse risolto dalla Axel.
-
AutorePost