wesbluemarine Inserito: 18 marzo 2008 Segnala Inserito: 18 marzo 2008 Ciao a tutti!mi sono appena iscritto e mi farebbe molto piacere ricevere dei consigli sui primi approcci per la progettazione di software per plc s7-200.Al momento ho solo seguito la guida della siemens facendo qualche schema a contatti elementare...consigli?grazie in anticipo
paoloixp Inserita: 18 marzo 2008 Segnala Inserita: 18 marzo 2008 Sui plc siemens S7 200 sono alle prime armi anch'io ma ho sviluppatto applicazioni decisamente complesse su altri prodotti e purtroppo devo dirti che il modo migliore per imparare è avere la fortuna sfortuna di poter realizzare applicazioni reali da poter testare e verificarne la bontà, certamente è utile avere buona conoscenza dell'ambiente di sviluppo ma la vera esperienza la fai quando di fronte ad un problema reale stimoli l'ingegno per superarlo.ciao
Livio Migliaresi Inserita: 18 marzo 2008 Segnala Inserita: 18 marzo 2008 (modificato) Benvenuto! hai dato uno sguardo qui Modificato: 18 marzo 2008 da Livio Migliaresi
wesbluemarine Inserita: 13 maggio 2008 Autore Segnala Inserita: 13 maggio 2008 rieccomi dopo qualche mese....alla fine ho preso un po' di mano e ho provato a sviluppare qualche programmino semplice...mi è venuto un dubbio per una condizione però; ho una luce che rimane accesa per tot secondi, finiti i tot secondi voglio che inizi a lampeggiare.Come fare un lampeggio lo so(utilizzo 2 ton) ma riportando il contatto dell'uscita della lampada prima del parallelo dei due ton, avvengono le seguenti cose:1.se il contatto dell'uscita della lampadina è negato, il lampeggio parte appena attivo l'ingresso2.se non è negato il lampeggio parte appena si attiva l'uscita della lampadina, mentre io voglio che rimanga accesa per 5 secondi e poi inizi a lampeggiare...come posso risolvere il problema?(mi scuso in anticipo per il linguaggio non adeguato)
batta Inserita: 13 maggio 2008 Segnala Inserita: 13 maggio 2008 Se posti il programma possiamo dare un'occhiata e dirti dov'è l'errore.
wesbluemarine Inserita: 13 maggio 2008 Autore Segnala Inserita: 13 maggio 2008 (modificato) Grazie in anticipo!ho allegato il file mwpeditho notato che il forum ha problemi con gli allegati, così ho provveduto a metterlo su un sito di hostinghttp://www.zshare.net/download/1194769593079115/ah la lampada che voglio far lampeggiare dopo 5 secondi di accensione è quella verde Modificato: 13 maggio 2008 da wesbluemarine
kamikaze Inserita: 13 maggio 2008 Segnala Inserita: 13 maggio 2008 Si vede subito un'errore abbastanza comune per chi è alle prime armi (lo siamo stati tutti , intendiamoci).Q0.1 (lampada verde) è stato usato dichiarandolo come uscita per ben 3 volte , nel segmento 3,5 ,7.Una variabile dichiarata come bobina di uscita, deve essere univoca.Altrimenti , il puntatore del programma , arbitrariamente elabora solo lo stato dell'ultima istruzione in ordine di scrittura , quindi quella del segmento 7.Più generalmente si tende a dire che il risultato dell'elaborazione ha un comportamento "imprevisto".Comincia a correggere questo errore usando dei flag o merker se devi associare più funzioni complesse ad un risultato come l un'uscita.CiaoIvan
wesbluemarine Inserita: 14 maggio 2008 Autore Segnala Inserita: 14 maggio 2008 Ho provato a cambiare qualcosa e ad usare i merker come suggeritomi da kamikaze(grazie mille), ma il problema è che non riesco a far lampeggiare la lampada verde dopo che rimane accesa per 5 secondi; o mi lampeggia subito o rimane accesa ...come posso fare?grazie ecco il link all'ultima revisione che ho fattohttp://www.zshare.net/download/12001659bfdb3e64/
kamikaze Inserita: 15 maggio 2008 Segnala Inserita: 15 maggio 2008 Usa per costesia un'altro sito di file hosting un poco più serio, tipo P2P oppure Mediafire.Quello dove hai postato l'iimagine, prima di fare il download ti propina minuti di inutile pubblicità con decine di popoup , alla fine ci rinuncio.CiaoIvan
wesbluemarine Inserita: 16 maggio 2008 Autore Segnala Inserita: 16 maggio 2008 usi internet explorer vero?scusa il problema è che con browser più seri non c'è il problema...provvedo subitohttp://www.mediafire.com/?xynvgnkzsem
kamikaze Inserita: 17 maggio 2008 Segnala Inserita: 17 maggio 2008 No uso , un browser che ritengo solo più efficiente (serio è una parolona) quale è firefox.Essendo configurato per bloccare le finestre di pop up , dava una fastidiosa visualizzazione del precedente sito di file hostin, mediafire , mi ha fatto il download in 2 secondi.Guardo e ti faccio sapere.CiaoIvan
kamikaze Inserita: 17 maggio 2008 Segnala Inserita: 17 maggio 2008 Allora da quello che ho visto:La lampada gialla , si accende dopo 5 secondi dal raggiungimento dell'ingresso I0.0 e rimane accesa per i 5 secondi successivi.Il network 4 fatico a capire a cosa ti serva , anche perchè non fà che impostare immediatamente a true il T38, che poi si diventa false per un ciclo di scansione al fine conteggio di 5 secondi del timer 40 , quindi tu hai un T38 , TRUE per 5 secondi e False solo per 1 ciclo di scansione (praticamente impercettibile ad occhio umano data l'esiguità del programma).Nota: MAI e dico mai usare i timer con valore di caricamanto a zero. Possono creare funzionamenti imprevisti, come ad esempio mai attivarsi in maniera casuale , al limite metti 1 nel valore di caricamento , consiglio valido poer tutti i PLC.Il T38 (ammesso che funzioni, come ti ho spiegato prima) imposta a TRUE il flag M0.2 che si autoritiene fino a che è presente l'ingresso I0.0 , per questo ritengo che sia perfettmente inutile il segmento precedente , potresti usare nel segmento 5 , al posto di T38 , il contatto di M0.1 e sarebbe forse la stessa cosa.M0.2 , attiva il proceso di lampeggio tramite 2 timers , nel segmento 6 (1 secondo ON 1 secondo OFF).Nel segmento 7 , sarebbe sufficiente solo un contatto aperto di M0.2 seguito dal negato di T45 , per fare accendere la verde insieme alla gialla e poi farla lampeggiare dopo 5 secondi.Oppure sempre nel segmento 7 , il contatto aperto di I0.0 in serie a T45 se vuoi fare accendere la lampada verde subito e farla lampeggiare dopo 5 secondi dall'accensione della gialla.Quando posso provo a postare una versione di come farei il programma , magari ti può servire come semplice esempio.CiaoIvan
wesbluemarine Inserita: 19 maggio 2008 Autore Segnala Inserita: 19 maggio 2008 ho provato a modificare come suggeritomi da te kamikaze ma facendo il segmento 7 nei due modi la verde parte sempre all'accensione della gialla e non dopo 5 secondi...
Luca Bab Inserita: 19 maggio 2008 Segnala Inserita: 19 maggio 2008 Non ho guardato il codicema quello che vuoi fare ( se ho capito bene ) e' abbastanza sempliceuna volta che hai il flip flop per il lampeggio , mettiamo che sia T1ti fai un T2 ( TON ) con l'ingresso relativo ( 5 secondi )Le condizioni per la lampada sono : Ingresso in serie con il T1 ed il T2 negato in parallelo a T1.c'e' l'ingresso e manca il T2 , la lampada e' fissa , quando T2 on la lampada lampeggia.Nota: MAI e dico mai usare i timer con valore di caricamanto a zeronon capisco che problema puoi avere ad usare i timer a 0 , ne ho sempre usati senza notare problemi , devono funzionare lo stesso se no sono bug grossi di siemens.ovviamente non parto programmandolo a zero , ma do' la possibilita' di metterlo a zero da pannelloLuca
kamikaze Inserita: 19 maggio 2008 Segnala Inserita: 19 maggio 2008 ho provato a modificare come suggeritomi da te kamikaze ma facendo il segmento 7 nei due modi la verde parte sempre all'accensione della gialla e non dopo 5 secondi...Infatti è il funzionamento che ti avevo descritto, da come ho interpretato dal tuo programma e come ho sempre creduto dovesse funzionare.A questo punto mi rendo conto che non ho capito come tu voglia fare funzionare queste lampade.Luca ,non capisco che problema puoi avere ad usare i timer a 0 , ne ho sempre usati senza notare problemi è un retaggio del passato , nei vecchi PLC (parlo della serie 100) molto spesso i timer con base dei tempi in millisecondi con valore di caricamento a zero non ne volevano sapere di funzionare.Da allora ho assunto come standard, nel caso di T in millisecondi , di usare 1 come valore di caricamento , al posto di zero se si vuole escludere la temporizzazione. (1 millisecondo è minore del tempo ciclo di un programma medio) quindi ininfluente nel flusso dell'elaborazione.Cosa ci vuoi fare amo lo standard e la cautela.Tutto qui.CiaoIvan
Luca Bab Inserita: 19 maggio 2008 Segnala Inserita: 19 maggio 2008 è un retaggio del passato , nei vecchi PLC (parlo della serie 100) molto spesso i timer con base dei tempi in millisecondi con valore di caricamento a zero non ne volevano sapere di funzionare.ok , grazie per la precisazione , vado piu' tranquilloCiaoLuca
wesbluemarine Inserita: 19 maggio 2008 Autore Segnala Inserita: 19 maggio 2008 io volevo solo che la lampada verde iniziasse a lampeggiare dopo 5 secondi che sta accesa e non subito
kamikaze Inserita: 19 maggio 2008 Segnala Inserita: 19 maggio 2008 (modificato) Allora vediamo se ho capito bene, un ingresso accende una uscita, dopo 5 secondi che l'uscita è ON inizia a lempeggiare.Ti allego un programma di esempio.http://www.mediafire.com/?bkyrygepzdlQuando attivi l'ingresso I0.0 , si attiva immediatamente l'uscita A0.0 , dopo 5 secondi la stessa inizia a lampeggiare con una frequenza di mezzo secondo ON e mezzo OFF.CiaoIvan Modificato: 19 maggio 2008 da kamikaze
wesbluemarine Inserita: 4 giugno 2008 Autore Segnala Inserita: 4 giugno 2008 Rieccomi!intanto grazie per la pazienza e i consigli preziosi che mi avete dato...volevo sapere come funzionano i contatti di transizione positiva(P) e negativa(N), perchè non riesco proprio a capire quando si dovrebbero attivare...magari qualcuno può farmi un esempio?
busanela Inserita: 4 giugno 2008 Segnala Inserita: 4 giugno 2008 Ciao, nell' aiuto contestuale l'argomento è trattato e spiegato molto bene, anche con esempi pratici chiari; clicca su "?", "Sommario e indice", nella sottofinestra "indice" scorri fino a trovare il simbolo del contatto con la P.Comunque, ecco un breve esempio:TITLE=COMMENTI SUL PROGRAMMANetwork 1 // Titolo del segmento// Sul fronte positivo dell'ingresso 0.0, setta a 1 il merker 0.LD E0.0EUS M0.0, 1Network 2 // Sul fronte negativo dell'ingresso 0.1, resetta il merker 0.LD E0.1EDR M0.0, 1Network 3 // Comanda l'uscita 0.0.LD M0.0= A0.0
kamikaze Inserita: 4 giugno 2008 Segnala Inserita: 4 giugno 2008 (modificato) Si è spiegato nella guida di S7-200, non è facile da trovare nel contesto, il modo più semplice è crearne uno nel ladder, evidenziarlo con il puntatore del mouse e premere F1.In sostanza il contatto P , è VERO solo per 1 ciclo di scansione del programma dopo aver rilevato che l'ingresso associato ( quello richiamato appena prima del contatto P) ha cambiato stato da FALSO (potenziale zero) a TRUE (potenziale alto).Come spero tu abba già approfondito, il PLC esegue ciclicamente 4 operazioni basilari (semplifico):1-Elaborazione di funizioni interne, comunicazione, diagnostica CPU , ecc.2-Elaborazione del programma.3-Scrittura del risultato del programma nelle uscite (immagine uscite)4-Lettura dello stato degli ingressi (immagine ingressi)Se al passo 4 , viene rilevato per esempio che un'ingresso , ha cambiato il suo stato da FALSE a TRUE , rispetto alla precedente lettura, nel passo 2 di elaborazione il contatto P diventa TRUE (conduce) solo per quella istanza, vuole dire che nelle successive elaborazioni del passo 2 , ritorna e rimane FALSE.A cosa puo' servire tale funzione?A tante cose, tra cui la fondamentale è attivare una funzione una volta sola al variare dello stato di un'ingresso.Ciao.Ivan Modificato: 4 giugno 2008 da kamikaze
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora