Vai al contenuto
PLC Forum


comunicazione con cavo ethernet tra 2 plc s7-300


Messaggi consigliati

Inserito:

Salve, per la mia tesi di laurea in ingegneria devo scambiare dei dati tra due plc s7-300 cpu 314c-2 pn/dp tramite cavo ethernet. Leggendo varie guide ufficiali e non, vedendo vari video su youtube passo passo, ho capito che il metodo più semplice è utilizzare i blocchi Get per leggere e Put per inviare. 

Il problema è che poi quando vado a verificare il funzionamento noto che non sta inviando proprio niente...Ho visto per esempio che nel s7-1200 c'è un bottone da spuntare dove dice esplicitamente di abilitare le funzioni GET e PUT nelle opzioni di protezione nelle proprietà del plc, nell's7-300 invece non ho trovato nulla di simile, quindi presumo debba già funzionare, oppure non sia possibile questo scambio tra s7-300. Ditemi un po' voi se è possibile! Vi schematizzo cosa faccio:

Creo due diversi plc all'interno dello stesso progetto, assegno nell'interfaccia profinet due indirizzi IP diversi. Ipotizzando che lo SLAVE debba leggere i dati del MASTER, inserisco nel plc SLAVE il blocco GET, preso dalla sezione comunicazione s7, all'interno dell'OB1, premo sulla "cassettina blu" e indico che voglio fare il collegamento col plc partner MASTER e in automatico mi compila tutto e crea il collegamento S7 attivo. Ho visto che ora posso fare due cose: o inserire direttamente gli indirizzi, per esempio leggi dal plc MASTER a partire da I0.0 per la lunghezza di 1Byte e inserisci i dati letti nel PLC SLAVE a partire Q0.0 per la lunghezza di 1 byte, oppure creare un database o diversi database dove salvare i dati scambiati. Ho visto nei video che devo disabilitare l'accesso ottimizzato al blocco database nel caso fosse attivo. Alcuni poi disabilitavano le variabili a ritenzione, non so cosa cambi, ditemi voi.

Faccio quindi tutte queste cose qui, abilito il merker di clock, per esempio assegnando il byte 0 e lo inserisco nell'entrata REQ, per esempio usando M0.5 se voglio 1Hz di frequenza.

Fatto ciò compilo e carico tutto nei PLC, provo a scrivere una di queste variabili e non succede nulla nell'altro PLC... Noto che da me sotto la scritta PUT si legge Any- Any, mentre nei video che vedo solitamente c'è scritto Remote- Variant...come si fa a modificare? Sto sbagliando qualcosa?

Quindi vi chiedo: devo fare qualche ulteriore passaggio? Ho anche controllato nella sezione protezione e risulta senza protezione quindi non penso ci siano vincoli che bloccano la lettura scrittura. Sto diventando matto con questa cosa, spero sappiate aiutarmi, se vi servono altri dettagli son a disposizione, vi ringrazio in anticipo!!!

P.S. Io in facoltà uso i PLC reali, mentre a casa simulo con PLCSIM, leggevo che una persona non riusciva a simulare lo scambio di dati e gli è stato detto se usava PUT/GET da fb o da sfb...e usandoli da sfb era riuscito a simulare correttamente...

fb sono i blocchi funzionali, ma gli sfb cosa sono? nella lista dei blocchi leggo solo OB, FB, FC e DB

 


Inserita:

Rispondo alla tua ultima parte della domanda , perchè sul get e put non sono ferrato....:(

 

Gli SFB sono dei blocchi creati da Siemens per eseguire determinate operazioni , e diciamo per facilitarti questo compito e per inquadratri per bene le cose .

Un esempio :  devi leggere un ingresso analogico , che so , da  0 a 10 volt ti corrispondono pressioni dell'ordine da 0 a 10 bar , esempio molto semplice .

Nelle librerie che trovi nello step 7 cerchi li gli sfb e vedrai ce ne sono una marea  ( SFB , OB, ecc, ecc )  :  logicamente prima ci cercarli non li troverai ne nella CPU vedendola on line, ne nel tuo programma creato in step 7

Lo copi e lo incolli nel tuo progetto : se provi ad aprilo ti dice che è protetto , e in genere non vedi  nulla se non alcuni commenti o i nomi del blocco .

In un FB qualunque ( qualunque nel senso..dedicato a determinate operazioni )  tu puoi richiamare quel blocco semplicemente con CALL SFB 105 :  ti apparirà una maschera che cambia da sfb a sfb , ma che appunto ti inquadra il problema e ti quida .   Nel caso del sfb105  ti chiede quale ingresso analogico leggere  ( fisicamente avrà una posizione tipo PEW768 , tanto per dire ), con che scalatura  ( nel nostor esempio  limite inferiore 0 e limite superiore 10 ) , se  il segnal gira anche in negativo  ( variabili true o false ) e la posizione del blocco di memoria dove vorrai appoggiar eil risultato ( esempio  blobbo dati DB4.DBD10 )  ed un appoggio di una word dove lui mette il risoltato ed eventuali errori .

Vado a memoria....non arabbiatevi..

 

CALL sfb105

 

PEW :.....

.....

HI LIM

LO LIM

Bipolar  true

out :---

 

sto scrivendo amemoria, non ho aprto lo step 7....

 

nel tuo programma, se dovessi leggere 10 ingressi analogici diversi , richiami SFB105 quante volte vuoi .

Hai trovato la lista dei blocchi ?  nell'archivio dei progetti o nella standard libriry ?   premi F1 dovrebbe dirti ogni singolo sfb a cosa serve

 

Buon lavoro !

Inserita:

Ah, ok, ti ringrazio per la risposta, quindi le SFB sarebbero in pratica le funzioni "già pronte" tipo quelle che sto usando io, GET, PUT, oppure per esempio CONT_C per i PID ecc. ? Allego la foto per capirci meglio!

A parte questa cosa non c'è qualcuno che sa dirmi almeno se è possibile comunicare col cavo ethernet inserito nella porta PN tra due PLC S7-300? Perché magari non è manco possibile e io mi sto ammattendo per nulla...

Mi aiuterebbe capire nel caso voi facciate questo collegamento se fate qualche passaggio in più rispetto a me o se magari c'è la necessità di inizializzare qualcosa, oppure togliere qualche protezione o scrivere su variabili diverse... spero qualcuno che se ne intenda mi possa aiutare, grazie in anticipo!

SFB.jpg

  • 1 month later...
Inserita:

SFB è l'acronimo di standard function block.

E' possibili comunicare tra due PLC S7-300 via profinet con le funzioni GET e PUT.

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