Vai al contenuto
PLC Forum


AWL: cos'è e quali sono i vantaggi


Garzo

Messaggi consigliati

Buongiorno a tutti softwaristi,

è da ieri che ho iniziato la mia esperienza con il Siemens, e un "caro amico" mi ha parlato di questo AWL. 

 

Se ho capito bene, in Step-7 ho la possibilità di scegliere il linguaggio di programmazione, tra cui ovviamente il Ladder, l'AWL e così via con gli altri... quali possibilità mi da l'AWL in più al ladder? Da come so è un linguaggio interamente letterale, bensì non abbiamo più i nostri amati controllori logici (erro?). 

 

Ho programmato da "bambino" con C++, Python e Visual Basic, ero l'amministratore di un forum di cheating ed hacking per giochi online (ergo ho sprecato il mio tempo appresso a stronzate 😅) e volevo sapere se mi ritroverò qualcosa della sintassi usata già in passato.

 

Best regards,

Federico

Link al commento
Condividi su altri siti


Niente a che vedere con C, Python, VB e altri linguaggi simili.
AWL assomiglia di più ad un assembler. Ogni riga contiene un'istruzione.

Per esempio, per sommare tre interi faresti così:

L "MiaVar_1"
L "MiaVar_2"
+I
L "MiaVar_3"
+I
T "Risultato"

Se non vuoi eseguire le operazioni, devi fare dei salti.

 

La tipica sequenza marcia/arresto la scriveresti così:

U(
O PB_Start
O Motor
)
UN PB_Stop
= Motor

Le parentesi si potrebbero omettere, ma con le parentesi il codice è convertibile in ladder.

 

Vantaggi rispetto al ladder? La possibilità di scrivere un codice molto più snello.

Svantaggi? Se ci sono rami con logica booleana un po' complessa (misto di rami in AND e in OR) risulta di difficile comprensione.
Nelle CPU 300/400 alcune operazioni le puoi fare solo in AWL (per esempio, operazioni con i puntatori).
Nelle CPU 1200/1500 è stato dato molto più spazio al testo strutturato, e l'AWL (purtroppo o per fortuna) viene usato sempre meno.

Link al commento
Condividi su altri siti

Ciao Garzo, purtroppo no. Quanto di più lontano da quanto hai citato. Ne abbiamo giusto discusso in un altra discussione, di quanto rimanga da vivere a linguaggi come questi, cosiddetti proprietari.

 

L'AWL nasce e muore con Siemens, quindi per FORZA te lo dovrai sorbire se dovrai interfacciarti con funzioni complesse ed operazioni (specie per la serie 300 e 400).

 

Consiglio da uno che lo legge, ma non lo ama. Imparalo, farai un po' di fatica, ma le basi le hai. Però, non pensare di abbandonare quanto hai già appreso con gli altri linguaggi, perché se dai un occhiata allo strutturato (adottato poi nel 1200), vedrai che sarà facile ritrovarsi.

 

Buona giornata, Ennio

Link al commento
Condividi su altri siti

Quote

sembra che l'AWL nasca con Siemens ma esiste secondo lo standard, tutti gli altri lo chiama IL

Non è del tutto esatto.

L'AWL è diverso dalla lista istruzioni (IL) standard.

Riguardo il fatto che sia superato, ci sarebbe da discutere. Diciamo che è sempre meno usato, che è diverso.

Nel TIA sono migliorati molto gli editor ladder e testo strutturato, e anch'io uso sempre meno AWL.
In alcuni casi però risulta essere ancora il linguaggio più snello e performante.

Link al commento
Condividi su altri siti

Buongiorno,

ringrazio tutti per le risposte, ora mi sono fatto una vaga idea della cosa in sé per sé.

 

Ciò che mi ha interessato dell'AWL è sapere che, almeno in Siemens, solo tramite d'esso è possibile eseguire operazioni con la "virgola mobile". Probabilmente è davvero abbandonato come linguaggio, o meno usato, mettetela come volete (anche perché noi programmatori siamo tutti super pignoli 🧐) oltre al fatto che chi me ne ha parlato programmava nel 1994.

 

Testo strutturato? Di cosa parliamo?

 

A prescindere vorrei imparare qualcosa di nuovo ma che rimanga sia nel mio bagagliaio personale ma che sia anche un qualcosa che mi torni utile nel tempo.

 

Grazie

 

Best regards,

Federico

 

EDIT:

 

Non sembra qualcosa di così troppo complesso. O meglio, è fattibile...

con quale mi consigliate di iniziare? Mi faccio una prima idea dell'AWL e poi passo allo strutturato o inizio direttamente con quest'ultimo?

 

17 ore fa, batta scrisse:

Niente a che vedere con C, Python, VB e altri linguaggi simili.
AWL assomiglia di più ad un assembler. Ogni riga contiene un'istruzione.

Per esempio, per sommare tre interi faresti così:


L "MiaVar_1"
L "MiaVar_2"
+I
L "MiaVar_3"
+I
T "Risultato"

Se non vuoi eseguire le operazioni, devi fare dei salti.

 

La tipica sequenza marcia/arresto la scriveresti così:


U(
O PB_Start
O Motor
)
UN PB_Stop
= Motor

Le parentesi si potrebbero omettere, ma con le parentesi il codice è convertibile in ladder.

 

