Risposte nei forum create
-
AutorePost
-
Febbraio 19, 2016 alle 10:23 am in risposta a: Tempo di riconnessione al server da FB TCP Client #39400
Sergio Bertana
Amministratore del forumHo eseguito una modifica al programma precedente anzichè testare il fronte di disattivazione del TCPClient.Connected ho inserito un timer. In questo modo si è certi di controllare lo stato di TCP client disconnesso e di disabilitare per un loop il FB per forzare la riconnessione. Ecco la stampa del programma ed il progetto per il download.
Febbraio 18, 2016 alle 3:25 pm in risposta a: Tempo di riconnessione al server da FB TCP Client #39399Sergio Bertana
Amministratore del forumHo fatto delle prove ed in effetti ho visto che se la connessione del FB client ha la porta fissata (Come nell’esempio FBD), il PC non accetta la riconnessione immediata. Se tu utilizzi Wireshark ed analizzi la rete, vedrai che lo SlimLine invia il pacchetto di apertura connessione ma il PC lo rifiuta.
La soluzione al problema è lasciare libera la porta da cui il client effettua la connessione TCPClient.LocalPort:=0; in questo modo ad ogni riconnessione il client cambia la sua porta ed il PC vedendo arrivare la connessione da una nuova porta la accetta immediatamente.
Ti ricordo comunque che vi è un tempo di riconnessione cablato nel FB SysTCPClient di circa 10 secondi, se vuoi evitare questo tempo ed avere la riconnessione immediata devi gestire il comando di Connect da programma. Ecco come ho fatto:
IF (TCPClient.Connected <> OneShot) THEN
OneShot:=TCPClient.Connected;
IF NOT(TCPClient.Connected) THEN TCPClient.Connect:=FALSE; END_IF;
END_IF;TCPClient(); (* TCPClient management *)
TCPClient.Connect:=TRUE; (* Connect command *)In questo modo come vedi appena il client si disconnette disabilita per un loop il comando di Connect per poi riabilitarlo. Ecco la stampa del programma ed il progetto per il download.
Sergio Bertana
Amministratore del forumHo sviluppato una macro che si connetteva ad un server un pò di tempo fà, ho cercato in quello che avevo fatto ed ecco quello che ho trovato.
short NullValue = 0
bool BOOLFalse= 0
bool BOOLTrue = 1
SetData(NullValue, “Local HMI”, LW, 9600, 1) //PLC 4’s IP0 (IP address = IP0:IP1:IP2:IP3)
SetData(NullValue, “Local HMI”, LW, 9601, 1) //PLC 4’s IP1 (IP address = IP0:IP1:IP2:IP3)
SetData(NullValue, “Local HMI”, LW, 9602, 1) //PLC 4’s IP2 (IP address = IP0:IP1:IP2:IP3)
SetData(NullValue, “Local HMI”, LW, 9603, 1) //PLC 4’s IP3 (IP address = IP0:IP1:IP2:IP3)
SetData(BOOLFalse, “Local HMI”, LB, 10070, 1) //Toggle LB10070 per riconnettere PLC4
DELAY(100)
SetData(BOOLTrue, “Local HMI”, LB, 10071, 1) //Toggle LB10070 per riconnettere PLC4In pratica forzo la connessione su un IP inesistente e poi reimposto l’IP corretto e riforzo la connessione. Devi duplicare il pezzo di codice soprariportato, utilizzando il PLC che hai configurato come Free protocol, nel mio caso era il PLC4.
Diventare clienti ci aiuta a mantenere in vita il supporto…Febbraio 18, 2016 alle 10:41 am in risposta a: Gestire PLC non connesso all’interno di una macro #39397Sergio Bertana
Amministratore del forumSi legge il Manuale registri area riservata e si individua il bit riferito al PLC da testare e poi semplicemente:
short PLCSts
GetData(PLCSts, “Local HMI”, LB, 9200, 1)if (PLCSts) then
GetData(……)
end ifSergio Bertana
Amministratore del forumAggiungo lo screenshot del programma in esecuzione sul mio smartphone e connesso ad un Poseidon2 4002, come si vede dallo screenshot è possibile Attivare/Disattivare le singole uscite. L’attivazione delle uscite funziona solo sulla versione a pagamento dell’App.
Sergio Bertana
Amministratore del forumIl Damocles, come gli altri prodotti per il monitoraggio ambienti della HWgroup hanno tutti un web server integrato che permette di visualizzare lo stato dei sensori e degli I/O digitali. Dal server web è anche possibile gestire le uscite digitali. Tutti i prodotti si connettono al server cloud SensDesk. Tramite il portale SensDesk è possibile visualizzare i sensori e lo stato degli I/O anche tramite l’apposita app per smartphone. Il portale non permette però di gestire le uscite logiche, in alternativa puoi utilizzare l’app IP Sensors Eye. Ricordo che IP Sensor Eye si connette direttamente al dispositivo, quindi nessun problema se in rete locale (WiFi) mentre per potervi accedere da Internet devi disporre di un IP statico ed eseguire il forwarding delle porte relative.
Febbraio 18, 2016 alle 7:59 am in risposta a: Gestire PLC non connesso all’interno di una macro #39393Sergio Bertana
Amministratore del forumSe il PLC non è connesso la funzione GetData esce per errore dopo un timeout, naturalmente l’esecuzione della macro si arresta per il tempo di controllo del timeout.
Per evitare di stare in esecuzione della macro per tutto il tempo di timeout nel caso il PLC non sia connesso puoi testare i bit di stato comunicazione con il PLC e condizionare l’esecuzione della macro.
Febbraio 18, 2016 alle 7:43 am in risposta a: Come sono gestiti gli I/O sullo SlimLine CODESYS #39392Sergio Bertana
Amministratore del forumPer la definizione degli I/O logici in ambiente CODESYS rimando a questo topic.
Sergio Bertana
Amministratore del forumSu come il run time di CODESYS gestisce gli I/O logici consiglio di dare una occhiata a questo topic.
Febbraio 17, 2016 alle 5:33 pm in risposta a: Visualizzazione interfaccia grafica da web browser #39390Sergio Bertana
Amministratore del forumNon mi spiego quale possa essere il tuo problema, intanto il problema si manifesta anche nella finestra di debug dell’ambiente CODESYS o solo nel browser ?
Io ho provato a fare un semplice progetto VisuTest che simula la situazione che tu lamenti, ma non ho nessun tipo di problema, prova ad eseguire il download del progetto e verifica tu stesso.
Sergio Bertana
Amministratore del forumTutta la documentazione è accessibile dall’help di CODESYS, naturalmente devi avere un progetto aperto impostato per il nostro target (Screenshot).
Sergio Bertana
Amministratore del forumLa documentazione fà parte dell’insieme fornito da Beck nel suo SDK, ho estratto i riferimenti al CHIP.INI che posto per il download.
L’indirizzo IP del modulo si imposta dalla configurazione PLC (Screenshot) ma devi avere un progetto aperto impostato per il nostro target.
Febbraio 17, 2016 alle 7:08 am in risposta a: Calcolare portata e consumo acqua per uso domestico #39383Sergio Bertana
Amministratore del forumPer essere più precisi servirebbe il datasheet del sensore ma leggendo le connessioni sembra di capire che lo devi alimentare a 12 Vdc e che collegando il filo giallo ad un ingresso digitale dello SlimLine puoi leggere gli impulsi generati.
Ora dagli impulsi acquisiti puoi ricavare il flusso che sembrerebbe essere 5 impulsi per L/Min. Per calcolare la portata dovrai moltiplicare il flusso per il tempo.
Sergio Bertana
Amministratore del forumAllo stato attuale non esiste un identificatore univoco accessibile da programma utente così come il SysUniqueID dei sistemi LogicLab (Topic). In realtà l’ID univoco viene programmato ma non è accesibile dal programma utente.
Volendo avere un ID univoco è possibile utilizzare una funzione di sistema operativo che ritorna il MAC address del modulo.
i:=RtosGetMacAddress(ADR(MACAdd));
Dove: MACAdd: ARRAY [0..5] OF USINT;
Sergio Bertana
Amministratore del forumPer l’FTP ci sono 2 utenti configurabili: USER0 e USER1. I valori di default sono:
USER0: User: anonymous Password: no password
USER1: User: ftp Password: ftpI valori si possono cambiare andando a modificare il file CHIP.INI inserendo nella sezione [FTP]:
USER0=userone
PASSWORD0=pswone
USER1=usertwo
PASSWORD1=pswtwoAttenzione: I valori NON sono case sensitive.
-
AutorePost