|Home| |Profile| |Register| |Members| |Search| |FAQ|
*Username:
*Password:
*Select Language
*Save Password
*Forgot your Password?
 *All Forums
 PLC - didattica
 I/O analogici
 *Forum Locked
 *Printer Friendly
Aggiungi al tuo Segnalibro
*Page: 
of 2
*Author *Previous Topic *Topic *Next Topic  
awl
Utente Esperto



Italia
125 *Posts
*Posted - 23 Mar 2002 :  18:17:31  *Show Profile  *Visit awl's Homepage
Ciao "Maestri" sono ancora io, per porre un altro pò di domande, come gestiscono si gli ingressi e le uscite digitali con S7 200/300 ? entrano in gioco i contatti di confronto ?, mi spiegate per esempio come si fa ad attivare un ipotetica uscita digitale quando il valore di tensione rilevato da un ingresso analogico supera una certa soglia ?

*** Messaggio editato da awl il 23 Mar 2002 22:58:28 ***

DARIO
moderatore




252 *Posts
*Posted - 23 Mar 2002 :  21:28:22  *Show Profile
ciao
il plc vede (!?) l'ingresso analogico come un numero la grandezza del numero varia in funzione del numero di bit apprezzati dal convertitore.
esempio : ingresso analogico 8 bit = il numero piu' grande che puo' vedere e' 255 (decimale ) oppure FF (esadecimale)
ingrasso analogico 10 bit = il numero piu' grande che puo' vedere e' 1024 (decimale) oppure 400 in esadecimale
ok detto questo e' semplice la risposta al tuo quesito, devi comparare il valore letto dalla tua analogica con un tuo setpoint
se valore letto e' piu' grande del setpoint ..allora l'uscita va ad on
ogni plc a delle istruzioni di comparazione adatte all'uso descritto
puoi ' prima della comparazione , effettuare delle "scalature" o proporzioni sper convertire i suddetti 10 bit (400hex) in ... 10.000 millivolt (10 volt) per poter fare dei confronti in unita' ingeniristiche
ciao da dario

*** Messaggio editato da dario il 23 Mar 2002 21:29:45 ****Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 23 Mar 2002 :  23:04:45  *Show Profile  *Visit awl's Homepage
Scrivimi se hai tempo il codice awl di un programma che per esempio mi attiva un uscita digitale quando la tensione di un ingresso analogico supera 5 volt, mi aiuterà a capire ulteriormente.

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 26 Mar 2002 :  08:06:56  *Show Profile  *Visit awl's Homepage
Ciao, niente di più semplice ...
ahh ricordati che se usi la serie 300 esistono dei valori di soglia per le usite di che non prevedono l'utilizzo di tutto il rang di valori ... io di regola non uso scalature della siemens per motivi che non spiego ...

se la tua analogica è ad esempio la PEW 276 ...

L PEW 276 // Leggo l'analogica
SLW 3 // elimino i bit di diagnostica
L W#16#1AA // la confronto con il valore
>=I // se è maggiore
= A10.5 // attivo l'uscita ...

è solo un esempio ... si possono fare delle cose strepitose ;-)

ciao


in questo modo

federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 30 Mar 2002 :  10:10:34  *Show Profile  *Visit awl's Homepage
Nella tua spiegazione non mi sono ben chiare due cose, ti hai scritto "se la tua analogica è ad esempio la PEW 276" PEW 276 è il numero dell' ingresso analogico ? è come dire E 1.0 per gli ingressi digitali ? poi puoi spiegarmi meglio la stringa W#16#1AA ? vi è per caso espresso il valore esadecimale della soglia scelta ? se volessi avere una soglia di 3 volt con un ingresso analogico a 8 bit cosa dovrei scrivere ?

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 02 Apr 2002 :  09:08:46  *Show Profile  *Visit awl's Homepage
Ciao,
in S7 300 le PEW sono le periferical word, ossia un'area dove viene,
diciamo in modo semplicistico, letta la periferia. Se su questo indirizzo vi associamo una scheda analogica leggiamo appunto il valore analogico. Del resrto le analogiche dovrebbero partire dall'indirizzo PEW 256 in poi ...
PEW è diverso da EW ... in quanto la EW (EB, ED, E, così pure le aree AD, AW, AB, A) sono aggiornate ad ogni ciclo di programma prima che inizi l'OB 1, mentre nelle PEW e così pure per le uscite PAW ci sono i valori istananei ...

Es.

se leggiamo EB 10 non è detto che sia uguale alla PEW 10.
ossia:

L EB 10 // Leggiamo il byte di ingresso EB 10
L PEB 10 // Leggiamo esattamente cosa c'è nel byte di ingresso in questo istante. Di regola la si utilizza negli OB 35 ... o a causa di qualche interrupt per leggere il valore esatto dell'ingresso, ad esempio