Vantaggi rispetto al ladder? La possibilità di scrivere un codice molto più snello.

Svantaggi? Se ci sono rami con logica booleana un po' complessa (misto di rami in AND e in OR) risulta di difficile comprensione.
Nelle CPU 300/400 alcune operazioni le puoi fare solo in AWL (per esempio, operazioni con i puntatori).
Nelle CPU 1200/1500 è stato dato molto più spazio al testo strutturato, e l'AWL (purtroppo o per fortuna) viene usato sempre meno.

Link al commento
Condividi su altri siti

Quote

Ciò che mi ha interessato dell'AWL è sapere che, almeno in Siemens, solo tramite d'esso è possibile eseguire operazioni con la "virgola mobile".

Non so proprio da dove ti sia venuta questa balzana idea!

 

Quote

Non sembra qualcosa di così troppo complesso. O meglio, è fattibile...

con quale mi consigliate di iniziare? Mi faccio una prima idea dell'AWL e poi passo allo strutturato o inizio direttamente con quest'ultimo?

Certo che è fattibile. In un certo senso, si potrebbe definire il linguaggio più semplice: esegue, una alla volta, le istruzioni così come sono scritte.
 

Da quale cominciare?
Se lavori solo con CPU 1200/1500 e solo su progetti che sviluppi tu, puoi, almeno per il momento, accantonare l'AWL.
Nel 1200 addirittura l'AWL non è supportato.
Se devi mettere mano a programmi fatti da altri, soprattutto se su S7-300/400, troverai sicuramente parti scritte in AWL.

Link al commento
Condividi su altri siti

Ciao batta,

 

9 minuti fa, batta scrisse:

Non so proprio da dove ti sia venuta questa balzana idea!

 

Non è una mia idea, è ciò che ho sentito dire. Infatti per questo preferisco sempre documentarmi io in primis piuttosto che prendere per certo ciò che sento dire da terzi.

 

9 minuti fa, batta scrisse:

Se devi mettere mano a programmi fatti da altri, soprattutto se su S7-300/400, troverai sicuramente parti scritte in AWL.

 

Abbiamo qualche progetto con CPU 300/400 ma è raro che le riutilizziamo, principalmente lavoriamo su S7-1200. Per cui, almeno per ora, mi butto sullo strutturato.

 

Grazie per le spiegazioni

 

Best regards,

Federico

Link al commento
Condividi su altri siti

Il Testo Strutturato (Structured Text, ST) è un linguaggio testuale ad alto livello, simile al PASCAL o ad alcuni BASIC.

Visual Basic invece potrebbe venirti utile per crearti alcune funzioni specifiche su alcuni pannelli operatore .

Link al commento
Condividi su altri siti

1 ora fa, Elettrolisi scrisse:

Il Testo Strutturato (Structured Text, ST) è un linguaggio testuale ad alto livello, simile al PASCAL o ad alcuni BASIC.

Visual Basic invece potrebbe venirti utile per crearti alcune funzioni specifiche su alcuni pannelli operatore .

Pascal? Sono rimasto a Zurico, 1970. Con Free Pascal, che come in molti sapete, è un linguaggio che agisce su Prompt DOS.

 

Con il classico esempio:

program HelloWorld
begin
end.

Però dai, è gia qualcosa <.<

 

EDIT:

 

Apparte gli scherzi, mi sono documentato meglio. Il divario che mi si presenta è:

KOP O SLC?

 

KOP è più semplice ed intuitivo, e forse per timer/fronti mi viene più facile. SLC invece, (correggetemi se erro) torna utile più per operazioni matematiche complesse. Il mio obbiettivo è riuscire a rifare uno stesso software da Ladder a uno dei linguaggi letterali che Siemens mi mette a disposizione.

 

Grazie in anticipo

 

Best regards,

Federico

 

 

Link al commento
Condividi su altri siti

KOP (ladder) sicuramente più adatto alla logica booleana.

SCL (testo strutturato) ottimo per calcoli, per lavorare con array, cicli FOR ed altro.

Link al commento
Condividi su altri siti

il 30/8/2018 at 14:59 , Garzo scrisse:

Il mio obbiettivo è riuscire a rifare uno stesso software da Ladder a uno dei linguaggi letterali che Siemens mi mette a disposizione.

 

Spero sia per imparare il linguaggio testuale e non per abbandonare il ladder. Lo diceva anche il gatto della famosa berzelletta che al giorno d'oggi se non sai almeno due lingue non mangi

Link al commento
Condividi su altri siti

il ‎31‎/‎08‎/‎2018 at 21:17 , elettrix01 scrisse:

 

Spero sia per imparare il linguaggio testuale e non per abbandonare il ladder. Lo diceva anche il gatto della famosa berzelletta che al giorno d'oggi se non sai almeno due lingue non mangi

 

Ovviamente non posso abbandonare il ladder. Principalmente è per imparare qualcosa in più e se mi serve di fare un calcolo o una funzione più avanzata provo a metter su qualcosa, tra l'altro i manuali sono davvero ben fatti. Ma secondo me fare un progetto interamente in SCL sarebbe una bella botta di vita 😂

ma mi piacerebbe capire anche cosa sono questi FUP e S7-GRAPH. E chiaramente tempo al tempo!! 

 

 

 

Link al commento
Condividi su altri siti

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