Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Wago 750-841 Comunicazione Modbus - e utilizzo della memoria.


Messaggi consigliati

Inserito:

Salve ragazzi,

sto utilizzando un plc della wago 750-841 con a bordo una seriale 750-653 con baudrate programmabile.

La seriale l'ho programmata come segue:

38400, 8bit , 1 stop bit, outpuf format standard. 5 byte, halfduplex, xon/xoff OFF, type 485 continuos send ON; utilizzando il software I/O ceck

A livello di codesys ho utilizzato la loro libreria Modb_I05.lib, il PLC è master, ed i parametri sono impostati al valore 16#7FFF che dovrebbe corrispondere al default.

ecco il codice

(*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)

MODBUS_MASTER( (* Utilizzo lbreria standar *)

bCOM_PORT:=2 , (* Numero portaseriale 1-seriale cpu 2- 1°seriale installata sugli I/O 3- 2°seriale installata sugli I/O ecc. *)

cbCOM_BAUDRATE:=16#7FFF , (* Velocità comunicazione 960=9600 1920=19200 3840=38400 *)

cpCOM_PARITY:=16#7FFF, (* Parità 0=Disabilitata 1= Pari *)

csCOM_STOPBITS:=16#7FFF , (* Lunghezza stop bit *)

cbsCOM_BYTESIZE:=16#7FFF , (* Lunghezza dati *)

cfCOM_FLOW_CONTROL:= 16#7FFF, (* Controllo hardware *)

TimeOut:=t#200ms , (* Timeout= Tempo Attesa Ripsosta *)

StartFunction:= StartLetturaModbus, (* Bit abilitazione comando *)

Query:=Comando , (* Comando: Vedi dichiarazione variabile per descrizione word *)

Response:=Risposta , (* Risposta: Vedi dichiarazione variabile per descrizione word *)

MB_Error=>Errore ); (* Errore: Vedi dichiarazione variabile per descrizione word *)

(*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)

Veniamo al problema.

Normalmente funziona tutto egregiamente. Se tuttavia spengo e riaccendo il PLC; anche avendo dato il comando Online "Create boot Project" (comando eseguito mentre sono online con il PLC), il PLC si pianta.

Cioè tiene il programma, mi collego, non perde i dati, ma la comunicazione modbus non parte più. Attivo il bit di comando Start Lettura modbus, ma non succede niente, non manda i dati sulla 485.

L'unico modo per ripristinarne il funzionamento è collegarmi con Ethernet I/O setting, ripristinare le mpostzioni di fabbrica, scaricare nuovamente il software codesys e quindi il tutto riparte fino all'accensiva riaccensione.

Punto 2: gestione memoria.

Il PLC è collegato tramite modbus TCP/IP ad un pannello Touch Schneider XBTGT.

Ora per potere effettuare lo scambio dei dati devo allocare obbligatoriamente le variabili.

All'interno del software ho quindi sia variabili allocate sia variabili non allocate.

Il problema è che mi sono accorto che alcune variabili allocate sovrascrivevano variabili non allocate; praticamente puntavano alla stessa area di memori.

Questo sicuramente è dovuto ad un errore mio nell'allocazione di memoria nel targhet setting e qui vi chiedo consiglio.

Come si devono settare le opzioni in targhet setting -->memory per non avere questo problema??

In tale schermata è possibile impostare due parametri :

Memory 16#3000000 16#6000

Retain 16#3006000 16#6000

Io li ho settati come sopra senza sapere esattamente cosa indicano?? Premettiamo che utilizzo solo variabili RETAIN e mi servono circa 12000 MW per il dialogo con il pannello.

In Targhet Setting--> General ho spuntato solo l'opzione Online Change; ne devo abilitare altre???

Scusate per le banalità ma purtroppo non ho molta esperienza con tale PLC.

Grazie


Inserita:

Salve ragazzi,

ho risolto. Posto la soluzione dato che potrebbe essere utile anche ad altri.

Errore 1: avevo selezionato nella configurazione hardware una scheda seriale a 3 byte, mentre era configurata a 5. Ho sostituito la scheda con quella corretta.

Errore 2: Avevo settato in modo errato l'utilizzo della memoria.

Memory 16#3000000 16#6000

Retain 16#3006000 16#6000

Entrambe le aree possono avere una lunghezza massima di 24 K (16#6000). io avevo utilizzato in malomodo tale impostazione andando a posizionare l'area retain in un'area di memoria non corretta.

Risolto settando la memoria ne seguente modo:

Memory 16#3000000 16#5500

Retain 16#3005500 16#500

Attenzione: il wago permette questi errori e compila enza problemi!!!!

Alla prossima

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