Vai al contenuto
PLC Forum


Comunicazione S7-300 Con Rete Profibus


enzo8308

Messaggi consigliati

Ciao a tutti,

sono Enzo, e sono da poco registrato a questo forum.

Sono uno studente di ingegneria dell'automazione e devo svolgere una tesi di SVILUPPO DEL SOFTWARE D'INTERFACCIAMENTO ALLA RETE PROFIBUS PER CONTROLLORI SIEMENS.

Domani comincerò a lavorare a riguardo ma non so da dove cominciare. Potreste aiutarmi? Avete per caso materiale da postarmi che mi aiuti a capire come realizzare quel software?

Grazie a tutti, aspetto una risposta

Ciao

Link al commento
Condividi su altri siti


  • Risposte 51
  • Created
  • Ultima risposta

Top Posters In This Topic

  • enzo8308

    31

  • emanuele.croci

    11

  • beppeconti

    4

  • Gianluca Caredda

    2

emanuele.croci

Ciao,

...non ho capito bene dalla descrizione quale sarà il tuo lavoro

1) il prof ti ha per caso spiegato qualcosa?

2) hai idea di che cosa è il profibus? (anche perché ce ne sono diversi, tipo Profibus-DP, Profibus-PA, Profibus-FMS...)

3) sai in pratica cosa devi fare?

Ciao, Emanuele

Link al commento
Condividi su altri siti

Ciao,

in pratica abbiamo un laboratorio, e abbiamo un plc siemens s7-300 e il prof vuole che lo faccio comunicare con la rete profibus che è lì.

Il lavoro completo comprende anche un programmino che faccia muovere dei motori, e quindi dei rulli presenti in laboratorio, ma quella dovrebbe essere una cosetta da niente, il problema è come ti ho detto l'interfaccia per far comunicare questo plc alla rete profibus (che come avrai ben capito non so cos'è!).

Sono molto scoraggiato, oggi infatti vado a parlare col prof., sapresti aiutarmi?

Grazie, aspetto una tua risposta

Ciao

Link al commento
Condividi su altri siti

Gianluca Caredda

Sembrerebbe una cosa talmente semplice da non meritare di essere oggetto di una tesi di laurea, quindi non scoraggiarti ma inizia a documentarti. Su Internet in generale, e su questo sito, trovi tonnellate di informazioni sulla rete Profibus.

Tieni conto che i PLC Siemens supportano in maniera nativa, o tramite schede di comunicazione, la rete Profibus, che non è argomento per guru di informatica.

Informati innanzitutto (ma penso che la risposta sia si) se in dipartimento abbiate il software di programmazione dei PLC Siemens (si chiama Simatic Step 7), che permette anche la configurazione della rete Profibus, dopo di che prova a smanettare e scaricati dal sito Siemens i manuali relativi.

Link al commento
Condividi su altri siti

Si, abbiamo simatic step 7. Ma mi potresti aiutare a capire alla fine che cosa devo fare? Ti sembrerà strano, ma un problema simile all'univ non lo abbiamo mai risolto. Al più ho scritto qualcosa in ladder ma per simulatori, ora che ho un plc e una rete profibus avanti, mi trovo disorientato...

Link al commento
Condividi su altri siti

Gianluca Caredda

Scusa se sono un pò rude, ma penso che un laureando debba metterci un minimo d'impegno per documentarsi. Vai sul sito Siemens e cercati i manuali più utili. Fai una ricerca con Google su Profibus, e verrai inviato al sito del consorzio Profibus, che contiene un bel po' di materiale informativo.

Scusa ma il tuo non mi sembra l'approccio giusto per affrontare una tesi.

Link al commento
Condividi su altri siti

emanuele.croci
in pratica abbiamo un laboratorio, e abbiamo un plc siemens s7-300 e il prof vuole che lo faccio comunicare con la rete profibus che è lì.

Se mi permetti la battuta, ti consiglio di limitare il tuo lavoro di tesi alla fase di alimentazione del plc. Il suo collegamento alla rete profibus potrebbe essere l'argomento di un successivo progetto di ricerca, magari finanziato dalla comunità europea....