L PEW 22 // Carico il valore aggiornato
T EB 22 // sull'area di ingresso
U E22.3 // quindi testo il bit di interesse ...
...
Ovviamente è un esempio non troppo elegante ma è per rendere l'idea ...

>poi puoi spiegarmi meglio la stringa W#16#1AA

Queto è un valore in hexadecimale che indica la soglia che vuoi ...

Tutte le analogiche per la S7 300 che utilizzo sono a 12 bit + segno, quindi per una analogica a 8 bit dovresti vedere il datasheet per sapere i 3 volt a cosa corrispondono, ma di regola le analogiche riempiono i 16 bit della vord e in genere si ha che

sxxxxxxxxxxxddd

dove i 3 bit ddd sono di diagnostica, le x sono ilvalore in binario e la s dovrebbe essere il segno. A seconda della precisione e della velocità di configurazione si scelgono la precisione ... in questo caso (se ben ricordo), se scegliamo una precisione di 8 bit leggiamo sempre un numero con 12 bit, ma solo i 8 bit più significativi hanno l'informazione del numero ...

non è difficile ... se guardi il datasheet tutto diventa più chiaro ...

spero di esserti stato utile

ciao


federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 06 Apr 2002 :  17:19:24  *Show Profile  *Visit awl's Homepage
Ho capito quindi un ingresso analogico viene espresso da un valore a 16 bit, il primo bit rappresenta il segno, i successivi 12 bit il valore (quindi i volt presenti all'ingresso convertiti in binario) e gli ultimi tre bit sono la diagnostica.

Però non mi sono chiare un paio di cose, per segno si intende quello della tensione di ingresso ? cioè 3 volt o -3 volt ? cosa sono i bit di diagnostica ? infine nella stringa che mi avevi scritto all'inizio cioè W#16#1AA puoi spiegarmi punto per punto il significato ? penso di aver capito che 1AA è un valore esadecimale ma W#16# cosa significa ?

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 08 Apr 2002 :  13:31:20  *Show Profile  *Visit awl's Homepage
Di regola il fondo scala lo setti, se la scheda te lo consente in configurazione hardware ...

la scritta

L W#16#A11 significa carica la word in formato hexadecimale di valore A11. Il valore A11 è puramente casuale ... era per fare un esempio ...

il segno ha senso se e solo se la scheda presuppone un ingresso/uscita bipolare ... i bit di diagnostica hanno vari significati, se guardi nel manuale li trovi non me li ricordo ... comunque dovrebbe esserci l'idicazione di cavo rotto (per i loop di corrente), overflow ...

ciao

federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 08 Apr 2002 :  15:46:20  *Show Profile  *Visit awl's Homepage
Se volessi confrontare due analogiche, mettiamo la PEW 340 e la PEW 342
dovrei scrivere queste istruzioni ?

L PEW 340 //leggo la prima analogica
SLW 3 //elimino i bit di diagnostica
L PWE 342 //leggo la seconda analogica
SLW 3 //elimino i bit di diagnostica
>=I //se la prima è maggiore della seconda
= A4.0 //attivo l'uscita

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 09 Apr 2002 :  12:50:38  *Show Profile  *Visit awl's Homepage
Sembra corretto ma mi son accorto di aver sbagliato shift ..

è SRW 3 shift a destra di 3 per eliminare i bit ...

se poi controlli nei blocchi del PLC troverai alcune SFC SFB FC FB della simens che ti linearizzano le uscite ... io non le ho mai usate preferisco farmi il software ... alme so cosa fa ;-) ...

ciao


federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 09 Apr 2002 :  13:49:53  *Show Profile  *Visit awl's Homepage
na volta ho notato, in un cantiere una cosa, un piccolo silos che conteneva farina, era dotato di tre gambe, sotto ogni gamba era posizionata una cella di carico, come si fa ad ottenere il peso, si fa la media della lettura delle tre celle ?

Anche gli ingressi e le uscite di un ipotetico et200l collegato in profibus vengono letti dal master come pew per gli ingressi e paw per le uscite ?

*Go to Top of Page

Ivan
Utente Esperto



Italia
134 *Posts
*Posted - 09 Apr 2002 :  17:00:56  *Show Profile
Per il silos devi sommare le tre misure, ogni gamba porta la sua parte di peso.

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 10 Apr 2002 :  08:01:18  *Show Profile  *Visit awl's Homepage
>na volta ho notato, in un cantiere una cosa, un piccolo silos che >conteneva farina, era dotato di tre gambe, sotto ogni gamba era >posizionata una cella di carico, come si fa ad ottenere il peso, si >fa la media della lettura delle tre celle ?

Dipende ... dal tipo di celle, quelle che utilizzo io per esempio necessitano di un amplificatore e sono collegate in parallelo tra loro e collegate, appunto, all'amplificatore che trasforma il segnale delle celle in mV in un segnale 4-20 mA per il PLC. Esistono poi celle con elettronica a bordo ... quindi bisognerebbe sapere che tipo di celle sono ...

>Anche gli ingressi e le uscite di un ipotetico et200l collegato in >profibus vengono letti dal master come pew per gli ingressi e paw >per le uscite ?

ET200L non lo conosco, ma ho usato sia chede remotate ET200M che unità intelligenti ET200S IM151 CPU ... tutte collegate in profibus 2DP ...

di regola se hai una periferica remotata, la configuri su configurazione hardware, quindi una volta fatto questo sei aposto, leggi gli ingressi le uscite e la periferia come se fosse propia del master ... per le CPU slave la cosa è un po' più complicata, di regola devi stabilire una rete profibus e associare la CPU slave progettata a questa rete, quindi rendere disponibile parte dell'area PAW/PEW per la comunicazione ... parametrizzando questa su configurazione hardware ...

Se hai due Master, per fortuna non mi è mai capitato ! ... se ben ho capito dal manuale dovresti usare la comunicazione tra master con delle funzioni ad hoc della siemens ...

ciao


federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 10 Apr 2002 :  20:22:36  *Show Profile  *Visit awl's Homepage
Andiamo ancora più in profondità sull'argomento spiegami come si fa (sempre se hai un attimo di tempo) a settare il valore di uscita di una analogica tramite due pulsanti, uno che lo incrementa e uno che lo decrementa, poi penso che passare da due pulsanti normali a due pulsanti di un pannello operatore il passo sia breve, non basta sostituire ad E0.0 ed E0.1 cioe gli indirizzi dei due pulsanti i merker che vengono attribuiti ai tasti dell'OP ?

Ah riguardo alle celle, come le colleghi in parallelo ?

Ciao Massimo

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 11 Apr 2002 :  13:52:28  *Show Profile  *Visit awl's Homepage
Behh questo è un utile esercizio che puoi risolvere da solo ...

il problema deve essere scomposto in due passi, La PAW può solo essere scritta, mentre la PEW solo letta ... quindi devi riservarti una zona di memoria delle dimensioni di una WORD ...

es:

MW 120 valore analogico da trasferire alla PAW276 ...

E0.0 : incremento
E0.1 : decremento

qui c'è da stabilire con che passo si fa l'incremnto ... per semplicità ritengo che l'ingremento è fatto continuo, ossia fino a che tengo premuto incremento o decremento i MW120. Altra semplificazione l'incremento è fatto a tempo ciclo ... quindi:

> L 1 // ACC 2 = 1
> L MW120 // ACC 1 = MW120
> U E0.0 // Se c'è l'incremento
> SPBN go00 // ... altrimenti salto a go00
> +I // incremento
> SPA go01 // ACC 1 = 1 + MW120
>go00: U E0.1 // Se c'è il decremento
> SPBN go01 // ... altrimento salto a go01
> TAK // ACC 2 = MW120 ACC 1 = 1
> -I // Decremnto
>go01: T MW120 // trasferisco ...

ovviamente è un puro software didattico, ognuno può modificarlo come vuole e ovviamente trovare miglioramenti .. è solo per far vedere vari giochetti con l'AWL ... ;-)

a questo punto

> L MW120 // prendo il valore
> SLW 3 // lo shifto di tre a sinistra
> T PEW276 // quindi lo trasferisco sulla PAW ...

penso che possa anche funzionare ... adesso bisognerebbe migliorare,
del tipo l'incremento ... una cosa ficcca sarebbe fare l'incremento
in modo prima per unità poi una volta raggiunto la decina in continuo incrementare per decine, quindi in centinaia ... ;-) stesso per il
decremento ...

ciao ...

federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 11 Apr 2002 :  19:58:56  *Show Profile  *Visit awl's Homepage
Non si potrebbe fare in questo modo, ti spiego, potrei dire anche un mare di cazzate !!! allora come detto precedentemente il valore di un ingresso o di una uscita è dato dalla famosa word : sxxxxxxxxxxxxddd dove s è il segno xxxxxxxxxxxx sono il valore e ddd sono i bit di diagnostica, bene se noi inizializziamo nel primo ciclo di scansione del programma xxxxxxxxxxxx tutto a zero e se quando premo il pulsante incrementa sommo il valore 1000 binario alla word oppure lo sottraggo se premo il pulsante decremento il tutto dovrebbe andare o no ? partendo dal valore iniziale s000000000000ddd sommo mille ottengo s000000000001ddd se sommo ancora mille s000000000010ddd e così via fino ad arrivare al valore massimo, e stessa cosa per il pulsante di decremento, se poi facciamo in modo che tenendo premuto il pulsante la somma o la sottrazione avvenga ad intervalli di tempo prestabiliti, il tutto dovrebbe andare o no ?

*Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 12 Apr 2002 :  08:07:57  *Show Profile  *Visit awl's Homepage
Concettualmente si ...
ma come fai a sommare ?!?

non puoi scrivere L PAW perchè non è lecito ...
quindi se non puoi fare L PAW come fai a sommarci qualcosa al dato precedente ?!?

attento al bit di segno, non è detto che tutte le schede analogiche possano utilizzare il bit di segno, qui devi poi usare un manuale ...
un consiglio ... leggiti i manuali, almeno se un giorno mai ti servisse ti prepari gia spiritualmente a leggerli ... questa è una
mia considerazione ma i manuali in italiano fanno schifo sono sccritti da cani (con tutto il rispetto per gli animali) ...
sicuramente è dovuto alla traduzione fatta da Tedesco -> inglese -> italiano ... In inglese sono gia meglio ;-) ... purtroppo non conosco il tedesco ;-( ...

Per il resto ... ti consiglio ... sempre se hai l'occasione di provare il codice che ti vien in mente ... così almeno vedi come reagisce la macchina ...

del resto si dice che:
"... la pratica è diversa dalla grammatica ..."

ciao

federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 25 Apr 2002 :  16:51:50  *Show Profile  *Visit awl's Homepage
Scusa ma nel tuo programma precedente non ho capito una cosetta

- Perchè scrivi il valore da trasferire nella paw276 proprio in mw120 ? non si poteva per esempio in mw0 ? e se non è così perchè ?

*** Messaggio editato da awl il 25 Apr 2002 19:55:20 ****Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 29 Apr 2002 :  08:01:17  *Show Profile  *Visit awl's Homepage
SI puoi usare tutti i merker che vuoi ma alcune CPu riservano i primi merker come retentivi, e quindi per valori variabili e di poco interesse è consueto usare merker alti, mentre usare i merker bassi (0-50) per valori di interesse o che devono essere retentivi ...

ciao

federico*Go to Top of Page

awl
Utente Esperto



Italia
125 *Posts
*Posted - 21 Jun 2002 :  19:39:34  *Show Profile  *Visit awl's Homepage
Supponiamo di avere un sensore di pressione che mi fornisce 4 mv per ogni bar misurato, e supponiamo che io voglia visualizzare su un pannello operatore il valore letto in bar, non dovrei fare altro se non sbaglio che moltiplicare il valore letto in volt per 250, sono corrette quindi queste righe di codice ?

L PEW 276 // Leggo l'analogica
SRW 3 // Elimino i bit di diagnostica
L W#16#FA // Carico il valore 250 esadecimale
*I // Li moltiplico
T MW100 // Trasferisco

Poi con il pannello vado a leggere MW100

*** Messaggio editato da awl il 24 Jun 2002 18:07:16 ****Go to Top of Page

federico
Utente Esperto



Italia
152 *Posts
*Posted - 26 Jun 2002 :  15:50:22  *Show Profile  *Visit awl's Homepage
Secondo me ti conviene stare più nel generico:

la tua conversione analogica è in punti (infatti a meno di non usare poi funzioni ... leggi un valore che rappresenta una grandezza tra due range ... min & max), quindi ti conviene usare una linearizzazione del segnale, del tipo :

posto y = mx + q l'eq. della retta ... ottiene che ...

Ymax - y Xmax - x
------------- = -------------
Ymax - Ymin Xmax - Xmin

dati gli estremi di ingresso Xmin e Xmax, e gli estremi di
uscita Ymin e Ymax ti ricavi m e q in modo da linearizzare il tutto.

Questo ti è utile perchè spesso è conveniente ragionare su estremi piuttosco che su una costante ... e poi una volta fatta la funzione è utilizzabile in moltissimi altri casi ...

ciao

federico*Go to Top of Page

*Topic is 2 Pages Long:
  1  2
 
 *Forum Locked
 *Printer Friendly
Aggiungi al tuo Segnalibro
*Jump To:

PLC forum 2002

Snitz forum ©

ATTENTION: all the staff of the forum is not responsible for contents, comments, violation of the privacy and Copyrights. We are any way available to remove discussions on demand justified

HOME     RICONOSCIMENTI     NEWSLETTER     LINK     STATISTICHE