Vai al contenuto
PLC Forum


S7-1200 comunicazione RS485


Messaggi consigliati

Inserito:

Ciao a tutti,

Ho un dispositivo remoto collegato con in 485 a cui devo inviare con istruzione Send un buffer in tre modalità diverse per compiere alcune operazioni.

Le tre modalità di comunicazione hanno tre buffer (composti da array con lunghezze diverse) da inviare.

Tutto funziona utilizzando un ciclo CASE con tre istruzioni SEND che fa la richiesta da me voluta.

Vorrei ottimizzare il software inserendo una sola istruzione SEND, parametrizzando il parametro BUFFER, ma non sono capace.

Qualcuno può aiutarmi ?

Grazie mille


Inserita:
2 ore fa, Simone Grigis ha scritto:

Vorrei ottimizzare il software inserendo una sola istruzione SEND, parametrizzando il parametro BUFFER

La soluzione sarebbe più elegante ma, dal punto di vista pratico, forse è più semplice gestire i tre SEND separati.
Se va bene così, non vedo perché cambiare.
Potrebbe avere senso se i SEND fossero molti.

Inserita:

Grazie mille Batta, il problema è che oltre all'eleganza e a voler imparare sempre nuove cose, in futuro non troppo lontano dovrei aggiungere altri SEND e potrebbero diventare veramente molti

 

 

Inserita:

Sarebbero utili altre informazioni.
Almeno il modulo di comunicazione usato, e quale delle varie istruzioni SEND viene usata.

Inserita:

Ciao,

Il modulo che utilizzo su un S7-1200 è una CB1241 ed utilizzo l'istruzione Send_PTP

Grazie mille

 

 

Inserita:

Da molto tempo non mi capita più di gestire comunicazioni seriali. L'ultima volta è stato con moduli ET200s (S7-300, quindi un modo molto diverso di lavorare).
Non ho mai usato la funzione SEND_PTP, quindi ciò che dico è da prendere solo come possibile soluzione, tutta da verificare.

L'istruzione Send_ptp potrebbe essere richiamata passandole sempre la stessa struttura.
Nel CASE si copia, di volta in volta, la struttura da inviare nella struttura di appoggio, e la relativa lunghezza.
Purtroppo, se le strutture fossero tutte uguali, basterebbe un semplice MOVE (  :=  in testo strutturato).
Ma le strutture sono diverse. Bisognerebbe conoscere come sono composte queste strutture per capire come procedere. Forse si dovrà lavorare con istruzioni tipo MOVE_BLK, MOVE_BLK_VARIANT, VariantGet, VariantPut.

Oppure, si potrebbe lavorare con blocchi "non ottimizzati" ma, sinceramente, cerco di ripiegare su questa soluzione solo quando è assolutamente indispensabile.

Sinceramente, temo che la complicazione per la gestione dei dati sia maggiore della semplificazione per il richiamo di una sola istruzione Send.

 

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...