Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema programma in SCL

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

0
voti

[1] Problema programma in SCL

Messaggioda Foto UtenteMichelePLC » 24 apr 2014, 21:10

Ho cercato di tradurre una FC scritta in KOP in linguaggio SCL, linguaggio che per la prima volta vado a toccare.
Riporto i due segmenti in KOP ed i rispettivi segmenti in SCL, essi sono commentati, però se dovessero servire ulteriori informazioni, posto tutto ciò che serve.

Immagine.png


Immagine2.png


L'errore che mi viene segnalato è riferito a quell' S_BIT, ho provato a capire dalla guida in linea come si utilizzasse l'istruzione SET e leggo:

"Per un indirizzamento indiretto di registro indipendente dalle aree, il puntatore deve essere indicato con formato di doppia parola."

Grazie per l'aiuto.
Avatar utente
Foto UtenteMichelePLC
70 1 2
 
Messaggi: 49
Iscritto il: 20 apr 2014, 19:18

0
voti

[2] Re: Problema programma in SCL

Messaggioda Foto UtenteMichelePLC » 24 apr 2014, 21:39

Mi sembra di capire (spero di non aver preso un abbaglio...) dalla guida Siemens al linguaggio SCL, che ci sia un problema di assegnamento, sto leggendo e rileggendo questo paragrafo ma nn me ne esco... ||O
Avatar utente
Foto UtenteMichelePLC
70 1 2
 
Messaggi: 49
Iscritto il: 20 apr 2014, 19:18

2
voti

[3] Re: Problema programma in SCL

Messaggioda Foto UtenteCandy » 24 apr 2014, 21:53

La variabile S_BIT collegata alla funzione deve ammettere le operazioni di IN_OUT, cosa che per SCL non può assolutamente fare una variabile locale del blocco. Come variabili di IN_OUT puoi usare gli operandi I, O, M, DB.

Puoi leggerti i miei ultimi articoli dal mio blog, dove senza troppo mistero mi lamentavo di questa ridicola scelta fatta dagli sviluppatori in merito SCL. Questa è una limitazione non gradevolissima.

Il tuo codice però può essere scritto nel seguente modo:

Codice: Seleziona tutto

...

IF #cond1 AND #cond2 AND #cond3 THEN
  #local_bit := TRUE;
END_IF;