Scherzi a parte, mi rendo conto che il tuo smarrimento può essere in parte dovuto all'atteggiamento del prof sull'argomento.

Perché chi ti da un progetto da fare dovrebbe anche spiegarti chiaramente com'è la situazione e cosa si pretende da te.

Comunque il mio consiglio è: informati su COSA C'E' nella rete profibus del laboratorio, ovvero CON CHI deve parlare il PLC: c'è un inverter, una unità di elettrovalvole, un modulo di ingressi, un altro plc, un PC, di tutto un po'...?

Nota bene che il profibus non è come internet in cui "ti colleghi alla rete e parli con chi vuoi". In profibus collegarsi alla rete è il meno, basta l'apposito cavo, poi però il fatto che tu possa parlare con altri o no dipende da chi sei e da cosa vuoi fare.

Ad es. nella rete profibus c'è un MASTER e tu puoi parlare solo se il MASTER te lo permette..... ecc.. ecc...

Ciao, Emanuele

Link al commento
Condividi su altri siti

Gabriele Corrieri

Ciao

Oltre a sottoscrivere in toto quanto detto sopra invito Vincenzo, ma anche altri che ogni tanto ci provano, di non inviare richieste di aiuto alla mail destinata agli screenshot per gli scada, richieste che è meglio che siano postate sul forum, ove posso rispondere io e altri ... mica sono omniscente :D

Altro Off Topic è sapere se ti stai laureando all'univ. Federico II di Napoli .. se è vero allora parzialmente capisco, circa un anno fa un tuo collega greco si è imbattuto in molte difficoltà e piano piano ci siamo usciti ...

Per il discorso Profibus ... inizia a vedere cosa hai a disposizione: segnati le sigle INTERE E COMPLETE anche se lunghissime di tutto il materiale che hai a disposizione: dall'alimentatore alla cpu, moduli a fianco della cpu, e tutti i moduli profibus che dovrai collegare.

Scaricati dal sito http://www4.ad.siemens.de il manuale Step7 e inizia ad editare la configurazione hardware del tuo progetto, quando sei a buon punto o sei in difficoltà (seria, non arrenderti subito!!) prova a chiedere, e visto che hai l'indirizzo di posta mio, mandami gli screen shot dove non riesci a proseguire, li posto qui in modo che tutti coloro che finora ti hanno aiutato lo possano fare in seguito.

Ciao

Modificato: da Gabriele Corrieri
Link al commento
Condividi su altri siti

Ciao a tutti,

sono riuscito ad istaurare un collegamento tra plc e rete profibus!!!!!!!!!

In pratica su questa rete ci sono dei moduli ingresso-uscita che sono collegati a loro volta a delle fotocellule e a dei motori (questi ultimi a dei rulli che si devono muovere). Per cominciare vorrei far muovere un motore con un programmino anche stupido ma ho paura di combinare un pasticcio in laboratorio. Mi spiego meglio: il prof mi ha lasciato libero accesso a laboratorio ma lui per circa 15 giorni non ci sarà ed io per non rimanere sempre allo stesso punto, vorrei provare qualcosa che ho fatto.

In pratica ho settato dei simboli per gli indirizzi che ho visto nella parte hardware e li ho chiamati fotocellula1, fotocellula2 e motore1.

poi ho fatto il seguente programma

U "fotocellula1"

S "motore1"

questo programma secondo voi fa partire il motore?

Ho settato tra i simboli anche la fotocellula2 perchè in seguito vorrei far fermare il pezzo quando arriva a tale fotocellula (e ancora devo capire come, naturalmente premesso che ciò che ho detto funziona).

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Non so bene cosa faccia il motore ma a volte è più importante fermarlo che farlo partire, se hai dei finecorsa mettili nel programma e prova magari il motore con un pulsante a impulsi prima di farlo partire in automatico, sei sicuro che giri dalla parte giusta?

Ciao

Link al commento
Condividi su altri siti

