Vai al contenuto
PLC Forum


FB_SocketReceive funzionamento


GioUnoNoveOttoOtto

Messaggi consigliati

GioUnoNoveOttoOtto

Un saluto a tutti,

ho una domanda veramente stupida da porre ma che vorrei chiarire.
Se voglio effettuare una comunicazione tcp/ip con un altro dispositivo io mi aspetterei di fare una macchina a stati in cui con una FB_SocketConnect io do l'indirizzo del mio dispositivo e tutti i parametri di interesse alla connession.
Una volta che non ho ottenuto errori, utilizzo il FB FB_SocketReceive e, se non ho errori e non sono in stato di busy rimango bloccato in questo step finchè non ottengo una risposta dal mio dispositivo.
Esempio

case step of

     1:

        Nello step 1 invoco il FB_SocketConnect passandogli tutti i parametri di interesse

       se non ho errori e non sono in busy, vado nello step 2 dove inizializzo la FB_SocketReceive

     2:

       In questo step passo i parametri che mi servono alla FB_SocketReceive

      se non ho errori e non sono busy vado nello step 3, dove rimarrò finchè non otterrò un messaggio via ethernet dal mio dispositivo esterno

    3:

      Aspetto finchè non ottengo qualcosa

end_case

 

 

Un esempio di questo tipo, non riceve mai niente e resto nello step 3 per sempre senza mai uscirne.

Se invece faccio un codice in cui, dallo step 3 torno allo step 2, che mi rimanda allo step 3, che mi rimanda allo step 2 ecc ecc, allora il codice funziona.

Praticamente tutte le volte devo tornare a reinizializzare la FB_SocketReceive.

è così che fuziona su beckhoff o sbaglio qualcosa io?!

 

Vengo dal mondo B&R e, dopo aver inizializzato una socket receive mi mettevo in uno stato di ascolto finchè non ricevevo qualcosa.
Qua invece devo continuamente reinizializzare il FB.

 

Grazie mille e spero di essermi fatto capire

 

Link al commento
Condividi su altri siti


ciao

io per una comunizione con delle telecamere faccio la creazione del socket

con il blocco : FB_SocketUdpCreate con la libreria TC2_TcpIp

poi resto in attesa di ricevere dati dalla telecamera con il blocco FB_SocketUdpReceiveFrom

 

non devo reinizzializzare.

 

non so se può fare il caso della tua applicazione

 

un saluto

Valvolina

 

 

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...