tonynos Inserito: 5 maggio 2015 Segnala Inserito: 5 maggio 2015 Buongiorno, sto sviluppando il mio primo programma con SoMachine Basic. Dovrei creare una sequenza di accensione di circa 15 teleruttori intervallati 5 sec l'uno dall'altro. esiste un sistema per creare un "ciclo if" (come in "C++") che se il teleruttore 1 è accesso allora accende il 2 etc... oppure devo creare 15 righe separate ognuna della quali attiva un teleruttore e da il consenso al teleruttore successivo. saluti Tony!
step-80 Inserita: 5 maggio 2015 Segnala Inserita: 5 maggio 2015 (modificato) Ciao per soli 15 teleruttori secondo me ti conviene usare il linguaggio strutturato, ed usare il CASE per creare il tuo ciclo Esempio Dichiarazione variabili: VAR variabile_step: INT; pls_start : bool; Tempo_intervallo: TON; END_VAR LOOP CASE 'variabile_step' OF 0: IF 'pulsante_start' THEN 'Teleruttore_1' :=TRUE; Tempo_intervallo.IN:=TRUE;'variabile_step:=5; END_IF; 5: IF Tempo_intervallo.Q THEN 'Teleruttore_2':=TRUE; Tempo_intervallo.IN:=FALSE; 'variabile_step':=10; END_IF; 10: Tempo_intervallo.IN:=TRUE; 'variabile_step':=15; 15: // Da qui in poi copi-incolli i vari passaggi cambiando il valore di variabile step e controllando lo scadere del timer oltre ovviamente il numero di teleruttore che vuoi accendere/spegnere In questo modo usi un solo temporizzatore Ciao Matteo Modificato: 5 maggio 2015 da step-80
bigalex Inserita: 5 maggio 2015 Segnala Inserita: 5 maggio 2015 (modificato) SoMachine Basic non include il testo strutturato ma solo ladder , IL (lista istruzioni) e SFC (Grafcet) . E' una pseudo evoluzione di TwidoSuite e visto che è gratuito e rivolto al solo prodotto M221 (che dovrebbe sostituire in futuro Twido) non contempla tutti i linguaggi IEC come invece SoMachine (Full) include (è CodeSys) . bigalex Modificato: 5 maggio 2015 da bigalex
step-80 Inserita: 5 maggio 2015 Segnala Inserita: 5 maggio 2015 Allora come non detto.. Ti tocca fartelo di ladder ma 15 teleruttori non sono gran cosa. Se proprio volessi fare qualcosa di particolare potresti inventarti un blocco funzione da istanziare diversamente per i 15 teleruttori
bigalex Inserita: 5 maggio 2015 Segnala Inserita: 5 maggio 2015 SoMachine Basic non credo consenta la creazione di User Function Blocks. bigalex
Giuseppe Signorella Inserita: 5 maggio 2015 Segnala Inserita: 5 maggio 2015 Se devi semplicemente far partire in sequenza 15 teleruttori, (uscite) ti basta un registro di scorrimento che richiami ogni 5 secondi con un fronte di salita e farti delle autoritenute.
step-80 Inserita: 5 maggio 2015 Segnala Inserita: 5 maggio 2015 Se devi semplicemente far partire in sequenza 15 teleruttori, (uscite) ti basta un registro di scorrimento che richiami ogni 5 secondi con un fronte di salita e farti delle autoritenute. A questo punto non so se SoMachine Basic permetta l'uso del registro di scorrimento :superlol: :superlol:
tonynos Inserita: 11 maggio 2015 Autore Segnala Inserita: 11 maggio 2015 ho deciso di farlo in Ladder, inserendo i vari controlli per ogni passaggio (consenso dal teleruttore precedente, non ci sono allarmi etc..) qual'è la funzione per impostare l'eccitamento di una bobina? es: se premo il tasto start vorrei che lo stato della bobina venga impostato su NC a prescindere se prima era NO oppure era già NC grazie!!
Ezio67 Inserita: 22 marzo 2016 Segnala Inserita: 22 marzo 2016 tonynos, se ho capito, l'istruzione che cerchi è "S" che sta per SET. Graficamente è rappresentata con una bobinetta e la S all'interno. Se la usi su un'uscita, quando premi il pulsante si avvia il teleruttore. Attenzione che dovrai poi spegnerla con l'istruzione "R" RESET. Spero di essere stato utile.
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