Vai al contenuto
PLC Forum


Lentezza Comunicazione Scheda Cp343 Su Tcp/ip - CP343 Siemens lenta oltre 240 byte


vebernasconi

Messaggi consigliati

Quasi un anno fa ho iniziato a rompervi le scatole per avere un aiuto su di un sistema di supervisone realizzato medinate Visual C++ e scheda Ethernet CP343 in puro TCP/IP.

Dopo tanto programmare ( e penare ! :( ) finalmente il sistema funziona.

O meglio funziona bene fino a che scambio pacchetti ( leggi dimensione della DB sul PLC ) < 240 byte, mentre se vado oltre, ho dei cali di prestazioni allucinanti.

Qualcuno di voi ha sperimentato lo stesso fenomeno?

Ok, i manuali Siemens specificano ( in modo un po' troppo oscuro, secondo me) che la scheda è performante se il pacchetto è piccolo (<240) ma non immaginavo un degrado simile di prestazioni.

Ho fatto un sistema di supervisione in Visual C++ , accedo alla scheda tramite Async Socket, inviando praticamente un buffer riempito con i dati da me forniti tramite istruzione Send().

Vorrei chiedere se altri hanno realizzato qualcosa di simile ( mi sembrava michele86 ) e se per caso, sono io che sbaglio modo di usare le Async Socket dell'MFC.

Mi spiego, io ho cercato di chamare il meno possibile l'istruzione CAsyncSocket.Send() che manda il mio buffer alla CP343, ma sono stato costretto ad usarla in diversi punti del programma ogni qual volta si richeda un aggiornamento delle DB sul PLC perchè sono stati variati dei dati nel mio buffer. Era forse meglio richiamarla a tempo, magari ogni 300ms?

Idem per la ricezione, ovverosia ogni qualvolta il socket segnala un arrivo di dati , automaticamente il programma riempie il mio buffer di ricezione e lo processa.

Anche in questo caso era meglio fare un polling temporizzato ?

Purtroppo per come erano definite le specifiche del programma e per come vengono gestite le ricette, ho la necessità di inviare, diciamo, una specie di tabella che costituisce parte del buffer di invio e di verificare che essa sia stata recepita dalla CP e trasmessa alla CPU , che me la rimanda come parte del buffer di ricezione. Solo a quel punto, posso chiedere al PLC di procedere con il passo della ricetta.

Fino ad ora ero stato dentro i 240 e tutto va bene, ora si propetta la necessità di fare un piccolo ampiamento :(

Un'altra idea, sarebbe quella di utilizzare più DB diverse sotto i 240 byte, in maniera tale che, quando faccio determinate operazioni sfrutto una coppia di DB per invio e ricezione ( sotto i 240 ) e quando ne faccio altre, cambio la coppia di DB al volo, mediante istruzioni di salto su PLC. Possibile?

Ciao, Vittorio

Link al commento
Condividi su altri siti

  • 4 years later...

ciao a tutti,vi spiego il mio problema,cerco di essere il più tecnico possibile anche se sono completamente inesperto ...

allora,ho un sistema d'irrigazione dove vorrei inserire alcune elettrovalvole...

ora, il mio problema è che non posso stendere corrugato e quindi niente corrente..allora ho pensato alle elettrovalvole 9v che sono alimentabili anche tramite batteria semplice...

e fin qui ok, ora il problema è un'altro.. devo poi programmarle,invece di comprare un sistema già pronto con centralina e varie sto cercando di fare tutto molto artigianalmente e da solo.. visto che non ne vale la pena data la resa finale del mio prato :rolleyes:

allora,ho pensato ai timer classici quelli che si interpongono tra la presa a muro e l'elettrodomestico che si vuole utlizzare,i classici timer da presa...

ne ho trovato 1..dove sulla descrizione si dice valido fino a 3500w...

a questo punto secondo voi se collego la batteria da 9v al timer saldando e poi dall'altra parte collego l'elettrovalvola sempre saldando può andare bene?

graziee!

Link al commento
Condividi su altri siti

allora,ho pensato ai timer classici quelli che si interpongono tra la presa a muro e l'elettrodomestico che si vuole utlizzare,i classici timer da presa...

ne ho trovato 1..dove sulla descrizione si dice valido fino a 3500w...

Non hai pensato bene, :lol:

Quei timer , se ho capito bene , sono quelli con ghiera rotante e cavalieri , da impostare per acceso spento?

In quel caso, ma in tutti i casi si tratti di timer a "spina", l'alimentazione è 220VAC , oppure tramite un circuitino interno minore di 220 , in genere 12VAC-VDC in ogni caso trovarla a 9 VDC , ci vuole una bella fortuna.

Ci sono quei programmatori elettronici da montare al rubinetto che sono uno spettacolo tipo QUESTO!

Se poi sei proprio un amante del fai da tè si puo' vedere un circuito artigianale , ma a conti fatti dubito che il risparmio ne valga la pena.

Con quello che ti ho proposto, eviti le valvole, se il giardino è piccolo (tipo balcone o villetta a schiera).

Ciao

Ivan

Modificato: da kamikaze
Link al commento
Condividi su altri siti

hai ragione,effettivamente quelli sono a spina e quindi 220v..

ora le valvole gia pronte come quelle che mi hai indicato tu le conosco,solo che ne dovrei mettere 3 di cui una con attacco 3/4 quindi mi costerebbero un bel po...

praticamente il mio sistema d'irrigazione è a 3 zone attualmente...

solo che non posso stendere cavi ne altro.. quindi mi serve un sistema per aprire queste 3 vie che sia senza fili in giro..

ho visto che le elettrovalvole da 9v non costano molto..sui 15€ cca e quindi sarebbero l'ideale perchè alimentate da batteria a 9v... solo che il problema è come comandarle.. ci vuole 1 programmatore..e anche qui i programmatori esistono già pronti solo che devo portare i fili delle elettrovalvole,che non sono tutte vicine e collegarle alla centralina a 9v.. quindi è lo stesso..

in pratica quindi io vorrei realizzare un sistema tipo quello che mi hai linkato tu,quindi le valvole programmabili già pronte ma fatte artigianalmente...

quindi a me serve un modo per interporre un timer tra la batteria classica da 9v e la singola elettrovalvola che è alimentata sempre a 9v... timer tipo quelli a spina sarebbero l'ideale solo che sono chiaramente a 220v... come si può fare?

Link al commento
Condividi su altri siti

Puoi usare un crono termostato, si alimenta con 2 batterie AA da 1,5v e ti da in uscita un contatto di relè. Imposti una temperatura tale per cui è sempre richiesto il riscaldamento :) . Poi programmi i tempi di acceso-spento ed il gioco è fatto.

Solo che con uno di questi aggeggi devi comandare tutte e tre le elettrovalvole assieme.

Link al commento
Condividi su altri siti

grazie livio.. sei davvero grandee!

posso chiederti però perchè dovrei utilizzare 1 cronotermostato x tutte e 3 le elettrovalvole? comunque in pratica io collego il cronotermostato all'elettrovalvola e me l'alimenta a 9v?

non ne posso mettere 1 per ogni elettrovalvola?

il mio problema è che 1 elettrovalvola è molto lontana dalle altre 2... e comunque la mia elettropompa non riesce a gestirmi tutte e 3 le zone insieme e quindi devo farle irrigare singolarmente!!!

Link al commento
Condividi su altri siti

Un cronotermostato ha un solo relè con un contatto normalmente aperto. Puoi usare 3 crono per comandare le tre valvole in modo completamente indipendente, anzi puoi realizzare le sequenza dei 3 crono in modo che si attivno in sequenza.

Molto importante L'avevo dimenticato. Verifica che il valore di corrente assorbita dall'elettrovalvola sia minore della massima corrente ammessa dal relè del crono termostato.

Link al commento
Condividi su altri siti

Idea geniale.

Speriamo solo che tu riesca a trovare il materiale a poco prezzo: i cronotermostati non sono così a buon mercato.

Per quanto riguarda l'assorbimento credo che poichè l'alimentazione avviene con comuni batterie "transistor" a 9V la corrente che può fornire è molto limitata. Spero che anche le valvole consumino poco, altrimenti addio autonomia delle batterie.

Piuttosto, cerca di posizionare il tutto in un posto molto protetto, ad esempio in una cassetta stagna, escluso le elettrovalvole che è megio installare altrove.

Quando lo avrai realizzato puoi darci un indicazione sui costi affrontati ? (è per capire se c'è un guadagno rispetto a soluzioni "standard")

Personalmente utilizzo un residuato bellico di PLC ed un piccolo survoltore autocostruito (12V DC -> 24V DC) e per batteria una vecchia (ma buona) batteria da auto.

Link al commento
Condividi su altri siti

Potresti, ripeto potresti, verificare la possibilità di utilizzare quelle lampade da giardino che utilizzano, nel coperchio, delle piccole celle fotovoltaiche per caricare la batteria interna e far funzionare la piccola lampadina (o dei led) durante la notte.

Opportunamente modificata, putrebbe fare al caso tuo in quanto la puoi posizionare nelle immadiare vicinanze della valvola.

Potrebbe essere un'idea?? :rolleyes: Si dovrà verificare la tensione e la corrente erogabili.

Quasi quasi......... :)

Link al commento
Condividi su altri siti

Allora se proprio vogliamo esagerare propongo anche io la mia idea: modificare il cronoternostato sostituendo la sonda di temperatura (ptc o ntc) con un picolo circuito che funga da igrometro. Naturalmente il termostato indicherà un valore di temperatura, ma fisicamente sarà equivalente ad un valore di unidità nel terreno.

Non so se avrei il coraggio di smontare un cronotermostato appena acquistato, ma non è difficile realizzare questa funzione certamente utile per il contesto.

Link al commento
Condividi su altri siti

ciao

scusami ma tu in uscita dell'elettropompa hai una sola tubazione? o si dirama direttamente in tre tubazioni?

perche se si dirama direttamente in tre tubzioni, metti subito una elettrovalvola per ogni tubazione

Link al commento
Condividi su altri siti

vi allego schema...

ps..ma io ho dato 1 occhiata al cronotermostato che ho in casa,ora..non prendetemi in giro x la mia completa ignoranza,del resto è il vs mestiere...e non il mio

:lol:

dietro al cronotermostato io ho 2 morsetti e adesso ci sono attaccati 2 fili in casa che vanno verso la caldaia...

con l'elettrovalvola come dovrei fare?

all'elettrovalvola attacco la pila da 9v e poi? come lo metto il cronotermostato?

grazie...

comunque.. tanto x capirci,le elettrovalvole già pronte quelle che si innestano sul rubinetto vanno con una pila da 9v quindi penso che dovrebbe reggere 1 pila da 9v per un po,che dite?

73859947wp2.th.jpg

purtropoo è 1 tubazione unica a rubinetti quindi non posso mettere che 3 elettrovalvole separate con termostati x ciascuna dove m'interessa...

Modificato: da TheDad
Link al commento
Condividi su altri siti

all'elettrovalvola attacco la pila da 9v e poi? come lo metto il cronotermostato?

L'elettrovalvola avrà 2 morsetti; uno lo attcchi ad un polo della batteria, l'altro polo della batteria lo attacchi ad uno dei 2 morsetti del crono, l'altro morsetto del crono lo attacchi al secondo morsetto dell'elettrovalvola.

Con la caldaia è praticamente la stessa cosa; invece della batteria da 9v c'è la rete 230v ed al posto dell'elettrovalvola c'è la pompa di mandata.

Link al commento
Condividi su altri siti

Permetti una domanda (anche se banale)

Perchè vuoi fare tre zone diverse??

Se hai una elettropompa, non ce la fà con la pressione???

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