Vai al contenuto
PLC Forum


Sequenza Automatica Con Somachine Basic


Messaggi consigliati

Inserito:

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!


Inserita: (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: da step-80
Inserita: (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 :blink:

Modificato: da bigalex
Inserita:

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

Giuseppe Signorella
Inserita:

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.

Inserita:

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 :smile::superlol: :superlol: :superlol::roflmao::superlol: :superlol:

Inserita:

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

  • 10 months later...
Inserita:

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.

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