IF (NOT #cond_x OR NOT cond_y OR NOT #cond_z) THEN
  #local_bit := FALSE;
END_IF;

...

ENO := TRUE;
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

1
voti

[4] Re: Problema programma in SCL

Messaggioda Foto UtenteMichelePLC » 24 apr 2014, 22:10

Candy ha scritto:La variabile S_BIT collegata alla funzione deve ammettere le operazioni di IN_OUT, cosa che per SCL non può assolutamente fare una variabile locale del blocco. Come variabili di IN_OUT puoi usare gli operandi I, O, M, DB.


Cioè ad S_BIT si possono assegnare solo valori di Input o Output, però siccome stiamo in un blocco e quelli che abbiamo sono parametri del blocco, non direttamente I/O, ci sono problemi utilizzando tale istruzione in un blocco.

Candy ha scritto:Puoi leggerti i miei ultimi articoli dal mio blog, dove senza troppo mistero mi lamentavo di questa ridicola scelta fatta dagli sviluppatori in merito SCL. Questa è una limitazione non gradevolissima


Sicuramente me li andrò a leggere, ho visto che ultimamente hai anche inserito un intero progetto,ottimo :D ,però voglio almeno avere le basi per capire cosa c'è scritto e poi subito vado.

Il tuo codice però può essere scritto nel seguente modo:


Ho modificato così:

Immagine3.png
Immagine3.png (7.11 KiB) Osservato 7904 volte


Gli errori sono scomparsi :ok: , alla fine abbiamo fatto un set/reset manuale, non mi resta che simulare.

PS: Dopo 4 righe di codice, posso dire che l'SCL è già tra i miei preferiti :D (spero di non dovermi pentire di tale affermazione....) avendo già programmato per degli esami in C/C++/Java non mi sembra lontanissimo da tali linguaggi.
Avatar utente
Foto UtenteMichelePLC
70 1 2
 
Messaggi: 49
Iscritto il: 20 apr 2014, 19:18

0
voti

[5] Re: Problema programma in SCL

Messaggioda Foto UtenteCandy » 24 apr 2014, 22:24

Per ora non mi dilungo troppo sul concetto di IN_OUT di una variabile, sulle variabili locali, sull'architettura dei puntatori in STEP-7 e sulle scelte e limitazioni di SCL.
Ne parleremo più avanti. Per ora limitati ad accettare un poco per buono cosa ti viene detto. (Ma non credere a tutto. Da alcune bocche ho sentito uscire vere e proprie asinate).
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

0
voti

[6] Re: Problema programma in SCL

Messaggioda Foto UtenteMichelePLC » 24 apr 2014, 22:35

Candy ha scritto:Per ora non mi dilungo troppo sul concetto di IN_OUT di una variabile, sulle variabili locali, sull'architettura dei puntatori in STEP-7 e sulle scelte e limitazioni di SCL.


E sì... troppa carne al fuco tutta insieme nn va bene [-X

Ne parleremo più avanti. Per ora limitati ad accettare un poco per buono cosa ti viene detto.


Perfetto :ok:

PS: Il programmino adesso ce l'ho in KOP/AWL/SCL vorrei creare anche qualcosa di grafico con wincc, con il getting started ho già creato un pulsante e delle luci, inoltre sono riuscito a collegare PLCSIM con WINCC , ho altri PDF con degli esempi di nastri trasportatori, da domani me li studio e vedo se riesco ad abbozzare qualcosa di grafico, mi piacerebbe riuscire a vedere proprio il pistone che si apre e si chiude, in base a dei pulsanti, non so se ci riuscirò ma da domani ci provo.
Avatar utente
Foto UtenteMichelePLC
70 1 2
 
Messaggi: 49
Iscritto il: 20 apr 2014, 19:18

1
voti

[7] Re: Problema programma in SCL

Messaggioda Foto UtenteCandy » 24 apr 2014, 22:40

Tempo fa, (era un giorno di trasferta ed avevo del tempo davanti), presi i segnali si lavoro e riposo di un cilindro, scrissi un programma che misurava il tempo medio di movimento del cilindro tra i due estremi, tempo quasi costante, e calcolai quindi la posizione teorica del cilindro. Il tutto per riportare su una pagina del pannello il cilindro che si muoveva, in modo proporzionale.

Non è servito a nulla, ma faceva il suo effetto a vedersi.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

0
voti

[8] Re: Problema programma in SCL

Messaggioda Foto UtenteMichelePLC » 24 apr 2014, 22:48

Candy ha scritto:Tempo fa, (era un giorno di trasferta ed avevo del tempo davanti), presi i segnali si lavoro e riposo di un cilindro, scrissi un programma che misurava il tempo medio di movimento del cilindro tra i due estremi, tempo quasi costante, e calcolai quindi la posizione teorica del cilindro. Il tutto per riportare su una pagina del pannello il cilindro che si muoveva, in modo proporzionale.


Questo è un po' complesso.... :D

Io ho pensato di creare dei pulsanti (questa è l'unica cosa che so fare) poi il pistone se nn c'è in wincc, ho letto che i disegni si possono importare, e vedo se riesco a dare un movimento entrata-uscita al pistone in base ai valori dei pulsanti, non so ci provo, a parole sembra che si possa fare, poi devo vedere nei fatti... :roll:
Avatar utente
Foto UtenteMichelePLC
70 1 2
 
Messaggi: 49
Iscritto il: 20 apr 2014, 19:18

0
voti

[9] Re: Problema programma in SCL

Messaggioda Foto UtenteCandy » 26 apr 2014, 12:04

Dopo 4 righe di codice, posso dire che l'SCL è già tra i miei preferiti

SCL è senza dubbio un grande linguaggio di programmazione, come d'altro canto tutti i linguaggi strutturati di tipo testuale. Peccato che in TIA portal abbiano fatto, gli sviluppatori, il grave errore di ammettere la dichiarazione delle variabili solo in forma tabellare, mentre è di gran lunga, nella scrittura dei programmi, la forma testuale.

Se all'apparenza scrivere un programma in modo testale sembra una limitazione, dal momento che non si ha una immediata "visione" del programma, e la comprensione del medesimo è possibile solo con la lettura del codice, per un altro verso molto più importante, la scrittura del codice è di gran lunga più facilitata. Con poche righe di codice si risolvono problemi che diversamente, in forma grafica, richiederebbero elevata quantità di network, con gran dispendio di tempo, grande concentrazione nel non perdere il filo "progettuale" e, cosa a mio giudizio più importante, grande difficoltà nello riutilizzare il codice o parte di esso.

Quindi, in generale, viva SCL, viva i linguaggi strutturati, che permettono di risolvere molte parti del programma in modo rapido.

A Siemens manca ancora una un elemento importante alla piattaforma di programmazione: la possibilità di dichiarazione, tramite delle intestazioni, di costanti e chiavi varie riconosciute da tutti i blocchi e non dal singolo blocco. Ma è, per ora, sopportabile.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10123
Iscritto il: 14 giu 2010, 22:54

0
voti

[10] Re: Problema programma in SCL

Messaggioda Foto UtenteMichelePLC » 26 apr 2014, 12:18

Ti rispondo con sincerità dicendo che non tutto quello che hai detto mi è chiaro sul discorso delle variabili e della loro dichiarazione, ma questo è solo dovuto alla mia poca esperienza ed alle mie poche nozioni tecniche sull'argomento, ma in tal senso per imparare ogni cosa ci vuole del tempo ed io il mio ce lo sto mettendo.

Detto ciò, forse sarà il fatto di aver programmato già in C/C++/java (ovviamente cose basilari per esami universitari) ma questo SCL lo trovo molto intuitivo, immediato e veloce, inoltre come tu dicevi ti permetter di non perdere il filo del discorso tra fili e contatti da valutare... per persone che si vogliono avvicinare a tale programmazione, provenendo o avendo basi, informatiche penso che sia eccezionale, inoltre (correggimi se sbaglio) vedo che non si allontana neanche tanto da una tipologia di programmazione rivolta a microcontrollori ed effettuata in linguaggi procedurali come il C.

Che dire questo SCL è stata una bella scoperta, adesso non mi resta che vedere anche il graph...
Avatar utente
Foto UtenteMichelePLC
70 1 2
 
Messaggi: 49
Iscritto il: 20 apr 2014, 19:18

Prossimo

Torna a Automazione industriale ed azionamenti

Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti