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.
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.
Problema programma in SCL
Moderatori:
dimaios,
carlomariamanenti
14 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
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... 

-

MichelePLC
70 1 2 - Messaggi: 49
- Iscritto il: 20 apr 2014, 19:18
2
voti
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:
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;
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
1
voti
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
Il tuo codice però può essere scritto nel seguente modo:
Ho modificato così:
Gli errori sono scomparsi
, 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
-

MichelePLC
70 1 2 - Messaggi: 49
- Iscritto il: 20 apr 2014, 19:18
0
voti
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).
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).
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
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
Ne parleremo più avanti. Per ora limitati ad accettare un poco per buono cosa ti viene detto.
Perfetto
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.
-

MichelePLC
70 1 2 - Messaggi: 49
- Iscritto il: 20 apr 2014, 19:18
1
voti
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.
Non è servito a nulla, ma faceva il suo effetto a vedersi.
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
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....
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...
-

MichelePLC
70 1 2 - Messaggi: 49
- Iscritto il: 20 apr 2014, 19:18
0
voti
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.
-

Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
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...
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...
-

MichelePLC
70 1 2 - Messaggi: 49
- Iscritto il: 20 apr 2014, 19:18
14 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Automazione industriale ed azionamenti
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)