emanuele.croci

Sì, esatto...

prova con una cosa del tipo

U fotocellula1

S M1.0 //avvio motore in automatico

U fotocellula2

R M1.0

U M1.0

U E124.0 //consenso movimenti

= motore1

Così se rilasci il pulsante che collegherai ad es. all'ingresso E124.0 il tutto si ferma.

Ti consiglio di studiarti bene i manuali di Step7 per capire come si collegano i vari segnali, come si programma, ecc.....

Mi lascia un po' perplesso il riferimento a PROFIBUS nel titolo della tua tesi, come hai visto interfacciare un PLC dotato di porta profibus a dei moduli di ingresso anch'essi provvisti di porta profibus è abbastanza semplice.

Comunque se ti fai un'esperienza di programmazione Step7 durante la tesi è senz'altro valido a livello professionale...

Ciao, Emanuele

Modificato: da emanuele.croci
Link al commento
Condividi su altri siti

Ciao a tutti,

voleovo dire che quando accedo ad ingressi e uscite con PEW posso accedere solo alle word e non ai singoli bit.

Devo quindi per prima cosa creare un array, e con degli shift mettervi i bit dentro. Ho dato un pò uno sguardo ai manuali ma non riesco a creare un array in AWL mentre invece ho capito come si effettuano gli shift e che il bit traslato lo trovo in AV. Ma come accedo a questo AV?

Qualcuno mi sa aiutare?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

emanuele.croci

Ciao,

di solito se utilizzi ingressi/uscite digitali è conveniente usare indirizzi "bassi", ad es. <127. Così facendo resti nei limiti della "immagine di processo" e non devi usare "la periferia".

Questo indirizzamento si specifica nella config hardware step7.

In altre parole con indirizzi "bassi" puoi scrivere una cosa tipo:

U E64.5

e il plc ti darà il valore di quel singolo ingresso.

Se invece usi indirizzi "alti" (di periferia) dovrai scrivere una cosa tipo

L PEW256

Se ti serve il singolo bit, puoi fare

L PEW256

T MW100

e dopo accedi al tuo sensore con

U M100.5

di solito è buona norma scrivere

L PEW256

T MW100

all'inizio del ciclo di scansione del programma, perché la periferia è rinfrescata ogni volta che vi accedi, quindi se scrivi "L PEW256" più volte in un ciclo di programma potresti avere dei valori diversi per un ingresso (cosa che di solito fa impazzire la gente....)

Non ho capito il discorso di dichiarare un array.

Ciao, Emanuele

Link al commento
Condividi su altri siti

Avevo pensato infatti che usando indirizzi bassi il compito sarebbe stato più semplice, ma la rete che devo utilizzare quando la configuro (config. hardware) mi mette questi indirizzi(274 e 275) per gli ingressi e per le uscite. Valori quindi molto alti, penso proprio da quello che mi dici perchè sono di periferia (se ho capito bene cosa intendi). Devo, e lo farò domani in laboratorio, provare quello che mi hai suggerito per ingressi alti. Il discorso dell'array era dovuto al fatto che non avevo idea di come accedere al singolo bit, dato che ho sempre ha che fare con esadecimali quando uso PEW, e a me serviva il singolo bit.

Quando mi hai detto di scrivere:

L PEW256

T MW100

il secondo rigo mi trasferisce il contenuto in MW100, penso. Ma cos'è MW100? Scusami forse la domanda è stupida ma nel manuale, almeno fin dove ho letto, non ho trovato ancora niente a riguardo.

Ancora Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

MW 100 è la word (16bit) numero 100 (byte 101 + byte 100) dell'area di memoria interna che siemes chiama merker.

Secondo me dovresti aspettare ancora un pò prima di scrivere il programma e leggerti con calma un manuale magari un "Getting started" sul sito della siemens doversti trovarli.

link

Altrimenti cercare qualcuno che sappia usare un S7-300 e ti faccia un corso accelerato di almeno 4 ore.

Non ti voglio scoraggiare ma secondo me sei partito con troppa fretta.

Ciao

Link al commento
Condividi su altri siti

Stavo ragionando.... Secondo me quella m che mi hai detto mi serve per mettere in memoria quella word, e se così ho capito. Ma se così fosse io quindi potrei settare finalmente un bit come voglio.

Però se ci penso a quel punto starò modificando solo un bit in memoria. Mi spiego meglio, se scrivo:

L PEW 274

T MW 100

S M 100.5

io sto mettendo a uno un bit che non è "il mio motore" ma un semplice bit in memoria. Dovrei dopo ritrasferire la word modificata nell'indirizzo 274. Come faccio? Ammesso sempre che il mio ragionamento fili correttamente.

Inoltre nella configurazione hardware io ho dei pezzi che si chiamano:

E A

1794-IB16/Full format 274...275

1794-IB16/Full format 276...277

1794-OW8/Full format 274...275

1794-OW8/Full format 276...277

mi chiedo gli indirizzi non si confondono? Come faccio ad usare le uscite o gli ingressi? PEW è solo per gli ingressi? E per le uscite che uso?

Con questo ho mostrato perchè utilizzo ingressi alti.

Grazie ancora per l'aiuto

Ciao Enzo

No Ricky guarda che ho letto Getting started, ma non mi aiuta in questo, mi spiega un pò altre cose.

Ciao Enzo

Ora che ho postato quanto sopra, la E e la A si sono spostate:

i primi due blocchi sono ingressi e i secondi uscite. Qundi per i primi gli indirizzi sono E e per i secondi sono A.

Ecco quello che volevo dire.

Ciao Enzo

Link al commento
Condividi su altri siti

emanuele.croci
L PEW 274

T MW 100

S M 100.5

... questo non ha tanto senso....

io scrivevo (vedi anche il mio es. prec. che qui completo):

L PEW 274

T MW100 (...carico una word-16 bit di ingressi nell'area di memoria M che accedo come singolo bit)

U M100.5 (...uso la copia del mio ingresso come mi pare nel prgramma, in operazioni booleane)

U M1.0

=M200.0 (..setto delle uscite fittizie in memoria in quanto non posso accedere alla singola uscita di periferia)

L MW200 (copio la mia word sulla periferia, PAW= word di uscite di periferia)

T PAW276

Ciao, Emanuele

Link al commento
Condividi su altri siti

Forse ho capito, ora sono il lab e posso provare:

L PEW 274

T MW 100

U M 100.4

= M 200.0

L MW 200

T PAW 274

mi spiego:

in lab ho dei sensori come ingr. (fotocellule a logica negata): vorrei azionare un motore,

quando il pezzo, che si trova sui rulli collegati al motore, non è avanti alla fotocellula.

Ho pensato quindi il codice su riportato, ma metto il plc su run e non si aziona il motore.

Cosa ho sbagliato?

Una cosa buona è che il plc non va in SF. Ma non fa quello che voglio. Cosa sbaglio ancora?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Ho provato:

L PEW 274

T MW 100

U M 100.4

= M 200.4

L MW 200

T PAW 275

e il motore non parte nè con il sensore oscurato ne con la fotocellula libera.

Poi ho provato:

L PEW 274

T MW 100

UN M 100.4

= M 200.4

L MW 200

T PAW 275

e il motore parte sia con la fotocellula libera che oscurata. Perchè?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

emanuele.croci

Scusa enzo8308,

non è che sei di nascosto un mio cliente (magari cinese)? :lol:

....no perché l'esempio che ho scritto non è specifico per il tuo problema, nel senso che DEVI SAPERE TU quali indirizzi stai usando e sostituire opportunamente nel programma gli indirizzi TUOI della fotocellula e del motore.

Quindi:

qual è l'indirizzo della fotocellula?

qual è l'indirizzo del motore?

Ciao, Emanuele

Link al commento
Condividi su altri siti

Hai ragione scusami, cerco di spiegarmi meglio.

Il mio sistema è un nastro trasportatore con due sensori, uno a dx e uno a sx. Metto il pezzo a dx oscurando la fotocellula e vorrei che il motore in tale situazione parta e si fermi all'arrivare del pezzo alla seconda fotocellula (quella di sinistra).

Pertanto Ho scritto:

L PEW 274 //carico i miei ingressi (le fotocellule che ci sono)

T MW 100 //le metto nel merker

SET //setto a 1 RLC

UN M 100.4 //faccio la and negata con il sensore di sinistra

U M 100.3 //faccio la and col sensore di destra

= M 200.4 //metto il risultato nell'uscita, dove il .4 è il motore che devo attivare

L MW 200 //carico le uscite

T PAW 275 //le metto in uscita

eppure il motore parte ma non si ferma. In che sbaglio?

Grazie

Ciao Enzo

Link al commento
Condividi su altri siti

Mi sembra davvero strano quel codice che ho detto perchè fa così, ma il Prof. in laboratorio oggi mi ha detto che se ho una word step 7 ragiona a byte e il byte più significativo ha in memoria indirizzo x+1 mentre quello meno significatico ha indirizzo x. Non so se mi spiego, spero di si. Comunque domani riproverò in laboratorio. Nel frattempo sto cercando in rete documentazione sulle reti profibus, che mi spieghino un pò il funzionamento di tali reti. Qualcuno mi sa indicare link, o può postarmi del materiale utile a riguardo. ringrazio tutti anticipatamente.

Ciao Enzo

Link al commento
Condividi su altri siti

emanuele.croci
il Prof. in laboratorio oggi mi ha detto che se ho una word step 7 ragiona a byte e il byte più significativo ha in memoria indirizzo x+1 mentre quello meno significatico ha indirizzo x.

Mi sa che il tuo prof ha detto una cavolata perché, a differenza di quanto sarebbe logico, in Step7 il byte PIU' significativo ha indirizzo X e quello MENO significativo ha indirizzo X+1.

Cioè se fai ad es:

L 325

T MW0

vedrai che MB0=1 e MB1=69

Però, il concetto stesso di "più significativo" e "meno significativo" ha senso se interpreti questi dati come numeri ad es. a 16 bit o a 8 bit.

Visto che tu usi FOTOCELLULE e MOTORI che ti occupano 1 BIT non ha senso parlare di più o meno significativo.

Quello che tu DEVI fare è scoprire qual è l'indirizzo della tua fotocellula.

Ad es:

- scrivi

L PEW274

T MW100

nel programma

- vai nel controlla e comanda variabili e controlla MB100 e MB101

- fai "lampeggiare" a mano la tua fotocellula e guarda quale bit ti lampeggia nel controlla e comanda variabili

Perché per 1a cosa tu devi sapere a quale dei 16 bit della word è collegata la tua fotocellula.

Analogamente lavorerai per il motore.

Ciao,

Emanuele

Link al commento
Condividi su altri siti

Ciao Emanuele,

volevo dirti che avevi ragione, avevo sbagliato gli indirizzi della fotocellula. Ecco perchè non andava. Ora ci sono riuscito. Grazie!

Volevo poi chiederti un'altra cosa: ho un'ascensore da controllare in salita e in discesa e ci sono 4 piani.

Il problema che ho è che qui hanno usato un solo sensore per la salita e uno solo per la discesa. Ovvero: sono sensori magnetici posti sull'ascensore (appunto uno per la salita e uno per la discesa, ce ne sono due per questo per motivi di isteresi magnetica), comunque il fatto è che quando l'ascensore sale parte dal 1o piano e il sensore è alto in quanto l'ascensore è proprio lì. Nel funzionamento generale, quando l'ascensore sale il sensore diventa basso per poi ridiventare alto quando incontrerà al secondo piando un altro elemento magnetico, e così via fino al 4 piano. Come faccio a far partire il motore da primo piano e farlo salire di due piani considerando che ora che mi trovo al primo piano il sensore è alto e sarà alto anche quando arrivo a destinazione? Spero di essermi spiegato bene.

Graze

Ciao Enzo

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