Home › Forum › Programmazione IEC 61131 (LogicLab) › Comunicazione su TCP/IP con protocollo proprietario ascii
- Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 12 anni fa da Sergio Bertana.
-
AutorePost
-
Aprile 5, 2012 alle 1:16 pm #35196EmilianoPartecipante
Ho ricevuto la cpu SlimLine, sto facendo alcune prove, sono riuscito a programmarla via LAN cambiando anche l’indirizzo IP e riesco anche a comunicare con l’espansione. Quello che non sono ancora riuscito a fare è inviare e ricevere dati via TCP/IP, in pratica utilizzando il linguaggio ST dovrei restare in ascolto su una determinata porta TCP, e da PC inviare delle richieste del tipo:
Attiva uscita k, PC trasmette ‘Sk<CR>’, SlimLine risponde ‘Sk<CR><LF>’.
Disattiva uscita k, PC trasmette ‘Rk<CR>’, SlimLine risponde ‘Rk<CR><LF>’.
I valori di ‘k’ vanno da 0 a 15.Aprile 5, 2012 alle 1:30 pm #37195Sergio BertanaAmministratore del forumSu SlimLine utilizzando il blocco funzione SysSktListen è possibile mettere in ascolto su di una porta TCP un socket e gestire lo scambio dati su di esso. In questo modo è possibile creare una propria gestione di un qualsiasi protocollo usando i metodi classici Sysfopen, Sysfgetc, Sysfputc, SysVarsscanf, SysVarfprintf è possibile ricevere e trasmettere dati sul socket.
Ho realizzato un programma che mette in ascolto sullo SlimLine un socket sulla porta TCP 2000, connettendosi con un telnet (Esempio il nostro Toolly), alla porta 2000 viene ritornato il messaggio Welcome !.
Inviando un comando del tipo Sk<CR>, su slim line viene attivata l’uscita indicata da k (Esempio S1<CR> attiva l’uscita 1, S10<CR> attiva l’uscita 10 e così via).
Inviando un comando del tipo Rk<CR>, su slim line viene disattivata l’uscita indicata da k (Esempio R1<CR> disattiva l’uscita 1, R10<CR> disattiva l’uscita 10 e così via).
Il programma viene fornito in codice sorgente e può essere facilmente modificato secondo le proprie necessità (Stampa e Download programma).
-
AutorePost
- Devi essere connesso per rispondere a questo topic.