Home
Visualizza
Contents
1. BEGIN VALORE INIZIALE 1 0 VALORE FINALE 1 200 SALVARE RISULTATO i VALORE RIFERIMENTO Nella formulazione delle istruzioni osservare che e la parte istruzioni inizi con la parola chiave BEGIN e la parte istruzione termini con la parola chiave per la fine del blocco e ogni istruzione termini con un punto e virgola e tutti gli identificatori utilizzati nella parte istruzioni siano stati definiti in precedenza D In questo manuale si usa il termine Istruzione per tutti i costrutti che definiscono una funzione eseguibile 8 10 SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL 8 6 Istruzioni Panoramica Le singole istruzioni si compongono di e Assegnazioni di valori che servono per assegnare ad una variabile il risultato di un espressione o il valore di un altra variabile e Istruzioni di controllo che servono per ripetere istruzioni o gruppi di istruzioni oppure per realizzare diramazioni in un programma e Elaborazione di sottoprogrammi che serve per richiamare funzioni e blocchi funzionali Istruzione Assegnazione di valori Elaborazione sottoprogramma Istruzione di controllo LI Figura 8 9 Sintassi di una istruzione Gli elementi necessari per formulare queste istruzioni sono espressioni operatori e operandi Essi vengono trattati nei capitoli seguenti Esempi Gli esempi seguenti hanno lo scopo di i
2. 0000 irene iii 6 1 PAROFAMICA cirio iii a TIR RO Ra 6 2 6 2 Funzione di test Controlla continuativamente 6 3 6 3 Funzione di test Punti d arresto attivi L 6 5 6 4 Funzione di test Controlla comanda variabili 6 5 Funzione di test Dati di riferimento 6 6 Uso delle funzioni di test STEP 7 aaeeea 6 10 Parte 3 Descrizione del linguaggio 7 Terminologia generale SCL iii 7 1 TA Mezzi ausiliari per la descrizione del linguaggio 7 2 7 2 Set di caratteri SCL enenu anenee 7 4 7 3 Parole riservate ren ERENER EEEN EEEE EEE 7 5 7 4 Identificatori in SCL asuna aaea 7 7 7 5 ldentificatori standard eneee 7 8 7 6 NUMEN catari AS EERE 7 10 7 7 Tipididati 0a EEEE 7 12 7 8 Varabill asua drna ra i 7 14 7 9 ESPIESSIONI ere reana EEEE ESE Rara 7 16 7 10 PUO fara 7 17 7 11 Blocchi SCL sa wrs ioari irae n aa E E EE a a 7 18 7 12 CGommMmEeEnti dna tairer i iraa E ai a E E ES a E 7 20 8 Struttura di sorgenti SCL c i ii rai 8 1 SIULUTA siria 8 2 Inizio e fine di un DIOGCO cirie ratio 8 3 Attributi di bIOCCO serio 8 4 Parte dichiarazioni saasaa siaa aa a a a a E a Da a a 8 7 8 5 Pane BUZON sidien nianna I a ai 8 10 8 6 ISTI ZIONI siria ie E E Ri i 8 11 8 7 Struttura di un blocco funzionale FB anean 8 12 8 8 Struttura di una funzione
3. Operatori Potenza Aritmetica Confronti Combinazioni Funzioni Temporizzatori Contatori Richiami di blocchi funzionali Strutture di Loop FOR WHILE REPEAT controllo Alternative IF THEN CASE GOTO Tipi di dati semplici BOOL BYTE WORD DWORD INT DINT REAL DATE TIME TIME_OF_DAY S5TIME composti Stringhe campi strutture strutture definitidall utente DATE_AND_TIME Sommario del Capitolo Argomento trattato Pagina capitolo 1 1 Che cos SCL 1 2 1 2 Quali vantaggi offre SCL all utente 1 3 1 3 Caratteristiche funzionali dell ambiente di sviluppo 1 5 SCL per S7 300 400 C79000 G7072 C522 01 1 1 Presentazione del prodotto 1 1 Che cos SCL Linguaggio di programmazione avanzato Ambiente di sviluppo 1 2 SCL Structured Control Language un linguaggio di programmazione avanzato orientato a PASCAL Il linguaggio si basa su una norma per PLC controllori programmabili La norma DIN EN 61131 3 int IEC 1131 3 normalizza i linguaggi di programmazione per controllori programmabili La base per SCL la parte relativa al testo strutturato Per informazioni pi dettagliate sulla conformit alla norma si rimanda alla Compliance List nel file NORM TAB di STEP 7 Oltre ad elementi di linguaggi avanzati SCL contiene anche tipici elementi di PLC come ingressi uscite temporizzatori merker richiami di blocchi ecc come elementi del linguaggio Cio SCL integra ed amplia
4. Nelle regole La tabella A 3 descrive l impiego di singoli caratteri del set di caratteri ASCII come lessicali caratteri di formattazione separatori e operatori nell ambito delle regole lessicali vedere appendice B Tabella A 3 Caratteri di formattazione e separatori nelle regole lessicali Carattere Descrizione Separatori fra ore minuti e secondi Attributi Separatori per indirizzamento assoluto e rappresentazione di numeri in virgola mobile e intervalli di tempo di Caratteri e stringhe di caratteri dla Caratteri introduttivi per simboli in base alle regole della tabella dei simboli _ Trattino Separatore per valori numerici in literal pu essere presente in IDENTIFICATORI Simbolo del dollaro per indicare caratteri di controllo o caratteri sostitutivi gt lt Simbolo di interruzione stringa nel caso in cui una stringa non rientri in una riga o se si intendono inserire dei commenti Per literal La tabella A 4 descrive l uso di singoli caratteri e stringhe di caratteri per literal nell ambito delle regole lessicali vedere appendice B La tabella vale sia per il mnemonico SIMATIC sia per quello IEC Tabella A 4 Mnemonico per literal in ordine alfabetico Prefisso Contrassegno per Regolalessicale 2 LITERAL INTEGER Sequenza di cifre binarie 8 LITERAL INTEGER Sequenza di cifre ottali 16 LITERAL INTEGER Sequenza di cifre esadecimali D Indicazione della data DATA DATE Indicazione della data DATA DATE_AND_TIME
5. Parola chiave B END_FUNCTION_BLOCK Figura 7 6 Struttura di un file sorgente SCL Per la loro funzione struttura o tipo d impiego i blocchi STEP 7 sono parti ben definite di un programma utente Con SCL si possono programmare i seguenti blocchi OB FC FB DB UDT Blocchi STEP 7 L utente non deve programmare ogni singola funzione Si possono impiegare anche blocchi predefiniti Essi sono presenti nel sistema operativo dell unit centrale o nelle biblioteche S7lib del pacchetto base STEP 7 e possono essere utilizzati p es per programmare funzioni di comunicazione Ogni blocco si compone dei seguenti componenti e Inizio fine intestazione del blocco parola chiave in base al tipo di blocco e Parte dichiarazioni e Parte istruzioni nei blocchi dati parte assegnazioni SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Parte dichiarazioni Parte istruzioni Programma S7 SCL per S7 300 400 C79000 G7072 C522 01 Nella parte dichiarazioni devono essere descritte tutte le definizioni necessarie come base per la parte istruzioni p es definizione di costanti e dichiarazione di variabili e parametri La parte istruzioni inizia con la parola chiave BEGIN e termina con un identificatore standard per la fine del blocco END_xxx vedere capitolo 8 2 Ogni istruzione termina con un punto e virgola
6. Presentazione del prodotto Blocchi predefiniti Possibilit di combinare i blocchi Possibilit di ricompilazione Compatibilit con STEP 5 Metodi di programmazione Capacit di apprendimento Non necessario programmare ogni singola funzione L utente pu anche accedere a blocchi predefiniti Questi ultimi sono presenti nel sistema operativo dell unit centrale o nelle biblioteche S7lib del pacchetto STEP 7 e possono essere utilizzati p es per programmare funzioni di comunicazione Si tratta in particolare dei seguenti tipi di blocchi Abbreviazione Tipo di blocco Funzione SFC Funzione di sistema Propriet analoghe a quelle di una funzione FC Blocco funzionale di Propriet analoghe a quelle di un blocco SFB sistema funzionale FB I blocchi programmati con SCL possono essere combinati con blocchi AWL KOP e FUP Il altre parole un blocco programmato con SCL pu richiamare un altro blocco programmato in AWL KOP o FUP Analogamente i blocchi SCL possono essere richiamati in programmi AWL KOP e FUP Perci i linguaggi di programmazione di STEP 7 e SCL come pacchetto opzionale si integrano a vicenda in modo ottimale Nelle applicazioni pratiche i blocchi SCL possono essere ricompilati nel linguaggio di programmazione STEP 7 AWL lista istruzioni Non invece possibile la ricompilazione verso SCL I blocchi che sono stati programmati con S
7. Come opzione prima di ogni istruzione vi pu essere un etichetta di salto Label Per la sintassi della parte istruzioni e delle istruzioni singole si rimanda al capitolo 13 Parte istruzioni Etichetta di salto i IDENTIFICATORE l Istruzione Figura 7 7 Sintassi di un istruzione Segue un esempio per la parte istruzioni di un FB Fine parte dichiarazioni BEGIN Inizio della parte istruzioni X X 1 LABEL1 Y 10 Z XY GOTO LABEL1 LABELn FC10 Z Fine della parte istruzioni END_FUNCTION_BLOCK Nella parte istruzioni di un blocco dati i dati DB possono essere impostati con determinati valori mediante assegnazioni di valori Perci nei capitoli seguenti la parte istruzioni di un DB viene denominata parte assegnazioni Dopo la compilazione i blocchi generati vengono depositati nel contenitore Blocchi del relativo programma S7 Da qui essi devono essere trasferiti nella CPU Per informazioni al riguardo si rimanda a 231 7 19 Terminologia generale SCL 7 12 Commenti Panoramica Commento a una riga Commento a pi righe 7 20 I commenti servono per la documentazione e la migliore comprensione di un blocco SCL Dopo la fase di compilazione essi non hanno alcuna rilevanza ai fini dell esecuzione del programma Esistono due tipi di commenti e il commento a una riga e il commento a pi righe Il commento a una r
8. In un istruzione FOR la variabile d esecuzione viene incrementata dell ampiezza di passo indicata direttamente dopo un istruzione CONTINUE Esempio L esempio 15 6 illustra l uso dell struzione CONTINUE FUNCTION_BLOCK_CONTINU G VAR INDICE SINT CAMPO ARRAY 1 100 OF INT END_VAR BEGIN INDEX 0 WHILE INDICE lt 100 DO INDICE INDICE 1 G T Se CAMPO INDICE uguale a INDICE CAMPO INDICE non viene modificato IF CAMPO INDICE INDICE THEN CONTINUE END_IF CAMPO INDICE 0 Ulteriori istruzioni Flow END_WHILE r END_FUNCTION_BLOCK Esempio 15 6 Istruzione CONTINUE SCL per S7 300 400 15 12 C79000 G7072 C522 01 Istruzioni di controllo 15 8 Istruzione EXIT Principio Esempio SCL per S7 300 400 C79000 G7072 C522 01 CH Un istruzione EXIT serve per uscire da un loop FOR WHILE o REPEAT in qualsiasi momento e indipendentemente dal fatto se la condizione di interruzione sia stata soddisfatta o non Istruzione EXIT EXIT Figura 15 9 Sintassi dell istruzione EXIT Questa istruzione causa l uscita immediata da quella istruzione di ripetizione che circonda immediatamente l istruzione EXIT L esecuzione del programma viene continuata dopo la fine del loop di ripetizione p es dopo END_FOR L esempio 15 7 illustra l uso dell istruzione EXIT
9. 18 3 Funzioni standard numeriche 18 4 Funzioni standard su stringhe di bit 19 Interfaccia di richiamo 100 19 1 Interfaccia di richiamo LL 19 2 Interfaccia di trasferimento agli OB Appendici A Descrizione formale del linguaggio 0 000 A 1 Panoramica errereen a SE a LE il iii A 2 A 2 Panoramica dei terminali aaae A 5 A 3 Terminali delle regole lessicali A 6 A 4 Caratteri di formattazione separatori e operatori A 7 A 5 Parole chiave e identificatori predefiniti aaee A 10 A 6 Identificazioni di operando e parole chiavi del blocco A 13 A 7 Panoramica dei non terminali L nananana A 15 A 8 Panoramica dei token A 15 A 9 IGONHIFICALON seseris aa i ne ee AE A 16 SCL per S7 300 400 i C79000 G7072 C522 01 xi Contenuto xii A 10 Assegnazione di nomi in SCL_ saanane eaaa A 11 Costanti predefinite e flag Regole lessicali i iicra ii iii i ia ici B 1 IGENUTICAtOrni s si iii RR B 1 1 Literal asl B 1 2 Indirizzamento assoluto B 2 Commenti LL B 3 Attributi di DIOCCO errok aaa a a a e A ER Regole sintattiche 0 000 rei ie ire iii C 1 Suddivisione delle sorgenti SCL anaana C 2 Struttura della parte dichiarazioni nananana C 3 Tipididat in SCL rr pe e prati RED e a C 4 Parne I
10. inmnemonico SIMATIC C in mnemonici IEC IDENTIFICATORE H Simbolo B j Blocco organizzativo _ Fc Funzione SFC Funzione di sistema FB Blocco funzionale N SFB Blocco funzionale di sistema DB Jj Blocco dati UDT Tipo di dati definito dall utente User define Data Type Carattere Cc i stampabile Q gt ore Regole lessicali B 1 1 Literal Tabella B 2 Literal Regola LITERAL INTEGER LITERAL NUMERO IN VIRGOLA MOBILE SEQUENZA DI CIFRE DECIMALI Sequenza di cifre binarie Sequenza di cifre ottali B 4 Diagramma sintattico Q Da 1 solo nei tipi di dati INTEeDINT SEQUENZA DI CIFRE DECIMALI Sequenza di cifre binarie Sequenza di cifre ottali ul Sequenza di cifre esadecimali SEQUENZA DI CIFRE DECIMALI gt Q SEQUENZA DI CIFRE DECIMALI id SEQUENZA DI CIFRE DECIMALI DECIMALI Q SEQUENZA DI CIFRE Cifra decimale Q Trattino Q Trattino Cifra ottale 4 E Cifra decimale 0 9 4 4 Cifra binaria 0 o 1 4 4 Cifra ottale 0 8 Q Trattino SCL per S7 300 400 C79000 G7072 C522 01 Regole lessicali Tabella B 2 Literal Regola Diagramma sintattico Sequenza di cifre 5
11. Variabile strutturata Campo semplice IDENTIFICATORE h C 12 L identificatore all inizio nome di variabile o nome di parametro Campo semplice gt dopo il punto nome di componente SCL per S7 300 400 C79000 G7072 C522 01 Regole sintattiche C 5 Assegnazioni di valori TabellaC 6 Sintassi delle assegnazioni di valori Regola Diagramma sintattico Espressione Operando Operatore base Espressione Espressione logico Espressione Operatore di confronto Operatore base aritmetico Potenza gt Espressione Esponente gt Espressione Pi unario Meno unario Negazione Espressione Espressione semplice Espressione O Moltiplicazione gt semplice G semplice Moltiplicazione semplice Moltiplicazione semplice Q o DN MOD Espressione semplice SCL per S7 300 400 C79000 G7072 C522 01 C 13 Regole sintattiche Tabella C 6 Sintassi delle assegnazioni di valori Regola Diagramma sintattico Operando gt Costante A gt Variabile ampliata gt Espressione NOT Operando Variabile ampliata gt Variabile semplice m Variabile assoluta per aree di memoria della CPU gt Variabile in DB
12. gt Variabile in istanza locale gt Richiamo di FC E Costante Calang Valore numerico e gt gt Sequenza di caratteri l p Nome di costante Esponente N Variabile ampliata gt Ohi SEQUENZA DI CIFRE DECIMALI D SEQUENZA DI CIFRE DECIMALI DE Operatore logico di x base AND 8 XOR OR _ SCL per S7 300 400 C 14 C79000 G7072 C522 01 Regole sintattiche Tabella C 6 Sintassi delle assegnazioni di valori Regola Diagramma sintattico Operatore aritmetico gt di base C 1 MOD DIV 4 gt Operatore di confronto 0090099 gt SCL per S7 300 400 C79000 G7072 C522 01 C 15 Regole sintattiche C 6 Richiamo di funzioni e blocchi funzionali Tabella C 7 Sintassi dei richiami Regola Diagramma sintattico DA FB Blocco funzionale Richiamo di FB SFB Blocco funzionale di sistema IDENTIFICAZIONE FB Nome di istanza globale IDENTIFICAZIONE DB Parametro O IDENTIFICAZIONE SFB IDENTIFICATORE Nome di istanza locale Richiamo di funzione IDENTIFICAZIONE IDENTIFICAZIONE SFG Parametro FC IDENTIFICATORE l 7 e FC Funzione Nome di funzione e SFC Funzione di sistema standard o i i i no
13. ANY NUM INT REL 2 Pi unario ANY_NUM ANY_NUM 3 TIME TIME Meno unario ANY_NUM ANY_NUM 3 TIME TIME Moltiplicazione ANY_NUM ANY_NUM ANY_NUM 4 TIME ANY_INT TIME Divisione ANY_NUM ANY_NUM ANY_NUM 4 Divisione di DIV ANY_INT ANY_INT ANY_INT 4 interi TIME ANY_INT TIME Divisione modulo MOD ANY_INT ANY_INT ANY_INT 4 ANY_NUM ANY_NUM ANY_NUM 5 Addizione TIME TIME TIME TOD TIME TOD DT TIME DT ANY_NUM ANY_NUM ANY_NUM 5 Sottrazione TIME TIME TIME TOD TIME TOD DATE DATE TIME TOD TOD TIME DT TIME DT DT DT TIME SCL per S7 300 400 C79000 G7072 C522 01 13 7 Espressioni operatori e operandi Regole Esempi 13 8 1 Sideve tener presente che il risultato viene determinato dal pi importante tipo di operando Gli operatori delle espressioni aritmetiche vengono trattati in base alla loro priorit vedere tabella 13 2 e Per una maggiore chiarezza si raccomanda di racchiudere fra parentesi i numeri negativi anche nei casi in cui ci non necessario e Nelle divisioni con due operandi interi del tipo di dati INT gli operatori DIV e forniscono lo stesso risultato vedere esempio 13 3 e Gli operatori di divisione MOD e DIV richiedono che il secondo operando sia diverso da zero e Se un operando del tipo INT numero intero e l altro operando del tipo REAL numero in virgola mobile il risultato sar sempre di tipo REAL Gli es
14. FUNCTION_BLOCK_EXIT VAR INDICE_1 INT INDICE_2 INT INDICE_CERCATO INT PAROLAIDENT ARRAY 1 51 OF STRING END_VAR BEGIN INDICE_2 0 FOR INDICE_1 1 TO 51 BY 2 DO Uscita dal loop FOR se PAROLAIDENT INDICE_1 uguale a KEY IF PAROLAIDENT INDICE_1 KEY THEN INDICE_2 INDICE_1 EXIT END_IF END_FOR La seguente assegnazione di valore viene eseguita dopo l esecuzione di EXIT o dopo la regolare esecuzione del loop FOR INDICE_CERCATO INDICE_2 END_FUNCTION_BLOCK Esempio 15 7 Istruzione EXIT 15 13 Istruzioni di controllo 15 9 Istruzione GOTO Principio Regole 15 14 Con una istruzione GOTO si pu realizzare un salto di programma Essa causa il salto immediato ad un etichetta di salto indicata e quindi ad un altra istruzione all interno dello stesso blocco Le istruzioni GOTO dovrebbero essere utilizzate solo in casi speciali p es per il trattamento degli errori In base alle regole della programmazione strutturata l istruzione GOTO non dovrebbe essere utilizzata affatto Salto di programma Co Ii Etichetta di salto Figura 15 10 Sintassi dell istruzione GOTO In questo caso l etichetta di salto indica un etichetta nel blocco dichiarazioni LABEL END_LABEL Questa etichetta precede l istruzione che deve essere eseguita per prima dopo GOTO Q
15. Fattore di ripetizione Lista d inizializzazione di campo Lista d inizializzazione di campo Dichiarazione di istanze IDENTIFICATORE 0 Nome di istanze locali IDENTIFICAZIONE SFB IDENTIFICAZIONE FB tO Gli FB devono gi esistere Blocco variabili Q temporanee Dichiarazi i chiarazione di VAR TEMP variabili END VAR Nessuna inizializzazione possibile SCL per S7 300 400 C79000 G7072 C522 01 Regole sintattiche Tabella C 3 Sintassi dei blocchi dichiarazioni Regola Diagramma sintattico Blocco parametri VAR_INPUT q VAR OUTPUT Dichiarazione di END VAR VAR T variabili VAR_IN_OUT Inizializzazione possibile solo per VAR_INPUT e VAR_OUTPUT i Specificazione tipo di dati Tipo di dati Pol semplice DATE_AND_TIME Specificazione Tipo di dati STRINGA AH Specificazione Tipo di dati ARRAY Specificazione Tipo di dati STRUCT IDENTIFICAZIONE UDT Specificazione Tipo di dati parametri dii SCL per S7 300 400 C79000 G7072 C522 01 C 7 Regole sintattiche C 3 Tipi di dati in SCL Tabella C 4 Regola Tipo di dati semplice Tipo di dati bit Tipo caratteri Tipo di dati STRING Tipo di dati numerici Sintassi dei tipi di dati nella parte dichiarazioni Diagramma sintattico Tipo
16. strutturato mediante una variabile La tabella seguente illustra l impiego dei vari tipi di accesso Tabella 12 1 Impiego dei tipi di accesso ai dati globali Tipo di accesso Aree di memoria della CPU Dati utente globali assoluto si si simbolico si no indicizzato si si strutturato no si SCL per S7 300 400 C79000 G7072 C522 01 Definizione di dati globali 12 2 Aree di memoria della CPU Definizione Le aree di memoria della CPU sono aree definite dal sistema Perci l utente non deve definire tali aree nel proprio blocco di codice Aree di memoria Ogni CPU mette a disposizione le seguenti aree di memoria con una propria area di della CPU indirizzamento e Ingressi uscite nell immagine di processo e Ingressi uscite di periferia e Merker e Temporizzatori contatori vedere capitolo 17 Sintassi per L accesso ad un area di memoria della CPU avviene mediante un assegnazione di l accesso valori nella parte istruzioni di un blocco di codice vedere capitolo 14 3 e con un semplice accesso che pu essere del tipo assoluto o simbolico oppure e con un accesso indicizzato SEMPLICE ACCESSO ALLA MEMORIA IDENTIFICAZIONE 5 Accesso assoluto IDENTIFICATORE Accesso simbolico SIMBOLO L ACCESSO INDICIZZATO ALLA MEMORIA dice Espressione base gt Q Figura 12 1 Sintassi peri tipi di accesso alle aree di m
17. IDENTIFICAZIONE Prefisso 5 DB C 0 di dimensione Indirizzo Figura 12 7 Sintassi di un accesso assoluto al DB Indica la dimensione dell area di memoria nel blocco dati che deve essere indirizzato p es un byte o una parola L indicazione del prefisso di dimensione opzionale se si desidera specificare un bit La figura 12 8 illustra la sintassi per il prefisso di dimensione Prefisso di dimensione O wj Parola D h Doppia parola Figura 12 8 Sintassi del prefisso di dimensione per un blocco dati 12 9 Definizione di dati globali Indirizzo Per l indicazione dell indirizzo conformemente alla figura 12 9 in funzione del prefisso di dimensione utilizzato si deve introdurre un indirizzo assoluto che fa riferimento a un bit a un byte a una parola o a una doppia parola Solo se stato specificato Bit si pu introdurre un indirizzo a bit supplementare Il primo numero indica l indirizzo a byte mentre il secondo indica l indirizzo a bit Indirizzo p Numero o ct solo per indirizzo a bit Figura 12 9 Sintassi di un indirizzo Esempi Seguono alcuni esempi di accesso assoluto ad un blocco dati Nella prima parte il blocco dati viene indicato in modo assoluto nella seconda parte in modo simbolico STATUSBYTI DB101 DB10 STATUS_3 DB30 D1 1 Valoremisura DB25 DW20 STATUSBYT Datidistato DB10 STATUS_3 Nuovi dati
18. OROLOGIO VAR_TEMP HEADER ARRAY 1 20 OF BYTE 20 Byte per informazione di avvio T END_VAR Per i rimanenti blocchi dichiarazioni consentiti per OB si rimanda al capitolo 8 4 SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL 8 10 Struttura di un blocco dati DB Panoramica Identificazione del DB Parte dichiarazioni DB SCL per S7 300 400 C79000 G7072 C522 01 Il blocco dati DB contiene dati globali specifici dell utente ai quali possono accedere tutti i blocchi del programma Ogni FB FC o OB pu leggere o scrivere in questo DB La struttura dei blocchi dati ai quali sono assegnati solo determinati FB i DB d istanza sono descritti nel capitolo 12 Blocco dati DATA_BLOCK DENTIgAZIONE Parte dichiarazioni DB BEGIN Parte assegnazioni DB END_DATA_BLOC Figura 8 13 Sintassi di un blocco dati DB Dopo la parola chiave DATA_BLOCK introdurre come nome del DB la parola chiave DB seguita dal numero del blocco oppure il nome simbolico del DB Esempio DATA_BLOCK DB20 DATA_BLOCK CAMPO DI MISURA Nella parte dichiarazioni del DB viene definita la struttura dati del DB Ad una variabile DB pu essere assegnato un tipo di dati strutturato STRUCT o un tipo di dati definito dall utente UDT Parte dichiarazioni DB PATER p Specificazione del tipo dati strutturato Figura 8
19. Puntatore zero 9 14 R Requisiti hardware 2 2 Richiamare software SCL 4 2 Richiamo blocchi funzionali FB o SFB 16 3 funzioni 16 13 funzioni di conteggio 17 2 17 10 istanza globale 16 10 istanza locale temporizzatore dinamico 17 4 17 12 valore di ritorno risultato 16 14 Richiamo condizionato 19 2 Richiamo della funzione 13 6 Richiamo di FC non peziongie 16 15 Richiamo di funzione Ricompilazione AWL blocco SCL 1 4 Riga del titolo Riga di commento 7 20 Riga di stato 4 3 Risoluzione Vedere Base di tempo per S5 TIME Risoluzione del tempo Vedere Base di tempo per S5 TIME S S_CD Vedere Conteggio all indietro S_CD S_CU Vedere Conteggio in avanti S_CU S_CUD Vedere Conteggio in avanti all indietro S_CUD S_ODT Vedere Avvia temporizzatore come ritardo all inserzione S_ODT SCL per S7 300 400 C79000 G7072 C522 01 S_ODTS Vedere Avvia temporizzatore come ritardo all inserzione con memoria S_ODTS S_OFFDT Vedere Avvia temporizzatore come ritardo alla disinserzione S_OFFDT S_PEXT Vedere Avvia temporizzatore come impulso prolungato S_PEXT S_PULSE Vedere Avvia temporizzatore come impulso S_PULSE S5 TIME 17 15 base di tempo 17 14 valore di tempo Salto di programma 15 2 Salvare un blocco 5 5 un file sorgente un programma SCL Scelta dei tipi di blocchi SCL assegnazione di nomi 7 7 capacit di apprendimento
20. Tabella A 10 Elenco complessivo dei tipi di identificatori in SCL Tipo di identificatore Note esempi Parole chiave p es Istruzioni di controllo BEGIN DO WHILE Nomi predefiniti Nomi di tipo di dati standard p es BOOL BYTE INT funzioni standard predefinite p es ABS costantistandard TRUE e FALSE Identificazionidi per dati globali del sistema e blocchi di dati operandi negli p es El 2 MWI10 FC20 T5 identificatoriassoluti DB30 DB10 D4 5 Nomi selezionabili Nomi di liberamente secondola e variabilidichiarate regola componenti di strutture IDENTIFICATORE parametri costantidichiarate etichette di salto Simboli della tabella soddisfano la regola lessicale IIENTIFICATORE o la regola dei simboli lessicale simbolo cio racchiuse fra virgolette p es xyz Maiuscole minuscole Per quanto riguarda le parole chiave le minuscole e le maiuscole non sono rilevanti Dalla versione 4 0 di S7 SCL non viene pi fatta distinzione tra maiuscole e minuscole n nei nomi predefiniti n in quelli a libera scelta p es le variabili e neppure nei simboli della tabella dei simboli La tabella A 11 ne fornisce una visione di insieme Tabella A 11 Rilevanza delle maiuscole minuscole nei vari tipi di identificatori A 16 Tipo di identificatore case sensitiv Parole chiave no Nomi predefiniti nei tipi di dati standard no N
21. utente con un nome scelto a piacere Possono essere impiegati solo per la definizione di Tipi di parametri prap parametri I tipi di dati semplici definiscono la struttura di dati che non possono essere frazionati in unit pi piccole Essi sono conformi alle definizione della norma DIN EN 1131 3 In SCL sono stati predefini 12 tipi di dati semplici BOOL CHAR INT TIME BYTE DINT DATE WORD REAL TIME_OF_DAY DWORD SS5TIME SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Tipi di dati composti Tipi di dati definiti dall utente Tipi di parametri SCL per S7 300 400 C79000 G7072 C522 01 I tipi di dati composti definiscono strutture di dati che che si compongono di altri tipi di dati SCL consente i seguenti tipi di dati composti G DATE _AND_TIMI STRING ARRAY STRUCT Si tratta di tipi di dati globali UDT che l utente pu creare in SCL per le proprie applicazioni Questo tipo di dati pu essere utilizzato con la propria identificazione UDT x indica il numero di serie oppure sotto un nome simbolico ad esso associato e definito nella parte convenzioni di un blocco o di un blocco dati Oltre ai tipi di dati semplici composti e definiti dall utente si possono utilizzare tipi di parametri per la definizione di parametri A tal fine SCL mette a disposizione i seguenti parametri TIMER BLOCK_FB POINTER ANY COUNTER BLOCK_FC BLOCK_DB BLO
22. 0 L interrogazione risulta 0 se il valore di conteggio uguale a 0 17 1 3 Conteggio all indietro Counter Down Descrizione Con il contatore Counter Down si possono eseguire solo operazioni di conteggio all indietro Tabella 17 4 Modo di funzionamento Contatore all indietro Modo di Operazione Modo di funzionamento funzionamento Conteggio Il valore del contatore viene diminuito di 1 quando lo stato del segnale all indietro all ingresso CD passa da 0 a 1 e il valore di conteggio maggiore di 999 Imposta Quando lo stato del segnale all ingresso S passa da 0 a 1 il contatore contatore viene impostato con il valore dell ingresso PV Un tale cambio di segnale sempre necessario per poter impostare un contatore Resetta Il contatore viene resettato quando l ingresso R 1 Il reset del contatore imposta il valore di conteggio a 0 Interrogazione Un interrogazione dello stato del segnale all uscita Q risulta 1 se il valore contatore di conteggio maggiore di 0 L interrogazione risulta 0 se il valore di conteggio uguale a 0 SCL per S7 300 400 C79000 G7072 C522 01 17 7 Contatori e temporizzatori 17 1 4 Conteggio in avanti e all indietro Counter Up Down Descrizione Modo di funzionamento Con il contatore Counter Up Down si possono eseguire operazioni di conteggio sia i
23. 16 1A2B Literal di numeri in virgola mobile NUMERO4 3 4 NUMERO5 4e2 NUMERO 6 40_123E10 Esempio 11 2 Literalnumerici SEQUENZA DI CIFRE DECIMALI uenti numeri in virgola SCL per S7 300 400 C79000 G7072 C522 01 Definizione di constanti ed etichette di salto 11 4 Modalit di scrittura per literal di caratteri e di stringhe Panoramica Literal di caratteri caratteri singoli Literal di stringa SCL per S7 300 400 C79000 G7072 C522 01 SCL ofre anche la possibilit di introdurre ed elaborare informazioni di testo per esempio una stringa di caratteri che si desidera visualizzare come messaggio Con i literal di caratteri non si possono eseguire dei calcoli il che significa che i literal di caratteri non possono essere impiegati in espressioni aritmetiche Si distingue fra e un literal di caratteri cio caratteri singoli e e un literal di stringa cio una sequenza di caratteri con max 254 caratteri singoli Il literal di caratteri contiene esattamente un carattere vedere figura 11 8 Il carattere viene racchiuso fra virgolette semplici C LITERAL DI CARATTERI E Carattere gt Figura 11 8 Sintassi di un literal di caratteri Esempio Carattere_1 B Carattere B Un literal di stringa una stringa di caratteri di max 254 caratteri lettere cifre e caratteri speciali racchiusi fra virgolette Si possono utilizzare sia c
24. 4 Inumeri non devono essere superare determinati valori massimi e minimi Un numero intero non contiene n un punto decimale n un esponente Perci un numero intero una semplice sequenza di cifre che pu iniziare con un segno matematico In SCL sono stati integrati 2 tipi di numeri interi i quali hanno diversi campi di valori INT e DINT vedere capitolo 9 Seguono alcuni numeri interi validi 0 I 1 I 743 5280 600_00 O Per i motivi suddetti i seguenti numeri interi sono falsi 123 456 Non sono ammesse virgole 36 Un numero intero non pu contenere alcun punto decimale 10 20 30 Non sono consentiti spazi In SCL i numeri interi possono essere rappresentati con un altro sistema numerico Ci avviene facendo precedere al numero una parola chiave per il sistema numerico Per esempio 2 indica il sistema binario 8 il sistema ottale e 16 il sistema esadecimale Seguono alcuni numeri interi validi per il numero decimale 15 2 1111 8 17 16 F Un numero in virgola mobile deve contenere o un punto decimale o un esponente o entrambi Un punto decimale deve essere situato fra due cifre Perci un numero in virgola mobile non pu n iniziare n terminare con un punto decimale Seguono alcuni numeri in virgola mobile validi 0 0 1 0 02 827 602 50000 0 0 000743 12 43 315 0066 SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Stringhe di caratteri SCL per S7 300 400 C79000 G7072 C5
25. Conversione in caso di passagio ad un altra classe di dati Il valore proviene dall ingresso viene convertito per eseguire ulteriori calcoli Raggio superficie daticerchio superficie WORD_TO_BYTE INT_TO_WORD raggio Raggio viene ricalcolato dalla superficie ed disponibile come valore intero Per l uscita il valore viene dapprima convertito in un altra classe di dati INT_TO_WORD e quindi nuovamente convertito in un tipo meno importante WORD_TO_BYTE END_FUNCTION_ BLOCK Esempio 18 5 Conversione nel caso di operazioni di ingresso e uscita 18 7 Funzioni standard SCL Funzioni di arrotondamento e taglio 18 8 Le conversioni di tipi di dati comprendono anche le funzioni per arrotondare e tagliare dei numeri La tabella 18 4 illustra i nomi i tipi di dati per il parametro d ingresso e il valore della funzione e i compiti di queste funzioni Tabella 18 4 Funzioni per arrotondamento e taglio Nome della Tipo di dati del Tipo di dati del Compito funzione parametro valore della d ingresso funzione ROUND REAL DINT Arrotondamento generazione di un numero DINT TRUNC REAL DINT Taglio generazione di un numero DINT Gli esempi seguenti dimostrano i vari modi di funzionamento e ROUND e ROUND e TRUNC e TRUNC 3 14 3 56 3 14 3 56 Qui viene arrotondato per difetto Risultato 3
26. Esempi SCL per S7 300 400 C79000 G7072 C522 01 Un identificatore un nome che l utente pu assegnare ad un oggetto linguistico di SCL cio ad una costante una variabile una funzione e a un blocco Gli identificatori possono essere composti con lettere o cifre in qualsiasi sequenza purch il primo carattere sia una lettera o un trattino Sono ammesse sia lettere maiuscole che minuscole Anche in questo caso non viene fatta una distinzione tra maiuscole e minuscole Anna e AnNa p es saranno identici Un identificatore pu essere rappresentato formalmente con il seguente diagramma sintattico IDENTIFICATORE Ci Q Lettera oi Lettera y Trattino Trattino Figura 7 4 Sintassi di un identificatore Si prega di osservare le note seguenti e Al momento dell assegnazione dei nomi si raccomanda di scegliere nomi univoci ed esplicativi che facilitano la comprensione del programma e Si deve verificare se il nome gi occupato da una parola chiave vedere tabella 7 1 o da un identificatore standard e La lunghezza max di un identificatore di 24 caratteri e I nomi simbolici per i blocchi altri identificatori rispetto alla tabella 7 1 devono essere definiti nella tabella dei simboli di STEP 7 informazioni al riguardo sono contenute in 231 I nomi seguenti sono alcuni esempi di identificatori standard x y12 Somma Temperatura Nome Superficie Regolato
27. Per le modalit di scrittura di valori numerici SCL dispone di e literal di numeri interi per valori di numeri interi e e literal numeri in virgola mobile per numeri in virgola mobile In entrambi i literal si impiega una sequenza di cifre che deve avere una struttura conforme alla figura 11 2 Nei seguenti diagrammi sintattici questa sequenza di cifre viene denominata per semplicit sequenza di cifre decimali INT REAL 40 3000 40 2000 20 00 Sequenza di cifre Sequenza di cifre decimali Figura 11 2 Sequenza di cifre in un literal Il punto decimale all interno di literal si compone di una sequenza di cifre che come opzione possono essere separate da trattini I trattini hanno lo scopo di migliorare la leggibilit di grandi numeri Sequenza di cifre decimali p Cifra gt Trattino Figura 11 3 Sintassi per sequenze di cifre decimali all interno di literal Gli esempi seguenti contengono valide modalit di scrittura per sequenze di cifre decimali all interno di literal 1000 1_120_200 666_999_400_311 SCL per S7 300 400 C79000 G7072 C522 01 Definizione di constanti ed etichette di salto Literal di numeri I literal di numeri interi contengono valori di numeri interi Nel programma SCL interi questi ultimi possono essere assegnati a seconda della lunghezza a variabili con i tipi di dati BOOL BYTE INT DINT WORD e DWORD La figura 11 4 illustra la sintassi di un li
28. TRUE sceltavecchia BOOL TRUE indirizzo i NT 0 Indirizzo di uscita convertito istanza_analisi ANALISI Dichiarazione istanza locale END_VAR Figura 2 8 Parte dichiarazioni del blocco funzionale RILEVAZIONE SCL per S7 300 400 C79000 G7072 C522 01 2 13 Sviluppo di programmi SCL Parte istruzioni Rilevazione valori di misura Avvio ordinamento e calcolo Analisi codifica e preparazione uscita 2 14 La parte istruzioni si compone di 3 parti Se il parametro d ingresso valorenuovo stato modificato rispetto al valorevecchio nel buffer circolare viene letto un nuovo valore di misura Mediante richiamo della funzione ANALISI se il parametro d ingresso ordinamentonuovo stato modificato rispetto a ordinamentovecchio La codifica viene letta parola per parola conformemente alle convenzioni SIMATIC ci significa che il gruppo interruttori superiore Byte0 contiene gli 8 bit con valore massimo della parola d ingresso mentre il gruppo interruttori inferiore Bytel contiene i bit con valore minimo La figura 2 9 illustra le posizioni in cui si trovano gli interruttori tramite i quali si regola la codifica Interruttore Parola nella Verso SHR Verso AND sulla unit memoria di 12 posizioni Maschera 000F indirizzo Interruttore per il valore di codifica Interruttore di codifica Figura 2 9 Analisi della codifica Inoltre la figura 2 9
29. e in rappresentazione a livelli TIME aH_bbM_ccS_dddMS e in rappresentazione decimale TIME 2 4H Analisi Il risultato pu essere analizzato in due formati diversi e come risultato della funzione tipo SSTIME in formato BCD e come parametro d uscita valore di tempo senza base di tempo del tipo WORD binario SCL per S7 300 400 17 14 C79000 G7072 C522 01 Contatori e temporizzatori Base di tempo SCL per S7 300 400 C79000 G7072 C522 01 I bit 12 e 13 della parola di tempo contengono la base di tempo in codice binario La base di tempo definisce l intervallo in cui il valore di tempo viene ridotto di un unit vedere tabella 17 9 e figura 17 2 La minima base di tempo 10 ms la massima 10 s Tabella 17 9 Base di tempo e codice binario Base di tempo Codice binario per base di tempo 10 ms 00 100 ms 01 Is 10 10s 11 Avvertenza Poich i valori di tempo vengono memorizzati solo in un determinato intervallo di tempo i valori che non corrispondono ad un multiplo esatto dell intervallo di tempo vengono tagliati I valori la cui risoluzione troppo alta per l area desiderata vengono arrotondati in modo da raggiungere l area desiderata ma non la risoluzione desiderata 17 15 Contatori e temporizzatori 17 2 2 Avviamento del temporizzatore come impulso Descrizione Modo di funzionamento 17 16 Il tempo massimo in cui il segnale d uscita rimane
30. 12 1 Panoramica 5 5 12 2 12 2 Aree di memoria della CPU 12 3 Accesso assoluto alle aree di memoria della CPU 12 4 Accesso simbolico alle aree di memoria della CPU 12 6 12 5 Accesso indicizzato alle aree di memoria della CPU 12 7 12 6 Blocchi di dati 12 7 Accesso assoluto ai blocchi dati 12 8 Accesso indicizzato ai blocchi dati 12 9 Accesso strutturato ai blocchi dati 12 12 12 1 Definizione di dati globali 12 1 Panoramica Dati globali Tipi di accesso 12 2 In SCL si ha la possibilit di accedere ai dati globali Esistono due tipi di dati globali Aree di memoria della CPU Queste aree di memoria sono dati definiti dal sistema p es ingressi uscite e merker vedere capitolo 7 5 La dimensione delle aree di memoria a disposizione dell utente dipende dalla CPU impiegata Dati utente globali come blocchi dati caricabili Queste aree di dati sono situate all interno di blocchi dati Per poterle utilizzare occorre dapprima creare i blocchi dati e definire i propri dati in tali blocchi Nel caso di blocchi dati di istanza essi vengono derivati da blocchi funzionali e generati automaticamente L accesso ai dati globali pu aver luogo nei modi seguenti assoluto mediante identificazione di operando e indirizzo assoluto simbolico mediante un simbolo che l utente ha definito in precedenza nella tabella dei simboli vedere 231 indicizzato mediante identificazione di operando e indice di campo
31. 13 5 Operatori annidamento aritmetici priorit Operazioni elenco alfabetico A 5 A 34 P Panoramica dati globali aree di memoria CPU 12 2 dati utente 12 2 installazione tipo di accesso 12 2 ar del prodotto sommario del capitolo 1 1 Parametri attuali 16 2 assegnazione d uscita 16 16 assegnazioni d uscita di transito 16 17 Parametri d ingresso Parametri d uscita Parametri del blocco 7 14 Parametri di blocco 10 10 accesso 10 11 Parametri di transito Parametri formali 16 2 parametri d ingresso 10 10 parametri d uscita 10 10 parametri di transito 10 10 Parametro assegnazione 16 3 definito implicitamente parametro d ingresso EN parametro d uscita ENO Parametro d uscita lettura 16 12 Parametro di FB assegnazione d uscita assegnazione di transito 16 8 principio Parametro di FC assegnazione d uscita Parametro di sistema ENO 10 12 Parole chiavi 9 339 5 SCL per S7 300 400 C79000 G7072 C522 01 Indice analitico Parte assegnazioni DB 8 18 Parte dichiarazioni Parte istruzioni 8 10 FC 7 19 istruzioni 8 10 regole 8 10 sintassi Pascal 1 2 POINTER tipo di parametro 7 13 9 12 Prefisso di dimensione 12 5 Prefisso di memoria 12 4 Priorit operatori 13 8 Programma SCL compilare Programma utente Programmazione strutturata 1 4 2 5 tipi di OB 19 3 Programmazione con SCL
32. Analisi codifica e preparazione uscita KFEREREKKA FK KE EEE AEREE KAKA ERRE RETE EKERAAE FARA RA AIA RA AA RAEE AAA AE EA AAA I REA AE RA RE RR RATE AR ATE ARE ARTE ARA RARA Figura 2 7 Variabili statiche 2 12 Intestazione del blocco funzionale RILEVAZIONE Tabella 2 4 Variabili statiche di RILEVAZIONE Nome Tipo di dati Tipo di Predefinizione Descrizione dichiarazione valorimisura ARRAY VAR 8 0 Buffer circolare per OF INT valori di misura bufferrisul ARRAY VAR Campo per strutture tati OF STRUCT con i componenti radice e quadrato del tipo INT puntatore INT VAR 0 Indice per buffer circolare registrazione del prossimo valore di misura valorevec BOOL VAR FALSE Valore precedente per chio conferma valore di misura con valore nuovo ordinamento BOOL VAR FALSE Valore precedente per vecchio ordinamento con ordinamentonuovo sceltavec BOOL VAR FALSE Valore precedente per chia conferma della codifica con scelta nuova indirizzo INT VAR 0 Indirizzo per uscita valore di misura o risultati anali ANALISI VAR Istanza locale per si_istanza FB 20 ANALISI FB SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL Si prega di osservare i valori di impostazione i quali vengono registrati nelle variabili durante l inizializzazione del blocco dopo il caricamento ne
33. BYTE INT BYTE B ruotare verso sinistra di un WORD INT WORD numero di posizioni di bit indicato nel contenuto del DWORD INT DWORD parametro N ROR BOOL INT BOOL Il valore presente nel parametro IN viene fatto BYTE INT BYTE ruotare verso destra di un WORD INT WORD numero di posizioni di bit indicato nel contenuto del DWORD INT DWORD parametro N SHL BOOL INT BOOL Il valore presente nel parametro IN viene fatto BYTE INT BYTE scorrere verso sinistra mentre sul lato destro i bit WORD INT WORD vengono sostituiti con 0 conformemente al DWORD INT DWORD contenuto del parametro N SHR BOOL INT BOOL Il valore presente nel parametro IN viene fatto BYTE INT BYTE scorrere verso destra mentre sul lato sinistro i bit WORD INT WORD vengono sostituiti con 0 conformemente al DWORD INT DWORD contenuto del parametro N 18 11 Funzioni standard SCL Esempi 18 12 Avvertenza Si ha inoltre la possibilit di sfruttare le funzioni IEC per le operazioni di stringhe di bit In tal caso si deve copiare la funzione desiderata dalla biblioteca STEP 7 STDLIBSMEC nella propria directory di programma Per ulteriori informazioni sulle singole funzioni IEC si rimanda a 235 La tabella 18 10 descrive i possibili richiami di funzioni standard di stringhe di bit e 1 rispettivi risultati Tabella 18 10 Richiami delle funzioni standard di stringhe di bit Richiamo RISULTATO ROL IN 2 1101_0011 N 5 IN 211 decimale
34. COUNTER Tipo di dati per contatori utilizzabile solo nel blocco Specificazione del tipo di dati parametri parametro DATA_BLOCK Introduzione di blocco dati Blocco dati DATE Tipo di dati semplice per data Tipo di tempo DATE_AND_TIME Tipo di dati composto per data e ora DATE_AND_TIME DINT Tipo di dati semplice per numero intero Integer Tipo di dati numerici doppia precisione DIV Operatore per divisione Operatore base aritmetico moltiplicazionesemplice DO Introduzione parte istruzioni nell istruzione FOR Istruzione FOR istruzione WHILE DT Tipo di dati semplice per data e ora DATE_AND_TIME DWORD Tipo di dati semplice doppia parola Tipo di dati bit A 10 SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio Tabella A 7 Parole chiave SCL e identificatori predefiniti in ordine alfabetico Parole chiave Descrizione Regola sintattica ELSE Introduzione nel caso se non viene soddisfatta alcuna Istruzione IF condizione ELSIF Introduzione della condizione alternativa Istruzione IF EN Flag per abilitazione blocco ENO Flag di errore del blocco END_CASE Fine dell istruzione CASE Istruzione CASE END_CONST Fine della definizione di costanti Blocco costanti END_DATA _BLOCK Fine del blocco dati Blocco dati END_FOR Fine dell istruzione FOR Istruzione FOR END_FUNCTION Fine della funzione Funzione END_FUNCTION_BL Fine del blocco funzionale Blocco
35. Controlla continuativamente per concludere il test 7 Selezionare il comando di menu Test Concludi test per concludere il test Avvertenza Per poter testare un ulteriore blocco nella stessa sorgente non sufficiente chiudere Controlla continuativamente Si deve chiudere anche la finestra risultati SCL per S7 300 400 C79000 G7072 C522 01 Test di un programma 6 3 Funzione di test Punti d arresto attivi Panoramica Punti di arresto Funzione a passi singoli SCL per S7 300 400 C79000 G7072 C522 01 Con la funzione Punti d arresto attivi il test viene eseguito in singoli passi L utente pu eseguire il programma istruzione dopo istruzione e controllare come cambiano i valori delle variabili elaborate Dopo l impostazione di punti d arresto si pu dapprima far eseguire il programma fino al primo punto d arresto e a partire da questo punto continuare con il controllo passo a passo I punti d arresto possono essere definiti in qualsiasi punto della parte istruzioni del testo sorgente I punti di arresto vengono trasferiti al sistema di automazione e attivati solo con la selezione del comando di menu Test Modifica punti d arresto Il programma viene quindi eseguito fino al raggiungimento del primo punto di arresto Il numero dei punti di arresto attivi dipende dalla CPU e CPU 416 sono possibili max 4 punti di arresto attivi e CPU 414 sono possibili max 2 punti di arresto atti
36. Dl 17 Valore di misura Dati di misura DW20 STATUS_1 WORD_TO_BLOCK_DB INDI Esempio 12 4 Accesso assoluto SCL per S7 300 400 12 10 C79000 G7072 C522 01 Definizione di dati globali 12 8 Accesso indicizzato ai blocchi dati Accesso indicizzato Identificatore assoluto Regole per l accesso indicizzato SCL per S7 300 400 C79000 G7072 C522 01 Esiste anche la possibilit di accedere a DB globali in modo indicizzato Rispetto all indirizzamento assoluto questo metodo offre il vantaggio di poter indirizzare dinamicamente lo scambio di dati mediante l impiego di indici variabili Per es come indirizzo si pu utilizzare la variabile di esecuzione di un loop FOR L accesso indicizzato ad un blocco dati avviene in modo analogo all accesso assoluto L unica differenza consiste nell indicazione dell indirizzo AI posto dell indirizzo viene specificato un indice che pu essere una costante una variabile o un espressione aritmetica Nell accesso indicizzato l identificatore assoluto si compone dell identificazione di operando secondo il capitolo 12 7 e di un espressione base per l indicizzazione Prefisso di dimensione Prefisso di memoria Identificazione di DB D X i j Indirizzo Espressione base per indice racchiusa fra parentesi Identificazione di operando quadre L indicizzazione deve essere conforme alle regole seguenti e O
37. Qui viene arrotondato per eccesso Risultato 4 Qui viene tagliato Risultato 3 Qui viene tagliato Risultato 3 SCL per S7 300 400 C79000 G7072 C522 01 Funzioni standard SCL 18 3 Funzioni standard numeriche Funzionalit Funzioni generiche Funzioni logaritmiche SCL per S7 300 400 C79000 G7072 C522 01 Ogni funzione standard numerica possiede un parametro d ingresso Il risultato sempre il valore della funzione Ognuna delle tabelle 18 5 18 6 e 18 7 specifica un gruppo di funzioni numeriche standard tramite i nomi di funzione e i tipi di dati Il tipo di dati ANY_NUM indica INT DINT o REAL Si tratta di funzioni per il calcolo del valore assoluto del quadrato o della radice quadrata di una grandezza Tabella 18 5 Funzioni generiche Nome della fun Tipo di dati del Tipo di dati del Descrizione zione parametro d ingresso valore della funzione ABS ANY_NUM ANY_NUM Valore assoluto SQR ANY_NUM REAL Quadrato SQRT ANY_NUM REAL Radice 1 Siosservichei parametri d ingresso del tipo ANY_NUM vengono internamente convertiti in variabili REAL Si tratta di funzioni per il calcolo di un valore esponenziale e del logaritmo di una grandezza Tabella 18 6 Funzioni logaritmiche Nome della fun Tipo di dati del Tipo di dati del Descrizione zione parametro d ingresso valore della funzione EXP ANY_NUM REAL e elevato IN EXPD ANY_NUM
38. SDB SFC SFC UDT IDENTIFICATORE Simbolo Figura A 9 Regola lessicale IDENTIFICAZIONE BLOCCO Le regole IDENTIFICAZIONE TEMPORIZZATORE e IDENTIFICAZIONE CONTATORE sono analoghe a IDENTIFICAZIONE BLOCCO Per tali regole valgono gli stessi criteri A 11 Costanti predefinite e flag Costanti Entrambe le tabelle valgono per il mnemonico SIMATIC e il mnemonico IEC predefinite e flag Tabella A 13 Costantipredefinite Mnemonico Descrizione FALSE Costante booleana predefinita costante standard con il valore 0 Il suo significato logico che la condizione non soddisfatta TRUE Costante booleana predefinita costante standard con il valore 1 Il suo significato logico che la condizione soddisfatta Tabella A 14 Flag Mnemonico Descrizione EN Flag per l abilitazione del blocco ENO Flag di errore del blocco OK Viene impostato su FALSE quando un istruzione stata eseguita in modo errato SCL per S7 300 400 C79000 G7072 C522 01 A 19 SCL per S7 300 400 C79000 G7072 C522 01 Regole lessicali Sommario dell appendice Regole lessicali Suddivisione SCL per S7 300 400 C79000 G7072 C522 01 Capitolo Argomento trattato Pagina B 1 Identificatori B 1 1 Literal B 1 2 Indirizzamento assoluto B 2 Commenti B 11 B 3 Attributi di blocco B 12 Le regole lessicali descrivono la struttura degli element
39. STRING 6 A A3 D_STRUCT D_VAR RRAY 1 12 100 5 10 FATTORI OF RE Esempio 10 3 Inizializzazionedi struttura SCL per S7 300 400 C79000 G7072 C522 01 Convenzione di variabili locali e parametri di blocco 10 4 Dichiarazione di istanze Panoramica Inizializzazione SCL per S7 300 400 C79000 G7072 C522 01 Nella parte dichiarazioni di blocchi funzionali oltre alle variabili gi note con tipi di dati semplici composti o definiti dall utente si possono definire anche variabili di tipo FB o SFB Queste variabili vengono denominate istanze locali dell FB o dell SFB I dati di istanza locali vengono memorizzati nel blocco dati di istanza del blocco funzionale richiamante Dichiarazione di istanza Gli FB devono i o IDENTIFICAZIONE __ 5 Stere gia FB IDENTIFICATORE O a Nome di istanza locale IDENTIFICAZIONE Figura 10 4 Sintassi della dichiarazione di istanze locali Dn n vo Esempi seguono alcuni esempi validi conformemente alla sintassi della figura 10 4 Alimentazionel FB10 Alimentazione2 Alimentazione3 Alimentazione4 FB100 Motorel Motore x l Motore un simbolo registrato nella tabella dei simboli Simbolo Indirizzo Tipo di dati MOTORI FB20 FB20 GI Figura 10 5 Corrispondente tabella dei simboli in STEP 7 Un inizializzazione locale specifica dell istanza
40. Scelta di risultato radice o quadrato Interruttore di uscita E0 3 BOOL Scelta di uscita valore di misura o risultato Codifica EWO WORD Codifica bit significativi 12 13 e 14 Interruttore di codifica E0 7 BOOL Conferma della codifica Uscita AW4 INT Valore di misura o risultato radice o quadrato RILEVAZIONE FB10 FB10 Rilevazione dei valori di misura Indirizzamento e scelta dell uscita RILEVAZIONE_DATI DB10 FB10 Blocco dati di istanza per RILEVAZIONE ANALISI FB20 FB20 Analisi dei valori di misura calcolo dei risultati QUADRATO FC41 FC41 Funzione per il calcolo del quadrato C OB OB Richiamo ciclico per ingresso uscita FEE AE AE AE FE AE AE AE AE FE E E AE AE AE FE AE AE AE AE E AE AE AE AE FE AE AE AE AE FE E AE AE AE FE E AE AE AE AE E AE AE AE AE E AE AE AE AE E AE AE AE AE AE AE AE AE AE AE AE AE AE AE AE EEE EE EEEE i Tramite 1l ingresso 0 0 interruttore d ingresso viene confermato un valore di misura presente sull unit d ingresso L ulteriore elaborazione dei valori di misura pu essere comandata tramite diversi interruttori Tutti i valori vengono memorizzati nell area di lavoro del blocco funzionale RILEVAZIONE il blocco di istanza RILEVAZIONE_DATI Figura 2 5 2 10 Commento introduttivo con tabella dei simboli SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL 2 4 Creazione del blocco organizzativo CICLO Guida alla stato sce
41. Sistema di automazione S7 300 400 Figura 1 4 Debugger SCL SCL offre in tal senso due diversi modi di test e osservazione passo passo Viene controllato l intero svolgimento logico del programma L algoritmo del programma pu essere eseguito istruzione per istruzione e in una finestra risultati si pu osservare come vengono modificate le variabili elaborate e osservazione continua Si pu testare un intero gruppo di istruzioni nell ambito di un blocco della sorgente Durante lo svolgimento del test i valori delle variabili ed i parametri vengono visualizzati in sequenza cronologica e se possibile aggiornati ciclicamente L ambiente di sviluppo SCL offre la possibilit di richiamare le funzioni del pacchetto STEP 7 come per esempio visualizzare e cambiare lo stato di funzionamento della CPU ed impostare l ora direttamente in SCL SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL Introduzione Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Come dimostrato nella pratica il modo pi semplice e veloce di programmare viene realizzato strutturando i compiti da eseguire ovvero scindendoli in parti autonome In questo l utente viene supportato da SCL il quale consente di sviluppare singoli blocchi in modo razionale ed efficace Questo capitolo descrive il modo in
42. aritmetica Espressioni di confronto Espressione logica 7 16 Un espressione contiene un valore che viene calcolato in fase di compilazione oppure durante l esecuzione del programma Esso si compone di uno o pi operandi che vengono associati fra loro mediante operatori La sequenza di analisi degli operatori viene indicata dalla loro priorit e pu inoltre essere determinata mediante parentesi e Espressioni aritmetiche e Espressioni logiche e Espressioni di confronto Una tipica espressione p es b b 4xa xC 2xa Gli identificatori a e b nonch le cifre 4 e 2 sono gli operandi i simboli x e sono i corrispondenti operatori moltiplicazione sottrazione e divisione L intera espressione rappresenta una cifra Un espressione di confronto un espressione logica che pu essere vera o falsa Segue un esempio di espressione di confronto Valore di riferimento lt 100 0 T In questa espressione VALORE DI RIFERIMENTO una variabile 100 0 un numero in virgola mobile e il simbolo lt un operatore di confronto L espressione ha il valore vero se il valore di riferimento rappresenta un valore minore di 100 0 altrimenti l espressione ha il valore falso Un esempio tipico a AND NOT b Gli identificatori a e b sono gli operandi le parole chiave AND e NOT sono gli operatori logici L intera espressione rappresenta una stringa di bit SCL per S7 300 400 C79000 G7072 C522
43. e Le singole assegnazioni sono separate fra loro mediante virgole 16 15 Richiamo di funzioni e blocchi funzionali 16 3 2 Assegnazione d ingresso FC Principio Sintassi Parametri attuali nelle assegnazioni d ingresso Particolarit 16 16 Mediante assegnazioni d ingresso vengono assegnati dei parametri attuali ai parametri d ingresso formali dell FC richiamato L FC pu lavorare con questi parametri ma non pu modificarli Contrariamente al richiamo FB nel richiamo FC questa assegnazione non opzionale Le assegnazioni d ingresso hanno la seguente sintassi Assegnazione d ingresso Parametro attuale Espressione IDENTIFICAZIONE TEMPORIZZATORE IDENTIFICATORE Nome di parametro del parametrod ingresso Parametroformale IDENTIFICAZIONE CONTATORE IDENTIFICAZIONE BLOCCO Figura 16 12 Sintassidell assegnazione d ingresso Nelle assegnazioni d uscita si possono assegnare i seguenti parametri attuali Tabella 16 4 Parametri attuali nelle assegnazioni d uscita Parametri attuali Spiegazione Espressione Un espressione rappresenta un determinato valore e si compone di operandi e operatori Sono disponibili i seguenti tipi di espressioni Espressione aritmetica logica o di confronto Costante Variabile ampliata Identificazione Definiscono un determinato temporizzatore o un determinato TEMPORIZZATORE contatore che
44. elaborazione di loop Tipo di l A p Funzione diramazione Istruzione serve per ripetere una sequenza di istruzioni finch la variabile FOR d esecuzione rimane all interno del campo di valori indicato Istruzione serve per ripetere una sequenza di istruzioni finch soddisfatta una WHILE determinata condizione d esecuzione Istruzione serve per ripetere una sequenza di istruzioni finch non venga soddisfatta REPEAT una determinata condizione d interruzione Un salto di programma causa il salto immediato a una determinata etichetta di salto e quindi ad un istruzione all interno dello stesso blocco Tabella 15 3 Tipi di istruzioni di salto Tipo di diramazione Istruzione CONTINUI LEI Funzione serve per interrompere la momentanea esecuzione del loop Istruzione EXIT serve per uscire da un loop in qualsiasi momento e indipendentemente dal fatto che sia soddisfatta o non una determinata condizione d interruzione Istruzione GOTO causa il salto immediato ad un etichetta di salto indicata Istruzione causa l uscita da un blocco momentaneamente in corso di elaborazione RETURN SCL per S7 300 400 C79000 G7072 C522 01 Istruzioni di controllo Condizioni La condizione pu essere un espressione di confronto o un espressione logica Essa del tipo BOOL e pu assumere i valori TRUE o FALSE Seguono alcuni esempi di valid
45. estensione KOP AWL identificatore Structured Control Language 1 2 Segno del dollaro 11 8 Sequenza di blocchi Sequenza di cifre a engineering metodi di programmazione 1 4 Software SCL avviare richiamare Software STEP 7 informazione S7 6 10 Sommario dati globali dichiarazione 12 1 Sommario del capitolo installazione panoramica del prodotto 1 1 uso di SCL 4 1 Sorgente creazione e compilazione in SCL 5 3 struttura 8 1 8 2 Specificazioni dei dati Specificazioni dell indice Statement di controllo 15 3 STEP 7 blocco concezione 1 3 tipi di OB Stringa Literal 11 7 Stringa continuazione impiego del simbolo del dollaro 11 8 interruzione 11 8 Stringa di costanti 11 7 Struttura 9 8 blocco DB 8 17 blocco funzionale FB 8 12 blocco organizzativo OB 8 16 funzione FC 8 14 Indice 5 Indice analitico Struttura base OB 8 16 Struttura di blocchi in una sorgente 8 3 Strutture delle regole Superficie operativa Superficie operativa SCL 4 3 T Tabella dei simboli creare la tabella dei simboli 5 2 creazione 12 6 TEMPORIZZATORE tipo di parametro 7 13 Temporizzatore componenti 17 14117 22 operazioni con temporizzatori Avvia temporizzatore come impulso S_ PULSE 17 1617 22 Avvia temporizzatore come impulso prolungato S_PEXT 17 17 Avvia temporizzatore come ritardo all inserz
46. funzionamento per interrogare o modificare l attuale stato di funzionamento della CPU Il comando di menu Sistema di destinazione Stato dell unit apre una finestra di dialogo in cui si pu determinare la causa della transizione in STOP mediante lettura del buffer di diagnostica interrogare il contenuto della CPU In particolare lo stack delle interruzioni un importante aiuto per la ricerca degli errori avere informazioni sui dati tecnici della CPU leggere l ora e la data della CPU definire il tempo di ciclo della CPU avere informazioni sui blocchi contenuti nella CPU avere informazioni sulla comunicazone della CPU Per poter eseguire queste funzioni la CPU deve trovarsi nel modo online SCL per S7 300 400 C79000 G7072 C522 01 Parte 3 Descrizione del linguaggio Terminologia generale SCL Struttura di sorgenti SCL Tipi di dati Definizione di variabili locali e 10 parametri di blocco Definizione di costanti ed 11 etichette di salto Definizione per i dati globali Espressioni operatori e operandi Assegnazione di valori ie ee O A OO N Istruzioni di controllo Richiamo di funzioni e blocchi funzionali e gt Contatori e temporizzatori Funzioni standard SCL Interfaccia di richiamo E i O O N SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Panoramica Sommario del capitolo SCL per S7 300 400
47. sistema SCL con descrizione in ordine alfabetico e Indicazione dell identificazione di operando Prefisso di memoria A E M PA PE o blocco dati D e Indicazione della dimensione dell elemento dati Prefisso di dimensione opzionale o B D W X Il mnemonico rappresenta una combinazione fra l identificazione di operando prefisso di memoria o D per blocco dati e prefisso di dimensione Entrambi sono regole lessicali La tabella ordinata secondo il mnemonico SIMATIC e viene indicata anche il corrispondente mnemonico IEC Tabella A 8 Identificazioni di operando dei dati globali del sistema Mnemonico Mnemonico Prefisso di memoria o blocco dati Prefisso di dimensione SIMATIC IEC A Q Uscita tramite immagine di processo Bit AB QB Uscita tramite immagine di processo Byte AD QD Uscita tramite immagine di processo Doppia parola AW QW Uscita tramite immagine di processo Parola AX QX Uscita tramite immagine di processo Bit D D Blocco dati Bit DB DB Blocco dati Byte DD DD Blocco dati Doppia parola DW DW Blocco dati Parola DX DX Blocco dati Bit E I Ingresso tramite immagine di processo Bit EB IB Ingresso tramite immagine di processo Byte ED ID Ingresso tramite immagine di processo Doppia parola EW IW Ingresso tramite immagine di processo Parola EX IX Ingresso tramite immagine di processo Bit Merker Bit B B Merker Byte D D Mer
48. vero n gt 0 XOR n lt 20 falso n 10 AND s A vero n lt gt 5 OR s gt A vero Esempio 13 7 Espressionilogiche SCL per S7 300 400 C79000 G7072 C522 01 13 13 SCL per S7 300 400 C79000 G7072 C522 01 Assegnazione di valori Panoramica Un assegnazione di valori serve per assegnare ad una variabile il valore di un espressione Il valore attuale viene sovrascritto Sommario del Capitolo Argomento trattato Pagina capitolo 14 1 Panoramica 14 2 14 2 Assegnazione di valori con variabili di un tipo di dati 14 3 semplice 14 3 Assegnazione di valori con variabili di tipo STRUCT o 14 4 UDT 14 4 Assegnazione di valori con variabili di tipo ARRAY 14 6 14 5 Assegnazione di valori con variabili di tipo STRING 14 6 Assegnazione di valori con variabili di tipo DATE_AND_TIME 14 7 Assegnazione di valori con variabili assolute per aree di 14 10 memoria 14 8 Assegnazione di valori con variabili globali 14 11 Ulteriori In SCL esistono istruzioni semplici e strutturate Fanno parte delle istruzioni informazioni semplici oltre all assegnazione di valore l istruzione di richiamo e l istruzione GOTO I capitoli 15 e 16 contengono informazioni al riguardo Le istruzioni di controllo per diramazioni del programma e per l elaborazione di loop appartengono alla categoria di istruzioni strutturate Il capitolo 15 contiene informazioni al riguardo SCL per S7 300 400 C79000 G7072 C
49. 300 400 C79000 G7072 C522 01 Tipi di dati Tipi di BLOCK Viene definito un determinato blocco che si desidera utilizzare come parametro d ingresso La dichiarazione del parametro d ingresso determina il tipo di blocco FB FC DB Durante l assegnazione dei parametri viene indicato il nome del blocco Sono consentiti sia l indicatore assoluto p es FB20 che l indicatore simbolico SCL non offre alcuna operazione per questo tipo di dati Si possono solo assegnare parametri di questo dipo durante il richiamo di blocchi Nelle FC non consentito il trasferimento di un parametro d ingresso In SCL si possono assegnare come parametri attuali gli operandi dei seguenti tipi di dati e blocchi funzionali senza parametri formali e funzioni senza parametri formali e valore di ritorno VOID e blocchi dati e blocchi dati di sistema Tipo di dati ANY SCL offre la possibilit di definire parametri di blocco del tipo di dati ANY durante il richiamo di un simile tipo di blocco questi parametri possono essere alimentati con operandi di qualsiasi tipo di dati SCL offre tuttavia solo una possibilit di elaborazione del tipo di dati ANY il trasferimento a blocchi subordinati In SCL si possono assegnare come parametri attuali gli operandi dei seguenti tipi di dati e Tipi di dati semplici si deve indicare l indirizzo assoluto o il nome simbolico del parametro attuale e Tipi di dati composti si deve indicare il nome sim
50. 7000 Fax 7001 Nel caso di domande o commenti sul manuale compilare il questionario che si trova in fondo e spedirlo all indirizzo indicato E gradita anche una valutazione personale del manuale stesso Per facilitare l apprendimento del sistema di automazione SIMATIC S7 la Siemens organizza dei corsi specifici Per maggiori informazioni rivolgersi al centro di addestramento regionale o al centro di addestramento centrale in Germania D 90327 Norimberga Tel 0911 895 3154 La sezione utente di questo manuale non contiene istruzioni operative precise descritte in singole sequenze ma mira a spiegare le modalit di procedere essenziali Informazioni pi dettagliate relative alle singole finestre di dialogo del software e alla loro elaborazione si trovano nella Guida online SCL per S7 300 400 C79000 G7072 C522 01 Contenuto Prefazione i E aE Parte 1 Sviluppo di programmi 1 Presentazione del prodotto sila iatale 1 1 1 1 Che cos SCL velino 1 2 Quali vantaggi offre SCL all utente 1 3 1 3 Caratteristiche funzionali dell ambiente di sviluppo 1 5 2 Sviluppo di programmi SCL rin 2 1 2 1 PAMNoramica ciare 2 2 Descrizione del problema 2 3 2 3 Soluzione con blocchi SCL anneanne 2 3 1 Definizione dei compiti parziali LL 2 3 2 Scelta e attribuzione dei blocchi dati ai compiti parziali 2 3 3 Definizione del
51. Byte0 0 finoa 7 Byte1 Visualizzazioni Ingresso Uscita Significato Conferma del valore di misura Avvia ordinamento e calcolo Scelta risultato radice o quadrato Scelta uscita valore di misura o risultato Codifica bit 0 Codifica bit 1 Codifica bit 2 Conferma della codifica Byte d ingresso valore di misura Significato byte con valore massimo della parola di uscita bit 8 fino a 15 necessario solo per il calcolo del quadrato altrimenti 0 byte con valore minimo della parola di uscita bit 0 fino a 7 valore di misura o risultato radice o quadrato Figura 2 4 Visualizzazioni ed elementi di comando SCL per S7 300 400 C79000 G7072 C522 01 2 9 Sviluppo di programmi SCL 2 3 5 Programmazione dei blocchi Programmazione Una volta definite le interfacce si possono progettare i blocchi indipendentemente dei blocchi Puno dall altro Il modo migliore l approccio top down ossia nella sequenza CICLO RILEVAZIONE ANALISI e QUADRATO In seguito viene fornita una descrizione dei blocchi nella sequenza suddetta Quando si compilano dei blocchi si deve tener presente che per poter utilizzare un blocco cio prima di poterlo richiamare da un altro blocco il blocco deve esistere Ne risulta la sequenza dei blocchi nella sorgente SCL QUADRATO ANALISI RILEVAZIONE e CICLO vedere il capitolo 8 Programmazione La comprensione di un programma migliora
52. DB di istanza Blocco dati di sistema SDB Blocco di codice SCL per S7 300 400 C79000 G7072 C522 01 Lo stato di funzionamento ALT viene raggiunto dallo stato di funzionamento RUN mediante richiesta del dispositivo di programmazione In questo stato di funzionamento sono possibili speciali funzioni di test In SIMATIC S7 un unit centrale possiede tre aree di memoria la memoria di caricamento la memoria di lavoro e l area di sistema Un attributo una propriet che pu essere agganciata p es ad un identificazione di blocco o ad un nome di variabile In SCL esistono attributi per le seguenti indicazioni titolo blocco versione protezione blocco autore nome di blocco famiglia di blocco Per la loro funzione struttura e scopi d impiego i blocchi sono parti ben definite di un programma utente In STEP 7 esistono blocchi di codice FB FC OB SFC SFB blocchi dati DB SDB e tipi di dati definiti dall utente UDT Un blocco dati di istanza memorizza i parametri formali e i dati statici locali dei blocchi funzionali Un blocco dati di istanza pu essere assegnato ad un richiamo di FB o ad una gerarchia di richiamo di blocchi funzionali Esso viene generato automaticamente in SCL I blocchi dati di sistema sono aree di dati nell unit centrale contenenti impostazioni di sistema e parametri di unit I blocchi dati di sistema vengono generati e modificati con il software di base STEP 7 In SIMATIC S7
53. Definizione Assegnazione di tipi di dati alle costanti SCL per S7 300 400 C79000 G7072 C522 01 Un literal rappresenta una modalit di scrittura formale per determinare il valore ed il tipo di costanti Esistono i seguenti gruppi di literal e Literal numerici e Literal caratteri e Indicazione di tempo Per il valore di una costante esiste una determinata modalit di scrittura a seconda del tipo e del formato dei dati 15 VALORE 15 come numero intero in rappresentazione decimale 2 1111 Valore 15 come numero intero in rappresentazione binaria 16 F Valore 15 come numero intero in rappresentazione esadecimale Literal con varie modalit di scrittura per il valore 15 Ad una costante viene assegnato il tipo di dati il cui campo di valori appena sufficiente per poter memorizzare la costante senza alcuna perdita di valore Se si utilizza una costante in una espressione p es in un assegnazione di valore il tipo di dati della variabile di destinazione deve accettare il valore della costante Se per esempio viene indicato un literal di numero intero il cui valore eccede il campo dei numeri interi si presuppone che si tratti di un doppio numero intero Il compilatore segnaler un messaggio d errore se si assegna questo valore ad una variabile di numero intero 11 3 Definizione di constanti ed etichette di salto 11 3 Modalit di scrittura per literal di numeri interi e literal di numeri in virgola mobile Panoramica
54. E ORA DATE_AND_TIME E Indicazione della data H _ Indicazione dell ora H gt DT SCL per S7 300 400 B 6 C79000 G7072 C522 01 Regole lessicali Tabella B 2 Literal Regola Diagramma sintattico SEQUENZA DI CIFRE SEQUENZA DI CIFRE SEQUENZA DI CIFRE DECIMALI DECIMALI DECIMALI Anno Mese Giorno Indicazione della data Indicazione dell ora ala SEQUENZA DI CIFRE SEQUENZA DI CIFRE el giorno P DECIMALI DECIMALI Indicazione delle ore Inicazione dei minuti SEQUENZA DI CIFRE SEQUENZA DI CIFRE DECIMALI DECIMALI Indicazione dei millisecondi Indicazione dei millisecondi SCL per S7 300 400 C79000 G7072 C522 01 B 7 Regole lessicali Tabella B 2 Literal Regola Diagramma sintattico Rappresentazione decimale SEQUENZA DI CIFRE SEQUENZA DI CIFRE Giorni DECIMALI DECIMALI SEQUENZA DI CIFRE SEQUENZA DI CIFRE DECIMALI DECIMALI SEQUENZA DI CIFRE SEQUENZA DI CIFRE Minuti gt DECIMALI DECIMALI m gt SEQUENZA DI CIFRE SEQUENZA DI CIFRE DECIMALI DECIMALI s Secondi SEQUENZA DI CIFRE DECIMALI SEQUENZA DI CIFRE ca DECIMALI Millisecondi L accesso alla rappresentazione decimale possibile solo nelle unit di tempo non ancora definite Ore o e eo oi 9o Rappresentazione a livelli Giorni
55. Ftichette di salto 11 14 Definizione di constanti ed etichette di salto 11 1 Costanti Impiego di costanti Definizione di nomi simbolici Esempio Modalit di scrittura Nelle assegnazioni di valori e nelle espressioni oltre alle variabili e ai parametri di blocco si impiegano anche costanti Le costanti possono essere impiegate come costanti literal oppure con un nome simbolico La definizione dei nomi simbolici di costanti avviene all interno del blocco dichiarazioni CONST nella parte dichiarazioni del blocco di codice vedere capitolo 8 4 Blocco costanti Nome di costante Figura 11 1 Sintassi di un blocco costanti La semplice espressione indica in questo caso le espressioni matematiche con le quali si possono utilizzare le operazioni fondamentali DIV e MOD L esempio 11 1 illustra la dichiarazione per i nomi simbolici CONST NUMERO 10 ORA1 TIME 1D_1H_ 10M_225S 2MS NOME SIEMENS NUMERO2 2 54 10 4 NUMERO3 3 NUMERO2 END_CONST Esempio 11 1 Dichiarazione per costanti simboliche SCL dispone di varie modalit di scrittura formati per l introduzione o la visualizzazione di costanti Queste modalit di scrittura vengono denominate literal Le seguenti informazioni trattano i singoli literal SCL per S7 300 400 C79000 G7072 C522 01 Definizione di constanti ed etichette di salto 11 2 Literal
56. Indicazione della data e dell ora DATA E ORA DT Indicazione della data e dell ora DATA E ORA E Separatore per LITERAL NUMERO Esponente REALE e Separatore per LITERAL NUMERO Esponente REALE D Separatore per intervallo di tempo Day Giorni Regola rappresentazione a livelli H Separatore per intervallo di tempo Hour Ore Regola rappresentazione a livelli M Separatore per intervallo di tempo Minutes Minuti Regola rappresentazione a livelli MS Separatore per intervallo di tempo Millisecondi Regola rappresentazione a livelli Milliseconds S Separatore per intervallo di tempo Seconds Secondi Regola rappresentazione a livelli T Indicazione del tempo DURATA SCL per S7 300 400 C79000 G7072 C522 01 A 7 Descrizione formale del linguaggio Tabella A 4 Mnemonico per literal in ordine alfabetico Prefisso Contrassegno per Regolalessicale TIME Indicazione del tempo DURATA TIME_OF_DAY Indicazione del tempo ORA DEL GIORNO TOD Indicazione del tempo ORA DEL GIORNO Nelle regole La tabella A 5 descrive l impiego di singoli caratteri del set di caratteri ASCII come sintattiche caratteri di formattazione e separatori nell ambito delle regole sintattiche nei commenti e negli attributi vedere appendice B 2 e B 3 Tabella A 5 Caratteri di formattazione e separatori nelle regole sintattiche Carattere Descrizione Regola sintatti
57. Istruzione REPEAT REPEAT istruzioni UNTIL Espressione H END_REPEAT Condizione di interruzione Figura 15 7 Sintassi dell istruzione REPEAT La condizione viene verificata dopo l esecuzione della sequenza delle istruzioni Ci significa che il nucleo delle istruzioni viene eseguito almeno una volta anche se la condizione di interruzione soddisfatta fin dall inizio Avvertenza Si osservi che l istruzione END_REPEAT deve essere conclusa con un punto e virgola Esempio L esempio 15 5 illustra l uso dell istruzione REPEAT FUNCTION_BLOCK RICERCA VAR INDICE INT PAROLAIDENT ARRAY 1 50 OF STRING END_VAR BEGIN INDICE 0 REPEAT INDICE INDICE 2 UNTIL INDICE gt 50 OR PAROLAIDENT INDEX KEY END_REPEAT END_FUNCTION_BLOCK Esempio 15 5 Istruzione REPEAT SCL per S7 300 400 C79000 G7072 C522 01 15 11 Istruzioni di controllo 15 7 Istruzione CONTINUE Principio L istruzione CONTINUE serve per interrompere l esecuzione momentanea di un loop di un istruzione di ripetizione FOR WHILE o REPEAT e per riavviare l esecuzione all interno di un loop CH Istruzione CONTINUE Figura 15 8 Sintassidell istruzione CONTINUE G Se una sequenza di istruzioni deve essere ripetuta o viene deciso in un loop WHILI dalla condizione iniziale e in un loop REPEAT dalla condizione finale
58. M M Merker gt PE PI Ingresso periferia PA PQ Uscita periferia Mnemonico SIMATIC Mnemonico IEC Prefisso di dimensione per memoria e DB X Bit wyj Parola OD E Doppiaparola Indirizzo per memoria e DB Numero rt solo in caso di indirizzo a bit Accesso a istanza locale Variabile gt IDENTIFICATORE ste a Nome di istanza locale SCL per S7 300 400 B 10 C79000 G7072 C522 01 Regole lessicali B 2 Commenti Che cosa si deve osservare Tabella B 4 Commenti Regola COMMENTO COMMENTO A UNA RIGA COMMENTO A PIU RIGHE SCL per S7 300 400 C79000 G7072 C522 01 Seguono i punti pi importanti da osservare quando si inseriscono dei commenti e Non consentito l annidamento di commenti e L inserimento di commenti possibile in qualsiasi posizione nelle regole sintattiche ma non nelle regole lessicali Diagramma sintattico Commento a una riga Commento a pi righe Carattere gt e T Caratteri O b B 11 Regole lessicali B 3 Attributi di blocco Che cosa si deve Gli attributi di blocco possono essere situati con la seguente sintassi dopo osservare l IDENTIFICAZIONE DEL BLOCCO e prima della dichiarazione del primo blocco di variabili o parametri Tabella B 5 Attributi Regola Diagramma sintattico TIO RO 0 TITOLO V
59. Ore SEQUENZA DI CIFRE Al SEQUENZA DI CIFRE DECIMALI a DECIMALI SEQUENZA DI CIFRE a SEQUENZA DI CIFRE a DECIMALI DECIMALI Minuti Secondi SEQUENZA DI CIFRE a I DECIMALI MS Q gt Millisecondi necessaria almeno un indicazione SCL per S7 300 400 B 8 C79000 G7072 C522 01 Regole lessicali B 1 2 Indirizzamento assoluto Tabella B 3 Indirizzamento assoluto Regola Diagramma sintattico SEMPLICE ALLA OPERANDO MEMORIA Accesso assoluto IDENTIFICATORE SIMBOLO Accesso simbolico ACCESSO Indice INDICIZZATO ALLA gg Sx MEMORIA IDENTIFICAZIONE Espressione Espressione OPERANDO o base base solo in caso di accesso a bit IDENTIFICAZIONE DEL OPERANDO Prefi Prefisso di PER MEMORIA ACCESSO ASSOLUTO AL DB gt Identificazione operando DB H o Accesso assoluto ACCESSO Pao INDICIZZATO AL DB p Identificazione Espressione Espressione operando DB D muo solo in caso di accesso a bit ACCESSO STRUTTURATO AL DB E Identificazione DB SECO SCL per S7 300 400 C79000 G7072 C522 01 B 9 Regole lessicali Tabella B 3 Indirizzamento assoluto Regola Diagramma sintattico Identificazione ldentificazioneoperando Mee DEL IDENTIFICAZIONE Prefisso c i DB D D di memoria gt Prefisso di memoria E l Ingresso gt
60. REAL 10 elevato IN LN ANY_NUM REAL Logaritmo naturale LOG ANY_NUM REAL Logaritmo decadale 1 Siosservi chei parametri d ingresso del tipo ANY_NUM vengono internamente convertiti in variabili REAL Avvertenza Si ha inoltre la possibilit di sfruttare le funzioni IEC come funzione standard numeriche In tal caso si deve copiare la funzione desiderata dalla biblioteca STEP 7 STDLIBSMEC nella propria directory di programma Per ulteriori informazioni sulle singole funzioni IEC si rimanda a 235 18 9 Funzioni standard SCL Funzioni trigonometriche Esempio 18 10 Le funzioni trigonometriche rappresentate nella tabella 18 7 presuppongono e calcolano grandezze in angoli e archi Tabella 18 7 Funzioni trigonometriche Nome della fun Tipo di dati del Tipo di dati del Descrizione zione parametro d ingresso valore della funzione ACOS ANY_NUM REAL Arcocoseno ASIN ANY_NUM REAL Arcoseno ATAN ANY_NUM REAL Arcotangente COS ANY_NUM REAL Coseno SIN ANY_NUM REAL Seno TAN ANY_NUM REAL Tangente 1 REAL Si osservi che i parametri d ingresso del tipo ANY_NUM vengono internamente convertiti in variabili La tabella 18 8 descrive i possibili richiami di funzioni numeriche standard e i rispettivi risultati Tabella 18 8 Richiami delle funzioni numeriche standard Richiamo Risultato RISULTATO AB
61. Regole L elaborazione delle espressioni avviene conformemente alle seguenti regole e Gli operandi vengono elaborati conformemente alla loro priorit e Gli operatori della stessa priorit vengono elaborati da sinistra verso destra e L inserimento del segno meno davanti a un identificatore equivale ad una moltiplicazione per 1 e Gli operatori aritmetici non devono essere disposti in successione Perci l espressione a b non valida mentre invece a b consentita e L inserimento di coppie di parentesi pu disattivare la priorit degli operatori cio le parentesi hanno la massima priorit e Le espressioni fra parentesi vengono considerate come operandi singoli e vengono analizzate sempre per prime e Il numero di parentesi sinistre deve corrispondere al numero di parentesi destre e Gli operatori aritmetici non possono essere applicati a caratteri o a dati logici Perci le espressioni come A B e n lt 0 m lt 0 sono errate Esempi Le varie espressioni possono avere la seguente struttura EB10 Operando A1 AND A2 Espressione logica A3 lt A4 Espressione di confronto 3 3 4 2 Espressione aritmetica VALOREMISURA 2 Espressione di potenza DIFFERENZA DB10 E Espressione di potenza SOMMA xFC100 Espressione di potenza Esempio 13 1 Varieespressioni SCL per S7 300 400 13 4 C79000 G7072 C522 01 Espressioni operatori e o
62. SIMATIC Manager La tabella 6 1 illustra nomi e brevi descrizioni delle principali funzioni di test che possono essere richiamate in SCL Tabella 6 1 Una panoramica delle funzioni di test Funzioni Descrizione Controllacontinuativamente Emissione di nomi e valori attuali di variabili CPU S7 300 400 di un area di controllo Punti d arresto attivi Impostazione cancellazione edelaborazione solo CPU S7 400 dei punti di arresto test a passi singoli Controlla comandavariabili Controllo o definizione dei valori attuali dei dati globali Crea dati di riferimento Creazione di una panoramica del programma utente Funzione di test del pacchetto base STEP 7 Interrogazione e modifica dello stato di funzionamento della CPU Avvertenza L esecuzione di un test durante il funzionamento dell impianto pu causare gravi danni a persone e cose in caso di disturbi di funzionamento o errori di programma Prima di eseguire le funzioni di test ci si deve perci assicurare che non si possano verificare stati pericolosi SCL per S7 300 400 C79000 G7072 C522 01 Test di un programma 6 2 Funzione di test Controlla continuativamente Panoramica Modo test SCL per S7 300 400 C79000 G7072 C522 01 Durante il controllo continuativo di un programma possibile testare un gruppo di istruzioni Questo gruppo di istruzioni viene denominato anche area di controllo Durante l esecuzione del test i valor
63. VALOREl REAL oppure se esistono diverse variabili dello stesso tipo VALORE2 VALORE 3 VALORE4 INT CAMPO ARRAY 1 100 1 10 OF REAL RECORD STRUCT CAMPOMISURA ARRAY 1 20 OF REAL INTERRUTTORE BOOL END_STRUCT Sono consentiti tutti i tipi di dati trattati nel capitolo 9 Avvertenza Si possono dichiarare come identificatori parole riservate che hanno validit solo in SCL preponendo il carattere p es FOR Ci pu essere vantaggioso quando si vogliono trasmettere dei parametri attuali a blocchi che sono stati creati in un altro linguaggio p es AWL SCL per S7 300 400 C79000 G7072 C522 01 Convenzione di variabili locali e parametri di blocco 10 3 Inizializzazione Principio Nella dichiarazione le variabili statiche i parametri d ingresso di un FB e i parametri di uscita di un FB possono essere impostati con un determinato valore Questa impostazione iniziale avviene con un assegnazione di valore dopo l indicazione del tipo di dati Conformemente al diagramma sintattico 10 2 si pu assegnare e una costante ad una variabile semplice oppure e una lista di inizializzazione ad un campo Inizializzazione Costante H N Listainizializzazione dicampo Figura 10 2 Sintassidell inizializzazione tipo dati Esempio VALORE REAL 20 25 L inizializzazione di una lista di
64. VAR_OUTPUT Q2 REAL END_VAR BEGIN Parte istruzioni FC11 SQRT Ritorno del valore della funzione 2 Sy AE2 00 20 iL 2 Q2 x1 END_FUNCTION Esempio 8 3 Esempio di una funzione SCL per S7 300 400 C79000 G7072 C522 01 x2 8 15 Struttura di sorgenti SCL 8 9 Struttura di un blocco organizzativo OB Panoramica Identificazione OB Parte dichiarazioni OB 8 16 Il blocco organizzativo OB come un FB o una FC fa parte del programma utente e viene richiamato dal sistema operativo a intervalli ciclici o quando si verificano determinati eventi Esso costituisce l interfaccia fra programma utente e sistema operativo Blocco organizzativo ORGANIZATION_BLOCK e Parte dichiarazioni OB BEGIN 1 Parte istruzioni H END_ORGANIZATION_BLOCK p Figura 8 12 Sintassi di un blocco organizzativo Dopo la parola chiave ORGANIZATION_BLOCK introdurre come nome dell OB la parola chiave OB seguita dal numero del blocco oppure il nome simbolico dell OB Esempi ORGANIZATION_BLOCK 0B14 ORGANIZATION BLOCK ALLARME DALL OROLOGIO In linea di massima ogni OB necessita di 20 byte di dati locali per l informazione di avvio A seconda delle esigenze del programma nel OB si possono dichiarare ulteriori variabili temporanee Per la descrizione dei 20 byte di dati locali si rimanda a 235 Esempio ORGANIZATION_BLOCK 0B14 ALLARME DALL
65. WORD DWORD CHAR STRING e Per questo tipo di variabili i confronti sono consentiti solo fra variabili dello stesso tipo DATE TIME TOD DI e Nei confronti di caratteri tipo CHAR l analisi viene eseguita in base alla sequenza di caratteri ASCII e Le variabili SSTIME non sono confrontabili e Se entrambi gli operandi sono del tipo DT o STRING il confronto deve essere eseguito con le funzioni IEC corrispondenti SCL per S7 300 400 C79000 G7072 C522 01 Espressioni operatori e operandi Esempi Gli esempi seguenti illustrano la formazione delle espressioni di confronto Il risultato dell espressione di confronto viene negato IF NOT CONTATOR Il risultato della prima espressione di confronto viene negato e congiunto con il risultato della seconda espressione A NOT CONTATOREl 4 AND CONTATORE2 10 Disgiunzione di due espressioni di confronto WHILE A gt 9 OR INTERROGAZIONE lt gt n DO Esempio 13 6 Espressionilogiche SCL per S7 300 400 C79000 G7072 C522 01 13 11 Espressioni operatori e operandi 13 6 Espressioni logiche Definizione Operazioni logiche Risultati 13 12 Un espressione logica un espressione generata con operatori logici Con gli operatori AND amp XOR e OR si possono combinare operandi logici tipo BOOL 0 variabili del tipo di dati BYTE WORD o DWORD per poter generare espressioni
66. ad 1 equivale al valore del tempo programmato t Se durante il tempo di esecuzione del temporizzatore sull ingresso si verifica lo stato di segnale 0 il temporizzatore viene impostato ad 0 Ci significa che il tempo di esecuzione termina prima del tempo previsto La figura 17 3 illustra il modo di funzionamento del temporizzatore Avvia temporizzatore come impulso Segnale d ingresso Segnale d uscita Temporizzatore come impulso E 2 1 A4 0 S_PULSE pe t Figura 17 3 Temporizzatore Avvia temporizzatore come impulso Tabella 17 10 Modo di funzionamento Avvia temporizzatore come impulso Operazione Modo di funzionamento Avvia L operazione Avvia temporizzatore come impulso avvia un temporizzatore temporizzatore indicato quando lo stato del segnale all ingresso di avvio S passa da 0 a 1 Per abilitare il temporizzatore sempre necessario un cambio del segnale Definisciil Il temporizzatore continua a scorrere con il valore indicato all ingresso TV tempo di fino allo scadere del tempo programmato e l ingresso S 1 esecuzione Fine del tempo di Se l ingresso S passa da 1 a 0 prima che il valore del tempo sia sca esecuzione prima duto il temporizzatore viene interrotto del previsto Resetta Il temporizzatore viene resettato quando l ingresso di resettaggio R passa da 0 a 1
67. avviene sempre con l ausilio di una specificazione di tipi di dati STRUCT Il tipo di dati pu essere utilizzato risp assegnato nei blocchi dichiarazione di blocchi di codice oppure in blocchi dati risp DB Per i blocchi dichiarazione consentiti e ulteriori informazioni si rimanda al capitolo 9 8 19 SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Un tipo di dati la riunione di campi di valori e operazioni per formare delle unit Come la maggior parte dei linguaggi di programmazione SCL possiede tipi di dati predefiniti ossia integrati nel linguaggio Inoltre il programmatore pu creare tipi di dati composti e definiti dall utente Capitolo Argomento trattato Pagina 9 1 Panoramica 9 2 Tipi di dati semplici 9 3 Tipi di dati composti 9 4 9 3 1 Tipo di dati DATE_AND_TIME 9 5 9 3 2 Tipo di dati STRING 9 3 3 Tipo di dati ARRAY 9 3 4 Tipo di dati STRUCT 94 Tipo di dati definiti dall utente UDT 9 5 Tipi di parametri 9 12 9 1 Tipi di dati 9 1 Panoramica Panoramica Nell ambito di SCL si distinguono i vari tipi di dati secondo la tabella 9 1 Tabella 9 1 Tipi di dati in SCL Tipi di dati semplici BOOL CHAR INT TIME BYTE DINT DATE WORD REAL TIME_OF_DAY DWORD SSTIME Tipi di dati composti DATE_AND_TIME STRING ARRAY STRUCT Tipi di dati definiti dal
68. avviso Come trovare le Ciascun messaggio viene indicato con la rispettiva posizione di riga e colonna e una cause degli errori breve descrizione Per ottenere una dettagliata descrizione dell errore o del e dei messaggi di messaggio di avviso si deve selezionare il messaggio desiderato e fare clic sul avviso pulsante Con un doppio clic su un messaggio si pu posizionare il cursore sulla corrispondente posizione della sorgente SCL Grazie a queste due possibilit l utente pu localizzare e correggere rapidamente eventuali errori e massaggi di avviso SCL per S7 300 400 5 8 C79000 G7072 C522 01 Programmare con SCL 5 6 Trasmissione al PLC del programma utente Panoramica Presupposti Cancellazione totale della memoria CPU Caricamento nel sistema di destinazione SCL per S7 300 400 C79000 G7072 C522 01 Durante la compilazione di una sorgente SCL i blocchi vengono generati dalla sorgente e salvati nel contenitore Blocchi del programma S7 In SCL sono solo questi i blocchi che possono essere caricati in seguito nella CPU dal dispositivo di programmazione Se si desidera trasmettere ulteriori blocchi del programma S7 nel controllore programmabile si deve utilizzare il SIMATIC Manager Per poter caricare il programma utente nel PLC devono essere soddisfatti i seguenti presupposti e Fra il dispositivo di programmazione e il controllore programmabile esiste un collegamento e I blocchi che devono es
69. che eseguono e sorvegliano eventi comandati a tempo STEP 7 mette a disposizione dell utente una serie di funzioni di temporizzazione standard alle quali si pu accedere tramite SCL Con le operazioni di temporizzazione nel programma utente si pu e regolare tempi di attesa e consentire tempi di monitoraggio e generare impulsi e misurare tempi Richiamo Le funzioni di temporizzazione vengono richiamate in modo analogo a quello delle funzioni di conteggio L identificazione della funzione pu essere inserita ovunque in un espressione al posto di un operando purch il tipo dei risultati della funzione sia compatibile con il tipo del primo operando Tabella 17 7 Funzioni di temporizzazione STEP 7 Nome della fun Significato zione S_PULSE impulso Pulse S_PEXT impulso prolungato Pulse Extended S_ODT ritardo all insezione On Delay Time S_ODTS ritardo all insezione con memoria Stored On Delay Time S_OFFDT ritardo alla disinserzione Off Delay Time Valore della Il valore della funzione valori di ritorno che viene ritornato al punto di richiamo funzione un valore temporale con tipo di dati SSTIME Per informazioni al riguardo si rimanda al capitolo 17 2 1 SCL per S7 300 400 17 10 C79000 G7072 C522 01 Contatori e temporizzatori Parametri di richiamo Esempio SCL per S7 300 400 C79000 G7072 C522 01 I parametri da assegnare vengono spiegati in modo tabellar
70. comando di menu Modifica Ripristina consente di ripristinare una azione eseguita precedentemente SCL per S7 300 400 C79000 G7072 C522 01 Programmare con SCL Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 La programmazione richiede diverse fasi di lavoro Il presente capitolo ha l intento di descrivere tali fasi e di prescrivere l ordine in cui procedere Capitolo Argomento trattato Pagina 5 1 Creazione di programmi utente in SCL 5 2 5 2 Generazione e apertura di una sorgente SCL 5 3 Introduzione di dichiarazioni istruzioni e commenti 5 4 Salvataggio e stampa di una sorgente SCL 5 5 5 5 Processo di compilazione 5 6 5 6 Trasmissione al PLC del programma utente 5 7 Creazione di un file di comando compilazione 5 10 5 1 Programmare con SCL 5 1 Creazione di programmi utente in SCL Presupposti per la creazione di programmi Creazione della tabella dei simboli Come procedere Prima di creare un programma con SCL si dovrebbero eseguire quanto segue 1 Creare un progetto con il SIMATIC Manager 2 Con il SIMATIC Manager assegnare ad ogni CPU l indirizzo di comunicazione in rete 3 Configurare e parametrizzare le unit centrali e le unit di ingresso uscita 4 Se si desidera utilizzare indirizzi simbolici per aree di memoria della CPU oppure per nomi di blocchi si deve creare una tabella dei simboli in cui vengono memorizzati questi nom
71. con SCL tramite la Guida online si possono ottenere risposte a domande ben precise Capitolo Argomento trattato Pagina et Panoramica T 62 6 2 Funzione di test Controlla continuativamente 6 3 Funzione di test Punti d arresto attivi 6 5 6 4 Funzione di test Controlla comanda variabili 6 5 Funzione di test Dati di riferimento 6 6 Uso delle funzioni di test STEP 7 6 10 6 1 Test di un programma 6 1 Panoramica Livello di linguaggio avanzato Presupposti Funzione di test di SCL 6 2 Con le funzioni di test di SCL possibile testare a livello di linguaggio avanzato i programmi utente scritti in SCL Tramite questo tipo di test si pu e Scoprire errori di programmazione e Osservare e controllare gli effetti di un programma utente sulla struttura della CPU Prima di poter testare un programma SCL devono essere soddisfatte le seguenti condizioni 1 Il programma deve essere stato compilato senza errori con le opzioni Crea codice dell oggetto e Informazioni sul debug Si possono selezionare le opzioni nella scheda Compilatore con il comando di menu Strumenti Impostazioni 2 Fra PG PC e CPU vi deve essere un collegamento online 3 Inoltre si deve caricare il programma nella CPU Ci avviene tramite il comando di menu Sistema di destinazione Carica I blocchi che non sono stati compilati con SCL devono essere caricati con il
72. con l editor SCL Panoramica La sorgente SCL si compone normalmente di testo progressivo Per l introduzione dei testi l editor SCL dispone di funzioni di elaborazione testo concepite appositamente per il sistema SCL Finestra dell editor L oggetto sorgente per il programma utente viene introdotto tramite la tastiera nella finestra di lavoro Si possono aprire diverse finestre di uno stesso oggetto sorgente o di diversi oggetti La disposizione delle finestre pu essere regolata tramite il menu Finestra SCL Programmazione di blocchi S7 prog1 sorgente1 File Modifica Inserisci Sistema di destinazione Test Visualizza Strumenti Finestra D lst 6 lt 2e cel x2 e e c i 0 FUNCTION_BLOCK FB m VAR LILU Campo ARRAY 1 10 1 20 OF REAL REGOLATORE ARRAY 1 3 1 4 OF INT 54 736 83 77 1269 10362 3865 4 60 37 7y 103 END_VAR BEGIN Premere F1 per la Guida Inserisci 0 0 offline 4 Figura 4 3 Finestra di editazione SCL Selezione testi In SCL si pu selezionare un testo posizionando il cursore all inizio dell area da selezionare e mantenendo premuto il tasto sinistro del mouse mentre si trascina il cursore nell area desiderata Inoltre si pu e selezionare l intero testo di una sorgente scegliendo il comando di menu Modifica Seleziona tutto e sel
73. d ingresso Canale 1 Interruttore di Commutazione su ordinamento analisi ordinamento Canale 2 Interruttore di Interruttore verso sinistra 0 radice funzione Interruttore verso destra 1 quadrato Canale 3 Interruttore di uscita Interruttore verso sinistra 0 valore di misura Interruttore verso destra 1 risultato Canale 4 Codifica Indirizzo di uscita bit 0 Canale 5 Codifica Indirizzo di uscita bit 1 Canale 6 Codifica Indirizzo di uscita bit 2 Canale 7 Interruttore di Commutazione per confermare la codifica codifica Gli esempi dei test della tabella 2 7 usano tutti gli 8 valori di misura in una sequenza gi prestabilita Introdurre i valori in una sequenza a piacere Combinare i relativi bit ed immettere ogni valore mediante commutazione dell interruttore d ingresso Dopo l introduzione di tutti i valori avviare l ordinamento e l analisi mediante commutazione dell interruttore di ordinamento Dopodich si possono visualizzare i valori di misura ordinati o i risultati radice o quadrato Tabella 2 7 Esempi di test per radice e quadrato Valore di misura Radice Quadrato 0000 0001 1 0 0000 0001 1 0000 0000 0000 0001 1 0000 0011 3 0 0000 0010 2 0000 0000 0000 1001 9 0000 0111 7 0 0000 0011 3 0000 0000 0011 0001 49 0000 1111 15 0 0000 0100 4 0000 0000 1110 0001 225 0001 1111 31 0 0000 0110 6 0000 0011 1100 0001 961 0011 1111 6
74. dati di questo tipo occupano esattamente 1 carattere del set di carat teri ASCII Carattere singolo CHAR 8 set di caratteri ASCII ampliato Tipo di dati Sono disponibili per l elaborazione di valori numerici numerico Numero intero INT 16 32_768 fino a 32_767 Doppio numero intero 2_147 _483_648 fino a DINT 32 2_147_483_647 Numero in virgola 3 402822E 38 fino a 1 175495E 38 mobile REAL 32 numero in virgola 0 0 1 ms mobile IEE 1 175495E 38 fino a 3 402822E 38 Tipo di I dati di questo tipo rappresentano svariati valori di tempo data temporizzatore nell ambito di STEP 7 T 0H_0M_0S_10MS fino a Temporizzatore S5 SSTIME 16 T 2H_46M_30S assi VI TIME T 24D_20H_31M_23S_647MS fino a temporizzatori 32 T DURATION T 24D_20H_31M_23S_647MS empo IEC a intervalli di 1 ms Li D 1990 01 01fi Data IEC a intervalli di DATE 16 dci 1 giorno D 2168 12 31 Ora del giorno TIME_OF_DAY TOS Ora ad intervalli di TOD 32 TODA O Onora TOD 23 59 59 999 Nota per il temporizzatore S5 a seconda della base di tempo 0 01S 0 1S 1S o 10S la risoluzione del valore di tempo limitata Il Compilatore arrotonda i valori in modo opportuno Tipi di dati SCL supporta i seguenti tipi di dati composti Tabella 9 3 Tipi di dati composti Descrizione Definisce un campo di 64 bit 8 byte Questo tipo di dati memorizza in formato decimale in codice binario data e ora ed
75. destinazione non adatto al tipo di dati sorgente SCL per S7 300 400 C79000 G7072 C522 01 18 5 Funzioni standard SCL Nell esempio 18 3 viene applicata una conversione esplicita visto che il tipo di dati REAL non consentito per un espressione aritmetica con operatore MOD FUNCTION_BLOCK FB20 BEGIN VAR valoreint INT 17 CONV2 INT END_VAR CONV2 valoreint MOD REAL_TO_INT 2 3 MOD pu essere impiegato solo con dati del tipo INT o DINT END_FUNCTION_BLOCK Esempio 18 3 Conversione a causa di un tipo di dati non consentito Esempio Nell esempio 18 4 necessaria una conversione poich non presente il tipo di dati corretto per un operatore logico consentito utilizzare l operatore NOT solo con dati del tipo BOOL BYTE WORD o DWORD FUNCTION_BLOCK FB30 VAR valoreint INT 17 CONVI WORD END_VAR BEGIN CONVI NOT INT_TO_WORD valoreint NOT pu essere impiegato solo con dati del tipo INT END_FUNCTION_BLOCK Esempio 18 4 Conversione a causa di un tipo di dati errato SCL per S7 300 400 18 6 C79000 G7072 C522 01 Funzioni standard SCL SCL per S7 300 400 C79000 G7072 C522 01 L esempio 18 5 illustra la conversione nel caso di operazioni di ingresso e uscita in periferia FUNCTION_BLOCK FB20 VAR raggio_ein WORD raggio INT END_VAR BEGIN raggio_ein EB0 raggio WORD_TO_INT raggio_ein
76. deve essere utilizzato per l elaborazione di un blocco CONTATORE vedere anche capitolo 17 Identificazione Definiscono un determinato blocco che deve essere utilizzato come BLOCCO parametro d ingresso Il tipo di blocco FB FC DB viene definito nella dichiarazione del parametro d ingresso Nell assegnazione dei parametri si deve indicare l indirizzo del blocco Quest ultimo pu essere indicato in modo assoluto o simbolico vedere anche capitolo 9 Si osservi che nel caso di parametri di ingresso formali FC con tipi di dati non semplici i parametri di transito FB e parametri FC non sono consentiti come parametri attuali SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 3 3 Assegnazione d uscita di transito FC Principio Parametri attuali nelle assegnazioni d uscita di transito SCL per S7 300 400 C79000 G7072 C522 01 In un assegnazione d uscita si definisce in quale variabile dell FB richiamante devono essere scritti i valori d uscita che vengono generati durante l elaborazione di una funzione Con un assegnazione di transito si assegna un valore attuale ad un parametro di transito La figura 16 13 illustra la sintassi delle assegnazioni di uscita e di transito Assegnazione d uscita di transito gt IDENTIFICATORE Sable Nome dei parametri del parametro d uscita o Parametri attuali parametro di transito Par
77. di Per realizzare un assegnazione di valori per un campo parziale nelle parentesi una componente quadre si devono omettere indici dietro il nome del campo a partire da destra In tal di campo modo si indirizza un area parziale il cui numero di dimensione equivale al numero di indici omessi Ne consegue che in una matrice si pu fare riferimento a righe e componenti singole chiuse ma non a colonne chiuse chiuso significa da fino a Sono assegnazioni valide nomedicampo_1 i nomedicampo_2 nomedicampo_1l i Espressione identificatore_1 nomedicampo_1 1 SCL per S7 300 400 14 6 C79000 G7072 C522 01 Assegnazione di valori Esempi Gli esempi seguenti illustrano le assegnazioni di valori per campi FUNCTION_BLOCK FB3 VAR VALRIF ARRAY 0 127 OF INT VALATTUALE ARRAY 0 127 OF INT Convenzione per una matrice campo a due dimensioni con 3 righe e 4 colonne REGOLATORE ARRAY 1 3 1 4 OF INT Convenzione per un vettore campo a una dimensione con 4 componenti REGOLATORE_1 ARRAY 1 4 OF INT END_VAR BEGIN Assegnazione di un campo completo ad un campo VALRIF VALATTUALE Assegnazione di un vettore alla seconda riga del campo REGOLATORE REGOLATORE EGOLATORE_1 Assegnazione di una componente di campo co ad una componente del campo REGOLATORE REGOLATORE 1 4 REGOLATORE_1 4 END_FUN
78. dialogo in cui si possono selezionare diverse opzioni di stampa come p es l area di stampa oppure il numero di copie da stampare Confermare con OK per inviare il documento alla stampante Tramite il comando di menu File Imposta pagina si possono definire il formato della pagina di stampa Le righe di intestazione e di pi di pagina dei documenti da stampare possono essere impostate nel SIMATIC Manager con il comando di menu File Campi di scrittura Tramite il comando di menu File Anteprima di stampa si possono controllare le impostazioni eseguite con il comando Imposta pagina prima di avviare la stampa del documento Qui non possibile eseguire alcuna modifica del documento 5 5 Programmare con SCL 5 5 Processo di compilazione Panoramica Impostazione del Compiler 5 6 Prima di poter eseguire o testare un programma utente quest ultimo deve essere compilato Il compilatore viene attivato con l avvio del processo di compilazione vedi sotto Il compilatore ha le seguenti caratteristiche Il compilatore lavora nella modalit operativa Batch cio esso elabora una sorgente SCL come intera unit Non sono possibili compilazioni parziali p es riga per riga Il compilatore verifica la sintassi di una sorgente SCL e visualizza tutti gli errori riscontrati nel corso della compilazione Esso genera blocchi con informazioni di test se la sorgente SCL esente da errori e se stata imp
79. funzionale OCK END_IF Fine dell istruzione IF Istruzione IF END_LABEL Fine della dichiarazione di un blocco etichette di salto Blocco etichette di salto END_TYPE Fine dell UDT Tipo di dati definito dall utente END_ORGANIZATIO N_BLOCK Fine del blocco organizzativo Blocco organizzativo END_REPEAT Fine dell istruzione REPEAT Istruzione REPEAT END_STRUCT Fine della specificazione di una struttura Specificazione tipo di dati struttura END_VAR Fine del blocco di dichiarazione Blocco variabili temporanee blocco variabili statiche blocco parametri END_WHILE Fine dell istruzione WHILE Istruzione WHILE EXIT Uscita diretta dall elaborazione di loop EXIT FALSE Costante booleana predefinita condizione logica non soddisfatta valore uguale a 0 FOR Introduzione dell istruzione di controllo per Istruzione FOR l elaborazione di loop FUNCTION Introduzione della funzione Funzione FUNCTION_BLOCK Introduzione del blocco funzionale Blocco funzionale GOTO Istruzione per l esecuzione di un salto ad un etichetta di salto Salto di programma IF Introduzione istruzione di controllo per selezione Istruzione IF INT Tipo di dati semplice per numero intero Integer Tipo di dati numerici semplice precisione LABEL Introduzione per dichiarazione di un blocco etichette di Blocco etichette di salto salto MOD Operatore aritmetico per resto della divisione Operatore base aritmetico moltip
80. funzione sono disponibili come e valore di ritorno oppure e come parametri di uscita o di transito parametri attuali Per ulteriori informazioni al riguardo si rimanda al capitolo 18 SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 3 1 Parametri FC Principio Regole SCL per S7 300 400 C79000 G7072 C522 01 Contrariamente ai blocchi funzionali le funzioni non possiedono alcuna memoria in cui poter memorizzare i valori dei parametri Durante l esecuzione della funzione i dati locali vengono memorizzati solo temporaneamente Per questo motivo durante il richiamo di una funzione si devono assegnare dei parametri attuali a tutti i parametri d ingresso di transito e d uscita che sono stati definiti nella parte dichiarazioni di una funzione La figura 16 11 illustra la sintassi dell assegnazione di parametri FC Parametri FC Espressione Assegnazione d ingresso Assegnazione d uscita di transito Q Figura 16 11 Sintassi dell assegnazione di parametri FC Un richiamo con assegnazioni dei parametri di ingresso uscita e transito potrebbe avere p es l aspetto seguente FC32 E Paraml 5 D_Paraml LUNGHEZZA A_Paraml Somma di controllo Per l assegnazione dei parametri valgono le regole seguenti e La sequenza delle assegnazioni irrilevante e I tipi di dati dei parametri formali e attuali devono coincidere
81. gi predefinito in SCL Definisce un campo per una sequenza di max 254 caratteri tipo di dati CHAR Definisce un campo con elementi di un tipo di dati semplici o composti Definisce un raggruppamento di tipi di dati con qualunque combinazione Si possono definire campi di strutture oppure strutture di strutture e campi 9 3 Tipi di dati composti Panoramica Tipo di dati DATE_AND_TIME DT STRING ARRAY STRUCT 9 4 SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati 9 3 1 Tipo di dati DATE_AND_TIME Panoramica Il tipo di dati DATE_AND_TIME composto dai tipi di dati DATE e TIME Esso definisce un area di 64 bit 8 byte per l indicazione di data e ora Nell area di dati vengono memorizzate le seguenti informazioni anno mese giorno ore minuti secondi millisecondi DATE_AND_TIME DATE_AND_TIME d Indicazione data H Indicazioneora b DT Figura 9 1 Sintassi di DATE_AND_TIME Tabella 9 4 Numero di bit e campo di valori Campo di valori Tipo Parola chiave Numero Area di valori di bit Data e ora DATE_AND_TIME DT 1990 01 01 0 0 0 0 finoa amp DT 64 DT 2089 12 31 23 59 59 999 Una descrizione dettagliata della sintassi per l indicazione della data e dell ora si trova nel capitolo 11 di questo manuale Una definizione valida per il 20 10 1995 alle ore 12 20 min 30 sec e 10 millisecondi la seguente DATE_AND
82. i caratteri hh in cui hh indica il valore esadecimale del carattere ASCII Esempio CARATTERI_A 41 corrisponde al carattere A Blank 1 20 corrisponde al carattere u Per ulteriori informazioni sui caratteri sostitutivi e di controllo si rimanda all appendice A Esempi Gli esempi seguenti illustrano la formulazione dei literal di caratteri Literal di caratteri Caratteri S Literal di stringa NOME SIEMENS Interruzione di un literal di stringa MESSAGGIO1 MOTORE gt lt Controllo y Stringa in rappresentazion sadecimal MESSAGGIO1 41 4E Seguenza di caratteri AN Esempio 11 3 Literal di caratteri SCL per S7 300 400 C79000 G7072 C522 01 11 9 Definizione di constanti ed etichette di salto 11 5 Modalit di scrittura per indicazioni del tempo Modalit di SCL dispone di vari formati per introdurre i valori dell ora e della data Sono scrittura per valori possibili le seguenti indicazioni di tempo di tempo ITA Durata Ora del giorno Data e ora Data Una data viene preannunciata con i prefissi DATE o D vedere la figura 11 12 DATA DATE Indicazione della data Figura 11 12 Sintassi per la data L indicazione della data avviene tramite numeri interi per la cifra dell anno di 4 cifre indicazione della data e del giorno i quali devono essere separati mediante t
83. il numero di messaggio S7_a_type alarm alarm_8 viene definito il tipo di blocco di segnalazione che viene IN solo in FB alarm_8p richiamato nella parte istruzioni requisito fondamentale alarm_s notify anchel attributo S7_server alarm_archiv assegnato ar_send S7_co pbkl pbk ptpl viene definito il tipo di collegamento che deve essere IN obkI fdl iso progettato requisito fondamentale anche l attributo pbks obkv S7_server connection assegnato S7_m_c true false il parametro deve essere comandato o controllato da IN OUT IN_OUT solo in un apparecchiatura di servizio e supervisione FB S7_shortcut 2 caratteri a al parametro devono essere assegnate sigle per la IN OUT IN_OUT solo in piacere ad es valutazione dei valori analogici FB W Y S7_unit Unit ad es litri al parametro devono essere assegnate unit per la IN OUT IN_OUT solo in valutazione dei valori analogici FB S7_string 0 16caratteria al parametro deve essere assegnato il testo per la IN OUT IN_OUT solo in piacere ad es valutazione di valori binari FB FC APERTO S7_string 1 16caratteria al parametro deve essere assegnato il testo per la IN OUT IN_OUT solo in piacere ad es valutazione di valori binari FB FC CHIUSO S7_visible true false deve o non deve essere visualizzato il parametro in CFC IN OUT IN_OUT solo in FB FC S7_link true false il parametro deve o non deve essere interconnettibile in IN OUT IN_OUT solo in CFC FB FC S7_
84. introduzioni devono essere accettate senza alcuna modifica ae Q Lettera SE 2 1 Lettera y A Trattino Trattino Figura 7 2 Esempio di regola lessicale In base alla regola illustrata sono esempi validi R_REGOLATORE3 _A_CAMPO 1003310 Per i motivi suddetti i seguenti esempi non sono validi 1_1AB RR_ 20 AB Regole sintattiche L introduzione di testi sorgente conformemente alle regole sintattiche avviene con libert di formato vedere figura 7 3 di Variabile semplice Costante C gt Figura 7 3 Esempio di regola sintattica In base alla regola illustrata sono esempi validi VARIABLE_1 100 INTERRUTTORE FALSE VARIABILI E 2 3 2 SCL per S7 300 400 C79000 G7072 C522 01 7 3 Terminologia generale SCL 7 2 Set di caratteri SCL Lettere cifre Altri caratteri Ulteriori informazioni 7 4 Dall area parziale del set di caratteri ASCII SCL utilizza le lettere maiuscole e minuscole dalla A alla Z e le cifre arabe da 0 a 9 e i blank spazi valore ASCII 32 e tutti i caratteri di controllo ASCII 0 31 compreso il carattere di fine riga ASCII 13 In SCL questi caratteri hanno un significato chiaramente definito n F lt gt f i L appendice A contiene un elenco dettagliato di tutti i caratteri utilizzabili nonch le relative informa
85. la se quenza a passi singoli Ripetere no s 6 Chiudere Disattivare Punti d arresto attivi Eliminare ripartizione della finestra con Concludi test Figura 6 1 Algoritmo della sequenza di test 6 7 Test di un programma 6 4 Funzione di test Controlla comanda variabili Panoramica Controllo e comando delle variabili 6 8 Durante il test con la funzione Controlla comanda variabili possibile e fare visualizzare controllare i valori attuali dei dati globali del proprio programma utente e assegnare comandare valori fissi alle variabili di un programma utente Con il comando di menu Sistema di destinazione Controlla comanda variabili possibile e definire i punti e le condizioni di trigger e specificare i valori per le variabili di un programma utente In entrambi i casi si deve creare una tabella delle variabili indicando quali variabili debbano essere elaborate Nel caso di Comanda si devono indicare anche i valori desiderati Il manuale utente STEP 7 231 contiene una descrizione dettagliata della funzione di test SCL per S7 300 400 C79000 G7072 C522 01 Test di un programma 6 5 Funzione di test Dati di riferimento Panoramica Creazione dei dati di riferimento SCL per S7 300 400 C79000 G7072 C522 01 possibile generare e valutare i dati di riferimento per agevolare l esecuzione del test e delle modif
86. logiche Per negare il valore di un operando logico cio per invertirlo viene utilizzato l operatore NOT Operatore logico di base NOT non un operatore di base L operatore funge da segno matematico TOE BEDES Figura 13 8 Sintassi di un operatore logico di base La tabella 13 3 contiene informazioni sulle espressioni logiche disponibili e sui tipi di dati per il risultato e gli operandi Vengono usate le abbreviazioni seguenti ANY_BIT per i tipi di dati BOOL BYTE WORD DWORD Tabella 13 3 Operatori logici Operazione Operatore 1 Operando 2 Operando Risultato Priorit Negazione NOT ANY_BIT l ANY_ BIT 3 Congiunzione AND ANY_ BIT ANY_ BIT ANY BIT 8 Disgiunzione XOR ANY_BIT ANY_BIT ANY_BIT 9 esclusiva Disgiunzione OR ANY_BIT ANY_ BIT ANY_BIT 10 Il risultato di un espressione logica pu essere e 1 true o 0 false in una combinazione di operandi booleani e oppure una stringa di bit dopo un operazione logica combinatoria a bit fra i due operandi SCL per S7 300 400 C79000 G7072 C522 01 Espressioni operatori e operandi Esempi Supponiamo che n sia una variabile di numeri interi con il valore 10 e che s sia una variabile di caratteri che rappresenta il carattere A Seguono alcune espressioni logiche con queste variabili Espressione Valore n gt 0 AND n lt 20 vero n gt 0 AND n lt 5 falso n gt 0 OR n lt 5
87. non possibile 10 7 Convenzione di variabili locali e parametri di blocco 10 5 Variabili statiche Panoramica Blocco dichiarazioni VAR END_VAR Esempio Accesso 10 8 Le variabili statiche sono variabili locali i cui valori rimangono inalterati in tutte le esecuzioni dei blocchi memoria dei blocchi Esse servono per memorizzare il valore di un blocco funzionale e vengono memorizzate nel corrispondente blocco dati di istanza Blocco di variabili statiche END_VAR Dichiarazione di istanza Dichiarazione di variabili Figura 10 6 Sintassi del blocco variabili statiche Questo blocco dichiarazioni fa parte della parte dichiarazioni dell FB In questo blocco si possono e definire nomi di variabili e tipi di dati con la dichiarazione di variabili secondo il capitolo 10 2 come opzione anche con inizializzazione e inserire altre dichiarazioni di variabili gi esistenti con la dichiarazione di istanze secondo il capitolo 10 4 Dopo la compilazione insieme con i blocchi per i parametri del blocco questo blocco determina la struttura del blocco dati di istanza assegnato L esempio 10 4 illustra la convenzione di variabili statiche VAR ESECUZIONE SINT CAMPO DI MISURA ARRAY 1 10 OF REAL INTERRUTTORE BOOL MOTORE_ 1 Motore_2 FB100 Dichiarazione istanza END_VAR Esempio 10 4 Dichiarazione di variabili statiche L accesso alle variabili
88. o del quadrato la soluzione migliore una FC poich il ritorno del risultato pu aver luogo come valore della funzione Inoltre per il calcolo non sono necessari dati che devono essere conservati pi a lungo di un ciclo di elaborazione del programma Per il calcolo della radice si pu utilizzare SQRT la funzione standard in SCL Per il calcolo del quadrato si deve creare una funzione QUADRAT la quale deve eseguire anche un controllo dei valori limite del campo di valori SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL 2 3 3 Definizione delle interfacce fra i blocchi Panoramica RILEVAZIONI Eal SCL per S7 300 400 C79000 G7072 C522 01 L interfaccia di un blocco viene definita tramite la dichiarazione dei suoi parametri formali In SCL esistono le seguenti sezioni di dichiarazione e Parametri d ingresso dichiarazione con VAR_INPUT e Parametri di uscita dichiarazione con VAR_OUTPUT e Parametri di transito dichiarazione con VAR_IN_OUT Quando viene richiamato un blocco gli vengono trasferiti i dati d ingresso come parametri attuali Dopo il ritorno al blocco richiamante i dati di uscita vengono preparati per la conferma Una FC pu trasferire il suo risultato come valore della funzione Per ulteriori informazioni vedere il capitolo 16 L OB CICLO non possiede propri parametri formali Esso richiama 1 FB RILEVAZIONE e gli trasferisce il valore di misura e i dati di comando
89. risultati devono essere visualizzati tramite un unit di uscita il che richiede una parola Il comando del programma avviene mediante un byte d ingresso Un valore di misura impostato tramite 8 interruttori d ingresso deve essere trasferito nella memoria del campo valori di misura quando sull interruttore d ingresso viene riconosciuto un fronte vedere rappresentazione alla figura 2 1 Il campo dei valori di misura deve essere organizzato come buffer circolare con massimalmente 8 registrazioni Quando sull interruttore di ordinamento viene riconosciuto un fronte i valori memorizzati nel campo valori di misura devono essere ordinati in ordine ascendente Quindi per ciascun valore si devono calcolare la radice e il quadrato Introduzione dei dati x Analisi del fronte Interruttore Valore di Interruttore di d ingresso misura ordinamento Radice Quadrato Rilevazione dei Ordinamento dei Calcolo dei risultati valori di misura valori di misura Figura 2 1 Rilevazione ed elaborazione dei valori di misura 2 3 Sviluppo di programmi SCL Uscita impostabile 2 4 Poich all uscita viene visualizzato solo un valore per volta vi devono essere le seguenti possibilit di scelta e Scelta di un elemento all interno di una lista e Scelta fra valore di misura radice e quadrato La scelta di un elemento all interno di una lista deve avvenire in modo che un elemento della lista venga indirizz
90. singoli La tabella valida per il mnemonico SIMATIC e IEC Tabella A 6 Operatori SCL Operatore Descrizione Esempio di regola sintattica Operatore di assegnazione assegnazione Assegnazione di valori parte assegnazioni iniziale inizializzazione del tipo di dati DB blocco costanti assegnazione d uscita di transito assegnazione d ingresso assegnazione di transito be Operatori aritmetici operatori unari segno Espressione espressione semplice espres sione di potenza A 8 SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio Tabella A 6 Operatori SCL Operatore Descrizione Esempio di regola sintattica l Operatoriaritmeticidibse Operatore aritmetico di base moltiplicazione MOD DIV semplice FE Operatori aritmetici operatore di potenza Espressione NOT Operatori logici negazione Espressione AND amp OR XOR Operatori logici di base Operatore logico di base e E o P Operatori di confronto Operatore di confronto SCL per S7 300 400 C79000 G7072 C522 01 A 9 Descrizione formale del linguaggio A 5 Parole chiave e identificatori predefiniti Parole chiavi e identificatori La tabella A 7 contiene parole chiave e identificatori predefiniti di SCL elencati in ordine alfabetico Vengono inoltre riportate descrizioni e regole sintattiche predefiniti dell appe
91. su TRUE il flag OK per poter verificare se l azione seguente viene svolta correttamente OK TRUE SUM SUM IN IF OK THEN L addizione stata svolta correttamente ELSE L addizione non stata svolta correttamente END_IF Esempio 10 7 Impiego del flag OK SCL per S7 300 400 C79000 G7072 C522 01 Definizione di costanti ed etichette di salto Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Le costanti sono dati con determinati valori fissi i quali non possono essere modificati durante l esecuzione del programma Se il valore di una costante viene espresso dalla modalit di scrittura si parla di costanti literal Non necessario una dichiarazione di costanti Sussite comunque la possibilit di assegnare dei nomi simbolici alle costanti nella parte dichiarazioni Le etichette di salto indicano i nomi di destinazioni di salto all interno della parte istruzioni del blocco di codice I nomi simbolici delle costanti e le etichette di salto vengono definiti in gruppi separati in appositi blocchi di dichiarazione Capitolo Argomento trattato Pagina 11 1 Costanti 11 2 11 2 Literal 11 3 11 3 Modalit di scrittura per literal di numeri interi e literal di numeri in virgola mobile 11 4 Modalit di scrittura per literal di caratteri e di stringhe 11 7 11 5 Modalit di scrittura per indicazioni del tempo 11 10 11 6
92. tipo di dati che determina la struttura e quindi anche la memoria necessaria Inoltre alle variabili statiche ed ai parametri di un blocco funzionale si possono assegnare determinati valori iniziali La tabella 10 4 contiene una panoramica indicante in quali casi possibile una inizializzazione Tabella 10 4 Inizializzazione di dati locali Categoria di dati Inizializzazione Variabili statiche possibile Variabili temporanee non possibile Parametri di blocco possibile solo per i parametri d ingresso e d uscita di un blocco funzionale SCL per S7 300 400 C79000 G7072 C522 01 10 3 Convenzione di variabili locali e parametri di blocco 10 2 Dichiarazione di variabili e parametri Panoramica Specificazione del tipo di dati 10 4 Una dichiarazione di variabili o parametri si compone di un identificatore liberamente scelto per il nome della variabile e per l indicazione del tipo di dati Il diagramma sintattico illustra la forma generale Il capitolo 8 4 contiene una descrizione dettagliata dell assegnazione di attributi di sistema per parametri Dichiarazione di variabili Inizializzazione 1 Il Specificazione JH deltipo di dati IDENTIFICATORE tipo di dati Nome di variabile di parametro o dicomponente a 1 Attributi di sistema per parametri Figura 10 1 Sintassi della dichiarazione di variabili Seguono alcuni esempi di dichiarazioni valide
93. tipo di dati Interfaccia 3 SCL per S7 300 400 C79000 G7072 C522 01 Regole sintattiche Tabella C 3 Sintassi dei blocchi dichiarazioni Regola Diagramma sintattico Parte assegnazioni DB one Variabile semplice Costante C gt Blocco costanti xi Espressione END_CONST IDENTIFICATORE semplice Nome di costante Blocco etichette di salto LABEL IDENTIFICATORE b END_LABEL Etichetta di salto JA Blocco variabili _ tipo di dati statiche Dichiarazione di variabili gt VAR END_VAR gt Dichiarazione di istanze Dichiarazione di p e variabili IDENTIFICATORE 1 g gt Feet Inizializzazione Nome di variabile nome di parametro o nome di Nome di componenti all interno di strutture componente ON Non durante l inizializzazione Attributi di sistema per parametri max 24 caratteri IDENTFICATORE gt d e 0 Q SCL per S7 300 400 C79000 G7072 C522 01 C 5 Regole sintattiche Tabella C 3 Sintassi dei blocchi dichiarazioni Regola Inizializzazione tipo di dati Diagramma sintattico Costante H Lista d inizializzazione di campo i Costante H Inizializzazione dati semplici Lista inizializzazione di campo Costante da SEQUENZA DI CIFRE DECIMALI K l
94. un blocco di codice un blocco che contiene una parte del programma utente STEP 7 Un blocco dati contiene invece esclusivamente dei dati Esistono i seguenti blocchi di codice blocchi organizzativi OB blocchi funzionali FB funzioni FC blocchi funzionali di sistema SFB e funzioni di sistema SFC Glossario 1 Glossario Blocco dati DB Blocco funzionale FB Blocco funzionale di sistema SFB Blocco organizzativo OB Campo Caricamento nel PG Caricamento nel sistema di destinazione Classe di blocchi Commento a pi righe Compilazione Glossario 2 I blocchi dati DB sono aree di dati del programma utente che contengono dati utente Ai blocchi dati si pu accedere da tutti i blocchi di codice I blocchi dati assegnati ad un determinato richiamo di FB vengono denominati blocchi dati di istanza Conformemente a IEC 1131 3 un blocco funzionale FB un blocco di codice con dati statici Un FB consente di trasferire dei parametri nel programma utente Perci i blocchi funzionali sono particolarmente adatti per programmare funzioni complesse e di frequente ripetizione come p es regolazioni scelta del modo operativo Poich un FB dispone di una memoria blocco dati di istanza si pu accedere ai suoi parametri p es uscite in qualsiasi momento e in qualsiasi punto del programma utente Un blocco funzionale di sistema SFB un blocco funzionale integrato nel sistema operativo dell
95. valore di ritorno e non possono perci essere utilizzate in espressioni La figura 16 10 illustra la sintassi di un richiamo di funzione Richiamo di funzione IDENTIFICAZIONE FC N IDENTIFICAZIONE D Parametro FC IDENTIFICATORE l FC funzione Nome di funzione standard o SFC funzione di sistema nome simbolico funzione standard realizzata nel compilatore Figura 16 10 Sintassi del richiamo di una funzione 16 13 Richiamo di funzioni e blocchi funzionali Richiamo Esempio Risultato del richiamo 16 14 Avvertenza Se in SCL viene richiamata una funzione il cui valore di ritorno non stato assegnato si pu verificare una esecuzione errata del programma utente In una funzione SCL ci pu avvenire quando il valore di ritorno stato assegnato ma la relativa istruzione non stata eseguita In una funzione AWL KOP FUP ci pu avvenire se la funzione stata programmata senza assegnazione del valore di ritorno oppure se la relativa istruzione non viene eseguita Il richiamo di una funzione avviene indicando il nome della funzione IDENTIFICAZIONE FC SFC IDENTIFICATORE e ela lista dei parametri Il nome della funzione che identifica il valore di ritorno pu essere indicato in modo assoluto o simbolico p es FC31 X1 5 Q1 Somma di controllo DISTANZA X1 5 Q1 Somma di controllo Dopo il richiamo i risultati di un richiamo di
96. valori Durante la formulazione della lista dei valori si deve osservare quanto segue e Ogni lista di valori pu iniziare con una costante una lista di costanti o un area di costanti e I valori all interno della lista di valori devono essere del tipo INTEGER e Ogni valore pu essere presente una sola volta L esempio 15 2 illustra l uso dell istruzione CASE La variabile TW di regola del tipo INTEGER CASE TW OF T DISPLAY OVEN_TEMP 2o DISPLAY MOTOR_SPEED 3z DISPLAY GROSS_ TARE AW4 16 0003 4 10 DISPLAY INT_TO_DINT TW AW4 16 0004 11 13 19 DISPLAY 99 AW4 16 0005 ELSE DISPLAY 0 TW_ERROR 1 END_CASI CI Esempio 15 2 Istruzione CASE Avvertenza Si osservi che il tempo d esecuzione dei loop non deve essere troppo lungo altrimenti la CPU emette un messaggio di ritardo alla conferma e si porta in STOP 15 7 Istruzioni di controllo 15 4 Istruzione FOR Principio L istruzione FOR o istruzione di ripetizione esegue una sequenza di istruzioni in un loop in cui ad una variabile di esecuzione vengono assegnati valori in ordine progressivo La variabile d esecuzione deve essere l identificatore di una variabile del tipo INT o DINT Sintassi Istruzione FOR Assegnazione Espressione FOR iniziale ase per valore iniziale per valore finale Parte istruzioni Figura 15 4 Sintassi dell istruzi
97. valori con variabili di tipo DATE_AND_TIME Variabile Il tipo di dati DATE_AND_TIME definisce un area di 64 bit 8 byte per DATE _AND_TIME l indicazione della data e dell ora Assegnazione Ad ogni variabile con tipo di dati DATE_AND_TIME si pu assegnare un altra variabile o costante dello stesso tipo Sono assegnazioni valide dtvariable_1 Data e literal tempo dtvariable_1 dtvariable_2 Esempio Gli esempi seguenti illustrano le assegnazioni di valori con variabili DATE_AND_TIME FUNCTION_BLOCK FB3 VAR ORA_1 DATE STRUTTURAl1 STR ORA_2 DATI ORA_3 DATE_ END_STRUCT Assegnazione di una costante per una variabile DATE_AND_TIME RA_1 DATE _AND_TIME 1995 01 01 12 12 12 2 STRUTTURA ORA_3 DT 1995 02 02 11 11 11 i i Assegnazione di una componente di struttura una variabile DATE_AND_TIME ORA_1 STRUTTURA1 ORA_2 Assegnazione di una variabile DATE_AND_TIMI ad una componente di struttura DATE_AND_TIMI If ORA_1 lt STRUTTURA1 ORA_3 THEN STRUTTURAl ORA_3 ORA_1 END_IF d END_FUNCTION_BLOCK Esempio 14 5 Assegnazione di valori con variabili di tipo DATE_AND_TIME SCL per S7 300 400 C79000 G7072 C522 01 14 9 Assegnazione di valori 14 7 Assegnazione di valori con variabili assolute per aree di memoria Variabile assoluta La variabile assoluta fa riferimento alle aree di memoria valide della CPU Per
98. vengono richiamati dal programma utente STEP 7 Nello stato di funzionamento RUN viene elaborato il programma utente e l immagine di processo viene aggiornata ciclicamente Tutte le uscite digitali sono abilitate Lo stato di funzionamento RUN P corrisponde allo stato di funzionamento RUN con la differenza che nelle stato di funzionamento RUN P sono consentite tutte le funzioni del dispositivo di programmazione senza alcuna restrizione SCL per S7 300 400 C79000 G7072 C522 01 Glossario SCL Simbolo Single Step Sorgente Sorgente SCL Stato del blocco Struttura STRUCT T Tabella dei simboli Tabella delle variabili Tempo di ciclo Tempo di controllo del ciclo SCL per S7 300 400 C79000 G7072 C522 01 Linguaggio di programmazione avanzato simile a PASCAL secondo la norma DIN EN 61131 3 int IEC 1131 3 per la programmazione di compiti complessi in un PLC p es algoritmi compiti di elaborazione dati Abbreviazione di Structured Control Language Un simbolo un nome definito dall utente conformemente a determinate regole sintattiche Dopo la definizione indicante il suo tipo p es variabile tipo di dati blocco questo nome pu essere utilizzato in fase di programmazione e nelle operazioni di comando e osservazione Esempio operando E 5 0 tipo di dati Bool simbolo Tasto_Arresto di emergenza Passo singolo Una sorgente file di testo contiene il codice sorgente testo A
99. 0 C79000 G7072 C522 01 SCL offre tutti i vantaggi di un linguaggio di programmazione avanzato SCL possiede per anche alcune propriet concepite appositamente per supportare la tecnica di programmazione strutturata p es e la struttura a blocchi di STEP 7 e blocchi predefiniti e compatibilit con STEP 5 SCL stato concepito in modo particolare per risolvere qualsiasi tipo di problema che pu verificarsi nei progetti di automazione per consentire all utente di operare in STEP 7 con la massima efficacia in tutte le fasi del progetto SCL supporta in modo particolare il concetto dei blocchi di STEP 7 e consente perci oltre a AWL e KOP la programmazione di blocchi conformemente alle norme specifiche OB FC FB DB UDT SFC SFB Blocchi STEP 7 Per funzione struttura e scopo i blocchi STEP 7 sono parti ben definite di un programma utente Con SCL si possono realizzare i blocchi seguenti Abbreviazione Tipo di blocco Funzione vee Interfaccia fra sistema operativo e programma OB Blocco organizzativo p prog utente FC Funzione Blocco con possibilit di trasferimento di parametri senzamemoria FB Blocco funzionale Blocco con possibilit di trasferimento di parametri con memoria DB Blocco dati Blocco per il deposito di dati utente UDT Tipo di dati definito Blocco per il deposito di un tipo di dati dall utente definito dall utente
100. 000 G7072 C522 01 Descrizione formale del linguaggio A 7 Panoramica dei non terminali Definizione Un non terminale un elemento composto che viene descritto da un ulteriore regola Il non terminale viene rappresentato da quadrato Il nome nel quadrato corrisponde al nome della regola successiva Non terminale lt Nome della regola gt Nome della regola a piacere Figura A 6 Non terminale L elemento presente nelle regole lessicali e nelle regole sintattiche A 8 Panoramica dei token Definizione Panoramica SCL per S7 300 400 C79000 G7072 C522 01 Un token un elemento composto impiegato come elemento base nelle regole sintattiche e viene dichiarato nelle regole lessicali Il token viene rappresentato da un rettangolo Il NOME in caratteri maiuscoli corrisponde al nome della regola lessicale seguente senza rettangolo Token lt Nome della regola gt Nome della regola sempre in caratteri maiuscoli Figura A 7 Token I token definiti rappresentano identificatori che sono stati determinati come risultato delle regole lessicali Questi token descrivono e Identificatori e Assegnazioni di nomi in SCL Costanti predefinite e flag Descrizione formale del linguaggio A 9 ldentificatori Identificatori in Gli identificatori consentono di far riferimento agli oggetti linguistici di SCL La SCL tabella A 10 contiene informazioni sulle classi di identificatori
101. 01 Terminologia generale SCL 7 10 Istruzioni Panoramica Assegnazioni di valori Istruzioni di controllo Elaborazione di sottoprogrammi Un istruzione SCL un azione eseguibile nella parte istruzioni di un blocco di codice In SCL esistono tre istruzioni fondamentali 1 Assegnazioni di valori assegnazione di un espressione ad una variabile 2 Istruzioni di controllo ripetizione o diramazione di istruzioni 3 Elaborazione di sottoprogrammi richiamo o diramazione di blocchi di codice Una tipica assegnazione di valori p es la seguente G VALORE_DI_RIFERIMENTO 0 99 VALORI RIFERIMENTO_VECCHIO G _DI In questo esempio si presuppone che VALORE_DI_RIFERIMENTO e VALORE_DI_RIFERIMENTO_VECCHIO siano variabili in virgola mobile Il valore di assegnazione moltiplica il valore VALORE_DI_RIFERIMENTO_VECCHIO per 0 99 e assegna il risultato alla variabile VALORE_DI_RIFERIMENTO Si deve tener presente che il simbolo per l assegnazione H z Una tipica istruzione di controllo la seguente FOR Contatore 1 TO 20 DO LISTA Contatore VALORE Contatore END_FOR In questo esempio l assegnazione viene eseguita 20 volte Ogni volta nel campo LISTA il nuovo valore calcolato viene trascritto in un posto della lista immediatamente superiore Con l indicazione di un identificazione di blocco per una funzione F
102. 12 7 Dati locali 7 14 10 1 tipo di memorizzazione 10 2 Dati utente panoramica dati globali 12 2 Debugger ambiente di sviluppo 1 2 generale modi di test Debugger SCL funzioni Definizione UDT elementi richiamo 8 19 Descrizione del linguaggio aiuti di SCL Diagramma di flusso ORDINAMENTO 2 19 Diagramma sintattico 7 2 A 2 Dichiarazione dati globali sommario 12 1 Dichiarazione aree di dati 12 2 Dichiarazione di variabili Dimensione 9 7 prefisso di DIN EN 61131 3 1 Diramazione del programma 15 2 Disinstallazione GRAPH E Editor ambiente di sviluppo 1 2 generale 1 5 Elaborazione di loo p 15 2 Elemento di campo 14 6 SCL per S7 300 400 C79000 G7072 C522 01 Indice analitico EN ENO 16 20 EN 61131 3 1 2 ENO 10 12 Errore OB tipi di OB 19 3 Errori durante l installazione Errori e messaggi di avviso cause 5 8 Espressione aritmetica booleana 13 10 regole Espressione aritmetica 13 7 Espressione boolena 13 10 Espressione di confronto 13 10 Espressione di potenza 13 9 Espressioni logiche Estensione SCL KOP AWL Etichette di salto convenzione labels F File di programma 7 19 File di testo struttura File sorgente creare in SCL 5 2 Flag OK 10 2 10 12 Formato valore di tempo 17 14 Formazione valore finale 15 9 valore iniziale 15 9 Funzione 1 3 arrotondamento blocco tipo modo a pa
103. 14 Sintassi della parte dichiarazioni DB Esempio DATA_BLOCK DB20 STRUCT Parte dichiarazioni VALORE ARRAY 1 100 OF INT END_STRUCT BEGIN Inizio parte assegnazioni END_DATA_BLOCK Fine Blocco dati 8 17 Struttura di sorgenti SCL Parte assegnazioni Nella parte assegnazioni i dati che sono stati definiti nella parte dichiarazioni DB possono essere adattati per applicazioni specifiche con singoli valori specifici del DB La parte assegnazioni inizia con la parola chiave BEGIN e si compone quindi di una sequenza di assegnazioni di valori Parte assegnazioni DB dd Variabile semplice Costante C gt Figura 8 15 Parte assegnazioni di un DB globale Avvertenza Quando si assegnano dei valori iniziali inizializzazione si indicano degli attributi e dei commenti all interno di un DB si utilizzi la sintassi di AWL Per informazioni su come scrivere costanti attributi e commenti consultare il manuale utente 231 o il manuale 232 Esempio L esempio seguente illustra in che modo pu essere formulata la parte assegnazioni quando i valori del campo 1 e 5 devono avere il numero intero 5 e 1 invece della predefinizione 1 DATA_BLOCK DB20 STRUCT Dichiarazione dati con predefinizione VALORI ARRAY 1 100 OF INT 100 MERKER BOOL TRUE S_WORT WORD 5 W 16 FFAA S_BYTE BYTE B 16 FF S_TIME S5TIME S5T 1h30m30s END_STR
104. 15 2 15 6 Istruzione CONTINUE 15 2 15 12 Istruzione di controllo 15 1 Istruzione di ripetizione 15 2 Istruzione di selezione 15 2 Istruzione EXIT 15 2 Istruzione FOR 15 2 15 8 Istruzione GOTO 15 2 15 14 Istruzione IF 15 2 Istruzione REPEAT 15 2 15 11 Indice 3 Indice analitico Istruzione RETURN 15 2 15 16 Istruzione WHILE 15 2 15 10 Istruzioni 8 10 istruzione CASE 15 6 istruzione CONTINUE istruzione EXIT 15 13 istruzione FOR 15 8 istruzione GOTO 15 14 istruzione IF 15 11 istruzione REPEAT istruzione RETURN 15 16 istruzione WHILE 15 10 Istruzioni di ripetizione uscire 15 13 K KOP estensione SCL 1 2 L Labels convenzione Libert di formato Licenza d utilizzo Linguaggio di programmazione uo testuale evoluto 1 2 Lista di inizializzazione campi 10 5 Literal 11 3 assegnazione di tipi di dati 11 3 integer 11 5 literal caratteri numerici 11 6 numero in virgola mobile 11 6 Literal caratteri caratteri non stampabili 11 9 caratteri stampabili 11 8 Loop 15 1 Memoria prefisso di 12 4 Metodi di programmazione Metodo software engineering 1 4 Modalit di soit O durata literal di data literal numerici ora 11 13 per indicazioni di tempo tipi di tempo 11 10 Modi di test ebugger 1 6 Indice 4 N Non terminale A 14 A 34 Norma DIN EN 61131 3 1 2 O Operandi
105. 16 Cifra esadecimale esadecimali gt 4 Cifra esadecimale 0 9 4 A cos E Trattino Esponente G SEQUENZA DI CIFRE aT DECIMALI gt 0 LITERAL CARATTERE gt C Carattere C gt LITERAL DI STRINGA KC Stringa ii ra Carattere d gt Carattere Carattere N j A Simbolo del dollaro stampabile Carattere sostitutivo Carattere di controllo Ni PoLoRoT Cifra Cifra esadecimale esadecimale Rappresentazione sostitutiva in codice esadecimale SCL per S7 300 400 C79000 G7072 C522 01 B 5 Regole lessicali Tabella B 2 Literal Regola Interruzione di stringa Diagramma sintattico Spazio blank Acapo automatico linefeed Ritorno carrello carriage return Rimpagina formfeed page o Tabulatore orizzontale tabulator Carattere diformattazione DATA DURATA DI TEMPO Commento Indicazione della data Rappresentazione decimale Rappresentazione us Rappresentazione I a livelli decimale Ogni unit di tempo p es ore minuti pu essere indicata una sola volta Si deve rispettare la sequenza giorni ore minuti secondi millisecondi ORA DEL GIORNO TIME_OF_DAY Indicazionedell ora gt DATA
106. 22 01 I seguenti numeri reali sono falsi ARE Il punto decimale deve essere situato fra due cifre 1 000 0 Non sono ammesse virgole 73333 Il punto decimale deve essere situato fra due cifre Un esponente pu essere presente per definire la posizione del punto decimale Se non presente alcun punto decimale si presuppone che esso sia situato a destra della cifra L esponente deve essere un numero intero positivo o negativo La base 10 viene sostituita con la lettera E In SCL il valore 3 x 10 10 pu essere rappresentato con i seguenti numeri in virgola mobile 3 0E 10 3 0E10 3e 10 3E10 0 3E 11 0 3ell 30 0E 9 3069 T I seguenti numeri in virgola mobile sono falsi 3 E 10 Il punto decimale deve essere situato fra due cifre 8e2 3 L esponente deve essere un numero intero 333e 3 Il punto decimale deve essere situato fra due cifre 30 E10 Non sono ammessi spazi Una stringa di caratteri una sequenza di caratteri cio lettere cifre e caratteri speciali racchiusi fra virgolette Si possono utilizzare sia lettere maiuscole che minuscole Seguono alcune stringhe di caratteri valide TROT 76181 Karlsruhe 270 32 3456 DM19 95 La risposta esatta Con il simbolo si possono introdurre speciali caratteri di formattazione le virgolette o un carattere Testo sorgente dopo la compilazione SIGNALS ROT SIGNAL ROT 50 0 50 0 VALORESP VALORE Rimpagin
107. 3 0 0000 1000 8 0000 1111 1000 0001 3969 0111 1111 127 0 0000 1011 11 0011 1111 0000 0001 16129 1111 1111 255 0 0001 0000 16 0111 111 1111 1111 Visualizzazione di overflow 2 23 SCL per S7 300 400 C79000 G7072 C522 01 9 Parte 2 Uso e test ER Installazione del software SCL A VI SCL per S7 300 400 C79000 G7072 C522 01 Installazione del software SCL Panoramica Un programma di Setup consente di installare il software SLC venendo guidati da menu Il programma di Setup deve essere richiamato con la procedura standard normalmente utilizzata per installare il software sotto Windows 95 Presupposti per Per poter installare il software SCL sono necessari tiislallazione e un dispositivo di programmazione o un PC con il pacchetto base STEP 7 gi installato un processore 80486 o superiore e una configurazione di memoria RAM di 16 MB e un monitora colori tastiera e mouse supportati da Microsoft Windows 95 e un disco fisso con un spazio di memoria di 78 MB 10 MB per dati utente 60 MB per file Swap min 8 MB per il pacchetto opzionale SCL e minimo 1 MB di spazio di memoria libera sul drive C per Setup i file Setup vengono cancellati dopo aver concluso l installazione e il sistema operativo Windows 95 e un interfaccia MPI fra dispositivo di programmazione o PC e PLC un cavo PC MPI che viene collegato all interfaccia di comunicazio
108. 522 01 Regole sintattiche Tabella C 1 Sintassi delle sorgenti SCL Regola Diagramma sintattico Blocco dati DATA_BLOCK DENTIFGAZIONE Parte dichiarazioni DB _ L BEGIN Parte assegnazioni DB END_DATA_BLOC Tipo di dato definiti dall utente Specificazione tipo di dati STRUCT IDENTIFICAZIONE UDT TYPE END_TYPE SCL per S7 300 400 C79000 G7072 C522 01 C 3 Regole sintattiche C 2 Struttura della parte dichiarazioni Tabella C 2 Sintassi della parte dichiarazioni Regola Parte dichiarazioni OB Parte dichiarazioni FC Parte dichiarazioni FB Parte dichiarazioni DB Diagramma sintattico Blocco variabili Blocco costanti H Blocco etichette di salto Ogni blocco pu essere presente solo una volta in ogni parte dichiarazioni temporanee Blocco costanti u Blocco etichette di salto Ogni blocco pu essere presente solo una volta in ogni parte dichiarazioni Blocco variabili temporanee Blocco parametri Blocco costanti Blocco etichette di salto Interfaccia Ogni blocco pu essere presente solo una volta in ogni parte dichiarazioni Blocco variabili temporanee Blocco variabili statiche Blocco parametri H IDENTIFICAZIONE UDT Specificazione struttura
109. 522 01 14 1 Assegnazione di valori 14 1 Panoramica Principio Le assegnazioni di valori sostituiscono il valore momentaneo di una variabile con un nuovo valore che viene introdotto tramite un espressione Questa espressione pu contenere anche identificatori di funzioni FC che vengono cos attivate e ritornano valori corrispondenti valore di ritorno Conformemente al diagramma sintattico 14 1 viene calcolata l espressione a destra dell assegnazione di valore e il risultato viene memorizzato nella variabile il cui nome situato a sinistra del segno di assegnazione La figura 14 1 illustra l insieme delle variabili consentite Assegnazione di valore gt gt Variabile semplice HH gt Espressione gt Variabile assoluta nelle aree di memoria della CPU Variabile nel DB Variabile nell istanza locale Figura 14 1 Sintassi di un assegnazione di valore Risultato Il tipo di un espressione di assegnazione il tipo dell operando sinistro SCL per S7 300 400 14 2 C79000 G7072 C522 01 Assegnazione di valori 14 2 Assegnazione di valori con variabili di un tipo di dati semplice Assegnazione Ogni espressione e ogni variabile con tipo di dati semplici possono essere assegnate ad un altra variabile dello stesso tipo Identificatore Espressione Identificatore Variabile di tipo di dati semplici Esempi Alcune assegnazioni di valor
110. 522 01 9 9 Tipi di dati 9 4 Tipo di dati definito dall utente UDT Panoramica Identificazione UDT Specificazione del tipo di dati Impiego di un UDT 9 10 Un tipo di dati UDT viene definito come blocco vedere capitolo 8 Un tale tipo di dati in base alla sua definizione pu essere utilizzato nell intero programma utente e quindi un tipo di dati globale Questi tipi di dati possono essere utilizzati con la loro identificazione UDT UDTx x indica il numero oppure con un nome simbolico assegnato nella parte dichiarazioni di un blocco o di un blocco dati Tipo di dati definito dall utente IDENTIFICAZIONE Specificazione TYPE UDT del tipo di dati END_TYPE Figura 9 6 Sintassi del tipo di dati definito dall utente UDT Una dichiarazione di un UDT viene indicata dalla parola chiave TYPE seguita dal nome dell UDT identificatore UDT Conformemente al capitolo 8 il nome dell UDT pu essere assoluto cio indicato con un nome standard in forma UDTx x in numero oppure pu essere indicato con un nome simbolico Dopo l identificazione UDT segue la specificazione del tipo di dati Qui consentita solo la specificazione del tipo di dati STRUCT vedere capitolo 9 3 4 STRUCT END_STRUCT Dopodich l intera dichiarazione di un UDT viene conclusa con la parola chiave END_TYPE Il tipo di dati cos definito pu essere impiegato per l uso di variabili o parametri non
111. 7072 C522 01 13 9 Espressioni operatori e operandi 13 5 Espressioni di confronto Definizione Operazioni di confronto Regole 13 10 Un espressione di confronto un espressione del tipo BOOL generata con operatori di confronto Queste espressioni vengono generate mediante combinazione di operandi dello stesso tipo con gli operatori elencati nella figura 13 7 Operatore di confronto gt Figura 13 7 Sintassi di un operatore di confronto Gli operatori di confronto confrontano gli operandi con riferimento al loro valore numerico l operando operatore 2 operando valore booleano Come risultato si ottiene un valore che pu essere vero o falso Il risultato vero TRUE se il confronto positivo e falso FALSE se il confronto negativo Per la generazione di espressioni di confronto si devono rispettare le seguenti regole e Per assicurare la massima chiarezza nella sequenza in cui vengono eseguite le operazioni logiche gli operandi logici dovrebbero essere racchiusi fra parentesi e Le espressioni logiche possono essere combinate in base alla legge della logica booleana per poter realizzare interrogazioni del tipo se a lt b e b lt c allora Come espressioni si possono utilizzare variabili o costanti di tipo BOOL e espressioni di confronto e I confronti sono consentiti solo fra espressioni della stessa classe ossia INT DINT REAL BOOL BYTE
112. ATO2 ARRAY 1 4 OF INT PAROLADISTATO3 INT INDIRIZZO INT END_VAR BEGIN Assegnazione della parola 10 da DB 11 a una variabile accesso semplice PAROLADISTATO1 DB11 DW10 Alla prima componente di campo viene assegnata la variabile NUMERO da DB 11 accesso strutturato REGOLATORE_1 1 DB11 ZAHL Assegnazione della componente di strut tura NUMERO2 della struttura NUMERO1 alla variabile PAROLADISTATO3 PAROLADISTATO3 DB11 NUMERO1 NUMERO2 Assegnazione di una parola con indice INDIRIZZO da DB11 ad una variabile accesso indicizzato FOR INDIRIZZO 1 TO 10 BY 1 DO PAROLADISTATO2 ADRESSE DB11 DW INDIRIZZO END_FOR Esempio 14 8 Assegnazione di valori alle variabili locali di un DB SCL per S7 300 400 14 12 C79000 G7072 C522 01 Istruzioni di controllo Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Si possono programmare solo pochi blocchi in modo che tutte le istruzioni fino alla fine del blocco vengono eseguite una dopo l altra In genere in funzione delle condizioni indicate vengono eseguite solo determinate istruzioni alternative oppure vengono ripetute pi volte loop A tal fine i mezzi tecnici di programmazione sono le istruzioni di controllo all interno di un blocco SCL Capitolo Argomento tratta
113. C o per un blocco funzionale FB viene richiamato il blocco di codice che stato dichiarato con questa identificazione Se la dichiarazione del blocco di codice contiene parametri formali durante il richiamo dei parametri formali gli operatori attuali possono essere assegnati ai parametri formali Tutti i parametri elencati nel blocco dichiarazioni VAR_INPUT VAR_OUTPUT e VAR_IN OUT di un blocco di codice vengono definiti parametri formali i corrispondenti parametri nei richiami nell ambito della parte istruzioni vengono invece denominati parametri attuali Il trasferimento dei parametri attuali ai parametri formali fa parte integrante del richiamo Una tipica elaborazione di sottoprogramma p es la seguente FC31 X 5 Q1 Somma di controllo D Se sono stati dichiarati dei parametri formali in una FC occorre altretanto assegnare dei parametri attuali Per gli FB non si applica la stessa regola SCL per S7 300 400 C79000 G7072 C522 01 7 17 Terminologia generale SCL 7 11 Blocchi SCL Panoramica Tipi di blocchi Blocchi predefiniti Struttura di un blocco SCL In un file sorgente SCL si possono programmare da 1 fino a n blocchi come testo sorgente File sorgente SCL FUNCTION_BLOCK FB10 Parola chiave A CONST Costante INT p Parte dichiarazioni END_CONST VAR VALORE1 VALORE2 REAL e END_VAR Parte istruzioni BEGIN VALORE1 100
114. C79000 G7072 C522 01 Questo capitolo contiene una descrizione dei vari mezzi linguistici messi a disposizione da SCL e delle relative modalit d uso Si prega di tener presente che qui vengono descritti solo i concetti base e le definizioni necessarie che saranno oggetto di dettagliata descrizione nei capitoli seguenti Capitolo Argomento trattato Pagina 7 1 Mezzi ausiliari per la descrizione del linguaggio 7 2 Set di caratteri SCL T3 Paroleriservate 7 5 1 4 Identificatore in SCL 71 1 7 5 Identificatorestandard 7 6 Numeri Ta Tipi di dati 7 8 Variabili 7 14 7 9 Espressioni 7 16 7 10 Istruzioni 7 11 Blocchi SCL 7 12 Commenti 7 20 7 1 Terminologia generale SCL 7 1 Mezzi ausiliari per la descrizione del linguaggio Descrizione del linguaggio di SCL Che cos un diagramma sintattico Quali tipi di blocchi esistono La base per la descrizione del linguaggio costituita dai diagrammi sintattici Essi offrono una chiara panoramica della struttura sintattica ossia grammaticale di SCL L appendice B del manuale contiene un riepilogo di tutti i diagrammi con gli elementi linguistici Il diagramma sintattico una rappresentazione grafica della struttura del linguaggio La struttura costituita da una sequenza gerarchica di regole Ogni regola a sua volta presente come blocco in una regola sottostante Nome della regola Seq
115. CK_SDB Terminologia generale SCL 7 8 Variabili Dichiarazione di variabili Dati locali 7 14 Un identificatore il cui valore pu essere modificato durante l esecuzione del programma viene denominato Variabile Ogni variabile deve essere dichiarata ossia definita singolarmente prima che possa essere utilizzata in un blocco di codice o in un blocco dati Nella dichiarazione delle variabili si definisce che un identificatore una variabile e non una costante ecc e si specifica il tipo di variabile mediante associazione ad un tipo di dati A seconda della validit delle variabili si distinguono e dati locali e dati utente globali e variabili consentite e predefinite aree di memoria nella CPU I dati locali sono dati utilizzati nell ambito di un blocco di codice FC FB OB e sono validi solo per questo blocco di codice Si tratta in particolare dei dati seguenti Tabella 7 3 Dati locali di un blocco Variabli Significato Variabilistatiche Una variabile statica un variable locale il cui valore rimane costante durante tutte le esecuzioni del blocco memoria del blocco Tale va riabile serve per momorizzare i valori di un blocco funzionale Variabilitemporanee Le variabili temporanee fanno parte di un blocco di codice e non oc cupano alcun campo di memoria statico Il loro valore rimane co stante solo durante l esecuzione di un blocco Alle variabili tempora nee non si pu accedere al di fuor
116. CL L introduzione deve essere eseguita rispettando le seguenti convenzioni e In una sorgente SCL si possono formulare tanti blocchi di codice FB FC OB blocchi dati DB e dati definiti dall utente UDT quanti se ne desiderano in cui ogni tipo di blocco possiede la sua struttura tipica vedere capitolo 8 e caratteri maiuscoli e minuscoli sono rilevanti solo per gli identificatori simbolici p es per nomi di variabili e literal di caratteri e blocchi richiamati sono situati prima dei blocchi in cui essi vengono richiamati e I tipi di dati definiti dall utente UDT sono situati prima dei blocchi in cui essi vengono utilizzati e I blocchi dati globali sono situati prima dei blocchi che accedono ai suddetti blocchi e Osservare le norme sul formato e sulla sintassi descritte nella parte Descrizione del linguaggio del presente manuale SCL per S7 300 400 C79000 G7072 C522 01 Programmare con SCL 5 4 Salvataggio e stampa di una sorgente SCL Salvataggio di una sorgente SCL Stampa dell oggetto sorgente Impostazione della pagina Generazione delle righe di intestazione e di pi di pagina Anteprima di stampa SCL per S7 300 400 C79000 G7072 C522 01 Con il termine Salvare in SCL si intende sempre il salvataggio di sorgenti In SCL i blocchi vengono generati durante la compilazione della sorgente e memorizzati automaticamente nella corrispondente directory di programma Per sal
117. CL in STEP 5 tranne alcune eccezioni sono compatibili verso l alto cio questi blocchi possono essere editati compilati e testati anche con SCL per STEP 7 SCL supporta la programmazione strutturata mediante moderne tecniche di Software engineering Se si possiede una certa esperienza in un linguaggio di programmazione avanzato SCL pu essere appresa facilmente poich il repertorio degli elementi linguistici disponibili in SCL si orienta a linguaggi di programmazione avanzati SCL per S7 300 400 C79000 G7072 C522 01 Presentazione del prodotto 1 3 Caratteristiche funzionali dell ambiente di sviluppo Editor L Editor SCL un editor di testi che consente l elaborazione di qualsiasi tipo di testo Il compito principale realizzabile con un editor la generazione e l elaborazione di file sorgente per programmi STEP 7 In un file sorgente si possono programmare uno o pi blocchi dll Blocco 1 __ _ Bloccoi File sorgente j File sorgente 1 Figura 1 2 Editor SCL L editor SCL consente e di editare un intero file sorgente con uno o pi blocchi e di editare un file di comando compilazione che consente di automatizzare la compilazione di molti file sorgente e di utilizzare funzioni supplementari che consentono una pratica elaborazione del testo sorgente p es Cerca Sostituisci e di impostare in modo ottimale l editor in base alle prop
118. CTION_BLOCK Esempio 14 3 Assegnazione di valori per campi SCL per S7 300 400 C79000 G7072 C522 01 14 7 Assegnazione di valori 14 5 Assegnazione di valori con variabili di tipo STRING Variabile STRING Una variabile con tipo di dati STRING contiene una stringa di caratteri contenente max 254 caratteri Assegnazione Ad stes variabilestringa_1 variabilestringa_1 Esempio Gli P V B my E END_VAR ogni variabile con tipo di dati STRING si pu assegnare un altra variabile dello so tipo Sono assegnazioni valide literalstringa variabilestringa_2 esempi seguenti illustrano le assegnazioni di valori con variabili STRING UNCTION_BLOCK FB3 AR VISUALIZ_1 STRING 50 STRUTTURA1I STRUCT VISUALIZ_2 STRING 100 VISUALIZ_3 STRING 50 END_STRUCT EGIN Assegnazione di una costante ad una variabile STRING VISUALIZ_1 Errore nel modulo 1 Assegnazione di una componente di struttura ad una variabile STRING VISUALIZ_1 STRUTTURAl VISUALIZ_3 Assegnazione di una variabile STRING ad una componente di struttura STRING If VISUALIZ_1 lt gt STRUTTURA VISUALIZ_3 TH VISUALIZ_1 STRUTTURA VISUALIZ_3 END_IF END_FUNCTION_BLOCK Esempio 14 4 Assegnazione di valori per variabili STRING 14 8 SCL per S7 300 400 C79000 G7072 C522 01 Assegnazione di valori 14 6 Assegnazione di
119. E tipo di dati tipo di dati Nomi di componenti Specificazione tipo di dati TIMER Temporizzatore parametri COUNTER Contatore ANY Tipo qualsiasi POINTER Indirizzo BLOCK FC Funzione C 10 BLOCK_FB Blocco funzionale BLOCK_DB pe Blocco dati BLOCK_SDB Blocco dati di sistema SCL per S7 300 400 C79000 G7072 C522 01 Regole sintattiche C 4 Parte istruzioni Tabella C 5 Sintassi della parte istruzioni Regola Diagramma sintattico Parte istruzioni I p IDENTIFICATORE Istruzione N Etichetta di salto Istruzione Assegnazione di valori gt Elaborazione di gt sottoprogrammi Istruzione di controllo Assegnazione di valori p gt Variabile semplice Espressione gt gt Variabile assoluta in aree di memoria della CPU gt Variabile in DB Variabile in istanza locale H Variabile ampliata _ Variabile semplice A gt Variabile assoluta per aree di memoria della CPU p Variabile in DB gt Variabile in istanza locale gt Richiamo di FC Jo SCL per S7 300 400 C79000 G7072 C522 01 C 11 Regole sintattiche Tabella C 5 Sintassi della parte istruzioni Regola Variabile semplice Diagramma sintattico IDENTIFICATORE Nome di variabile o nome di parametro Variabile strutturata
120. EGIN IF valore lt 181 THEN QUADRAT valore valore Calcolo del valore della funzione ELSE QUADRAT 32_767 in caso di overflow impostare il valore massimo END_IF END_FUNCTION Figura 2 17 Funzione QUADRAT SCL per S7 300 400 C79000 G7072 C522 01 2 21 Sviluppo di programmi SCL 2 8 Presupposti Passi del test Dati di test Per il test sono necessari un unit d ingresso sull indirizzo 0 e un unit di uscita sull indirizzo 4 vedere figura 2 4 Prima del test disporre gli 8 interruttori del gruppo superiore verso sinistra 0 e gli 8 interruttori del gruppo inferiore verso destra 1 Ricaricare i blocchi nella CPU visto che vengono testati anche i valori iniziali delle variabili Tabella 2 5 Passi del test I passi del test sono illustrati nella tabella 2 5 Test Azione Conseguenza 1 Regolare la codifica su 111 E0 4 E0 5 e E0 6 e Tutte le uscite dell uscita byte con valore inferiore confermare con l interruttore di codifica E0 7 vengono comandate e le visualizzazioni si accendono 2 Visualizzare la corrispondente radice commutando Le visualizzazioni all uscita corrispondono al valore l interruttore di uscita E0 3 su 1 binario 10000 16 3 Visualizzare la corrispondente radice commutando Le 15 visualizzazioni all uscita si accendono Ci l interruttore di uscita E0 2 su 1 s
121. EMPORIZZATO ER D_VAR R_OUTPUT ISULTATO D_VAR R MPOSTA ESETTA VALORE_BCD VALORE_BIN PREIMPOSTAZION D_VAR EGIN 0 0 1 POSTA E0 0 ESETTA EO 1 REIMPOSTAZIONE SS5TIME BOOL BOOL S5TIME Base di tempo e val WORD in codice BCD Val res S5TIME T 25S _PEXT T_NO MIO TEMPORIZZATOR TV R BI Q MPOSTA REIMPOSTAZION ESETTA ALORE BINARIO CRT RISULTATO VALORE_BCD Ulteriore elaborazione AW4 VALORE BIN END_FUNCTION_BLOCK Esempio come parametro d uscita Bll uscita per visualiz 17 6 Esempio di funzione di temporizzazione di tempo bin 17 21 Contatori e temporizzatori 17 2 8 Scelta del giusto temporizzatore La figura 17 8 offre una panoramica dei cinque temporizzatori descritti in questo paragrafo Questa panoramica intende essere un aiuto per facilitare la scelta dei temporizzatori pi adatti alle esigenze dell utente Segnale d ingresso Segnale d uscita Temporizzatore come impulso Segnale d uscita Temporizzatore come impulso prolungato Segnale d uscita ritardo all inserzione Segnale d uscita ritardo all inserzione con memoria Segnale d uscita Temporizzatore come ritardo alla disinserzione E 2 1 A4 0 S_PULSE_____ A4 0 S_PEXT A4 0 S ODT Temporizzatore c
122. ERSIONE ab VERSIONE Y CY SEQUENZA DI CIFRE SEQUENZA DI CIFRE DECIMALI DECIMALI VESERIO oo db PROTEZIONE DEL BLOCCO _ KNOW_HOW_PROTECT _ AUTORE max 8 caratteri AUTHOR C IDENTIFICATORE gt NOME max 8 caratteri NAME B IDENTIFICATORE gt FAMIGLIA DEL mat 9 Cararteri BLOCCO IDENTIFICATORE gt Attributi di sistema per blocchi max 24 caratteri IDENTIFICATORE ST O O l SCL per S7 300 400 B 12 C79000 G7072 C522 01 Regole sintattiche Definizione delle regole sintattiche Sommario dell appendice Regole formali Che cosa si deve osservare SCL per S7 300 400 C79000 G7072 C522 01 Sulla base delle regole lessicali le regole sintattiche descrivono la struttura di SCL Nell ambito di tali regole l utente pu creare il proprio programma SCL in formato libero Capitolo Argomento trattato Pagina C 1 Suddivisione delle sorgenti SCL C 2 C 2 Struttura della parte dichiarazioni C 4 C 3 Tipi di dati in SCL C4 Parte istruzioni C 5 Assegnazioni di valori C 13 C 6 Richiamo di funzioni e blocchi funzionali C 16 C7 Istruzioni di controllo C 18 Ogni regola ha un nome preposto ad essa Se la regola viene impiegata in una regola sovraordinata questo nome viene iscritto in un rettangolo Se il nome nel rettangolo scritto in caratteri maiuscoli si tratta di un token che viene descritto nelle regole lessicali Se le
123. FC 8 14 SCL per S7 300 400 viii C79000 G7072 C522 01 Contenuto 8 9 Struttura di un blocco organizzativo OB 8 16 8 10 Struttura di un blocco dati DB eeann 8 17 8 11 Struttura di un tipo di dati definito dall utente UDT 8 19 9 Tipididati secere ara E lesioni 9 1 Panoramica iii 9 2 9 2 Tipi di dati semplici LL 9 3 9 3 TIPLOlcdatl COMPOSH cirie iii ie a 9 3 1 Tipo di dati DATE _AND_TIME nannan 9 3 2 Tipo didat STRING spione 9 3 3 Tip didat ARRAY crepi iii e a 9 3 4 Tipo di dati STRUCT a naarn 9 4 Tipo di dati definito dall utente UDT aaeeea 9 5 Tipid Parametti asarira rar pe ae pone E a e rai 10 Definizione di variabili locali e parametri di blocco 10 1 Panoramica EAEE NAAA AEEA TAAA 10 2 Dichiarazione di variabili e parametri ecean 10 3 Inizializzazione MA R E aa AAA ER E Aa K EA TE iA ERa 10 4 Dichiarazione di istanze 10 5 Variabili statiche LL 10 6 Variabili temporanee 10 7 Parametri di DIOCCO tnra TOKAN E REE KESNER TEENAA REANES 10 8 Flag flag OK aa ceo ea a e rara 11 Definizione di costanti ed etichette di salto 11 1 Gostanti sce e E a E E S A 11 2 Ma ieri a area a 11 3 Modalit di scrittura per literal di numeri interi e literal di numeri in virgola mobile LL 11 4 11 4 Modalit d
124. Funzione Ditta Via C A P Citt Paese Telefono Indicare il corrispondente settore industriale Industria automobilistica Industria chimica Industria elettrotecnica Industria alimentare Tecnica di controllo e strumentazione Industria meccanica u uuan Petrolchimica SCL per S7 300 400 6ES7811 1CA02 8EA0 01 Gi RU DD Industria farmaceutica Industria delle materie plastiche Industria cartaria Industria tessile Impresa di trasporti Altre Critiche suggerimenti Vi preghiamo di volerci comunicare critiche e suggerimenti atti a migliorare la qualit e quindi a facilitare l uso della documentazione Per questo motivo Vi saremmo grati se vorreste compilare e spedire alla Siemens il seguente questionario Servendosi di una scala di valori da 1 per buono a 5 per scadente Vi preghiamo di dare una valutazione sulla qualit del manuale rispondendo alle seguenti domande Corrisponde alle Vostre esigenze il contenuto del manuale E facile trovare le informazioni necessarie Le informazioni sono spiegate in modo sufficientemente chiaro Corrisponde alle Vostre esigenze il livello delle informazioni tecniche Are ge Come valutate la qualit delle illustrazioni e delle tabelle Se avete riscontrato dei problemi di ordine pratico Vi preghiamo di delucidarli nelle se guenti righe SCL
125. LI m gt SEQUENZA DI l CIFRE DECIMALI FO Secondi SEQUENZA DI SEQUENZA DI 1 Di l CIFRE DECIMALI QO CIFRE DECIMALI Millisecondi L accesso alla rappresentazione decimale possibile solo con unit di tempo non ancora definite SEQUENZA DI CIFRE DECIMALI JO Figura 11 15 Sintassi perla rappresentazione decimale Esempi Alcune indicazioni valide potrebbere essere TIME 20 5D per 20 5 giorni TIME 45 12M per 45 12 minuti T 300MS per 300 millisecondi SCL per S7 300 400 C79000 G7072 C522 01 11 11 Definizione di constanti ed etichette di salto La rappresentazione a livelli viene impiegata quando si deve indicare la durata come una sequenza di giorni ore minuti secondi o millisecondi vedere figura 11 16 L omissione di singoli componenti consentita Si deve per indicare almeno una componente Rappresentazione a livelli SEQUENZA DI n SEQUENZA DI N P CIFRE DECIMALI QO CIFRE DECIMALI Q Giorni Ore SEQUENZA DI Y I SEQUENZA DI C 1 CIFRE DECIMALI CIFRE DECIMALI Minuti Secondi ME i gt Millisecondi Figura 11 16 Sintassi per la rappresentazione a livelli Seguono alcune valide indicazioni TIME 20D_12H TIME 20D_10H_25M_10s TIME 200S_20MS SCL per S7 300 400 11 12 C79000 G7072 C522 01 Definizione di constanti ed etichette di salto Ora de
126. Risultato 2 0111_1010 122 decimale RISULTATO ROR IN 2 1101_0011 N 2 IN 211 decimale 2 1111_0100 244 decimale RISULTATO SHL IN 2 1101_0011 N 3 IN 211 decimale 2 1001_1000 152 decimale RISULTATO SHR IN 2 1101_0011 N 2 IN 211 decimale 2 0011_0100 52 decimale SCL per S7 300 400 C79000 G7072 C522 01 Interfaccia di richiamo Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Le CPU S7 contengono nel sistema operativo funzioni di sistema e funzioni standard integrate le quali possono essere di grande aiuto all utente in fase di programmazione in SCL Si tratta in particolare di e Blocchi organizzativi OB e Funzioni di sistema SFC e Blocchi funzionali di sistema SFB Capitolo Argomento trattato Pagina 19 1 Interfaccia di richiamo 19 2 19 2 Interfaccia di trasferimento agli OB 19 3 19 1 Interfaccia di richiamo 19 1 Interfaccia di richiamo Panoramica Esempio di SFC 31 Richiamo condizionato 19 2 Il richiamo dei blocchi pu avvenire in modo simbolico o assoluto A tal fine necessario un nome simbolico che deve essere stato definito nella tabella dei simboli oppure il numero per l identificazione assoluta del blocco Per il richiamo si devono assegnare ai parametri formali i cui nomi e tipi di dati sono stati definiti durante la creazione del blocco param
127. S 5 5 RISULTATO SQRT 81 0 9 RISULTATO SQR 23 529 RISULTATO EXP 4 1 60 340 RISULTATO EXPD 3 1_000 RISULTATO LN 2 718_281 1 RISULTATO LOG 245 2 389_166 PI 3 141 592 0 5 RISULTATO SIN PI 6 RISULTATO ACOS 0 5 1 047_197 PI 3 SCL per S7 300 400 C79000 G7072 C522 01 Funzioni standard SCL 18 4 Funzioni standard su stringhe di bit Funzionalit Lista di funzioni SCL per S7 300 400 C79000 G7072 C522 01 Ogni funzione standard di stringhe di bit possiede due parametri d ingresso identificati da IN e N Il risultato sempre il valore della funzione La tabella 18 9 illustra i nomi delle funzioni e i tipi dei dati dei due parametri d ingresso e del valore della funzione Essi significano e parametro d ingresso IN buffer in cui vengono eseguite le operazioni di scorrimento bit e parametro d ingresso N numero delle rotazioni per le funzioni del buffer circolare ROL e ROR e numero delle posizioni di bit da far scorrere in SHL e SHR La tabella 18 9 illustra le possibili funzioni standard di stringhe di bit Tabella 18 9 Funzioni standard di stringhe di bit Nome della Tipo di dati Tipo di dati Tipo di dati Compito funzione delparametro del parametro del valore d ingresso IN d ingresso N della funzione ROL BOOL INT BOOL Il valore presente nel parametro IN viene fatto
128. SCII che pu essere creato con qualsiasi Editor Una sorgente viene compilata con un compilatore AWL SCL in un programma utente eseguibile Una sorgente viene depositata nel contenitore Sorgenti del programma S7 La sorgente SCL il file in cui viene creato il programma in SCL La sorgente viene quindi compilata con il compilatore SCL Controllo continuativo Una struttura un tipo di dati composto e contiene elementi di dati di vario tipo Questi elementi di dati possono essere del tipo semplice o composto Tabella per l assegnazione di simboli nome a indirizzi di dati globali e blocchi Esempi Arresto di emergenza simbolo E 1 7 indirizzo o Regolatore simbolo SFB 24 blocco Nella tabella delle variabili vengono riunite le variabili che devono essere osservate e comandate comprese le corrispondenti indicazioni sui formati Il tempo di ciclo il tempo di cui ha bisogno la CPU per l elaborazione del programma utente Se il tempo di elaborazione del programma utente supera il tempo di controllo del ciclo impostato in precedenza il sistema operativo genera un messaggio di errore e la CPU si porta in STOP Glossario 11 Glossario Temporizzatori Terminale Tipo di dati Tipi di dati composti Tipi di dati definiti dall utente Tipi di dati semplici Tipo di blocco Tipo di dichiarazione Tipo di parametro Glossario 12 I temporizzatori sono componenti della memoria
129. SIEMENS Prefazione Parte 1 Sviluppo di programmi Parte 2 Uso e test Parte 3 Descrizione del SIMATIC linguaggio Appendici SCL per S7 300 400 Programmazione di blocchi Manuale Numero di ordinazione del manuale 6ES7811 1CA02 8EA0 Avvertenze tecniche di sicurezza A A Il presente manuale contiene avvertenze tecniche relative alla sicurezza delle persone e alla prevenzione dei danni materiali che vanno assolutamente osservate Le avvertenze sono contrassegnate da un triangolo e a seconda del grado di pericolo rappresentate nel modo seguente Pericolo di morte significa che la non osservanza delle relative misure di sicurezza provoca la morte gravi lesioni alle persone e ingenti danni materiali Pericolo significa che la non osservanza delle relative misure di sicurezza pu causare la morte gravi lesioni alle persone e ingenti danni materiali A Attenzione significa che la non osservanza delle relative misure di sicurezza pu causare leggere lesioni alle persone o lievi danni materiali Avvertenza una informazione importante sul prodotto sull uso dello stesso o su quelle parti della documentazione su cui si deve prestare una particolare attenzione Personale qualificato La messa in servizio ed il funzionamento del dispositivo devono essere effettuati solo in base al manu ale Interventi nel dispositivo vanno effettuati esclusivamente da personale qualificato Per
130. STICUZIONI piani C 5 Assegnazioni di valori LL C 6 Richiamo di funzioni e blocchi funzionali C 7 Istruzioni di controllo LL Bibliografia a RE RR RE RR Glossario iii aio a Indice analitiCo gt ana SCL per S7 300 400 C79000 G7072 C522 01 Parte 1 1 Sviluppo di programmi Presentazione del prodotto SCL per S7 300 400 C79000 G7072 C522 01 Presentazione del prodotto Linguaggio di Sempre pi spesso i sistemi di automazione devono svolgere oltre ai classici programmazione compiti di comando anche compiti di gestione dati e complesse funzioni SCL matematiche SCL per S7 300 400 Structured Control Language un linguaggio di programmazione concepito appositamente per svolgere i compiti suddetti che facilita notevolmente la programmazione ed normalizzato secondo IEC 113 3 SCL offre un valido aiuto all utente non solo per svolgere i normali compiti di comando ma anche per realizzare numerose applicazioni ed quindi molto pi efficace dei classici linguaggi di programmazione nei seguenti campi di applicazione e Gestione dati e Ottimizzazione di processo e Gestione di ricette e Compiti matematici statistici Dati tecnici Per poter lavorare con SCL necessario disporre di un dispositivo di programmazione SIMATIC o di un PC a partire dal processore 80486 16 MByte di memoria principale Repertorio linguistico
131. STRUCT STRUCT componenti END_STRUC Figura 9 4 Sintassi della specificazione del tipo di dati STRUCT Questo un elenco dei vari componenti di una struttura In base al diagramma sintattico 9 5 questo elenco si compone e di almeno 1 fino a n identificatori e del corrispondente tipo di dati e di un impostazione opzionale con valori iniziali Dichiarazione dei componenti ificazi gt IDENTIFICATORE H jH Cn Nome del componente Inizializzazione tipo di dati Nomi dei componenti nell ambito di strutture Figura 9 5 Sintassi della dichiarazione dei componenti per il tipo di dati STRUCT Si tratta del nome di un elemento di struttura per la seguente specificazione di dati SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati Inizializzazione del Come opzione un singolo elemento della struttura pu essere impostato con un tipo di dati valore iniziale conformemente alla specificazione dei dati Questa assegnazione avviene tramite un assegnazione di valori e viene descritta nel capitolo 10 Esempio Nell esempio viene descritta una possibile definizione di un tipo di dati STRUCT STRUCT IINIZIO Dichiarazione componenti AI INT A2 STRING 254 A3 ARRAY 1 12 OF REAL Nomi dei componenti Specificazioni dei dati ENDE Dichiarazione componenti END_STRUCT Esempio 9 1 Definizione di un tipo di dati STRUCT SCL per S7 300 400 C79000 G7072 C
132. T ERG2 WORD END_STRUCT D_VAR di dati definito dall utente UDTIl UDTI1 STRUCT ERGI1 INT ERG2 WORD END_STRUCT con tipo di dati definito dall utente DB30 senza tipo di dati definito dall utente DB30 STRUCT ERGI INT ERG2 WORD END_STRUCT Esempio 12 6 Dichiarazione peri dati dei blocchi dati Blocco funzionale con gli accessi FB10 DB10 PAROLARIS_A DB10 Risultato ERG2 PAROLARIS_B DB20 ERG2 PAROLARIS_C DB30 ERG2 Esempio 12 7 Accesso ai dati dei blocchi dati SCL per S7 300 400 C79000 G7072 C522 01 Espressioni operatori e operandi Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Una espressione indica un valore che viene calcolato al momento della compilazione o dell esecuzione del programma Esso si compone di operandi p es costanti variabili o valori di funzioni e operatori p es I tipi di dati degli operandi e degli operatori interessati determinano il tipo di espressione SCL distingue tra e espressioni aritmetiche e espressioni di potenza e espressioni di confronto e espressioni logiche Capitolo Argomento trattato Pagina 13 1 Operatori 13 2 Sintassi delle espressioni 13 2 1 Operandi 13 3 Espressioniaritmetiche 13 4 Espressioni di potenza 13 9 13 5 Espressioni di confronto 13 10 13 6 Espressioni logiche 13 12 13 1 Esp
133. T Radice QUADRAT 2 6 e In seguito vengono descritti i criteri con i quali stata eseguita la scelta dei blocchi I programmi utente possono essere avviati solo in OB Poich i valori devono essere presenti e rilevati in continuazione necessario un OB per il richiamo ciclico OB1 Una parte dell elaborazione viene programmata nell OB Introduzione dati e Uscita dati Per il compito parziale Rilevazione valori di misura necessario un blocco con memoria cio un FB poich determinati dati dei blocchi locali p es il buffer circolare devono essere conservati da un ciclo di programma all altro Il luogo per la Memorizzazione dati detto anche memoria il blocco dati di istanza RILEVZIONE_ DATI Lo stesso FB pu anche eseguire il compito parziale Indirizzamento e scelta dell uscita poich esso dispone dei dati necessari Per la scelta del tipo di blocco per risolvere i compiti parziali Ordinamento dei valori di misura e Calcolo dei risultati si deve tener presente che necessario creare un buffer d uscita il quale per ogni valore di misura contiene i risultati dei calcoli della radice e del quadrato Perci come blocco si pu utilizzare solo un FB Poich 1 FB viene richiamato da un FB sovraordinato esso non ha bisogno di un DB proprio I suoi dati di istanza possono essere depositati nel blocco dati di istanza dell FB richiamante Per risolvere il compito parziale Calcolo della radice
134. UCT EGIN Parte assegnazioni Assegnazione di valori per determinati elementi di campo VALORE VALORE END_DATA_ BLOCK Esempio 8 4 Parte assegnazioni di un DB SCL per S7 300 400 8 18 C79000 G7072 C522 01 Struttura di sorgenti SCL 8 11 Struttura di un tipo di dati definito dall utente UDT Panoramica Identificazione UDT Specificazione dei tipi di dati SCL per S7 300 400 C79000 G7072 C522 01 I tipi di dati definiti dall utente UDT sono strutture speciali di dati generati dall utente Poich i tipi di dati definiti dall utente possiedono un nome essi possono essere impiegati pi volte Dopo la loro definizione essi possono essere utilizzati nell intero programma utente e sono quindi tipi di dati globali Perci questi tipi di dati possono essere utilizzati e nel blocco come tipi di dati semplici o tipi di dati composti oppure e come modello per la creazione di blocchi dati con la stessa struttura Tipo di dati definito dall utente IDENTIFICAZIONE Specificazione TYPE del tipo dati END_TYPE gt E _ UDT strutturati Figura 8 16 Sintassi per il tipo di dati definito dall utente UDT Dopo la parola chiave TYPE introdurre la parola chiave UDT seguita da un numero o semplicemente dal nome simbolico dell UDT Esempi TYPE UDT 10 TIPO BLOCCO ALIMENTAZIONI CH La specificazione del tipo di dati
135. UE TV T 1s i biVal Q actFlag T_NO T11 S M0 0 TV T 1s R M0 1 BI biVal Q actFlag T_NO T12 S I0 l amp actFlag TV T 1s R FALSE BI biVal Q actFlag T_NO T13 S TRUE TV T 1s R I0 0 BI biVal Q actFlag T_NO T14 TV T 1s R FALSE S TRUE BI biVal Q actFlag 17 5 Richiamo di funzioni di temporizzazione Contatori e temporizzatori 17 2 1 Introduzione ed analisi del valore di conteggio Panoramica Per l introduzione del valore di preimpostazione o per l analisi dei risultati della funzione in codice BCD necessaria la rappresentazione interna del valore di tempo vedere figura 17 2 Ogni aggiornamento del tempo riduce il valore di tempo di un unit in un intervallo che dipende dalla base del tempo Il valore di tempo viene ridotto finch esso non sia uguale a 0 Il campo di temporizzazione va da 0 fino a 9 990 secondi Formato La figura 17 2 illustra la rappresentazione interna del valore di tempo 15 ETE 0 xI xI11 O0 0IO0IO0 1 0 0 110 011111 N A N A A I NA M W 1 2 7 o Valore di tempo in formato BCD 0 fino a 999 Base di tempo 1 secondo Irrilevante non si tiene conto di questi bit quando si avvia il temporizzatore Figura 17 2 Rappresentazione del valore di tempo Introduzione Con i seguenti formati si pu caricare un valore di tempo predefinito
136. Y in linea di massima anche qui valgono le prime due dichiarazioni Inoltre le costanti non sono consentite come parametri attuali 16 9 Richiamo di funzioni e blocchi funzionali 16 2 4 Esempio di richiamo di un istanza globale Principio Richiamo Risultato 16 10 Un blocco funzionale con un loop FOR potrebbe avere l aspetto seguente vedere l esempio 16 1 Negli esempi riportati si presuppone che nella tabella dei simboli per FB17 sia stato definito il simbolo TEST FUNCTION_BLOCK TI VAR_INPUT VALORE FINALE INT Parametro d ingresso ND_VAR AR_IN_OUT IQ1 REAL Parametro di transito D_VAR AR_OUTPUT CONTROL BOOL Parametro d uscita ND_VAR VAR Gi Cp H ti lt ti z lt m INDEX INT ND_VAR BEGIN ti G CONTROL FALSE FOR INDEX 1 TO VALORE FINALE DO IQ1l IQ1 2 IF IQ1 gt 10000 THEN CONTROL TRUE END_IF END_FOR END_FUNCTION_BLOCK Esempio 16 1 Esempio di un FB Per richiamare questo FB si pu scegliere una delle varianti seguenti Si presuppone che VARIABILEL sia stata definita come variabile REAL nel blocco richiamante Richiamo assoluto istanza globale FB17 DB10 VALORE FINALE 10 IQ1 VARIABILI G l Richiamo simbolico istanza globale TEST TEST_1 VALORE FINALE 10 IQ1 VARIABILEl Esempio 16 2 Ese
137. _TIME 1995 10 20 12 20 30 10 DT 1995 10 20 12 20 30 10 Avvertenza Per accedere direttamente ai componenti DATE o TIME sono disponibili FC standard SCL per S7 300 400 C79000 G7072 C522 01 9 5 Tipi di dati 9 3 2 Tipo di dati STRING Panoramica Campo di valori 9 6 Un tipo di dati STRING definisce una stringa di caratteri di max 254 caratteri singoli L area standard riservata per una stringa di caratteri si compone di 256 byte Quest area di memoria necessaria per memorizzare 254 caratteri e un intestazione di 2 byte Si pu ridurre lo spazio necessario per una stringa di caratteri definendo il numero max di caratteri che devono essere memorizzati nella stringa Una stringa zero ossia una stringa senza contenuto rappresenta il valore minimo possibile Specificazione del tipo dati STRING Espressione semplice ana Dimensione della stringa Figura 9 2 Sintassi della specificazione del tipo dato STRING L espressione semplice indica il numero max di caratteri nella stringa di caratteri Seguono alcuni tipi di STRING validi STRING 10 STRING 3 4 STRING 3 4x5 STRING campo di valori max default 254 4 caratteri In una stringa di caratteri sono consentiti tutti i caratteri del codice ASCII Il capitolo 11 descrive come trattare i caratteri di controllo e i caratteri non stampabili Avvertenza L area di 254 caratteri riservata nella versione standard pu esser
138. a REG SL REG A capo automatico REGELSR REGLERRitorno del carrello SCHRITTST SCHRITT Tabulatore Per i caratteri non stampabili si deve introdurre la rappresentazione sostitutiva in codice esadecimale con hh in cui Ah indica il valore in forma esadecimale del carattere ASCII Per interrompere una stringa di caratteri per commenti che non devono essere stampati o visualizzati in SCL sono disponibili i caratteri gt e lt che consentono l interruzione di una stringa 7 11 Terminologia generale SCL 7 7 Tipi di dati Panoramica Tipi di dati Tipi di dati semplici 7 12 In ogni dichiarazione di variabili si deve indicare il tipo di variabile Il tipo definisce il campo di valori delle variabili e determina le operazioni che possono essere eseguite con le variabili Un certo tipo di dati determina e iltipo ed il significato di un elemento di dati e il campo di valori consentito dell elemento di dati e la quantit consentita delle operazioni che possono essere eseguite con un operando di un tipo di dati e la modalit di scrittura dei dati di questo tipo Si distinguono i seguenti tipi di dati Tabella 7 2 Tipi di dati semplici Tipi di dati Significato Semplici Fa parte della dotazione standard di SCL Si possono generare mediante associazione di tipi di dati Composti n semplici Vengono definiti appositamente per la propria applicazione Definiti dall
139. a _PA PQ Uscita periferia Mnemonico SIMATIC Mnemonicointernazionale Figura 12 3 Sintassi di un prefisso di memoria 1 Indipendentemente dall impostazione della lingua nel SIMATIC Manager le identificazioni di operando SIMATIC o IEC hanno un significato riservato E possibile infatti importare in SIMATIC Manager la lingua ed il mnemonico separatamente 12 4 SCL per S7 300 400 C79000 G7072 C522 01 Definizione di dati globali Prefisso di Mediante indicazione del prefisso di dimensione si specifica la dimensione risp il dimensione tipo dell area di memoria che deve essere letta dalla periferia p es un byte o una parola L indicazione del prefisso di dimensione opzionale se si specifica un bit La figura 12 4 illustra la sintassi Prefisso di dimensione X Bit B Byte RE gt Ww Parola D Doppia parola Figura 12 4 Sintassi di un prefisso di dimensione Indirizzo Per l indicazione dell indirizzo si deve indicare in funzione del prefisso di dimensione utilizzato un indirizzo assoluto indicante un bit byte una parola o una doppia parola Solo se stato specificato Bit si pu indicare un indirizzo a bit supplementare vedere figura 12 5 Il primo numero significa indirizzo di byte ed il secondo indirizzo a bit Indirizzo gt Numero C Numero solo per indirizzo a bit Figura 12 5 Sintassi di un indirizzo Esempi Seguono alcuni
140. a CPU che in caso di necessit pu essere richiamato nel programma utente STEP 7 I blocchi organizzativi costituiscono l interfaccia fra il sistema operativo della CPU e il programma utente Nei blocchi organizzativi viene definita la sequenza di elaborazione del programma utente Un campo ARRAY un tipo di dati composto contenente elementi di dati dello stesso tipo Questi elementi di dati possono a loro volta essere del tipo semplice o composto Caricamento di oggetti caricabili p es blocchi di codice dalla memoria di caricamento di un unit programmabile nel dispositivo di programmazione Ci pu aver luogo sia tramite un dispositivo di programmazione direttamente collegato sia p es mediante il PROFIBUS Caricamento di oggetti caricabili p es blocchi di codice dal dispositivo di programmazione nella memoria di caricamento di un unit programmabile Ci pu aver luogo sia tramite un dispositivo di programmazione direttamente collegato sia p es mediante il PROFIBUS I blocchi vengono suddivisi in due classi in base al loro contenuto blocchi di codice e blocchi di dati Informazioni supplementari relative a pi righe p es spiegazioni concernenti il processo automatizzato che non possono essere caricate nella memoria di lavoro dei sistemi di automazione SIMATIC S7 Generazione di un programma utente eseguibile partendo da una sorgente SCL per S7 300 400 C79000 G7072 C522 01 Glossario Compi
141. a Istruzione IF condizione TIME Tipo di dati semplice per indicazioni di tempo Tipo di tempo TIMER Tipo di dati per temporizzatore utilizzabile solo nel Specificazione tipo di dati blocco parametri parametro TIME_OF_DAY Tipo di dati semplice per ora del giorno Tipo di tempo TO Introduzione del valore finale Istruzione FOR TOD Tipo di dati semplice per ora del giorno Tipo di tempo TRUE Costante booleana predefinita condizione logica soddisfatta valore diverso da 0 TYPE Introduzione dell UDT Tipo di dati definito dall utente VAR Introduzione blocco di dichiarazione Blocco variabili statiche VAR_TEMP Introduzione blocco di dichiarazione Blocco variabili temporanee UNTIL Introduzione della condizione d interruzione per Istruzione REPEAT l istruzione REPEAT VAR_INPUT Introduzione blocco di dichiarazione Blocco parametri VAR_IN_OUT Introduzione blocco di dichiarazione Blocco parametri VAR_OUTPUT Introduzione blocco di dichiarazione Blocco parametri WHILE Introduzione dell istruzione di controllo per Istruzione WHILE l elaborazione di loop WORD Tipo di dati semplice parola Tipo di dati bit VOID Nessun valore di ritorno in un richiamo di funzione Funzione XOR Operatore logico Operatore logico A 12 SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio A 6 Identificazioni di operando e parole chiavi del blocco Dati globali del La tabella A 8 contiene il mnemonico SIMATIC delle identificazioni di operando di
142. a la parte istruzioni che segue THEN altrimenti vengono valutate le espressioni contenute nei rami ELSIF 2 Se nei rami ELSIF non presente alcuna espressione blooleana TRUE viene eseguita la sequenza di di istruzioni se non pr istruzioni di ELSE o non viene eseguita alcuna sequenza esente alcun ramo ELSE Vi pu essere un numero qualunque di istruzioni ELSIF Si osservi che i rami ELSIF e o il ramo ELSE possono essere assenti Questi casi vengono trattati come se questi rami contenessero istruzioni vuote Avvertenza Si osservi che l istruzione END_IF deve essere conclusa con un punto e virgola 15 4 SCL per S7 300 400 C79000 G7072 C522 01 Istruzioni di controllo Avvertenza Rispetto ad una sequenza di istruzioni IF l impiego di uno o pi rami ELSIF presenta il vantaggio che le espressioni logiche che seguono un espressione valida non vengono pi calcolate Ci consente di ridurre il tempo d esecuzione di un programma Esempio L esempio 15 1 illustra l uso dell istruzione IF EN 0 SUM 0 OK FALSE Attiva OK Flag su FALSE START TRUE THEN N N 1 SUM SUM N FALSE Esempio 15 1 Istruzioni IF SCL per S7 300 400 C79000 G7072 C522 01 15 5 Istruzioni di controllo 15 3 Istruzione CASE Principio L istruzione CASE serve per la selezione di 1 da n di una pa
143. ale e ogni funzione possiede il parametro d ingresso EN d ingresso EN definito implicitamente Se EN uguale a TRUE il blocco richiamato viene eseguito in caso contrario esso non viene eseguito L assegnazione del parametro EN opzionale Si osservi che EN non pu essere dichiarato nella parte dichiarazioni di un blocco o di una funzione Poich EN un parametro d ingresso EN non pu essere modificato all interno di un blocco Avvertenza Il valore di ritorno di una funzione non definito se la funzione non stata richiamata a causa di EN FALSE Esempio L esempio seguente illustra l uso del parametro EN FUNCTION _BLOCK FB57 VAR RISULTATO REAL MIA _ ENABLE BOOL ND_VAR T bi BEGIN IA_ENABLE FALSE Richiamo di una funzione in cui viene assegnato il parametro EN RISULTATO FC85 EN MIA ENABLE PAR 1 27 FC85 non stato eseguito perch MIA_ENABLE stato settato uguale FALSE I dita END_FUNCTION_BLOCK Ts Esempio 16 8 Uso di EN SCL per S7 300 400 16 20 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali i Parametro d uscita Ogni blocco funzionale e ogni funzione possiede il parametro d uscita ENO definito ENO implicitamente il quale un parametro del tipo BOOL Alla fine dell esecuzione di un blocco il valore attuale della variabile OK OK Flag viene scritt
144. amento OF REAL corrisponde al buffercircolare buffercal ARRAY VAR_OUTPUT Campo per i risultati colo OF STRUCT Struttura con i componenti ra dice e quadrato del tipo INT Le funzioni vengono richiamate da ANALISI Esse hanno bisogno di un valore d ingresso e forniscono il loro risultato come valore della funzione vedere tabella 2 3 Tabella 2 3 Parametri formali e valori delle funzioni di SORT e QUADRAT Nome Tipo di dati Tipo di dichiara Descrizione zione valore REAL VAR_INPUT Ingresso per SQRT SORT REAL Valore della Radice del valore d ingresso funzione valore INT VAR_INPUT Ingresso per QUADRAT QUADRAT INT Valore della Quadrato del valore funzione d ingresso SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL 2 3 4 Definizione dell interfaccia d ingresso uscita Panoramica La figura 2 4 illustra l interfaccia d ingresso uscita Si prega di tener presente che per l ingresso uscita byte per byte il byte superiore ha valore minimo e il byte inferiore ha valore massimo Si ha invece il contrario per l ingresso uscita parola per parola Alimen CPU Da tatore 314 24 ES 6 do toni Schema di E N Indirizzo di memoria automazione HE Ingresso 0 Unit d ingresso Canale 0 1 2 5 Byte0 3 4 ta 5 6 7 Byte1 0 fino a 7 Unit di uscita Canale 0 finoa 7
145. ametri formali Figura 16 13 Sintassi dell assegnazione d uscita di transito I parametri attuali nelle assegnazioni d uscita e di transito devono essere delle variabili poich 1 FC deve scrivere dei valori in tali parametri Per tale motivo i parametri d ingresso non possono essere assegnati in assegnazioni di transito in tal caso non sarebbe possibile scrivere il valore Perci nelle assegnazioni d uscita di transito si pu assegnare solo la variable ampliata Tabella 16 5 Parametri attuali nelle assegnazioni d uscita e di transito Parametri attuali Spiegazione Variabile Sono disponibili i seguenti tipi di variabili ampliate ampliata variabili e parametri semplici accesso a variabili assolute accesso a blocchi dati richiamo di funzioni vedere anche capitolo 14 16 17 Richiamo di funzioni e blocchi funzionali Particolarit 16 18 Si osservino le seguenti particolarit Dopo l esecuzione del blocco viene attualizzato il valore modificato del parametro di transito Nei parametri di transito di un tipo di dati non semplice non sono consentiti come parametri attuali parametri d ingresso di FB parametri di transito di FB oppure parametri di FC Parametro ANY di regola vale anche per questo parametro quanto detto sopra In parametri di transito di un tipo di dati non semplici non sono ammessi come parametri attuali parametri di ingresso di FB parametr
146. ando a questa variabile un numero assoluto diverso ad ogni richiamo Esempio FUNCTION _ BLOCK TIMER VAR_INPUT miotemporizzatore timer END_VAR currTime S_ODT T_NO miotemporizzatore Poich i valore dei parametri sono memorizzati in modo globale in determinati casi la loro indicazione opzionale Per l assegnazione di parametri si devono osservare le seguenti regole generali e il parametro per l identificazione del temporizzatore T_NO deve essere indicato al suo richiamo in forma simbolica o assoluta e L indicazione del parametro PV valore di preimpostazione e S impostazione pu essere omessa a coppie e L assegnazione dei parametri opzionale Si pu accedere a Q e BI mediante un assegnazione di valori e Il valore del risultato in formato SSTIME sempre il valore della funzione Avvertenza I nomi delle funzioni sono identici sia nel mnemonico SIMATIC che IEC SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori Esempio richiamo di funzioni di temporizzazione SCL per S7 300 400 C79000 G7072 C522 01 L esempio 17 5 illustra il richiamo delle funzioni di temporizzazione FUNCTION_BLOCK FB2 VAR s5time currTime biVal actFlag bool word END VAR BEGIN currTime S_ODT currTime S_ODTS currTime S_OFFDT currTime S_PEXT currTime Esempio END_FUNCTION_BLOCK T_NO T10 R FALSE BI S TR
147. ando di menu Strumenti Tabella dei simboli Inoltre possibile importare e sottoporre ad ulteriore elaborazione la tabella dei simboli presente come file di testo che pu essere creata con qualsiasi editor di testi per informazioni al riguardo vedere 231 Seguono alcuni esempi di accesso simbolico STATUSBYTI STATUS_3 Messwert Byte d ingresso Ingresso 1 1 Canali di misura Esempio 12 2 Accessosimbolico SCL per S7 300 400 C79000 G7072 C522 01 Definizione di dati globali 12 5 Accesso indicizzato alle aree di memoria della CPU Principio Identificatore assoluto Regole per l accesso indicizzato SCL per S7 300 400 C79000 G7072 C522 01 Esiste anche la possibilit di accedere in modo indicizzato a specifiche aree della CPU Rispetto all indirizzamento assoluto questo metodo offre il vantaggio di poter indirizzare dinamicamente gli indirizzi mediante impiego di indici variabili Per es come indirizzo si pu utilizzare la variabile di esecuzione di un loop FOR L accesso indicizzato ad un area di memoria simile all accesso assoluto L unica differenza consiste nell indicazione dell indirizzo Al posto dell indirizzo viene specificato un indice che pu essere una costante una variabile o un espressione aritmetica Nell accesso indicizzato l identificatore assoluto si compone dell identificazione di operando e di un espressione base per l indicizzazi
148. aratteri minuscoli che maiuscoli LITERAL DI STRINGA Interruzione C i Carattere distringa Carattere dI gt Figura 11 9 Sintassi di un literal di stringa Seguono alcuni esempi di literal di stringa validi ROT 76181 Karlsruhe 270 32 3456 DM19 95 La risposta giusta Si deve tener presente che in un assegnazione di un literal di stringa ad una variabile di stringa il numero dei caratteri pu essere limitato a lt 254 L assegnazione di valore Definizione di constanti ed etichette di salto Interruzione di stringa Caratteri stampabili TESTO STRINGA 20 SIEMENS KARLSRUHERheinbriickenstr causa un messaggio di errore e modifica la variabile TEXT in SIEMENS KARLSRUHE Rh G I caratteri di formattazione speciali le virgolette o un carattere possono essere introdotti con il segno del dollaro Un literal di stringa pu essere pi volte interrotto e continuato Una stringa situata in una riga di un blocco SCL oppure viene ripartita su pi righe mediante identificazioni speciali Per interrompere una stringa viene usata l identificazione gt per continuare una stringa si usa l identificazione lt TESTO STRINGA 20 L FB gt Versione preliminare lt convertito Lo spazio fra l identificazione di interruzione e l identificazione di continuazio
149. are la sorgente SCL Si pu aprire un oggetto sorgente generato e salvato in precedenza con SCL per sottoporlo a ulteriore compilazione o elaborazione Procedere nel modo seguente l 2 Selezionare il comando di menu File gt Apri o fare clic su simbolo Apri Nella finestra di dialogo Apri selezionare il progetto desiderato e il corrispondente programma S7 Assicurarsi che sia impostato il filtro Sorgente SCL e selezionare il contenitore sorgente Nella finestra di dialogo vengono visualizzate tutte le sorgenti SCL del programma S7 Selezionare l oggetto desiderato e confermare con OK o fare doppio clic sulla sorgente Le sorgenti che sono state generate con un editor standard possono essere aperte in modo analogo dopo che esse sono state importate nel progetto tramite il SIMATIC Manager Programmare con SCL 5 3 Introduzione di dichiarazioni istruzioni e commenti Panoramica Regole L introduzione di una sorgente SCL deve essere eseguita conformemente a regole sintattiche ben definite Queste regole fanno parte integrante della descrizione del linguaggio e sono completamente elencate in appendice A proj1 stazione 1 SIMATIC300 CPU314 1 sorgente1 FUNCTION_BLOCK FB11 VAR Ia INT Campo ARRAY 1 10 1 20 OF REAL REGOLATORE ARRAY 1 3 1 4 OF INT 54 736 83 77 1289 10362 385 2 60 37 7 103 END_VAR BEGIN tac Figura 5 2 Sorgente S
150. are quanto segue I blocchi richiamati devono essere situati prima dei blocchi richiamanti Ci significa e I tipi di dati definiti dall utente UDT sono situati prima dei blocchi in cui essi vengono utilizzati e I blocchi dati ai quali stato assegnato un tipo di dati definito dall utente UDT sono situati dopo l UDT e Iblocchi dati a cui possibile accedere da tutti i blocchi di codice sono situati prima di tutti i blocchi dati che accedono ad essi e I blocchi dati con blocco funzionale assegnato sono situati dietro il blocco funzionale e Il blocco organizzativo OBI il quale richiama altri blocchi situato alla fine dei blocchi A loro volta i blocchi che vengono richiamati da blocchi richiamati dall OB1 devono essere situati prima di questi ultimi blocchi I blocchi che vengono richiamati nel file sorgente ma che non vengono programmati nello stesso file sorgente devono essere gi presenti al momento della compilazione del file nel relativo programma utente SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL Struttura generica dei blocchi SCL per S7 300 400 C79000 G7072 C522 01 assegnato _ UDT richiama DB le richiama DB da UDT le richiama e FB3 assegnato D 5 DB di istanza di FB 3 c richiama y ooo FC 5 Di i D OB 1 y Figura 8 2 Esempio di struttura di
151. aricare risultato della radice TRUE Caricare risultato del quadrato Caricare valore di misura Caricare uscita e visualizzare quindi i loro valori Scrivere gli elementi della lista con l indirizzo di uscita nei parametri di Con l operazione MOD viene realizzato il buffer ciclico quando viene raggiunto il limite ricominciare da capo Ordinamento del buffer circolare ed esecuzione dei calcoli creare a tal fine un campo risultati Spostare dapprima i bit rilevanti verso il margine destro mascherare quindi con AND le posizioni non necessarie Figura 2 10 Algoritmo per rilevare i valori di misura 2 15 Sviluppo di programmi SCL Parte istruzioni di La figura 2 11 illustra la formulazione del diagramma di flusso rappresentato nella RILEVAZIONE figura 2 10 in SCL cio la parte istruzioni del blocco di codice BEGIN Parte le Rilevazione dei valori di misura KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKAKAK In caso di modifica dei valorenuovo viene introdotto il valore di misura Con l operazione MOD si realizza un buffer circolare per i valori di misura IF valorenuovo lt gt valorevecchio THEN puntatore puntatore MOD ANZAHL valorimisura puntatore valoredimisura_in puntatore puntatore 1 END_IF valorevecchio valorenuovo Parte 2 Avvio ordinamento e calcolo KKKKKAKKKKKKKKKKKKKKKKKKKKKKKKAKAK In caso di modifica di ordinamentonuovo av
152. arte dichiarazioni serve per definire le convenzioni per variabili parametri costanti ed etichette di salto label e Le variabili locali parametri costanti ed etichette di salto che devono avere validit solo all interno di un blocco vengono definite nella parte dichiarazioni del blocco di codice e I dati globali che devono poter essere indirizzati da qualsiasi blocco di codice vengono definiti nella parte convenzioni del DB e Nella parte dichiarazioni di un UDT viene definito un tipo di dati definito dall utente Struttura Una parte dichiarazioni suddivisa in vari blocchi di dichiarazione i quali sono contrassegnati da una propria coppia di parole chiavi Ogni blocco contiene una lista di dichiarazioni per dati simili quali costanti etichette di salto dati statici dati temporanei Un tipo di blocco deve essere presente solo una volta e conformemente alla tabella 8 3 non consento in tutti i tipi di blocchi La sequenza dei blocchi irrilevante Tabella 8 3 Blocchi di dichiarazione consentiti Blocchi di Dati Sintassi FB FC OB DB UDT dichiarazione re ae CONST Costanti Elenco dichiarazoni X X X END_CONST LABEL Etichette di salto Elenco dichiarazoni X X X END_LABEL VAR_TEMP Variabili temporanee Elenco dichiarazoni X X X END_VAR VAR Variabili statiche Elenco dichiarazoni X x2 x x END_VAR e VAR_INPUT Parametri d ingresso Elenco dichiarazoni X X END_VAR VAR_OUTPUT Para
153. ata su FALSE STRING_TO_CHAR Copiatura del primo carattere della stringa S Se la stringa non ha una lunghezza di 1 la variabile OK viene impostata su FALSE SCL per S7 300 400 18 4 C79000 G7072 C522 01 Funzioni standard SCL Tabella 18 3 Funzioni di conversione dei tipi di dati della classe B Nome della funzione Regola di conversione OK TIME_TO_DINT Immissione dellastringadibt gt N TOD_TO_DINT Immissione della stringa di bit N WORD_TO_BOOL Copiatura del bit di valore minimo S WORD_TO_BYTE Copiatura degli 8 bit meno significativi S WORD_TO_INT Immissione della stringa di bit N WORD_TO_BLOCK_DB La stringa di bit di WORD viene interpretata come N numero di blocco dati BLOCK_DB_TO_WORD Il numero di blocco dati viene interpretato da WORD N come stringa di bit Avvertenza Si ha inoltre la possibilit di sfruttare le funzioni IEC per la conversione dei tipi di dati Per ulteriori informazioni sulle singole funzioni IEC si rimanda a 235 Esempi di Nell esempio 18 2 necessaria una conversione esplicita poich il tipo di dati di conversione destinazione meno importante del tipo di dati sorgente esplicita FUNCTION_BLOCK FB10 VAR INTERRUTTORI REGOLATORE END_VAR BEGIN INTERRUTTORE DINT_TO_INT REGOLATORE INT meno importante di DINT END_FUNCTION_BLOCK Esempio 18 2 Iltipo di dati di
154. ategoria di dati 10 2 Classe di priorit tipi di OB 19 3 Codice di programma OB 1 2 13 4 RILEVAZIONE Combinare blocchi Combinazione logica 13 10 Commenti annidamento inserimento Compatibile verso Palto 1 4 Compiler ambiente di sviluppo 1 2 generale complete Strutture 14 4 Concezione blocco STEP 7 1 3 Condizioni 15 3 condizione d esecuzione condizione d interruzione Conformit alla norma 1 2 Confronti 13 10 CONTATORE Vedere Conteggio in avanti all indietro S_CUD Contatore operazioni di conteggio conteggio in avanti all indietro CONTATORE 17 8 Conteggio _17 7 17 9 all indietro in avanti 17 7417 9 in avanti all indietro 17 8 Conteggio all indietro INDIETRO Conteggio in avanti S_CU Conteggio in avanti all indietro CONTATORE Continuazione di una stringa 11 8 Convenzione etichette di salto 11 14 labels 11 14 Conversione implicita 18 2 Conversione di dati implicita 18 2 Indice 2 Costanti 11 2 convenzione nome simbolico 11 2 impiego 11 2 stringa di costanti 11 7 COUNTER tipo di parametro 7 13 9 12 Criteri d interruzione 15 13 D Dati di riferimento generare 6 9 Dati globali 12 1 accesso 12 2 12 3 dichiarazione sommario 12 1 panoramica aree di memoria CPU 12 2 dati utente 12 2 Dati globali del sistema accesso assoluto 12 4 accesso indicizzato
155. ato tramite la seguente impostazione mediante interruttori e Tramite tre interruttori viene impostata una codifica che viene confermata se sul quarto interruttore l interruttore di codifica viene riconosciuto un fronte Viene quindi calcolato l indirizzo usato per indirizzare l uscita e Con lo stesso indirizzo vengono preparati per l uscita tre valori valore di misura radice e quadrato Per poter scegliere uno dei tre valori si devono predisporre come rappresentato alla figura 2 2 due commutatori Introduzione dei dati Interruttori sull unit d ingresso x Analisi del fronte Interruttore Due commutatori Codifica di codifica 0 a Radice o Valore di misura quadrato o risultato Valore di misura Radice Quadrato Indirizzare l uscita Commutatori Scegliere l uscita Die pet Risultati Indirizzo Indirizzo Valoriordinati Uscita dei dati Visualizazzioni sulla unit di uscita Uscita Figura 2 2 Esempio parte 2 uscita impostabile SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL Soluzione con blocchi SCL Panoramica Il modo migliore per risolvere il problema descritto quello di utilizzare un programma SCL strutturato Questo programma ha una struttura modulare cio suddiviso in blocchi che eseguono uno o piu compiti parziali In SCL cos come egli altri l
156. attere DINT_TO_REAL Trasformazione in REAL secondo la norma IEEE Il valore pu essere soggetto a modifiche a causa della diversa precisione di REAL INT_TO_DINT La parola pi significativa del valore della funzione viene riempita con 16 FFFF in caso di parametro d ingresso negativo negli altri casi viene riempita con zeri Il valore rimane lo stesso INT_TO_REAL Trasformazione in REAL secondo la norma IEEE Il valore rimane lo stesso WORD_TO_DWORD Integrazione con zeri iniziali 18 3 Funzioni standard SCL Funzioni di La tabella 18 3 illustra le funzioni di conversione di tipi di dati della classe B conversione Queste funzioni devono essere attivate esplicitamente dall utente Il risultato pu classe B anche essere indefinito se la dimensione del tipo di dati di destinazione non sufficiente L utente pu controllare da s un caso del genere attivando il controllo di valori limite oppure pu far eseguire il controllo dal sistema selezionando l opzione OK Flag prima della compilazione Nei casi in cui il risultato indefinito il sistema imposta la variabile OK su FALSE L analisi a cura dell utente Tabella 18 3 Funzioni di conversione dei tipi di dati della classe B Nome della funzione Regola di conversione OK BYTE_TO_BOOL Copiatura del bit meno significativo S BYTE_TO_CHAR Immissione della stringa di bit N CHAR_TO_BYTE Immissione della
157. attivare o disattivare il comando di menu Visualizza gt Riga di stato Un segno di spunta dietro il comando di menu indica se il comando momentaneamente attivato o non L editor ed il compilatore consentono di eseguire determinate impostazioni atte a facilitare il lavoro all utente e Impostazioni durante la creazione dei blocchi e Impostazioni per il compilatore e Impostazioni per l editor L utente pu ad es impostare se sovrascrivere durante la compilazione i blocchi gi esistenti Scegliere il comando del menu Strumenti Impostazioni e fare clic nella finestra di dialogo Impostazioni sulla scheda Crea blocchi Il capitolo 5 5 contiene una descrizione dettagliata delle singole opzioni Si pu adattare anche il processo di compilazione conformemente alle specifiche esigenze dell utente Il capitolo 5 5 contiene una descrizione dettagliata delle singole opzioni A tal fine si deve scegliere il comando di menu Strumenti Impostazioni e fare clic sulla scheda Compilatore nella finestra di dialogo Editor Si possono impostare l ampiezza del tabulatore il salvataggio prima della compilazione la visualizzazione dei numeri di riga e altre opzioni A tal fine si deve scegliere il comando di menu Strumenti Impostazioni e fare clic sulla scheda Editor nella finestra di dialogo Impostazioni SCL per S7 300 400 C79000 G7072 C522 01 Come operare con SCL 4 3 Lavorare
158. avalore Il valore di tempo attuale pu essere interrogato all uscita BI tramite il attuale deltempo valore della funzione S_PEXT SCL per S7 300 400 C79000 G7072 C522 01 17 17 Contatori e temporizzatori 17 2 4 Avviamento del temporizzatore come ritardo all insezione Descrizione Modo di funzionamento 17 18 Il segnale d uscita passa da 0 a 1 quando il tempo programmato scaduto e il segnale d ingresso ancora 1 vale a dire che l uscita viene inserita con ritardo I segnali d ingresso la cui durata del tempo pi breve del programmato non appaiono all uscita La figura 17 5 illustra il modo di funzionamento del temporizzatore Avvia temporizzatore come ritardo all inserzione Segnale d ingresso Segnale d uscita Temporizzatore come ritardo all inserzione E 2 1 A4 0 S ODT H t Figura 17 5 Temporizzatore Avvia temporizzatore come ritardo all inserzione Tabella 17 12 Modo di funzionamento Avvia temporizzatore come ritardo all inserzione Operazione Modo di funzionamento Avvia L operazione Avviare il temporizzatore come ritardo all inserzione avvia temporizzatore un temporizzatore indicato quando lo stato del segnale all ingresso di av vio S passa da 0 a 1 Per abilitare il temporizzatore sempre necessa rio un cambio del segnale Interrompi Il
159. avviene in un istruzione di richiamo con indicazione del nome del blocco funzionale o del blocco funzionale di sistema identificazione di FB o SFB e del blocco dati di istanza identificazione DB e nonch dell assegnazione dei parametri parametri FB Un richiamo di un istanza globale pu essere definito in modo assoluto o simbolico Richiamo assoluto FB10 DB20 X1 5 X2 78 Assegnazione di parametri Richiamo simbolico ANTRIEB EIN X1 5 X2 78 Vu Figura 16 4 Richiamo di FB10 con blocco dati di istanza DB20 16 3 Richiamo di funzioni e blocchi funzionali Richiamo come Il richiamo avviene in un istruzione di richiamo con indicazione stanza iocale e del nome di istanza locale IDENTIFICATORE e nonch dell assegnazione dei parametri parametri FB Un richiamo di un istanza locale sempre simbolico p es MOTORI G X1 5 X2 78 t Alimentazione dei parametri Figura 16 5 Richiamo di un istanza locale SCL per S7 300 400 16 4 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 2 1 Parametri FB Principio Esempio Regole SCL per S7 300 400 C79000 G7072 C522 01 Nel richiamo di un blocco funzionale come istanza globale o locale nella lista parametri si deve distinguere fra e iparametri d ingresso e e i parametri di transito di un FB In entrambi i casi mediante assegnazioni di valori s
160. avviene nella parte istruzioni e Accesso dall interno cio nella parte istruzioni del blocco funzionale nella cui parte dichiarazioni stata dichiarata la variabile Ci viene spiegato nel capitolo 14 Assegnazione di valori e Accesso dall esterno tramite il DB di istanza tramite la variabile indicizzata DBx variable DBx il nome del blocco dati SCL per S7 300 400 C79000 G7072 C522 01 Convenzione di variabili locali e parametri di blocco 10 6 Variabili temporanee Panoramica Blocco dichiarazioni VAR_TEMP END_VAR Esempio Accesso SCL per S7 300 400 C79000 G7072 C522 01 Le variabili temporanee fanno parte di un blocco di codice e non occupano alcuna area di memoria statica Il loro valore rimane inalterato solo per la durata dell esecuzione del blocco Non possibile accedere alle variabili temporanee al di fuori del blocco in cui sono state dichiarate le variabili Si consiglia di definire dei dati come dati temporanei se essi sono necessari per memorizzare risultati intermedi durante l elaborazione dei propri OB FB o FC Blocco di variabili temporanee Dichiarazione VAR_TEMP di variabili h END_VAR gt Non possibile alcuna inizializzazione Figura 10 7 Sintassi del blocco di variabili temporanee Questo blocco dichiarazioni fa parte di un FB FC o OB Conformemente al capitolo 10 2 nell ambito della dichiarazione di variabili vengono indicati i nomi delle va
161. bili ulteriori autorizzazioni Per ulteriori avvertenze e regole per l uso dell autorizzazione si rimanda al manuale utente 231 Attenzione Osservare le avvertenze contenute nel file LEGGIMI TXT sul dischetto di autorizzazione In caso di non osservanza esiste il pericolo di perdere irrevocabilmente l autorizzazione Si raccomanda di eseguire la procedura di autorizzazione quando l utente riceve un apposito messaggio di richiesta nell ambito della prima installazione Procedere come segue 1 Inserire il dischetto di autorizzazione quando il sistema emette il corrispondente messaggio di richiesta 2 Confermare quindi la richiesta L autorizzazione viene trasferita su un drive fisico cio il calcolatore dell utente prende nota che l utente munito di regolare autorizzazione SCL per S7 300 400 C79000 G7072 C522 01 Installazione del software Installazione dell autorizzazione in un momento successivo Disinstallazione dell autorizzazione Se il disco fisso difettoso SCL per S7 300 400 C79000 G7072 C522 01 Quando un utente avvia il software SCL senza autorizzazione il sistema visualizza un apposito messaggio Per eseguire la procedura di autorizzazione si deve richiamare il programma AUTHORS presente sul dischetto di autorizzazione Esso consente di visualizzare installare e disinstallare autorizzazioni Il programma guidato da menu Avvertenza Durante l i
162. bit 14 bit 13 bit 12 di EWO e in ordine di grandezza confermare mediante commutazione dell interruttore di codifica 8a Visualizzare i corrispondenti risultati mediante Viene visualizzato il valore d uscita 9 risp il valore commutazione dell interruttore di uscita E0 3 viene binario 1001 visualizzato il quadrato del valore di misura del 7 passo del test 8b Mediante commutazione del tasto funzione E0 2 si Viene visualizzato il valore d uscita 2 risp il valore ottiene anche la radice binario 10 2 22 SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL Test supplementare SCL per S7 300 400 C79000 G7072 C522 01 Le spiegazioni degli interruttori sull unit di ingresso della tabella 2 6 e gli esempi dei test per quadrato e radice della tabella 2 7 consentono all utente di definire con facilit i propri passi di test e L introduzione dei dati avviene tramite interruttori tramite gli 8 interruttori superiori viene eseguito il comando mentre tramite gli 8 interruttori inferiori viene regolato il valore di misura e P emissione dei dati avviene tramite le visualizzazioni sul gruppo superiore appare il byte di uscita con valore superiore mentre sul gruppo inferiore appare il byte con valore inferiore Tabella 2 6 Interruttori di comando Interruttori Nome Spiegazione di comando Canale 0 Interruttore Commutazione per confermare il valore di misura
163. blocchi di un file sorgente Il codice sorgente di un blocco consiste essenzialmente delle parti seguenti e inizio blocco con indicazione del blocco assoluta o simbolica e attributi di blocco opzionale parte convenzioni diversa a seconda del tipo di blocco e parte istruzioni nei blocchi di codice o assegnazione di valori attuali in blocchi dati opzionale e fine blocco Struttura di sorgenti SCL 8 2 Inizio e fine di un blocco Panoramica Sintassi Nome del blocco Esempio Il testo sorgente per un singolo blocco viene introdotto in funzione del tipo di blocco con un identificazione standard per l inizio del blocco alla quale precede un identificatore del blocco e viene terminato con un identificazione standard per la fine del blocco vedere tabella 8 1 Tabella 8 1 Identificazione standard per l inizio e la fine del blocco ORGANIZATION_BLOCK Ob_name END_ORGANIZATION_BLOCK Sintassi Tipo di Nome del blocco blocco OB Blocco organizzativo END_FUNC FUNCTION fc_name tipo di funzione FC Funzione TION END_FUNC FUNCTION_BLOCK ob_name FB Blocco funzionale TION_BLOCK DATA _BLOCK db_name END_DATA_BLOCK DB Blocco dati END_TYPE TYPE name udt_name UDT Tipo di dati definito dall utente Nella tabella 8 1 xx_nome indica il nome del blocco conformemente alla sintassi seguente Parola chiave el
164. blocco Numero H DB FB FC OB UDT IDENTIFICATORE H Simbolo H Figura 8 3 Sintassi del nome del blocco Per ulteriori informazioni al riguardo si rimanda al capitolo 7 5 Si deve inoltre osservare che un identificazione o un simbolo devono essere definiti nella tabella dei simboli di STEP 7 vedere 231 FUNCTIONL_I FUNCTIONL_I FUNCTIONL_I BLOCK FB10 BLOCK Bloccoregolatore BLOCK Regolatore B1 amp U2 SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL 8 3 Attributi di blocco Definizione Gli attributi per i blocchi possono essere e attributi dei blocchi e attributi di sistema per i blocchi Attributi dei Titolo versione protezione blocco autore nome e famiglia di un blocco possono blocchi essere introdotti con l ausilio di parole chiave Sintassi Titolo TIO O sire J O Versione Tsa Q Q mo OH mC Protezione del blocco p KNOW_HOW_PROTECI Autore maz 19 Carat Ceri AUTORE IDENTIFICATORE Nome max 8 caratteri NOME IDENTIFICATORE Famiglia del blocco max 8 caratteri FAMIGLIA IDENTIFICATORE P Figura 8 4 Sintassi Attributi di blocco SCL per S7 300 400 C79000 G7072 C522 01 8 5 Struttura di sorgenti SCL Attributi di sistema Ai blocchi possono essere inoltre assegnati attributi di sistema ad es per la per blocchi progettazione del controllo di processo Attributi d
165. bolico dei dati di tipo composto p es campi e strutture e Tipo di dati ANY esso possibile solo se l operando un paramero formale di tipo di parametro compatibile e Tipo di dati NIL viene specificato un puntatore zero e Temporizzatori contatori e blocchi si deve indicare la relativa identificazione p es T1 Z20 o FB6 Il tipo di dati ANY consentito per parametri d ingresso formali per parametri di transito di FB e FC e per parametri di uscita di FC Avvertenza Se nel richiamare un FB o una FC al parametro formale del tipo ANY viene assegnata una variabile temporanea questo parametro non pu essere trasferito ad un altro blocco nel blocco richiamato Gli indirizzi delle variabili temporanee perdono la loro validit al momento del trasferimento SCL per S7 300 400 C79000 G7072 C522 01 9 13 Tipi di dati POINTER 9 14 In SCL esiste la possibilit di impostare parametri di blocco del tipo di dati POINTER ove al richiamo di tale blocco a questi parametri possono essere assegnati operandi di tipo di dati a piacere SCL offre tuttavia solo una possibilit di elaborazione del tipo di dato POINTER il trasferimento a blocchi subordinati In SCL possibile assegnare come parametri gli operandi del tipo di dati seguenti e Tipi di dati semplici Introdurre l indirizzo assoluto o il nome simbolico del parametro attuale e Tipi di dati composti Introdurre il nome simbolico dei dati d
166. ca commento o attributo Separatore per indicazione del tipo Dichiarazione di variabile dichiarazione di istanza con istruzione dopo etichetta di salto funzione parte istruzioni istruzione CASE Conclusione di una convenzione o istruzione Dichiarazione di costante e di variabile parte istruzioni parte assegnazioni blocco costanti blocco etichette di salto 7 Separatore per liste e blocchi di etichette di Dichiarazione di variabile specificazione tipo di dati salto array lista inizializzazione di campo parametro di FB parametro di FC lista di valori dichiarazione di istanza Indicazione di campo Specificazione tipo di dati array lista di valori Separatore per nome di FB e DB indirizza Richiamo di FB variabile strutturata mento assoluto Richiamo di funzione e di blocco funzionale Richiamo di funzione richiamo di FB espressione lista parentesi in espressioni inizializzazione di campo moltiplicazione semplice lista di inizializzazione per array espressione di potenza Ey Dichiarazione di array Specificazione tipo di dati array specificazione tipo di variabile strutturata parte array indicizza dati STRING zione nelle variabili globali e nelle stringhe commento a pi righe vedere appendice B commento a una riga vedere appendice B Blocco di attributo Specificazione di attributi Operatori Nella tabella A 6 sono descritti tutti gli operatori SCL la parole chiave p es AND e gli operatori usuali come caratteri
167. cata Come formato comune di due operandi viene definito il tipo di dati pi piccolo il cui campo di valori contiene entrambi gli operandi p es il formato comune di Byte e Integer Integer Si prega di osservare che in una conversione di tipi di dati nell ambito della classe ANY _BIT i bit iniziali vengono impostati a 0 Tabella 18 1 Sequenza della conversione implicita dei tipi di dati Classi Sequenza di conversione ANY_BIT BOOL gt BYTE gt WORD gt DWORD ANY_NUM INT gt DINT gt REAL L esempio seguente descrive la conversione implicita dei tipi di dati PID_RE PID_RE END_VAR BEGIN IF PID_REGOLATORE_1 lt gt PID_REGOLATORE_ 2 THE Nella condizione della suddetta istruzione IF THEN PID_REGOLATORE_1 viene convertita implicitamente in una variabile con tipo di dati WORD Esempio 18 1 Conversione implicita dei tipi di dati SCL per S7 300 400 C79000 G7072 C522 01 Funzioni standard SCL 18 2 Funzioni standard per la conversione dei tipi di dati Conversione esplicita dei tipi di dati Richiamo di funzioni Funzioni di conversione classe A SCL per S7 300 400 C79000 G7072 C522 01 La conversione esplicita dei tipi di dati viene eseguita con funzioni standard Queste funzioni standard sono contenute nelle tabelle 18 2 e 18 3 Per una descrizione dettagliata sul richiamo di funzioni generiche si rima
168. ch per la dichiarazione di DB Con l ausilio dell UDT si possono anche definire componenti di strutture o campi anche nell ambito di altri UDT Avvertenza Nell assegnazione di valori iniziali inizializzazione all interno di un UDT vale la sintassi di AWL Per informazioni su come scrivere le costanti consultare il manuale utente 231 o il manuale 232 SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati Esempio L esempio descrive una definizione di un UDT e l impiego di questo tipo di dati nell ambito di una dichiarazione di variabili Si presuppone che nella tabella dei simboli sia stato definito il nome VALORIMISURA per L UDTSO TYPE VALORIMISURA Definizione dell UDT STRUCT BIPOL_1 INT BIPOL_2 WORD W 16 AFA1 BIPOL_3 BYTE B 16 FF BIPOL_4 WORD B 25 25 BIPOL_5 INT 25 MISURA STRUCT BIPOLAR_10V REAL UNIPOLAR_4_20MA REAL END_STRUCT T END_STRUCT ND_TYP ti G FUNCTION_BLOCK VAR CAMPO_MISURA VALORIMISURA END_VAR BEGIN CAMPO_MISURA BIPOL 4 CAMPO_MISURA MISURA UNIPOLAR_ 4_20MA 2 7 END_FUNCTION_BLOCK Esempio 9 2 Convenzione di tipi di dati definiti dall utente SCL per S7 300 400 C79000 G7072 C522 01 9 11 Tipi di dati 9 5 Tipi di parametri Panoramica TIMER e COUNTER 9 12 Oltre ai tipi di dati semplici composti e definiti dall utente per la definizione di pa
169. cui sviluppare e implementare un programma utente in SCL La descrizione viene facilitata da un programma esempio il quale potr essere eseguito con 1 dati di test forniti e con le unit d ingresso uscita dell utente Capitolo Argomento trattato Pagina 2 1 Panoramica 2 2 Descrizione del problema 2 3 2 3 Soluzione con blocchi SCL 2 5 2 3 1 Definizione dei compiti parziali 2 3 2 Scelta e attribuzione dei blocchi dati ai compiti parziali 2 3 9 Definizione delle interfacce fra i blocchi 2 3 4 Definizionedell interfacciad ingresso uscita 2 9 2 3 5 Programmazione dei blocchi 2 10 24 Creazione del blocco organizzativo CICLO 2 5 Creazione del blocco funzionale RILEVAZIONE 2 6 Creazione del blocco funzionale ANALISI 2 17 2 7 Creazione della funzione QUADRAT 2 8 Dati di test 2 22 2 1 Sviluppo di programmi SCL 2 1 Panoramica Obiettivo Mezzi del linguaggio SCL Requisiti hardware Funzioni di test La parte inerente lo sviluppo di programmi intende insegnare all utente come impiegare SCL nel modo pi efficace Le domande pi frequenti all inizio possono essere e In che modo posso procedere per creare un programma in SCL e Quali mezzi linguistici offre SCL per la soluzione del problema e Di quali funzioni di test posso disporre Queste ed altre domande vengono trattati in questo capitolo Nell esempio riportato vengono descritti fra l altro i se
170. d ingresso FC anneanne 16 3 3 Assegnazione d uscita di transito FC 16 3 4 Esempio di richiamo di funzioni ssaa essas aaeeea 16 4 Parametri definiti implicitamente neea 17 Contatori e temporizzatorti Lr 17 1 Funzioni di conteggio irrin einn 17 1 1 Introduzione ed analisi del valore di conteggio 17 1 2 Conteggio in avanti Counter Up aaeeea 17 1 3 Conteggioall indietro Counter Down LL 17 1 4 Conteggio in avanti e all indietro Counter Up Down 17 1 5 Esempio della funzione S_CD Contatore all indietro 17 2 Funzioni di temporizzazione TIMER 17 10 17 2 1 Introduzione ed analisi del valore di conteggio 17 2 2 Avviamento del temporizzatore come impulso 17 16 17 2 3 Avviamento del temporizzatore come impulso prolungato 17 2 4 Avviamento del temporizzatore come ritardo all insezione 17 18 17 2 5 Avviamento del temporizzatore come ritardo all inserzione con memoria 17 2 6 Avviamento del temporizzatore come ritardo alla disinserzione 17 20 17 2 7 Esempio di programma per un impulso prolungato 17 21 17 2 8 Scelta del giusto temporizzatore aana 18 Funzioni standard SCL_ Lei 18 1 Conversione dei tipi di dati 18 2 Funzioni standard per la conversione dei tipi di dati
171. d Control Language definito nella norma DIN EN 61131 3 int IEC 1131 3 pur essendoci sostanziali differenze concernenti le operazioni Per informazioni dettagliate sulla conformit alla norma si rimanda alla tabella di normalizzazione contenuta nel file NORM TAB di STEP 7 Prefazione Panoramica sulla Come supporto per la configurazione e la programmazione di un sistema di documentazione automazione S7 l utente pu avvalersi di un estesa documentazione specifica Le spiegazioni e la figura seguenti facilitano la consultazione dei manuali La sequenza viene rappresentata da una freccia gt per coloro che usano il sistema S7 per la prima volta Simbolo Significato Documentazione che illustra le procedure Di Manuali di consultazione pertanto solo per un uso selettivo d Documentazione integrata da una Guida online Prontuario Sistema di automazione S7 300 Introduzione alla configurazione eprogrammazione Manuali per 30 Manuale l hardware S7 300 400 Manuale di Software di sistema per S7 300 400 programma Sviluppo di programmi zione 234 so Guida online Manuale Software di base Manuale STEP 7 utente per S7 e M7 di conver Da S5 a S7 STEP7 RIONE 231 230 P AWL KOP FUP SCL i 232 238 236 250 enni Manuale Software di sistema pe
172. deposte nello stack della CPU Il loro valore rimane immutato solo per la durata di una esecuzione del blocco Al di fuori del blocco in cui sono state dichiarate le variabili non possibile accedere alle variabilitemporanee I parametri di blocco sono dei segnaposti che vengono definiti solo in caso di utilizzo effettivo richiamo del blocco I segnaposti presenti nel blocco vengono denominati parametri formali mentre i valori assegnati durante il richiamo del blocco vengono denominati parametri attuali I parametri formali di un blocco possono essere considerati come variabili locali Conformemente alla tabella 10 2 i parametri di blocco possono essere suddivisi nelle seguenti categorie Tabella 10 2 Parametri di blocco Parametri di blocco Significato Parametri d ingresso I parametri d ingresso assumono i valori d in gresso attuali durante il richiamo del blocco Essi possono essere solo letti Parametri d uscita I parametri d uscita trasferiscono i valori d uscita attuali al blocco richiamante Essi possono essere letti e scritti Parametri di transito Al momento del richiamo del blocco i para metri di transito assumono il valore attuale di una variabile lo elaborano e infine depositano i risultati ottenuti nella stessa variabile Il compilatore SCL mette a disposizione un flag che consente di localizzare eventuali errori durante l esecuzione dei programmi nella CPU Si tratta d
173. dere del tempo Resetta Se l ingresso di reset R passa da 0 a 1 il tempo viene resettato all ingresso S indipendentemente dall RLC per il risultato della combinazione vedere 232 Interroga stato Un interrogazione dello stato di segnale per 1 all uscita Q risulta 1 del segnale indipendentemente dallo stato del segnale all ingresso S Interroga valore Il valore del tempo attuale pu essere interrogato all uscita BI tramite il attuale del tempo valore della funzione S_ ODTS 17 19 Contatori e temporizzatori 17 2 6 Avviamento del temporizzatore come ritardo alla disinserzione Descrizione Modo di funzionamento 17 20 In caso di passaggio dello stato del segnale da 0 a 1 all ingresso S all uscita Q appare lo stato 1 Se all ingresso di avvio lo stato passa da 1 a 0 il temporizzatore viene attivato L uscita del segnale assume lo stato 0 solo allo scadere del tempo L uscita viene avviata con ritardo all inserzione La figura 17 7 illustra il modo di funzionamento del temporizzatore Avvia temporizzatore come ritardo alla disinserzione Segnale E 2 1 n d ingresso A4 0 S_OFFDT Segnale d uscita pe temporizzatore come ritardo alla disinserzione Figura 17 7 Temporizzatore Avvia temporizzatore come ritardo alla disinserzione Tabella 17 14 Modo di funzionamento Avvia temporiz
174. di FB come istanza locale Nella dichiarazione di variabili deve essere dichiarata TEST_L VAR TEST_L TEST END_VAR Il parametro d uscita CONTROL pu essere letto come segue L accesso al parametro d uscita avviene tramite RISULTATO TEST_L CONTROL Esempio 16 5 Risultato di un richiamo di FB come istanza locale SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 3 Richiamo di funzioni Valore di ritorno SCL per S7 300 400 C79000 G7072 C522 01 Contrariamente ai blocchi funzionali le funzioni forniscono come risultato un valore di ritorno Per tale motivo le funzioni possono essere trattate come operandi Fa eccezione la funzione con il valore di ritorno del tipo VOID P es nella seguente assegnazione di valore la funzione DISTANZA viene richiamata con determinati parametri LUNGHEZZA DISTANZA X1 3 Yl 2 Il valore di ritorno DISTANZA La funzione calcola il valore di ritorno che ha lo stesso nome della funzione e lo trasmette nuovamente al blocco richiamante Qui il valore sostituisce il richiamo della funzione Il valore di ritorno pu essere utilizzato nei seguenti elementi di una FC o di un FB e inun assegnazione di valore e inun espressione logica aritmetica o di confronto e come parametro per un ulteriore richiamo di blocco funzionale funzione Fanno eccezione le funzioni di tipo VOID Esse non possiedono alcun
175. di dati it Tipo caratteri ikk gt Tipo di dati numerici L Tipo di tempo m BOOL Bit BYTE Byte gt WORD Parola DWORD Doppia parola gt CHAR Espressione Il STRING D n 1 gt max lunghezza stringa Default 254 INT Integer gt DINT Integer doppia precisione gt Numero in virgola mobile SCL per S7 300 400 C79000 G7072 C522 01 Regole sintattiche Tabella C 4 Sintassi dei tipi di dati nella parte dichiarazioni Regola Tipo di tempo DATE _AND_TIME Specificazione tipo di dati ARRAY Specificazione tipo di dati STRUCT Non dimenticare di met tere un punto e virgola dopo la parola chiave END_STRUCT SCL per S7 300 400 C79000 G7072 C522 01 Diagramma sintattico S5TIME Tempo formato S5 TIME Tempo TIME_OF_DAY Ora del giorno TOD gt Data vedere anche capitolo B 1 1 m DATE_AND_TIME Indicazione della data Indicazione dell ora A DT Specificazione indice Ce delete max 5 ripetizioni 6 dimensioni Specificazione OF tipo di dati gt STRUCT Dichiarazione END_STRUC componenti Regole sintattiche Tabella C 4 Sintassi dei tipi di dati nella parte dichiarazioni Regola Dichiarazione componenti Diagramma sintattico Specificazione Inizializzazione e IDENTIFICATOR
176. di sistema della CPU Il contenuto di questi temporizzatori viene aggiornato in modo asincrono rispetto al programma utente dal sistema operativo Con istruzioni STEP 7 viene definita la funzione dettagliata della cella di tempo p es ritardo all inserzione e viene avviata la sua elaborazione Start Un terminale un elemento base di una regola lessicale o sintattica il quale non viene dichiarato con un un ulteriore regola ma solo verbalmente Un terminale pu essere p es una parola chiave o solo un singolo carattere Con l ausilio del tipo di dati si definisce in che modo il valore di una variabile o costante deve essere utilizzato in un programma utente In SCL l utente dispone di tre tipi di dati e Tipi di dati semplice e Tipo di dati composto e Tipi di dati definiti dall utente UDT Si distingue fra strutture e campi Le strutture vengono composte con diversi tipi di dati p es tipi di dati semplici I campi si compongono di diversi elementi di uno stesso tipo di dati Anche i tipi di dati STRING e DATE_AND_TIME sono tipi di dati composti I tipi di dati definiti dall utente UDT vengono creati dall utente con la dichiarazione dei tipi di dati Essi possiedono un nome proprio e possono essere utilizzati pi volte In tal modo un tipo di dati definito dall utente pu essere utilizzato per generare diversi blocchi dati con identica struttura p es regolatore I tipi di dati semp
177. dura di autorizzazione Se sul disco fisso si verifica un errore prima di poter salvare l autorizzazione presente su di esso si prega di contattare la propria rappresentanza SIEMENS 3 3 Installazione del software 3 2 Installazione disinstallazione del software SCL Panoramica Preparazioni Avvio del programma di installazione Se gi stata installata una versione SCL 3 4 SCL contiene un programma di Setup che esegue automaticamente l installazione Sullo schermo appaiono richieste di introduzione dati che guidano l utente passo passo nel corso dell intera installazione Prima di poter iniziare l installazione si deve avviare Windows 95 e caricare il pacchetto base STEP 7 Procedere come segue 1 Sotto Windows 95 avviare il dialogo per l installazione del software facendo doppio clic sul simbolo Installazione applicazioni nel Pannello di controllo 2 Fare clic su Installa 3 Inserire il supporto dati dischetto 1 o il CD ROM e fare clic su Continua Windows 95 ricerca ora automaticamente il programma di installazione SETUP EXE 4 Seguire ora passo passo le istruzioni visualizzate dal programma di installazione Il programma guida l utente attraverso il processo di installazione L utente pu passare al passo successivo o al passo precedente Se il programma di installazione constata che il sistema di origine contiene gi un installazione SCL viene vi
178. durante lo scorrimento del tempo In seguito a questo cambio anche il valore del tempo e la base di tempo vengono resettate a zero Lo stato del segnale 1 all ingresso R non rilevante se il temporizzatore non in funzione Interroga stato Finch il temporizzatore in funzione un interrogazione dello stato del del segnale segnale 1 all ingresso Q fornisce il risultato 1 In caso di fine del tempo di esecuzione prima del tempo previsto un interrogazione dello stato del segnale all ingresso Q fornisce il risultato 0 Interroga valore Il valore del tempo attuale pu essere interrogato all uscita BI tramite il del tempo attuale valore della funzione S_PULSE SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori 17 2 3 Avviamento del temporizzatore come impulso prolungato Descrizione Il segnale d uscita per il tempo programmato t rimane ad 1 indipendentemente dal tempo in cui il segnale d ingresso rimane a 1 Una nuova risoluzione dell impulso di avvio causando un nuovo scorrimento del tempo ritarda anche l impulso d uscita post attivazione La figura 17 4 illustra die modo di funzionamento del temporizzatore Avvia temporizzatore come impulso prolungato Segnale E 2 1 d ingresso Segnale d uscita A4 0 S PEXT gt Temporizzatore fa_t _ come impulso prolungato Figura 17 4 Temporiz
179. dynamic true false il parametro deve o non deve essere dinamicizzabile in IN OUT IN_OUT solo in CFC durante l esecuzione del test FB FC S7_param true false il parametro deve o non deve essere parametrizzabile in IN IN_OUT solo in FB FC CFC SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL Assegnazione di Gli attributi di sistema per parametri vengono assegnati nei blocchi convenzioni attributi parametri di ingresso parametri di uscita o parametri di transito Esempio VAR_INPUT inl S7_server alarm_archiv S7_a_type ar_send DWORD END_VAR SCL per S7 300 400 C79000 G7072 C522 01 8 9 Struttura di sorgenti SCL 8 5 Parte istruzioni Panoramica Sintassi Cosa occorre tener presente La parte istruzioni contiene istruzioni e che devono essere eseguite dopo il richiamo di un blocco di codice Queste istruzioni servono per definire dati o indirizzi e per l impostazione di singoli valori nei blocchi dati La figura 8 8 illustra la sintassi della parte istruzioni Si compone della ripetizione di istruzioni singole e in cui prima di ogni istruzione vi pu essere come opzione un etichetta di salto vedere capitolo 11 6 che la destinazione di un istruzione di salto Parte istruzioni Identificatore E J Istruzione H sa gt ij Etichetta di salto Figura 8 8 Sintassi della parte istruzioni Sono istruzioni valide p es
180. e del blocco 1 parametri d ingresso attuali trasferiti sono immutati i parametri d ingresso di transito trasferiti ma modificati sono aggiornati Fanno eccezione i parametri di transito di un tipo di dati semplici vedere in tal senso il capitolo 16 2 3 1 parametri d uscita del blocco richiamante possono essere letti dal blocco dati di istanza locale Vedere in tal senso l esempio 16 3 SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 2 2 Assegnazione d ingresso FB Principio Mediante assegnazioni d ingresso vengono assegnati ai parametri d ingresso formali dei parametri attuali LFB non pu modificare questi parametri attuali L assegnazione di parametri d ingresso attuali opzionale Se non viene indicato alcun parametro attuale i valori dell ultimo richiamo rimangono immutati Assegnazione d ingresso Parametro attuale Espressione E IDENTIFICAZIONE TEMPORIZZATORE IDENTIFICATORE H je Db 7 IDENTIFICAZIONE Nome di parametro del CONTATORE parametro d ingresso Parametro formale IDENTIFICAZIONE BLOCCO Figura 16 8 Sintassidell assegnazione d ingresso Possibili parametri Nelle assegnazioni d ingresso sono possibili i seguenti parametri attuali attuali Tabella 16 2 Parametri attuali nelle assegnazioni d ingresso Parametri attuali Spiegazione Espressione e Espressione aritmetica logica o di con
181. e di base descritto nel manuale utente 234 Questo manuale tratta gli argomenti sotto descritti e Il capitolo 1 contiene informazioni generali sulla programmazione con SCL e Il capitolo 2 descrive sulla base di un esempio pratico la progettazione di un programma che potr poi essere eseguito e I capitoli 3 6 descrivono l ambiente di progettazione di SCL L utente apprende l uso di Editor Compiler e Debugger di SCL e capitoli 7 19 contengono testi di consultazione che intendono fornire dettagliate informazioni sulle singole istruzioni di SCL In appendice vengono descritti e L intera rappresentazione della sintassi di SCL e Un glossario in cui vengono spiegati importanti termini specifici e Un indice analitico che aiuta l utente a reperire rapidamente i passaggi del testo concernenti determinati argomenti specifici I riferimenti ad altra documentazione vengono indicati da un numero racchiuso tra due barre In base a questo numero nella bibliografia nell appendice D possibile risalire al titolo del manuale Per ulteriori informazioni sull uso del software che non sono contenute nella documentazione su carta o nella guida online rivolgersi al personale di assistenza presso le filiali e le rappresentanze Siemens Gli indirizzi si trovano nell appendice di 70 e di 100 nei cataloghi e nel Compuserve go aut forum Inoltre sempre a disposizione del cliente la nostra hotline Tel 49 911 895
182. e di blocchi S7 File Visualizza D Osa g ee Csm x e e 4 Premere F1 per la Guida di Figura 4 2 Componenti della finestra SCL Come operare con SCL Modifica dei componenti Adattamento della barra degli strumenti Adattamento della barra dei punti d arresto Adattamento della riga di stato Adattamento dell ambiente di sviluppo Creazione dei blocchi Adattamento del compilatore Adattamento dell editor 4 4 I seguenti componenti possono essere adattati conformemente alle esigenze personali dell utente e Visualizzazione della barra degli strumenti e Visualizzazione della barra dei punti d arresto e Visualizzazione della riga di stato La visualizzazione della barra degli strumenti pu essere inserita o disinserita A tal fine si deve attivare o disattivare il comando di menu Visualizza gt Barra degli strumenti Un segno di spunta dietro il comando di menu indica se il comando momentaneamente attivato o non possibile attivare o disattivare anche la visualizzazione della barra dei punti d arresto A tal fine attivare o disattivare il comando di menu Visualizza Barra dei punti d arresto Un segno di spunta dietro il comando di menu indica se il comando momentaneamente attivato o non Anche la visualizzazione della riga di stato pu essere attivata o disattivata A tal fine si deve
183. e espressioni di confronto CONTATORE lt 100 SOR A gt 0 005 Risposta 0 SALDO gt RIPORTO CARICATI Seguono alcuni esempi per l impiego di espressioni di confronto con operatori logici CONTATORE lt 100 AND CH1l lt SALDO lt 100 0 OR STATUS R Risposta lt 0 OR Risposta gt 5 0 AND RISPOSTA lt 10 0 Avvertenza Si osservi che gli operandi logici qui espressioni di confronto sono riportati fra parentesi per evitare diverse interpretazioni sulla sequenza durante la valutazione SCL per S7 300 400 C79000 G7072 C522 01 15 3 Istruzioni di controllo 15 2 Istruzione IF Principio L istruzione IF un istruzione condizionata Essa consente una o pi opzioni e seleziona una delle sue parti istruzioni se necessario nessuna per l esecuzione Istruzione IF cn O ny Espressione THEN ui Condizione Condizione 7 i ELSIF j Espressione THEN Da o Figura 15 1 Sintassidell isti Parte istruzioni ruzione IF L esecuzione delle istruzioni condizionate causa la valutazione dell espressione logica indicata Se il valore di un espressione TRUE la condizione viene considerata soddisfatta se il valore FALSE la condizione non soddisfatta Esecuzione L istruzione IF viene elaborata in base alle seguenti regole 1 Se il valore della prima espressione TRUE viene eseguit
184. e nella descrizione delle rispettive funzioni standard I nomi con i corrispondenti tipi di dati per tutte e 5 le funzioni di temporizzazione sono contenuti nella tabella 17 8 In generale si distinguno i seguenti tipi di parametri e Parametri di controllo p es impostazione resettaggio e Valore di preimpostazione per il tempo di avvio e Uscita di stato indica se il temporizzatore ancora in funzione e Valore di tempo residuo in forma binaria Tabella 17 8 Parametri di richiamo Parametro Tipo di Descrizione dati T_NO TIMER Identificazione di tempo l area dipende dalla CPU S BOOL Ingresso di avvio TV SSTIME Preimpostazione valore di tempo formato BCD R BOOL Ingresso di resettaggio Q BOOL Stato del temporizzatore BI WORD Valore di tempo residuo binario Al termine dell esecuzione del richiamo illustrato nell esempio 17 4 un area di dati globale del tipo TIMER viene riservata con il nome T10 RITARDO S_ODT T_NO EEO S TRUE TV A T 1s R FALSE BI biVal Q iS actFlag Esempio 17 4 Richiamo di una funzione di conteggio all indietro 17 11 Contatori e temporizzatori Richiamo dinamico Regole 17 12 Durante il richiamo al posto del numero di temporizzatore assoluto p es T10 si pu anche indicare una variabile di tipo TIMER Ci presenta il vantaggio di poter organizzare in modo dinamico il richiamo del temporizzatore assegn
185. e ridotta a un numero di caratteri a scelta per poter meglio usufruire delle risorse della CPU Selezionare il comando di menu Impostazioni nel menu Strumenti e la scheda Compilatore nella finestra di dialogo successiva Immettere quindi nell opzione Lunghezza massima della stringa il numero desiderato di caratteri SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati 9 3 3 Tipo di dati ARRAY Panoramica Specificazione dell indice Specificazione del tipo dati SCL per S7 300 400 C79000 G7072 C522 01 Il tipo di dati ARRAY ha un numero fisso di componenti di un solo tipo di dati Nel diagramma sintattico 9 3 per ARRAY questo tipo di dati viene specificato pi dettagliatamente dopo la parola riservata OF SCL distingue e il tipo ARRAY a una dimensione Lista di elementi di dati ordinati in ordine crescente e il tipo ARRAY a due dimensioni Tabella di dati composta di righe e colonne La prima dimensione si riferisce al numero di riga e la seconda al numero di colonna e iltipo di ARRAY di dimensione superiore Estensione del tipo di ARRAY a due dimensioni che viene ampliato con ulteriori dimensioni Il numero max di dimensioni consentite 6 Specificazione del tipo di dati ARRAY pecificazionedell indice ARRAY D naeg OH naig 1 Q Specificazione T_B_ del tipo di dati gt Figura 9 3 Sintassi della specificazione del tipo di dati ARRAY Vengono descrit
186. egnazione di nomi in SCL A 11 Costanti predefinite e flag P A 1 Descrizione formale del linguaggio A 1 Panoramica Che cos un diagramma sintattico Quali tipi di blocchi esistono A 2 Nome della regola Sequenza Be Opzione Iterazione Figura A 1 aez Il diagramma sintattico una rappresentazione grafica della struttura del linguaggio La struttura viene descritta da una sequenza di regole Una regola pu anche basarsi su altre regole gi definite Blocco 3 Blocco 4 Blocco 5 ii Alternativa Esempio del diagramma sintattico Il diagramma sintattico viene letto da sinistra verso destra Si devono osservare le seguenti strutture delle regole e Sequenza sequenza di blocchi e Opzione diramazione saltabile e Iterazione ripetizione di diramazioni e Alternativa diramazione Un blocco un elemento base oppure un elemento che a sua volta si compone di blocchi La figura seguente illustra i tipi di simboli corrispondenti ai blocchi Terminale Sei Elemento base che non necessita di ulteriori spiegazioni Si tratta di caratteri stampabili e caratteri speciali parole chiave e identificatori predefiniti Le indicazioni concernenti questi blocchi devono essere immesse invariate Non terminale lt Nome della regola gt Nome della regola a piacere Elemento composto che viene descritto da ulteriori diagrammi sintattic
187. elaborazione o compilazione SCL per S7 300 400 C79000 G7072 C522 01 Programmare con SCL 5 2 Generazione e apertura di una sorgente SCL Panoramica Generazione della sorgente SCL Apertura di una sorgente SCL SCL per S7 300 400 C79000 G7072 C522 01 Le sorgenti generate con SCL possono essere integrate nella struttura di un programma S7 nel modo seguente Programma S7 Blocchi Blocco p es FB1 OB1 Sorgenti Sorgente p es sorgente SCL Simboli Figura 5 1 Struttura di un programma S7 nel SIMATIC Manager Per creare una sorgente SCL si deve procedere come segue I Selezionare il comando di menu File gt Nuovo o fare clic sul simbolo Nuovo nella barra degli strumenti Nella finestra di dialogo Nuovo selezionare il progetto desiderato e il contenitore di sorgenti SO nel corrispondente programma S7 Aprire il contenitore sorgente e selezionare il comando di menu Inserisci gt Software S7 gt Sorgente SCL Selezionare la sorgente e scegliere il comando di menu Modifica gt Propriet dell oggetto Nella scheda Generale introdurre il nome dell oggetto sorgente Il nome pu essere lungo max 24 caratteri Nei nomi delle sorgenti si tiene conto delle maiuscole e delle minuscole Fare doppio clic sulla sorgente Viene aperta una finestra vuota in cui possibile edit
188. ementi del set di caratteri ASCII Sono i caratteri principalmente utilizzati L IDENTIFICATORE si compone p es di lettere cifre e del trattino Tabella A 1 Lettere e cifre Carattere Sottogruppo Elementi del set di caratteri Lettera Caratteremaiuscolo A Z Carattere minuscolo a Z Cifra Cifradecimale 0 9 Cifraottale Cifraottale 0 7 Cifraesadecimale Cifraesadecimale 0 9 A F a f Bit Cifra binaria 0 1 Il set di caratteri ASCII ampliato e completo pu essere utilizzato in stringhe commenti e simboli Tabella A 2 Caratteri stampabili e caratteri speciali Carattere Sottogruppo Elementi del set di caratteri Caratterestampabile Dipende dal codice di carattere Tutti i caratteri stampabili utilizzato Per esempio nel codice ASCII a partire dall equivalente decimale 31 senza DEL e senza i seguenti caratteri sostitutivi Carattere sostitutivo Carattere del dollaro Apostrofo i Carattere di controllo P o p Rimpaginazione formfeed page L o 1 A capo automatico linefeed R o r Ritorno del carrello carriagereturn T o t Tabulatore Rappresentazione hh Qualsiasicarattere sostitutiva in codice rappresentabile in codice esadecimale esadecimale hh SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio A 4 Caratteri di formattazione separatori e operatori
189. emoria della CPU SCL per S7 300 400 C79000 G7072 C522 01 12 3 Definizione di dati globali 12 3 Accesso assoluto alle aree di memoria della CPU Principio Identificatore assoluto Identificazione di operando Prefisso di memoria L accesso assoluto alle aree di memoria della CPU avviene mediante assegnazione di valore di un identificatore assoluto ad una variabile dello stesso tipo STATUS_2 EB10 Accesso assoluto Variabile dello stesso tipo L identificatore assoluto fa riferimento ad un area di memoria all interno della CPU L utente pu specificare quest area indicando l identificazione di operando qui EB seguita dall indirizzo qui 10 L identificatore assoluto si compone di un identificazione di operando con prefissi di memoria e di dimensione nonch di un indirizzo Prefisso di dimensione B 10 Indirizzo Prefisso di memoria E Identificazione di operando La combinazione di prefisso di memoria e prefisso di dimensione forma l identificazione di operando Identificazione di operando Prefisso Prefisso Figura 12 2 Sintassi di un identificazione di operando Tramite il prefisso di memoria si definisce il tipo dell area di memoria da indirizzare Conformemente alla figura 12 3 sono disponibili i seguenti tipi Prefisso di memoria E Ingresso A Q Uscita N M M Merker gt PE PI Ingresso periferi
190. empi seguenti illustrano la formazione di espressione aritmetiche Supponiamo che i e j siano variabili di numeri interi con valori di 11 o 3 Nell esempio 13 3 riportato vengono illustrate alcune espressioni di numeri interi e i loro valori corrispondenti Espressione Valore i 8 Li 14 i aj 33 i DIV j 3 i MOD j 2 i j 3 Esempio 13 3 Espressioniaritmetiche Supponiamo che i e j siano variabili di numeri interi con valori di 3 o 5 In tal caso il risultato dell espressione aritmetica in base all esempio 13 4 cio il valore intero 7 viene assegnato alla variabile VALORE VALORI ina sid e de 2 IR L 539 Esempio 13 4 Espressioneartimetica SCL per S7 300 400 C79000 G7072 C522 01 Espressioni operatori e operandi 13 4 Esponenti Panoramica La figura 13 6 ha il compito di illustrare la formazione dell esponente in un espressione di potenza vedi capitolo 13 2 Si deve tener presente che l esponente pu essere formato anche con variabili ampliate Esponente gt Variabileampliata gt LEA DI CIFRE DECIMAL O SEQUENZA DI CIFRE DECIMALIJ Figura 13 6 Sintassi esponente VALOREMISURA 2 Espressione di potenza DIFFERENZA DB10 Espressione di potenza SOMMA xFC100 Espressione di potenza Esempio 13 5 Espressioni di potenza con vari esponenti SCL per S7 300 400 C79000 G
191. erativo per operazioni interne p es buffer di comunicazione Area di memoria nella memoria di sistema di una CPU S7 SIMATIC A quest area si pu accedere in lettura e scrittura a bit a byte a parola e a doppia parola L area merker pu essere utilizzata dall utente per memorizzare risultati intermedi Il mnemonico una rappresentazione abbreviata degli operandi e delle operazioni di programmazione in un programma p es E significa ingresso STEP 7 supporta la rappresentazione IEC che si basa sulla lingua inglese e la rappresentazione SIMATIC che si basa sulla rappresentazione tedesca delle operazioni e sulle convenzioni per l indirizzamento SIMATIC Glossario 7 Glossario Multiistanza N Non terminale Numero in virgola mobile O Offline Online Operando Operazione Parametri d ingresso parametri E Parametri di transito parametri D Parametri d uscita parametri A Glossario 8 Quando si utilizza la multiistanza il blocco dati di istanza contiene i dati di molti blocchi funzionali di una gerarchia di richiamo Un non terminale un elemento composto che viene descritto da un ulteriore regola lessicale o sintattica Un numero in virgola mobile un numero positivo o negativo contenente un valore decimale come p es 0 339 o 11 1 Offline indica lo stato di funzionamento in cui il dispositivo di programmazione non ha alcun collegamento con il sistema di automazi
192. ere eventuali divergenze non garantiamo una con cordanzatotale Il contenuto della presente documentazione viene comunqueverificato regolarmente e le correzioni o modifiche even tualmentenecessarie sono contenute nelle edizioni successive Sa remmo lieti di ricevere qualsiasi proposta di miglioramento Siemens AG 1998 Ci riserviamo eventuali modifiche Siemens Aktiengesellschaft 6ES7811 1CA02 8EA0 Prefazione Scopo del manuale Destinatari Validit del manuale Conformit alla norma IEC 1131 3 SCL per S7 300 400 C79000 G7072 C522 01 Lo scopo del presente manuale quello di aiutare l utente nella stesura di programmi utente nel linguaggio di programmazione SCL Vengono descritte le procedure fondamentali per la stesura di programmi con l editor SCL il compiler SCL e il debugger SCL Inoltre il manuale contiene una parte di riferimento sugli elementi linguistici del linguaggio di programmazione SCL Vengono descritte la sintassi e le modalit di funzionamento dei singoli elementi linguistici Il presente manuale si rivolge a programmatori che scrivono programmi 7 agli addetti alla messa in servizio ed al personale di servizio Il possesso di nozioni generali sulle tecniche di automazione facilita notevolmente il lavoro Il presente manuale valido per il software di programmazione STEP 7 Versione 3 0 Esso valido per il pacchetto STEP 7 Software di base SCL conforme al linguaggio Structure
193. erminale un elemento base che non viene spiegato con un ulteriore regola ma in modo verbale Nei diagrammi sintattici esso viene indicato con il simbolo seguente QO ET Il terminale viene rappresentato con un ovale o un cerchio Viene indicato direttamente il contenuto o il nome in caratteri maiuscoli Quest ultimo definisce la quantit dei caratteri ASCII utilizzabili Figura A 5 Simboli per terminali Nei capitoli A 3 fino a A 4 vengono illustrate le modalit d uso dei singoli caratteri Si tratta di e Lettere cifre caratteri stampabili e caratteri speciali e Caratteri di formattazione e caratteri di separazione nelle regole lessicali e Prefissi per literal e Caratteri di formattazione e caratteri di separazione nelle regole sintattiche e Operatori I capitoli A 5 e A 6 trattano parole chiave e identificatori predefiniti da stringhe di caratteri Le tabelle sono elencate in ordine alfabetico In caso di differenze fra il mnemonico SIMATIC e il mnemonico internazionale viene indicato anche il corrispondente mnemonico internazionale IEC e Parole chiave e identificatori predefiniti e Identificazioni di operandi e parole chiave di blocchi A 5 Descrizione formale del linguaggio A 3 Terminali delle regole lessicali Panoramica Lettere e cifre Caratteri stampabili e caratteri speciali A 6 Nelle tabelle seguenti i terminali sono specificati mediante indicazione della quantit degli el
194. esempi di accesso assoluto STATUSBYTE STATUS_3 Valoremisura Esempio 12 1 Accesso assoluto SCL per S7 300 400 C79000 G7072 C522 01 12 5 Definizione di dati globali 12 4 Accesso simbolico alle aree di memoria della CPU Principio Accesso Creazione della tabella dei simboli Esempi 12 6 L indirizzamento simbolico consente di utilizzare dei nomi simbolici al posto di identificatori assoluti per indirizzare le aree di memoria della CPU Simbolo Indirizzo Tipo di dati Commento assoluto Contatto motore E 1 7 BOOL Interruttore a contatto 1 per motore A Ingresso EW 10 INT Parola di stato d ingresso Byte di ingresso 1 EB 1 BYTE Byte di ingresso Ingresso 1 1 E LI BOOL Barrieraluminosa Canali di misura MW 2 REAL Buffer L assegnazione dei nomi simbolici ai singoli operandi del programma utente avviene mediante creazione di un apposita tabella dei simboli Come tipi di dati sono consentiti tutti i tipi di dati semplici purch essi siano in grado di recepire la larghezza di accesso L accesso avviene p es mediante assegnazione di valore ad una variabile dello stesso tipo con simbolico predefinito VALOREDIMISURA_1 Contatto motore 1 La creazione della tabella dei simboli e l introduzione dei valori nella tabella dei simboli avviene con STEP 7 La tabella dei simboli pu essere attivata con il SIMATIC Manager o direttamente con SCL tramite il com
195. esentati con un cerchio rosso sul margine sinistro della finestra Avviare l esecuzione a singoli passi selezionando il menu Test Punti d arresto attivi Risultato la finestra viene suddivisa in due in senso verticale e il programma viene avviato Inizia la ricerca del successivo punto di arresto Non appena raggiunto la CPU passa allo stato di funzionamento ALT mentre lo sfondo del punto di arresto rosso viene marcato in grigio Da qui in poi per l esecuzione in singoli passi sono disponibili le seguenti funzioni alternative Selezionare il comando di menu Test Esegui istruzione successiva 4a Risultato la CPU commuta allo stato di funzionamento RUN Dopo aver elaborato l istruzione immediatamente successiva si interrompe nuovamente e visualizza nella finestra risultati i valori delle variabili elaborati nell istruzione precedente Selezionare il comando di menu Test Continua 4b Risultato la CPU commuta allo stato di funzionamento RUN Dopo aver raggiunto il punto d arresto immediatamente successivo si interrompe nuovamente e visualizza nella finestra risultati il punto di arresto Per visualizzare i valori delle variabili selezionare nuovamente il comando di menu Test Esegui istruzione successiva Selezionare il comando di menu Test Esegui fino alla selezione 4c Nella posizione attuale della selezione viene implicitamente impostato ed attivato un punto di arresto La CPU commuta allo stato d
196. etrizzabile i parametri attuali con i cui valori il blocco lavora durante l esecuzione del programma Tutte le informazioni necessarie al riguardo sono descritte nel manuale di riferimento 235 Il manuale fornisce una panoramica delle funzioni disponibili in S7 e come informazioni a titolo di consultazione delle descrizioni dettagliate delle interfacce per l utilizzo nel proprio programma utente Le seguenti righe di comando consentono il richiamo della funzione di sistema SFC 31 Interroga allarme dall orologio FUNCTION_BLOCK FY20 VAR Risultato INT END_VAR BEGIN RISULTATO SFC31 OB_NR 10 STATUS MW100 END_FUNCTION_BLOCK Esempio 19 1 Interrogazione dell allarme dall orologio Risultati Il valore della funzione di tipo integer Se il suo valore gt 0 il blocco stato eseguito senza errori mentre se il valore lt 0 si verificato un errore Dopo il richiamo si pu analizzare il parametro d uscita ENO definito implicitamente Per un richiamo condizionato si deve impostare a 0 il parametro d ingresso EN predefinito p es tramite l ingresso E0 3 in questo caso il blocco non viene richiamato Se EN viene impostato a 1 la funzione viene richiamata In tal caso anche il parametro d uscita ENO viene impostato a 1 altrimenti a 0 se durante l elaborazione del blocco non si verifica alcun errore Avvertenza Nei blocchi funzionali o
197. ette e disposizione dell utente una serie di funzioni standard che possono essere richiamatie nei propri blocchi SCL Capitolo Argomento trattato Pagina 18 1 Conversione dei tipi di dati 18 2 18 2 Funzioni standard per la conversione dei tipi di dati 18 3 18 3 Funzioni standard numeriche 18 4 Funzioni standard su stringhe di bit 18 11 18 1 Funzioni standard SCL 18 1 Conversione dei tipi di dati Panoramica Conversione implicita dei tipi di dati 18 2 Quando si combinano fra loro due operandi con tipi di dati diversi o si assegnano espressioni a delle variabili nei singoli casi occorre tener conto della compatibilit dei tipi di dati Nei casi seguenti si ottengono risultati errati e quando si passa ad un altra classe p es da un tipo di dati bit a un tipo di dati numerico e nell ambito di una classe quando il tipo di dati di destinazione meno importante del tipo di dati sorgente Perci in tali casi si deve eseguire una conversione esplicita dei tipi di dati Per informazioni al riguardo si rimanda al capitolo 18 2 Se non si verificano i due casi suddetti il compilatore esegue una conversione implicita dei tipi di dati Di conseguenza tale operazione viene denominata conversione implicita dei tipi di dati Nell ambito delle classi di tipi di dati ausiliari definite nella tabella 18 1 il compilatore esegue una conversione implicita dei tipi di dati nella sequenza indi
198. ezionare una parola facendo doppio clic su di essa oppure e selezionare un intera riga facendo tre volte clic su di essa Cerca e sostituisci Con il comando di menu Modifica Cerca Sostituisci viene aperto una finestra di dialogo tramite la quale si pu cercare una stringa di caratteri e sostituirla con altri oggetti di testo SCL per S7 300 400 C79000 G7072 C522 01 4 5 Come operare con SCL Inserimento modelli Taglia Copia Inserisci Cancella Vai a Annulla Ripristina 4 6 L inserimento di modelli consente un efficiente programmazione e facilita l osservanza della sintassi In SCL si pu e Inserire modelli per blocchi selezionando il comando di menu Inserisci Modello di blocco e Inserire modelli per strutture di controllo selezionando il comando di menu Inserisci Struttura di controllo Si possono tagliare copiare inserire e cancellare oggetti di testo nel modo consueto I corrispondenti comandi di menu sono contenuti nel menu Modifica In genere si possono spostare o copiare oggetti anche mediante trascinare e rilasciare Drag amp Drop Il comando di menu Modifica Vai a consente di aprire una finestra di dialogo che permette di posizionare il cursore all inizio della riga desiderata dopo aver indicato il numero della riga e confermato con OK Il comando di menu Modifica Annulla consente di annullare un azione come ad esempio la cancellazione di una riga Il
199. finizione di variabili locali e parametri di 1 0 blocco Panoramica Le variabili locali e i parametri di blocco sono dati che vengono definiti nell ambito di un blocco di codice FC FB OB e che sono validi solo per questo blocco di codice Il presente capitolo contiene informazioni sulla definizione e l inizializzazione di questi dati Sommario del Capitolo Argomento trattato Pagina capitolo oi Panoramica 10 2 Dichiarazione di variabili e parametri 10 3 Inizializzazione 10 4 Dichiarazione di istanza 10 7 10 5 Variabilistatiche 10 8 10 6 Variabili temporanee 10 9 10 7 Parametri di blocco 10 8 Flag Flag OK 10 12 SCL per S7 300 400 C79000 G7072 C522 01 10 1 Convenzione di variabili locali e parametri di blocco 10 1 Panoramica Suddivisione delle variabili Suddivisione dei parametri di blocco Flag Flag OK 10 2 Le variabili locali possono essere suddivise nelle seguenti categorie conformemente alla tabella 10 1 Tabella 10 1 Variabililocali Variabile Significato Variabilistatiche Le variabili statiche sono variabili locali il cui valore rimane immutato ad ogni esecuzione del blocco memoria del blocco Esse servono per memorizzare i valori di un blocco funzionale e vengono depositate nel blocco dati di istanza Variabili temporanee Le variabili temporanee fanno parte di un blocco di codice e non occupano alcuna area di memoria statica poich esse vengono
200. flusso di ANALISI SCL per S7 300 400 C79000 G7072 C522 01 La figura 2 15 illustra l algoritmo in forma di un diagramma di flusso ANALISI Blocco funzionale Inizio Inizio della istruzione REPEAT scambiare FALSE Inizio della istruzione FOR lis LIMITE significa indice no bufferordinamento l 1 5 bufferordinamentolI Scambiare i valori di bufferordinamento l 1 e bufferordinamento I SCAMBIARE TRUE Fine della istruzione FOR Fine della TRUE istruzione REPEAT scambiare 4 Inizio della istruzione FOR no Trascrivere i risultati nel campo risultati strutturato Trascrivere i risultati nel campo risultati strutturato Fine della istruzione FOR Figura 2 15 Algoritmo per l analisi dei valori di misura 2 19 Sviluppo di programmi SCL Parte istruzioni di La figura 2 16 illustra la formulazione del diagramma 2 15 rappresentato nella ANALISI figura in SCL cio la parte istruzioni del blocco di codice BEGIN E Parte T Ordinamento KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKAKAKAKA in base al metodo Bubble Sort scambiare in coppia i valori fino all ordinamento del buffer valori di misura REPEAT scambiare FALSE FOR index LIMITE TO 1 BY 1 DO IF bufferordinamento index 1 gt bufferordinamento index THEN hilf bufferordinamento index bufferordinamento index b
201. fronto e Costante e Variabileampliata Identificazione Definiscono un determinato temporizzatore o contatore il quale viene TEMPORIZZATORE utilizzato per l elaborazione di un blocco vedere anche capitolo 17 ICONTATORE Identificazione del Definiscono un determinato blocco il quale viene utilizzato come BLOCCO parametro d ingresso Il tipo di blocco FB FC DB viene definito nella dichiarazione del parametro d ingresso Nell assegnazione di parametri si deve indicare il numero del blocco Si pu indicare sia il numero assoluto che quello simbolico vedere anche capitolo 9 SCL per S7 300 400 C79000 G7072 C522 01 16 7 Richiamo di funzioni e blocchi funzionali 16 2 3 Assegnazione di transito FB Principio Parametri attuali di un assegnazione di transito 16 8 Le assegnazioni di transito vengono usate per assegnare parametri attuali ai parametri di transito formali dell FB richiamato Contrariamente al parametro di ingresso 1 FB richiamante pu modificare i parametri di transito Il nuovo valore del parametro creato durante l elaborazione dell FB viene registrato nuovamente nel parametro attuale Il valore originale viene sovrascritto Se nell FB richiamato sono stati definiti dei parametri di transito questi devono essere alimentati durante il primo richiamo Nelle esecuzioni successive l indicazione dei parametri attuali opzionale Assegnazione di transito Va
202. gio all indietro Counter Down e Contatori di conteggio in avanti e all indietro Counter Up Down Le funzioni di conteggio vengono richiamate in modo analogo alle funzioni L identificazione di funzione pu essere impiegata ovunque al posto di un operando in un espressione a condizione che il tipo di risultato della funzione sia compatibile con il tipo dell operando sostituito Tabella 17 1 Nomi delle funzioni di conteggio Nome della funzione Significato S_CU Contatore in avanti Counter Up S_CD Contatore all indietro Counter Down S_CUD Contatore in avanti e all indietro Counter Up Down Il valore della funzione valore di ritorno che viene ritorato al punto di richiamo il valore di conteggio attuale formato BCD del tipo WORD Per ulteriori informazioni al riguardo si rimanda al capitolo 17 1 1 SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori Parametri di La tabella 17 2 contiene i parametri di richiamo con la loro identificazione ed il loro richiamo significato per tutte e 3 le funzioni di conteggio In generale si distinguono i seguenti tipi di parametri e Parametri di controllo p es impostare resettare indicare il senso del conteggio e Valore di preimpostazione per uno stato del contatore e Uscita di stato indica se stato raggiunto uno stato finale del contatore e Stato del contatore in forma binaria Tabella 17 2 Parametro di richiamo Pa
203. gni indice deve essere un espressione aritmetica del tipo di dati INT e Perun accesso con tipo di dati BYTE WORD o DWORD si deve utilizzare esattamente un indice L indice viene interpretato come indirizzo a byte La larghezza di accesso viene definita tramite il prefisso di dimensione e In caso di accesso con tipo di dati BOOL si devono utilizzare due indici Il primo indice specifica l indirizzo a byte mentre il secondo indice specifica la posizione del bit all interno del byte STATUS_1 DW CONTATORE STATUS_2 DW WNR NBIT STATUS_1 datil DW CONTATORI STATUS_2 dati2 DW WNR NB STATUS_l TO_BLOCK_DB INDI DW CONTATORI Esempio 12 5 Accesso indicizzato 12 11 Definizione di dati globali 12 9 Accesso strutturato ai blocchi dati Principio Esempi 12 12 L accesso strutturato avviene mediante un assegnazione di valori ad una variabile dello stesso tipo TEMPO_1 DB11 ORA Variabilesemplice Identificazione di DB Variabile dello stesso tipo Per far riferimento ad una variabile nel blocco dati sufficiente indicare il nome del DB e separato da un punto il nome della variabile semplice La relativa sintassi viene descritta nella figura 12 6 Per variabile semplice qui si intende una variabile alla quale nella dichiarazione DB stato assegnato un tipo di dati semplici o composti Nella parte dichiarazioni dell FB10 VAR Risultato STRUCT ERGI IN
204. guenti elementi del linguaggio SCL e Struttura e impiego dei vari tipi di blocchi SCL e Richiamo dei blocchi con trasferimento e analisi dei parametri e Vari formati d ingresso uscita e Programmazione con tipi di dati semplici e campi e Inizializzazione delle variabili e Strutture del programma con impiego di diramazioni e loop Il programma esempio pu essere eseguito con SIMATIC S7 300 o SIMATIC S7 400 a tal fine necessaria la seguente periferia e un unit d ingresso con 16 canali e un unit di uscita con 16 canali Il programma concepito in modo tale da poter essere rapidamente testato tramite gli interruttori sull unit d ingresso e gli elementi di visualizzazione sull unit di uscita Per l esecuzione di un test dettagliato utilizzare le funzioni di test di SCL vedere capitolo 6 Oltre ai vantaggi del linguaggio l utente ha a disposizione di tutte le funzioni che offre il pacchetto STEP 7 SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL 2 2 Descrizione del problema Panoramica Rilevazione dei valori di misura Elaborazione dei valori di misura SCL per S7 300 400 C79000 G7072 C522 01 I valori di misura devono essere rilevati ordinati ed elaborati tramite l unit d ingresso Il campo dei valori di misura va da 0 a 255 E pertanto necessario per l introduzione un byte Come funzioni di elaborazione si devono utilizzare le funzioni di radice e quadrato I
205. he descrivono il volume di prestazioni delle varie CPU S7 300 Fra queste ultime vi sono anche i possibili eventi di avvio per ogni OB 100 Manuale Sistemi di automazione S7 400 M7 400 Configurazione Questo manuale contiene i dati tecnici che descrivono il volume di prestazioni delle varie CPU S7 400 Fra queste ultime vi sono anche i possibili eventi di avvio per ogni OB 19 3 SCL per S7 300 400 C79000 G7072 C522 01 Appendici Descrizione formale del linguaggio D gt Regole lessicali Regole sintattiche Bibliografia SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio Descrizione del linguaggio SCL Sommario dell appendice SCL per S7 300 400 C79000 G7072 C522 01 I diagrammi sintattici costituiscono la base per la descrizione del linguaggio nei singoli capitoli Tali diagrammi forniscono una panoramica della struttura sintattica ossia grammaticale di SCL Gli appendici B e C contengono un elenco completo di tutti i diagrammi con gli elementi linguistici Capitolo Argomento trattato Pagina A l Panoramica A2 Panoramica dei terminali A 5 A 3 Terminali delle regole lessicali A 6 A4 Caratteri di formattazione separatori e operatori AS Parole chiave e identificatori predefiniti A 6 Identificazioni di operandi e parole chiave di blocchi A 13 A 7 Panoramica dei non terminali A 15 A 8 Panoramica dei token A 15 A 9 Identificatori A 10 Ass
206. i Token lt Nome della regola gt Nome della regola sempre in caratteri maiuscoli Elemento composto che nelle regole sintattiche viene utilizzato come elemento base e viene illustrato nelle regole lessicali Figura A 2 Tipi di simboli dei blocchi SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio Regole Le regole che possono essere utilizzate per creare il programma utente SCL sono suddivise in regole lessicali e regole sintattiche Regole lessicali Le regole lessicali descrivono la struttura degli elementi token che vengono elaborati durante l analisi lessicale del compilatore Perci la modalit di scrittura non in formato libero cio le regole devono essere rigorosamente rispettate Ci significa in modo particolare e non consentito inserire caratteri di formattazione e non consentito inserire commenti al blocco e alla riga e non consentito inserire attributi per gli identificatori IDENTIFICATORE Q Lettera C l Lettera jY Trattino Trattino Figura A 3 Esempio di regola lessicale L esempio illustra la regola lessicale IDENTIFICATORE Essa descrive la struttura di un identificatore nome p es CAMPO_MIS_12 VALORERIF_B_1 Regole sintattiche Sulla base delle regole lessicali le regole sintattiche descrivono la struttura di SCL Nell ambito di tali regole l utente pu creare il proprio program
207. i Se si desidera utilizzare indirizzi simbolici per aree di memoria della CPU oppure per nomi di blocchi si deve creare una tabella dei simboli in cui vengono memorizzati questi nomi SCL accede a questa tabella durante la compilazione La creazione della tabella dei simboli e l assegnazione dei valori in essa avviene con STEP 7 L utente pu aprire la tabella con il SIMATIC Manager o direttamente con SCL tramite il comando di menu Strumenti Tabella dei simboli Inoltre vi la possibilit di importare e modificare le tabelle che si trovano in forma di file di testo e che possono esser state create con un editor di testo a piacere Per maggiori informazioni consultare 231 Per poter creare un programma utente in SCL si deve dapprima generare una sorgente SCL In questa sorgente si possono editare e quindi compilare uno o pi blocchi OB FB FC DB e UDT con un esecuzione batch In seguito alla compilazione della sorgente i blocchi in essa contenuti vengono trasferiti nel contenitore Programma utente lt AP off gt vedere figura 5 1 dello stesso programma S7 in cui memorizzata anche la sorgente Le operazioni di generazioni e editazione della sorgente SCL possono essere eseguite con l editor integrato o con un editor standard Le sorgenti che sono state generate con un editor standard devono essere importate nel progetto con il SIMATIC Manager Dopodich esse possono essere aperte e soggette a ulteriore
208. i La suddivisione del programma utente avviene in modo funzionale oppure conformemente alla struttura tecnologica dell impianto Come protezione di blocco viene definita la possibilit di proteggere blocchi singoli contro la decompilazione se la compilazione della sorgente del blocco stata eseguita con la parola chiave KNOW_HOW_PROTECTED Con questa funzione in determinati punti del programma si pu portare l unit centrale CPU nello stato di funzionamento ALT Quando viene raggiunto un punto d arresto si possono eseguire le funzioni di test come p es elaborazione passo passo dei comandi oppure comando controllo di variabili In STEP 7 all interno della CPU l indicazione di temporizzatori e contatori avviene solo in formato BCD BCD significa Codice binario per cifre decimali Il livello di regole superiore relativo alla descrizione formale del linguaggio SCL si compone di regole sintattiche Per il loro impiego esiste libert di formato ovvero p es si possono inserire spazi e caratteri di controllo Il livello di regole inferiore relativo alla descrizione formale del linguaggio SCL si compone di regole lessicali Per il loro uso non esiste libert di formato ovvero l integrazione con spazi e caratteri di controllo p es non consentita Avvio di un blocco nel programma utente STEP 7 in linea di massima i blocchi organizzativi vengono richiamati dal sistema operativo tutti gli altri blocchi
209. i e blocchi dati di istanza L accesso ai dati di un qualsiasi blocco dati avviene sempre nel modo seguente e semplice o assoluto e indicizzato e strutturato La figura 12 6 contiene una panoramica dei vari tipi di accesso Accesso assoluto al DB p Identificazione dioperand _ indirizzo Accesso indicizzato al DB indice TORA E i Identificazione di operando i _Esrggggone a Accesso strutturato al DB MnD Variabile gt Identificazione del DB se Figura 12 6 Sintassi dei tipi di accesso ai blocchi dati SCL per S7 300 400 C79000 G7072 C522 01 Definizione di dati globali 12 7 Accesso assoluto ai blocchi dati Principio Accesso Prefisso di dimensione SCL per S7 300 400 C79000 G7072 C522 01 L accesso assoluto a un blocco dati avviene in modo analogo all accesso alle aree di memoria della CPU mediante assegnazione di un valore ad una variabile dello stesso tipo Dopo l introduzione dell identificazione DB segue la parola chiave D con indicazione del prefisso di dimensione p es X per BIT e l indirizzo a byte p es 13 1 STATUS_5 DB11 DX13 1 Indirizzo Prefisso di dimensione Identificazione DB Variabile dello stesso tipo L accesso viene specificato indicando l identificazione DB insieme con il prefisso di dimensione e l indirizzo vedere figura 12 7 Accesso assoluto al DB Ildentificazionedi DB assoluto ___
210. i token che vengono elaborati durante l analisi lessicale del compilatore Perci il modo di scrittura non ha un formato libero ma si devono rispettare rigorosamente determinate regole Ci significa in particolare Non consentito inserire caratteri di formattazione Non si possono inserire commenti a una riga e a pi righe Non si possono inserire attributi per gli identificatori Le regole lessicali sono suddivise nei gruppi seguenti Identificatori Literal Indirizzamento assoluto B 1 Regole lessicali B 1 ldentificatori Tabella B 1 Regola IDENTIFICATORE IDENTIFICAZIONE BLOCCO Identificatori Diagramma sintattico 0 Lettera _ i Trattino Trattino Lettera Cifra La regola vale anche per i seguenti nom IDENTIFICAZIONE DB IDENTIFICAZIONE FB IDENTIFICAZIONE FC IDENTIFICAZIONE OB Parola chiave gt del blocco DB FB FC OB UDT IDENTIFICAZIONE UDT m IDENTIFICATORE H Numero IDENTIFICAZIONE TEMPORIZZATORE E inmnemonico SIMATIC e IEC IDENTIFICATORE E Simbolo H gt Numero y gt SCL per S7 300 400 C79000 G7072 C522 01 Regole lessicali Tabella B 1 Identificatori Regola IDENTIFICAZIONE CONTATORE Parola chiave del blocco Simbolo Numero SCL per S7 300 400 C79000 G7072 C522 01 Diagramma sintattico
211. i assegnano parametri attuali ai parametri formali Parametri formali Parametri attuali E_Par lt 3 Assegnazione d ingresso D_Par lt LUNGHEZZA Assegnazione di transito Figura 16 6 Assegnazione di valori nella lista dei parametri I parametri di uscita non vengono indicati durante il richiamo di un FB bens dopo il richiamo di esso La sintassi dell indicazione dei parametri di FB identica per istanze globali e locali Parametri FB Assegnazione d ingresso Assegnazione di transito CHO Figura 16 7 Sintassi peri parametri di FB Un richiamo con un assegnazione di un parametro d ingresso e di un parametro di transito potrebbe avere p es l aspetto seguente FB31 DB77 E_ Par 3 D_Par LUNGHEZZA Per l alimentazione dei parametri valgono le regole seguenti e La sequenza delle assegnazioni irrilevante e I tipi di dati dei parametri formali e attuali devono coincidere e Le singole assegnazioni sono separate fra loro mediante virgole e Le assegnazioni d uscita non sono consentite nei richiami di FB Il valore di un parametro d uscita definito in precedenza memorizzato nei dati di istanza Ad esso si pu accedere da qualsiasi FB Per poterlo leggere da un FB l utente deve definire un apposito accesso vedere capitolo 14 8 16 5 Richiamo di funzioni e blocchi funzionali Risultato dopo il richiamo 16 6 Dopo l esecuzion
212. i assoloute o di operandi per dati globali del sistema p es EB EW ED AB AW AD MB MD La tabella A 12 indica in quali casi l utente pu indicare nomi corrispondenti alla regola IDENTIFICATORE Tabella A 12 Uso di IIENTIFICATORE IDENTIFICA Descrizione Regola TORE Nome del blocco Nome simbolico per blocchi IDENTIFICAZIONE BLOCCO richiamo di funzione Nomi per Nome simbolico per temporizzatori e IDENTIFICAZIONE temporizzatori e contatori TEMPORIZZATORE contatori IDENTIFICAZIONE CONTATORE Nome di attributo Nome per un attributo Assegnazione di attributo Nome di costante Dichiarazione costante simbolica impiego Blocco costanti costante Etichetta di salto Dichiarazione di etichetta di salto impiego etichetta di salto Parte istruzioni del blocco etichette di salto istruzione GOTO Nome di variabile Dichiarazione di variabile temporanea o statica Dichiarazione di variabile Variabilesemplice Variabilestrutturata Nome di istanza locale Dichiarazione di istanza locale Dichiarazione di istanza nome di richiamo di FB SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio IDENTIFICAZIONE La regola IDENTIFICAZIONE BLOCCO un caso in cui IDENTIFICATORE e BLOCCO simbolo possono essere impiegati in modo alternativo IDENTIFICAZIONE BLOCCO Parola chiave N gt del blocco Numero DB FB FC OB
213. i del blocco in cui stata dichiarata lavariabile Parametri delblocco Parametri del blocco sono parametri formali di un blocco funzionale o di una funzione Si tratta di variabili locali che servono per trasferire i parametri attuali indicati al momento del richiamo SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Dati utente globali Aree di memoria di una CPU SCL per S7 300 400 C79000 G7072 C522 01 I dati utente globali sono dati risp aree di dati che possono essere utilizzati in qualsiasi parte del programma A tal fine si devono creare blocchi dati DB Quando si crea un DB la sua struttura viene definita in un apposita convenzione Al posto di una convenzione di struttura si pu anche utilizzare un tipo di dati definito dall utente UDT La sequenza in cui l utente introduce i componenti della struttura determina la sequenza dei dati nel DB Alle aree di memoria di una CPU si pu accedere tramite gli identificatori di operandi vedere capitolo 7 5 direttamente da un punto qualsiasi del programma senza dover prima definire queste variabili Si ha inoltre la possibilit di indirizzare queste aree di memoria anche simbolicamente In tal caso l assegnazione dei simboli avviene in modo globale nella tabella dei simboli in STEP 7 Per ulteriori informazioni al riguardo si rimanda a 231 7 15 Terminologia generale SCL 7 9 Espressioni Panoramica Espressione
214. i delle variabili e dei parametri di quest area vengono visualizzati in sequenza cronologica e aggiornati ciclicamente Se l area di controllo si trova in una parte di programma che viene eseguita in ogni ciclo in genere i valori delle variabili non possono essere rilevati da cicli che si susseguono I valori che hanno subito una modifica nella fase attuale di esecuzione vengono visualizzati in nero mentre quelli rimasti invariati vengono visualizzati con caratteri grigio chiaro Il volume delle istruzioni da testare dipende dalla potenza di elaborazione della CPU collegata Poich le istruzioni SCL del codice sorgente vengono convertite in numerose istruzioni nel programma utente la lunghezza dell area di controllo variabile e viene determinata e selezionata dal debugger SCL quando viene selezionata la prima istruzione dell area di controllo desiderata Durante il test con il modo Controlla continuativamente vengono interrogati e visualizzati i valori attuali dei dati dell area di controllo L interrogazione si svolge durante l elaborazione dell area di controllo e comporta per lo pi un prolungamento dei tempi di ciclo Per poter ridurre tale aumento dei tempi di ciclo SCL offre due diversi ambienti di test e Ambiente di test Processo Nell ambiente di test Processo il debugger SCL limita l area di controllo massima in modo che i tempi di ciclo durante l esecuzione del test non superino
215. i di ingresso di FC Inoltre occorre considerare che le costanti non sono permesse come parametri attuali Se si dichiarato il tipo ANY come risultato della funzione valore di ritorno valgono anche le regole seguenti Tutti i parametri ANY devono essere provvisti di operandi il cui tipo di dati appartenga alla stessa classe Per classe si intende p es la quantit dei tipi di dati numerici INT DINT REAL oppure la quantit dei tipi di dati binari BOOL BYTE WORD DWORD I restanti tipi di dati formano una classe a s stante Il compilatore SCL presuppone che il tipo di dati del risultato attuale della funzione sia il pi importante tra i parametri attuali assegnati ai parametri ANY Con il risultato della funzione sono consentite quindi tutte le operazioni definite per questo tipo di dati Parametro POINTER di regola vale anche per questo parametro quanto detto sopra In parametri di transito di un tipo di dati non semplici non sono ammessi come parametri attuali parametri di ingresso di FB parametri di ingresso di FC SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 3 4 Esempio di richiamo di funzioni Principio SCL per S7 300 400 C79000 G7072 C522 01 Una funzione DISTANZA per il calcolo della distanza di due punti X1 Y1 e X2 Y2 nel piano con l impiego di un sistema di coordinate cartesiane potrebbe avere l aspetto seguente negli esempi riporta
216. i ed etichette di salto Literal di numeri in virgola mobile Esempi I literal di numeri in virgola mobile sono dei valori con delle cifre dopo la virgola Essi possono essere assegnati alle variabili con tipo di dati REAL L indicazione del segno opzionale Se non viene indicato alcun segno il numero viene interpretato come numero positivo La figura 11 6 illustra la sintassi per un numero in virgola mobile LITERAL DI NUMERI IN VIRGOLA MOBILE O gt SEQUENZA DI SEQUENZA DI CIFRE CIFRE DECIMALI E DECIMALI Figura 11 6 Sintassi di un literal di numeri in virgola mobile Nella modalit di scrittura esponenziale per indicare numeri SEQUENZA DI SEQUENZA DI CIFRE CIFRE DECIMALI DECIMALI Esponente in virgola mobile si pu utilizzare un esponente L indicazione dell esponente avviene facendo 99 precedere il numero dalla lettera E o e seguita da un numero decimale La figura 11 7 illustra la sintassi per l indicazione dell esponente Esponente O p Figura 11 7 Sintassi del esponente Esempio In SCL il valore 3 x 10 pu essere rappresentato con i seg mobile 3 0E 10 3 0E10 3e 10 3E10 sal 0 SE FTL 0 3ell 30 0E 9 3069 L esempio finale 11 2 riepiloga le varie possibilit Literal di numeri interi NUMERO1 10 NUMERO2 2 1010 NUMERO3
217. i funzionamento RUN Dopo aver raggiunto la selezione si interrompe nuovamente e visualizza nella finestra risultati questo punto di arresto Per visualizzare i valori delle variabili selezionare nuovamente il comando di menu Test Esegui istruzione successiva Ritornare al punto 2 se si intende continuare il test con punti di arresto diversi Al punto 2 si possono definire nuovi punti di arresto o cancellare punti di arresto esistenti Selezionare il comando di menu Test Punti d arresto attivi per interrompere il loop del test Se non si intendono testare ulteriori istruzioni nella sorgente concludere il test selezionando il comando di menu Test Concludi test SCL per S7 300 400 C79000 G7072 C522 01 Test di un programma SCL per S7 300 400 C79000 G7072 C522 01 Sequenza del test a passi singoli Inizio Nuovi punti di arresto 2 Impostare punti di arresto Attivare disattivare punti di arresto 4 Avviare sequenza a passi singoli Esegui istruzione successiva Funzione a passi singoli Continua 4a 4b Emissione contenuti AI punto di arresto delle variabili successivo Finestra risultati e sorgente SCL Sorgente SCL Finestra della sorgente SCL Tabella dei punti di arresto Punti d arresto attivi Eseguire fino alla selezione AI punto di arresto sulla selezione s Ripetere no X 5 Concludere
218. i mettere un punto e virgola dopo la parola chiave END_WHILE Istruzione REPEAT Non dimenticare di mettere un punto e virgola dopo la parola chiave END_REPEAT Istruzione CONTINUE Istruzione RETURN Istruzione EXIT Salto di programma C 20 Sintassi delle istruzioni di controllo WHILE Espressione Parte istruzioni Parte DO istruzioni UNTIL Diagramma sintattico END_WHILE Espressiong END_REPEAT RETURN EXIT Etichetta di salto IDENTIFICATORE SCL per S7 300 400 C79000 G7072 C522 01 Bibliografia SCL per S7 300 400 C79000 G7072 C522 01 112 13 14 20 25 30 70 71 72 100 101 102 230 231 232 233 234 235 236 237 Descrizione Sistema di automazione S7 300 Struttura ed impiego Descrizione Sistema di automazione S7 400 Struttura ed impiego Descrizione Microcomputer industriali M7 300 400 Struttura ed impiego Descrizione Sistema di automazione S7 300 400 Programmazione Descrizione Microcomputer industriali M7 Programmazione Prontuario Sistema di automazione S7 300 Introduzione alla configurazione e programmazione Manuale Sistema di automazione S7 300 Installazione configurazione e dati della CPU Manuale di riferimento Sistemi di automazione S7 300 M7 300 Caratteristiche delle unit modulari Lista operazioni Sistema di automazione S7 300 Manuale Sistemi di au
219. i scrittura per literal di caratteri e di stringhe 11 7 11 5 Modalit di scrittura per indicazioni del tempo 11 10 11 6 Etichette di salto R 11 14 12 Definizione di dati globali rire 12 1 12 1 Panoramica ile FE OSL e i oe i 12 2 12 2 Aree di memoria della CPU aane 12 3 12 3 Accesso assoluto alle aree di memoria della CPU 12 4 12 4 Accesso simbolico alle aree di memoria della CPU 12 6 12 5 Accesso indicizzato alle aree di memoria della CPU 12 7 12 6 Blocchi datti cicale aree ire ed 12 8 12 7 Accesso assoluto ai blocchi dati 12 9 SCL per S7 300 400 C79000 G7072 C522 01 ix Contenuto 13 14 15 16 12 8 Accesso indicizzato ai blocchi dati aaa 12 11 12 9 Accesso strutturato ai blocchi dati 12 12 Espressioni operatori e operandi 0 13 1 13 1 Operatori iscritti e e RTLA 13 2 13 2 Sintassi delle espressione eeunn aae 13 3 19 21 Operandi sasse ncira mis ihig ela io pia 13 5 13 3 Espressioni aritmetiche 13 7 13 4 ESPONE serrr narr EARE lede 13 9 13 5 Espressioni di confronto LL 13 10 13 6 Espressioni logiche c ca Assegnazione di valori erre iii 14 1 Panorami a Lina 14 2 Assegnazione di valori con variabili di un tipo di dati semplice 14 3 Asseg
220. i sistema per blocchi maz 24 earatteni IDENTIFICATORE O Figura 8 5 Sintassi Attributi di sistema per blocchi La tabella 8 2 mostra quali attributi di sistema per blocchi possono essere assegnati in SCL Tabella 8 2 Attributi di sistema per blocchi Attributo Valore Assegnare questo attributo quando Tipo di blocco ammesso S7_m_c true false il blocco deve essere comandato o controllato da FB un apparecchiatura di servizio e supervisione S7_tasklist taskname1 il blocco deve essere richiamato oltre che in blocchi FB FC taskname2 etc organizzativi ciclici anche in altri OB ad es OB di errore o OB di avviamento S7_blockview big small il blocco deve essere rappresentato in formato piccolo FB FC o grande su un apparecchiatura di servizio e supervisione Assegnazione di Gli attributi di blocco vengono assegnati dopo il nome del blocco e prima della attributi parte dichiarazioni Un identificatore deve avere una lunghezza max di 8 caratteri o FUNCTION_BLOCK FB10 Partedichiarazioni U ITLE Valore medio ERS TONET OTIM NOW_HOW_PROTECT UTHOR AUT 1 NAME B12 FAMILY ANALOG fS m eS tren S7_blockview big Parte istruzioni Eaa Figura 8 6 Assegnazione di attributi SCL per S7 300 400 8 6 C79000 G7072 C522 01 Struttura di sorgenti SCL 8 4 Parte dichiarazioni Panoramica La p
221. i sono stati definiti dall utente nella parte dichiarazioni di un blocco FB o FC Tabella 16 1 Blocchi di dichiarazioni consentiti per parametri formali Blocchi di dichiarazione Dati Parola chiave VAR_INPUT Parametro d ingresso Lista dichiarazioni END_VAR Blocco parametri VAR_OUTPUT Lista dichiarazioni END_VAR Parametro d uscita VAR_IN_OUT Lista dichiarazioni END_VAR Parametro di transito SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 2 Richiamo di blocchi funzionali FB o SFB Istanza globale e locale Richiamo come istanza globale SCL per S7 300 400 C79000 G7072 C522 01 Durante il richiamo di un blocco funzionale in SCL si possono utilizzare e sia blocchi dati di istanza globali e sia aree di istanza locale del blocco dati di istanza attuale Il richiamo di un FB come istanza locale si distingue dal richiamo come istanza globale per il modo in cui vengono memorizzati i dati In questo caso i dati non vengono depositati in un DB separato ma nel blocco dati di istanza dell FB richiamante Richiami di FB FB Blocco funzionale SFB Blocco funzionale di sistema pa Nome di istanza globale IDENTIFICAZIONE IDENTIFICAZIONE gt Rici C DE PARAMETRO FB vedere 16 2 1 imani Nome di istanza locale Figura 16 3 Sintassi del richiamo di FB Il richiamo
222. i tipo composto ad es campi e strutture e Tipo di dati POINTER Ci possibile solo se l operando un parametro formale di tipo compatibile e Tipo di dati NIL Introdurre un puntatore zero Il tipo di dati POINTER consentito per i parametri di ingresso i parametri di transito di FB e FC e per i parametri di uscita di FC Avvertenza Se nel richiamare un FB o una FC a un parametro formale del tipo POINTER viene assegnata una variabile temporanea nel blocco richiamato questo parametro non pu essere trasferito ad un altro blocco Gli indirizzi delle variabili temporanee perdono la loro validit al momento del trasferimento SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati Esempi FUNCTION ABSTAND REAL VAR_INPUT MioDB BLOCK_DB TEMPO TIMER END_VAR VAR INDEX INTEGER END_VAR BEGIN 10DB DB5 5 END_FUNCTION Esempio 9 3 DISTANZA VALORERITORNO Tipo di dati BLOCK_DB e TIMER FUNCTION FC100 VOID VAR_IN_OUT in out ANY END_VAR VAR_TEMP ret INT END_VAR BEGIN Agata ret SFC20 DSTBLK out SCRBLK in Lesa END_FUNCTION FUNCTION_BLOCK FB100 VAR LI INT aa bb ARRAY 1 1000 OF REAL END_VAR BEGIN fassa FC100 in aa out bb RIE END_FUNCTION_BLOCK Esempio 9 4 Tipo di dati ANY SCL per S7 300 400 C79000 G7072 C522 01 9 15 SCL per S7 300 400 C79000 G7072 C522 01 De
223. i una variabile locale del tipo BOOL con il nome predefinito OK SCL per S7 300 400 C79000 G7072 C522 01 Convenzione di variabili locali e parametri di blocco Dichiarazione di Conformemente alla tabella 10 3 ad ogni categoria di variabili o parametri locali variabili e viene assegnato un proprio blocco convenzioni il quale a sua volta viene parametri contrassegnato da una propria coppia di parole chiavi Ogni blocco contiene le dichiarazioni consentite per questo blocco dichiarazioni Esso pu essere presente una sola volta nella parte dichiarazioni del blocco ma la sequenza di questi blocchi non rilevante Nella tabella 10 3 i blocchi convenzione consentiti in un blocco sono contrassegnati 99 con una X Tabella 10 3 Blocchi dichiarazioni per variabili locali e parametri Dati Sintassi FB FC OB VAR a i T Variabilistatiche X X END_VAR VAR_TEMP Variabili temporanee xX x X END_VAR Parametri di blocco come VAR_INPUT parametri d ingresso 3 x END_VAR VAR_OUTPUT Si i x x parametri d uscita END_VAR VAR_IN_OUT 7 X X parametri di transito END_VAR 1 Ladichiarazione di variabili all interno della coppia di parole chiave VAR e END_VAR am messa nelle funzioni ma con la compilazione le dichiarazioni vengono spostate nell area tem poranea Inizializzazione In fase di dichiarazione alle variabili ed ai parametri occorre assegnare un
224. i valide potrebbero essere FUNCTION _BLOCK FBx VAR INTERRUT_1 INTERRUT_2 VALRIF_1 VALRIF_2 INTERROG_1 ORA_1 ORA_2 DATA_1 DATGIOR_1 END_VAR BEGIN Assegnazione di una costante ad una variabile INTERRUT_1 i INTERRUT_1 100 1 INTERROG_1 TRUE ORA_1 1 TIME 1H_20M_10S_30MS ORA_2 TIME 2D_1H_20M_10S_30MS DATA_1 DATE 1996 01 10 Assegnazione di una variabile VALRIF_1 VALRIF_2 INTERRUT_2_ INTERRUT_1 Assegnazione di un espressione ad una variabile INTERRUT_2 INTERRUT_1 3 END_FUNCTION_BLOCK Esempio 14 1 Assegnazione di valori con tipi di dati semplici SCL per S7 300 400 C79000 G7072 C522 01 14 3 Assegnazione di valori 14 3 Assegnazione di valori con variabili di tipo STRUCT e UDT Variabili di tipo Le variabili di tipo STRUCT e UDT sono variabili strutturate che rappresentano una STRUCT e UDT struttura completa o una componente di questa struttura Alcune indicazioni valide per una variabile di struttura potrebbero essere Figura Identificatore per struttura Figura elemento Identificatore per componente di struttura Figura campo Identificatore di un campo semplice all interno di una struttura Figura campo 2 5 Identificatore di una componente di campo all interno di una struttura Assegnazione di Una struttura completa pu essere assegnata ad un altra struttura solo se le una struttura compone
225. iche del proprio programma utente I dati di riferimento comprendono struttura del programma elenco di riferimenti incrociati tabella di occupazione elenco degli operandi non utilizzati ed elenco degli operandi senza simbolo I dati di riferimento possono essere utilizzati come e panoramica di un intero programma utente e base per modifiche e test e integrazione della documentazione del programma Per creare i dati di riferimento si hanno le seguenti possibilit Tramite il comando di menu Strumenti Dati di riferimento possibile eventualmente creare aggiornare e visualizzare i dati di riferimento e Tramite il comando di menu Strumenti Impostazioni possibile stabilire che 1 dati di riferimento vengano creati automaticamente durante la compilazione di una sorgente Selezionare a tal fine nella scheda Crea blocco la voce Crea dati di riferimento La creazione automatica dei dati di riferimento allunga tuttavia la procedura di compilazione Il manuale utente STEP 7 231 contiene una descrizione dettagliata della funzione di test 6 9 Test di un programma 6 6 Uso delle funzioni di test STEP 7 Editor AWL Interrogazione e modifica dello stato di funzionamento della CPU Visualizzazione delle propriet della CPU 6 10 I blocchi compilati con SCL possono essere aperti in STEP 7 e quindi testati con l editor AWL Selezionare il comando di menu Sistema di destinazione Stato di
226. iga viene preceduto dai caratteri e va fino alla fine di una riga La sua lunghezza limitata a max 253 caratteri compreso il carattere introduttivo II Esso pu essere rappresentato in modo formale con il seguente diagramma sintattico Commento a una riga Carattere gt Q i stampabile CP gt Ritorno del carrello carriage return Figura 7 8 Sintassi di un commento a una riga Per i caratteri stampabili si rimanda alla tabella A 2 nell appendice Nell ambito di un commento a una riga la coppia di caratteri e non ha alcuna rilevanza Commento che pu estendersi su diverse righe e viene introdotto come blocco con x e terminato con Commento a pi righe 7 Carattere gt Figura 7 9 Sintassi di un commento a pi righe Per i caratteri consentiti si rimanda alla tabella A 2 in appendice SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Ci che si deve Quando vengono introdotti dei commenti si devono osservare i punti seguenti osservare ESE A i e commenti a pi righe nei blocchi dati devono essere introdotti come commenti alle righe ovvero tali commenti vengono iniziati con e Nello standard l annidamento di commenti ammesso Questa impostazione del compilatore pu tuttavia essere modificata con l opzione Autorizza commenti annidati In tal caso selezionare il comando di menu Str
227. ignifica che viene visualizzato un overflow poich 255 x 255 risulta in un valore troppo grande per il campo integer 4a Posizionare l interruttore di uscita E0 3 nuovamente su Viene ora visualizzato nuovamente il valore di misura 0 tutte le visualizzazioni sulle uscite del byte d uscita con valore minimo sono impostate 4b Come nuovo valore di misura regolare all ingresso il L uscita non viene ancora modificata valore 3 cio il valore binario 11 Sa Osservare la lettura del valore di misura regolare la All uscita viene visualizzato 0 cio nessuna delle codifica su 000 e confermare con l interruttore di visualizzazioni si accende codifica E0 7 in modo da poter osservare in seguito l introduzione dei valori 5b Commutare ora l interruttore d ingresso Ingresso 0 0 All uscita viene visualizzato il valore 3 valore binario E0 0 Ci causa la lettura del valore regolato nel 4 aiue passo del test 6 Avviare l ordinamento ed il calcolo mediante All uscita appare nuovamente 0 poich in seguito commutazione dell interruzione di ordinamento E0 1 all operazione di ordinamento il valore di misura stato ulteriormente spostato verso l alto 7 Visualizzare il valore di misura dopo l ordinamento All uscita viene nuovamente visualizzato il valore di regolare la codifica 110 E0 6 1 E0 5 1 E0 4 0 misura 11 poich esso il secondo valore del campo di EBO corrisponde a
228. il software di programmazione STEP 7 con i linguaggi di programmazione KOP e AWL Per un impiego ottimale e pratico di SCL esiste un efficiente ambiente di sviluppo che tiene conto delle specifiche esigenze sia di SCL che di STEP 7 Questo ambiente di sviluppo si compone di e un Editor per programmare programmi composti di funzioni FC blocchi funzionali FB blocco organizzativi OB blocchi dati DB e tipi di dati definiti dall utente UDT Facilitano il lavoro del programmatore numerose funzioni efficaci e un Batch Compiler per compilare ossia convertire in codice macchina MC7 il programma editato in precedenza Il codice MC7 generato pu essere eseguito su tutte le CPU del sistema di automazione S7 300 400 a partire dalla CPU 314 e un Debugger che consente la ricerca di errori logici di programmazione in una compilazione esente da errori La ricerca degli errori avviene nel linguaggio sorgente I singoli componenti sono di uso facile e confortevole poich essi operano in ambiente Windows 95 e sfruttano cos tutti i vantaggi offerti da questo sistema operativo SCL per S7 300 400 Batch Compiler Debugger Figura 1 1 Ambiente di sviluppo di SCL SCL per S7 300 400 C79000 G7072 C522 01 Presentazione del prodotto 1 2 Quali vantaggi offre SCL all utente Linguaggio di programmazione avanzato Struttura a blocchi STEP 7 di provata efficacia pratica Tipi di blocchi SCL per S7 300 40
229. illustra il calcolo dell indirizzo nei bit 12 fino a 14 la parola d ingresso EWO contiene la codifica che viene confermata quando sull interruttore di codifica bit 15 viene riconosciuto un fronte indirizzo viene determinato mediante spostamento verso destra con la funzione standard SHR e mascheramento dei bit rilevanti con una maschera AND Con questo indirizzo gli elementi di campo risultato del calcolo e relativo valore di misura vengono scritti nel parametro d uscita Se viene emessa la radice o il quadrato dipende da scelta funzione Un fronte sull interruttore di codifica viene riconosciuto dal fatto che sceltanuova cambiata rispetto a sceltavecchia SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL Diagramma di flusso di RILEVAZIONE SCL per S7 300 400 C79000 G7072 C522 01 La figura 2 10 illustra l algoritmo in forma di un diagramma di flusso RILEVAZIONE Blocco funzionale Inizio Modifica valorenuovo no si Lettura valore di misura nel buffer circolare calcolare nuovamente il puntatore odifica ordinamento nuovo no si ANALISI nel campo risultati modifica codice nuovo Trasferire i risultati del calcolo Caricare dal blocco dati di istanza si Analisi codifica e determinazione dell indirizzo di uscita Scelta funzione FALSE C
230. inVal Q actFlag currVal 1 S_CUD C_NO Z12 CD E 0 CU E 1 S E 2 amp E 3 PV 120 R FALSE CV binVal Q actFlag currVal 1 S_CD C_NO Z10 CD FALSE S FALSE PV 100 R TRUE CV bVal Q actFlag end_function_ block Esempio 17 2 Richiamo di funzioni di conteggio SCL per S7 300 400 C79000 G7072 C522 01 17 5 Contatori e temporizzatori 17 1 1 Introduzione ed analisi del valore di conteggio Panoramica Formato Introduzione Analisi 17 6 Per l introduzione del valore di preimpostazione o per l analisi dei risultati delle funzioni necessaria la rappresentazione interna del valore di conteggio vedere figura 17 1 Quando il contatore viene impostato parametro S il valore definito dall utente viene trascritto nel contatore Il campo di valori compreso fra 0 e 999 Nell ambito di tale campo di valori si pu modificare il valore del contatore utilizzando le operazioni di conteggio in avanti all indietro conteggio in avanti e conteggio all indietro La figura 17 1 illustra la configurazione di bit del valore di conteggio 9 K ds i2 i 0 9 Ss 7 e 5 4 g 2 1 0 XIXIXIX O OIOI1 0 10 1110 0 11 111 x PS A A 7 Valore di conteggio im formato BCD 0 fino a 999 Questi bit sono irrilevanti cio quando viene impostato un contatore essi vengono ignorati Figura 17 1 Configurazione di bit per il valore di conteggio Con i formati seguen
231. inguaggi di programmazione di STEP 7 l utente ha la scelta tra numerosi tipi di blocchi Per informazioni in proposito consultare i capitolo 1 7 e 8 L approccio alla soluzione pu aver luogo con i passi seguenti Panoramica n Guida alla soluzione j 2 3 4 5 2 3 1 I Elenco dei compiti parziali Scelta e attribuzione dei blocchi ai compiti parziali Definizione delle interfacce fra i blocchi Definizione dell interfaccia d ingresso uscita Programmazione dei blocchi Definizione dei compiti parziali compiti parziali sono illustrati con caselle nella figura 2 3 Le aree quadrate su sfondo grigio rappresentano i blocchi La disposizione dei blocchi di codice da sinistra verso destra corrisponde alla sequenza di richiamo CICLO Blocco organizzativo OB RILEVAZIONE ANALISI Blocco funzionale FB Blocco funzionale FB Introduzione dati Richiamo ciclico RILEVAZIONE_DATI Blocco di dati DB Rilevazione dei valori di misura Indirizza mento e scelta dell uscita Memorizza zione dati Ordinamento dei valori di misura Calcolo dei risultati SQRT QUADRAT Funzioni FC Figura 2 3 SCL per S7 300 400 C79000 G7072 C522 01 Formazione di blocchi di dati dai compiti parziali Sviluppo di programmi SCL 2 3 2 Scelta e attribuzione dei blocchi dati ai compiti parziali Panoramica CICLO RIL EVAZIONE ANALISI SOR
232. ione S_ODT 17 18 Avvia temporizzatore come ritardo all inserzione con memoria S_ODTS Avvia temporizzatore come ritardo alla disinserzione S_OFFDT 17 20 panoramica 17 22 valore di tempo area 117 22 sintassi 17 14 TIMER tipo di parametro 9 12 TIMER e COUNTER 9 12 Tipi di blocco 9 13 Tipi di caratteri Tipi di dati definiti dall utente UDT 8 19 9 10 descrizione 9 3H9 5 per parametri formali 9 12 semplici Tipi di dati composti 7 13 9 4 Indice 6 descrizione Tipi di temporizzatori 9 3 Tipi numerici Tipo blocco funzione 1 3 1 4 Tipo di accesso panoramica 12 2 Tipo di dati array 9 7 BOOL 16 20 definito Suera Tipo di dati STRUCT 9 8 dichiarazione dei componenti dichiarazione delle variabili Tipo di parametro POINTER 9 14 Trasmissione di parametri tipi di parametri 7 13 Tipi di dati semplici 9 3 U Uscita programmabile 2 4 Uso di SCL sommario del capitolo 4 1 Valore d uscita lettura Valore del contatore analisi 17 6 introduzione Valore di ritorno 16 13 Valore di tempo sintassi Valori di misura elaborazione Variabile ampliata 13 6 Variabili controlla comanda Variabili statiche Variabili temporanee W Windows 95 1 2 SCL per S7 300 400 C79000 G7072 C522 01 Siemens AG A amp D AS E46 stliche Rheinbr ckenstr 50 D 76181 Karlsruhe Repubblica federale di Germania Mittente Nome
233. ione d esecuzione Figura 15 6 Sintassidell istruzione WHILE La parte istruzioni che segue DO viene ripetuta finch la condizione d esecuzione possiede il valore TRUE Esecuzione L istruzione WHILE viene elaborata conformemente alle regole seguenti 1 La condizione d esecuzione viene analizzata prima di ogni esecuzione della parte istruzioni 2 Se si verifica il valore TRUE viene eseguita la parte istruzioni 3 Se si verifica il valore FALSE l esecuzione dell istruzione WHILE viene conclusa Ci pu verificarsi fin dalla prima analisi del risultato Avvertenza Si osservi che l istruzione END_WHILE deve essere conclusa con un punto e virgola Esempio L esempio 15 4 illustra l uso dell istruzione WHILI G FUNCTION_BLOCK RICERCA VAR INDICE INT PAROLAIDENT ARRAY 1 50 OF STRING END_VAR BEGIN INDICE 1 WHILE INDICE lt 50 AND PAROLAIDENT INDEX lt gt KEY DO INDICE INDICI END_WHILE END_FUNCTION_BLOCK T G UD Esempio 15 4 Istruzione WHILE SCL per S7 300 400 15 10 C79000 G7072 C522 01 Istruzioni di controllo 15 6 Istruzione REPEAT Principio Un istruzione REPEAT causa l esecuzione iterativa di una sequenza di istruzioni compresa fra REPEAT e UNTIL finch non si verifica una condizione di interruzione La condizione di interruzione viene generata in base alle regole di una espressione logica
234. irizzamento assoluto viene indicato l indirizzo dell operando da elaborare Esempio l indirizzo A 4 0 indica il bit 0 nel byte 4 dell immagine di processo delle uscite Nell indirizzamento simbolico l operando da elaborare viene indicato in modo simbolico al posto di un indirizzo Integer INT uno dei tipi di dati semplici La rappresentazione avviene con un numero intero a 16 bit L interfaccia di richiamo viene definita tramite i parametri d ingresso d uscita e di transito parametri formali di un blocco nel programma utente STEP 7 Al richiamo del blocco questi parametri vengono sostituiti dai parametri attuali Con il termine Istanza si indica il richiamo di un blocco funzionale Ad esso viene assegnato un blocco dati di istanza oppure un istanza locale Se un blocco funzionale nel programma utente STEP 7 viene richiamato n volte con diversi parametri e nomi di blocchi dati di istanza esistono n istanze FB13 DB3 P3 FB13 DB4 P4 FB13 DBS P5 Il _ gt Abe FB13 DBn Pn Un istanza locale viene definita nella parte delle variabili statiche di un blocco funzionale Al posto di un intero blocco dati di istanza viene utilizzata solo una parte locale come area dati per il blocco funzionale e cio quella parte che viene richiamata con il nome di istanza locale Un istruzione la pi piccola unit indipendente di un programma utente creato in un linguaggio testua
235. ker Doppia parola W W Merker Parola X X Merker Bit PAB POB Uscita periferiadiretta Byte PAD POD Uscita periferiadiretta Doppia parola PAW POW Uscita periferiadiretta Parola PEB PIB Ingresso periferia diretta Byte SCL per S7 300 400 C79000 G7072 C522 01 A 13 Descrizione formale del linguaggio Tabella A 8 Identificazioni di operando dei dati globali del sistema Mnemonico Mnemonico Prefisso di memoria o blocco dati Prefisso di dimensione SIMATIC TEC PED PID Ingresso periferia diretta Doppia parola PEW PIW Ingresso periferia diretta Parola Parole chiave del Vengono utilizzate per l indirizzamento assoluto di blocchi La tabella ordinata in blocco base al mnemonico SIMATIC e viene indicata anche il corrispondente mnemonico IEC Tabella A 9 Parole chiavi del blocco nonch contatori e temporizzatori Mnemonico Mnemonico Prefisso di memoria o blocco dati SIMATIC IEC DB DB Blocco dati Data Block FB FB Blocco funzionale Function Block FC FC Funzione Function OB OB Blocco organizzativo Organization Block SDB SDB Blocco dati di sistema System Data Block SFC SFC Funzione di sistema System Function SFB SFB Blocco funzionale di sistema System Function Block T T Temporizzatore Timer UDT UDT Tipo di dati globale o definito dall utente Userdefined Data Type Z C Contatore Counter A 14 SCL per S7 300 400 C79
236. l assegnazione di valori si hanno le tre possibilit di indirizzamento descritte nel capitolo 12 Variabili assolute Identificazione dioperando Prefisso di Prefisso di NE memoria dimensione Indirizzo gt Figura 14 2 Sintassi per la variabile assoluta Assegnazione Ad eccezione degli ingressi di periferia e degli ingressi tramite l immagine di processo ad ogni variabile assoluta si pu assegnare una variabile o un espressione dello stesso tipo Esempio Gli esempi seguenti illustrano le assegnazioni di valori per variabili assolute PAROLADISTATOLl PAROLADISTATO2 PAROLADISTATO3 PAROLADISTATO4 INDIRIZZO INT END_VAR BEGIN Assegnazione di una parola d ingresso ad una variabile accesso semplice PAROLADISTATO1 EW4 Assegnazione di un bit di uscita ad una variabile accesso semplice PAROLADISTATO2 al l Assegnazione di un byte d ingresso ad una variabile accesso indicizzato PAROLADISTATO3 EB INDIRIZZO Assegnazione di un bit d ingresso ad una variabile accesso indicizzato FOR INDIRIZZO 0 TO 7 BY 1 DO PAROLADISTATO4 e 1 INDIRIZZO END_FOR Esempio 14 6 Assegnazione di valori per variabili assolute SCL per S7 300 400 14 10 C79000 G7072 C522 01 Assegnazione di valori 14 8 Assegnazione di valori con variabili globali Variabili nei DB Anche l accesso alle variabili globali nei b
237. l utente UDT Tipi di parametri TIMER BLOCK_FB POINTER ANY COUNTER BLOCK_FC BLOCK_DB BLOCK_SDB Questi tipi di dati determinano e iltipoeil significato degli elementi di dati e icampi consentiti degli elementi di dati e la quantit consentita di operazioni che possono essere eseguite con un operando di un tipo di dati e il modo di scrittura dei dati di questo tipo SCL per S7 300 400 C79000 G7072 C522 01 Tipi di dati 9 2 Tipi di dati semplici Panoramica SCL per S7 300 400 C79000 G7072 C522 01 I tipi di dati semplici definiscono la struttura di dati che non possono essere suddivisi in unit inferiori Essi corrispondono alla definizione della norma DIN EN 1131 3 Un tipo di dati semplice descrive un area di memoria di lunghezza fissa e indica numero di bit integer real durata ora dimensione dei caratteri Tutti questi tipi di dati sono predefiniti in SCL Tabella 9 2 Numeri di bit e campi di valori dei tipi di dati semplici Tipo Parola chiave Nu Campo di valori mero di bit Tipo di dati di bit I dati di questo tipo occupano 1 bit tipo di dati BOOL 8 bit 16 bit o 32 bit Bit BOOL 1 0 1 oppure FALSE TRUE Byte BYTE 8 Non pu essere indicato un campo di Parola WORD 16 valori numerici Si tratta di una combi nazione di bit con i quali non si pos Doppia parola DWORD 32 sono generare espressioni numeriche Tipo di carattere I
238. l giorno Data e ora SCL per S7 300 400 C79000 G7072 C522 01 L indicazione dell ora del giorno viene preannunciata dai prefissi TIME_OF_DAY o TOD vedere figura 11 17 ORA DEL GIORNO TIME_OF_DAY Indicazione ora del giorno Hood TOD Figura 11 17 Sintassi per l ora del giorno L indicazione dell ora avviene introducendo ore minuti e secondi i quali devono essere separati mediante doppio punto L indicazione dei millisecondi opzionale Essa viene separata dagli altri componenti tramite un punto La figura 11 18 illustra la sintassi per l indicazione dell ora del giorno Indicazione ora del giorno SEQUENZA DI D SEQUENZA DI O gt CIFRE DECIMALI CIFRE DECIMALI Indicazione ore Indicazione minuti SEQUENZA DI SEQUENZA DI CIFRE DECIMALI CIFRE DECIMALI Indicazione secondi Indicazione millisecondi Figura 11 18 Sintassi per l indicazione dell ora Alcune indicazioni valide potrebbero essere Indicazione ora del giorno ORA1 TIME_OF_DAY 12 12 12 2 ORA2 TOD 11 11 11 7 200 L indicazione della data e dell ora viene preannunciata dai prefissi DATE_AND_TIME o DTF vedere figura 11 19 Si tratta di un literal composto dalle indicazioni di data e ora DATA E ORA DATE_AND_TIME Indicazione della data Ind ora del giorno b DT Figura 11 19 Sintassi per la data e l ora L esempio il
239. lazione orientata alla sorgente Compilatore SCL Contatori Contenitore Controllo continuativo Conversione esplicita Conversione implicita Costante literal Costante simbolica D Dati globali SCL per S7 300 400 C79000 G7072 C522 01 Nell introduzione orientata alla sorgente durante la compilazione viene eseguito un controllo per accertare eventuali errori di introduzione Un codice eseguibile viene generato solo se non vi sono pi errori Il compilatore SCL un compiler batch con il quale il programma editato in precedenza sorgente SCL viene compilato in codice macchina MC7 I blocchi cos generati vengono depositati nel programma S7 nel contenitore Blocchi I contatori sono componenti della memoria di sistema della CPU Il contenuto di questi contatori viene attualizzato in modo asincrono con il programma utente del sistema operativo Con istruzioni STEP 7 viene definita la funzione dettagliata della cella di conteggio p es contatore in avanti e viene avviata la sua elaborazione Start Raccoglitore dell interfaccia operativa del SIMATIC Manager che pu essere aperto e pu contenere ulteriori contenitori e oggetti Modo di test di SCL Durante il controllo continuativo di un programma si pu testare un gruppo di istruzioni Il gruppo di istruzioni viene denominato anche area di controllo La conversione esplicita signfica inserire una funzione di conversione nel programma so
240. le Richiamo FC semplice assoluta assoluta nel DB nell istanza locale Funzione standard FC192 VALOR Esempio 13 2 Variabile ampliata in espressioni ENTO Richiamo della funzione Avvertenza In un richiamo della funzione il risultato calcolato ossia il valore di ritorno viene inserito nell espressione al posto del nome della funzione Per tale motivo le funzioni VOID che non possiedono alcun valore di ritorno non sono ammesse come operandi di un espressione 13 6 SCL per S7 300 400 C79000 G7072 C522 01 Espressioni operatori e operandi 13 3 Espressioni aritmetiche Definizione Un espressione aritmetica un espressione formata con operatori aritmetici Queste espressioni consentono l elaborazione di tipi di dati numerici Operatore aritmetico di base gt O m a m gt Figura 13 5 Sintassi di un operatore aritmetico di base Operazioni La tabella 13 2 contiene un riepilogo delle operazioni possibili e mostra a quale tipo aritmetiche si deve assegnare il risultato in funzione degli operandi Vengono usate le abbreviazioni seguenti ANY_INT per i tipi di dati INT DINT ANY_NUM per i tipi di dati ANY_INT e REAL Tabella 13 2 Operatoriaritmetici Operazione Operatore 1 Operando 2 Operando Risultato Priorit Poena
241. le Essa rappresenta una norma di lavoro per il processore SCL per S7 300 400 C79000 G7072 C522 01 Glossario Istruzione CASE Istruzione CONTINUE Istruzione EXIT Istruzione FOR Istruzione GOTO Istruzione REPEAT Istruzione RETURN Lista istruzioni AWL Memoria di sistema area di sistema Merker M Mnemonico SCL per S7 300 400 C79000 G7072 C522 01 Questa istruzione un istruzione di diramazione Essa serve in funzione del valore di un espressione di selezione per effettuare la scelta di una parte del programma da lan Conclude una variabile d esecuzione e la avvia con il valore successivo della variabile d esecuzione Interruzione di un loop d esecuzione Un istruzione FOR serve per ripetere una sequenza di istruzioni finch la variabile d esecuzione si mantiene nell ambito dei valori prescritti Un istruzione GOTO provoca il salto immediato ad una determinata etichetta Un istruzione REPEAT serve per ripetere una sequenza di istruzioni finch non si verifica una condizione d interruzione Questa istruzione provoca l uscita dal blocco attuale La lista istruzioni AWL un linguaggio di programmazione testuale a livello macchina La memoria di sistema integrata nell unit centrale ed ha una struttura di memoria RAM Nella memoria di sistema vengono depositate aree di operandi p es temporizzatori contatori merker e aree di dati usati dal sistema op
242. le interfacce fra i blocchi LL 2 3 4 Definizione dell interfaccia d ingresso uscita 2 3 5 Programmazione dei blocchi LL 2 4 Creazione del blocco organizzativo CICLO 2 5 Creazione del blocco funzionale RILEVAZIONE 2 6 Creazione del blocco funzionale ANALISI aaa 2 7 Creazione della funzione QUADRAT neea 2 21 2 8 Dat ditest apreni arrende erre Parte 2 Uso e test 3 Installazione del software SCL ciclici iii 3 1 3 1 Autorizzazione licenza d utilizzo uaa 3 2 Installazione disinstallazione del software SCL_ 3 4 4 ComeoperareconSCL 4 1 Avvio del software SCL nananana 4 2 4 2 Adattamento della superficie operativa 4 3 4 3 Lavorare con l editor SCL aneen 4 5 5 Programmare con SCL L Lr 5 1 5 1 Creazione di programmi utente in SCL_ aaeeea 5 2 Generazione e apertura di una sorgente SCL_ 5 3 SCL per S7 300 400 da C79000 G7072 C522 01 VII Contenuto 5 3 Introduzione di dichiarazioni istruzioni e commenti 5 4 Salvataggio e stampa di una sorgente SCL_ 5 5 Processo di compilazione stireria 5 6 Trasmissione al PLC del programma utente 5 9 5 7 Creazione di un file di comando compilazione 5 10 6 Test di un programma
243. lezionata si allunga tuttavia la procedura di compilazione e Fare clic sull opzione Considera attributo di sistema S7_server se il blocco rilevante per la progettazione del messaggio e del collegamento Anche questa opzione allunga la procedura di compilazione Per avviare il processo di compilazione esistono due possibilit e selezionare il comando di menu File Compila oppure e fare clic sul simbolo Compila nella barra degli strumenti Per essere sicuri di avere sempre la versione pi recente della sorgente SCL si raccomanda di selezionare il comando di menu Strumenti Impostazioni e nella scheda Editor di fare clic sull opzione Salva prima di compilare In tal modo il comando di menu File Compila salva implicitamente la sorgente SCL 5 7 Programmare con SCL Dopo la Dopo la compilazione il sistema segnala una compilazione esente da errori oppure compilazione gli errori e i messaggi di avviso vengono visualizzati in una finestra come illustrato nella figura 5 4 SCL Visualizzazione errori SCL Sorgentet F Z00016 S 00012 espressione non valida W Il generatore di codice non stato richiamato a causa di un errore Sono stati riscontrati 1 errore i e 1 avviso i m Messaggio 15 4397 Argomento Guida CI Chiudi Sono stati riscontrati 1 errore i e 1 avviso i Vaia Figura 5 4 Finestra per messaggi di errore e messaggi di
244. licazionesemplice NIL Puntatore zero NOT Operatore logico fa parte degli operatori unari Espressione operando OF Introduzione della specificazione tipo di dati Specificazione tipo di dati array istruzione CASE SCL per S7 300 400 C79000 G7072 C522 01 A 11 Descrizione formale del linguaggio Tabella A 7 Parole chiave SCL e identificatori predefiniti in ordine alfabetico Parole chiave Descrizione Regola sintattica OK Flag indicante se le istruzioni di un blocco sono state elaborate senza errori OR Operatore logico Operatore base logico ORGANIZATION_ Introduzione del blocco organizzativo Blocco organizzativo BLOCK POINTER Tipo di dati puntatore consentito solo nella Vedere capitolo 10 dichiarazione parametri del blocco parametri non viene elaborato in SCL REAL Tipo di dati semplice Tipo di dati numerici REPEAT Introduzione dell istruzione di controllo per Istruzione REPEAT l elaborazione di loop RETURN Istruzione di controllo per il ritorno dal Istruzione RETURN sottoprogramma SSTIME Tipo di dati semplice per indicazioni di tempo formato Tipo di tempo speciale S5 STRING Tipo di dati per stringa di caratteri Specificazione tipo di dati STRING STRUCT Introduzione della specificazione di una struttura segue Specificazione tipo di dati struttura la lista dei componenti THEN Introduzione delle azioni seguenti se soddisfatta l
245. lici sono tipi di dati predefiniti conformemente a IEC 1131 3 Esempi il tipo di dati BOOL definisce una variabile binaria Bit il tipo di dati INT definisce una variabile in virgola fissa a 16 bit L architettura dei blocchi di STEP 7 conosce i seguenti tipi di blocchi blocchi organizzativi blocchi funzionali funzioni blocchi dati e blocchi funzionali di sistema funzioni di sistema blocchi dati di sistema e tipi di dati definiti dall utente gt Blocco Il tipo di dichiarazione indica in che modo un parametro o una variabile locale deve essere utilizzato da un blocco Esistono parametri d ingresso parametri d uscita e parametri di transito cos come variabili statiche e temporanee Un tipo di parametro uno tipo di dati speciale per temporizzatori contatori e blocchi Esso pu essere utilizzato nei parametri d ingresso di blocchi funzionali e funzioni mentre i parametri di transito possono essere usati solo da blocchi funzionali per trasferire temporizzatori contatori e blocchi al blocco richiamato SCL per S7 300 400 C79000 G7072 C522 01 Glossario U UDT Tipi di dati definiti dall utente V Variabile Una variabile definisce dei dati con contenuto variabile i quali possono essere utilizzati nel programma utente STEP 7 Una variabile si compone di un operanado p es M 3 1 e di un tipo di dati p es Bool e pu essere contrassegnata con un simbolo p es NASTRO_ON La variabile
246. lla CPU Nella parte di dichiarazione VAR END_VAR viene dichiarata anche l istanza locale per ANALISI FB Il nome viene utilizzato in seguito per il richiamo e per i parametri di uscita Come memoria dati viene utilizzata l istanza globale RILEVAZIONE DATI Parte dichiarazioni di RILEVAZIONE Dichiarazione delle costanti Parametri d ingresso Parametri d uscita Variabili statiche Fra queste vi anche la In questo blocco la parte dichiarazioni si compone dei seguenti elementi fra CONST e END_CONST fra VAR_INPUT e END_VAR E fra VAR_OUTPUT e END_VAR fra VAR e END_VAR dichiarazione dell istanza locale per il blocco ANALISI CONST LIMITE 7 NUMERO LIMITE 1 END_CONST VAR_INPUT valoremisura_in INT Nuovo valore di misura valorenuovo BOOL Conferma valore di misura nel buffer circolare valorimisura ordinamentonuovo BOOL Ordinamento dei valori di misura sceltafunzione BOOL Scelta della funzione di calcolo Radice Quadrato sceltanuova BOOL Immissione indirizzo di uscita scelta WORD Indirizzo di uscita END_VAR VAR_OUTPUT risultato_out INT 4 7 Valore calcolato valoremisura_out INT 7 Corrispondente valore di misura END_VAR VAR valorimisura ARRAY 0 LIMITE OF INT 8 0 bufferrisultato ARRAY 0 LIMITE OF STRUCT radice T quadrato NT END_STRUCT puntatore NT 0 valore vecchio BOOL TRUE ordinamentovecchio BOOL
247. llazione del software facendo doppio clic sul simbolo Installazione applicazioni nel Pannello di controllo 2 Selezionare la voce STEP 7 nell elenco che viene visualizzato relativo ai software installati Premere quindi il pulsante Rimuovi per disinstallare il software 3 Se appare la finestra di dialogo Are you sure you want to completely remove the selected application and all of its components se vi sono dubbi fare clic sul pulsante No Tutti i linguaggi della superficie operativa e tutti gli esempi necessitano di uno spazio di memoria di circa 8 MB Durante l installazione viene verificato se sul disco fisso gi presente un autorizzazione Se viene riconosciuta un autorizzazione appare un messaggio indicante che il software pu essere utilizzato solo con la relativa autorizzazione Se lo si desidera si pu eseguire subito l autorizzazione oppure continuare l installazione ed eseguire la procedura di autorizzazione in un secondo tempo Nel primo caso dopo la richiesta del sistema inserire il dischetto di autorizzazione e confermare Per ulteriori informazioni sull autorizzazione vedere il capitolo 3 1 Se l installazione viene conclusa con successo ci viene visualizzato sullo schermo con un apposito messaggio I seguenti errori causano l interruzione dell installazione e Sesi verifica un errore di inizializzazione subito dopo l avviamento di Setup molto probabilme
248. llustrare le diverse varianti delle istruzioni Esempio di assegnazione di valori VALOREMISURA 0 Esempio di elaborazione di sottoprogramma FB1 DB11 TRASFERIMENTO 10 r Esempio di istruzione di controllo WHILE CONTATORE lt 10 DO d END_WHIL Esempio 8 1 Istruzioni SCL per S7 300 400 C79000 G7072 C522 01 8 11 Struttura di sorgenti SCL 8 7 Struttura di un blocco funzionale FB Panoramica Identificazione FB Parte dichiarazioni FB 8 12 Un blocco funzionale FB un blocco di codice contenente una parte di un programma e che dispone di un area di memoria assegnata Ogni volta che viene richiamato un FB ad esso deve essere assegnato un DB di istanza vedere capitolo 10 L utente determina la struttura di questo DB di istanza mediante definizione della parte dichiarazioni del DB Blocco funzionale FUNCTION_BLOCK IDENTIFICAZIONE Panecicniarazioni E BEGIN a Parte istruzioni END_FUNCTION_BLOCK Figura 8 10 Struttura di un FB Dopo la parola chiave FUNCTION_BLOCK introdurre come nome dell FB la parola chiave FB seguita dal numero del blocco oppure il nome simbolico dell FB Esempi FUNCTION_BLOCK FB10 FUNCTION _ BLOCK MOTOR_1 La parte dichiarazioni FB serve per la dichiarazione dei dati specifici del blocco Per i blocchi dichiarazioni consentiti si rimanda al capitolo 8 4 Si deve tener pre
249. locchi dati avviene tramite un assegnazione di valori a variabili dello stesso tipo o viceversa Si ha la possibilit di accedere in modo strutturato assoluto o indicizzato capitolo 12 Variabile DB Identificazione dioperando IDENTIFICAZIONE Prefisso di iri DB D D dimensione Indiri zo Figura 14 3 Sintassi di una variabile DB Assegnazione Ad ogni variabile globale si pu assegnare una variabile o un espressione dello stesso tipo Seguono alcune assegnazioni valide DB11 DWI10 20 DB11 DWI10 stato Esempi L esempio seguente presuppone che nel blocco dati DB 11 siano state definite una variabile NUMERO con tipo di dati INTEGER e una struttura NUMERO1 con la componente NUMERO2 del tipo INTEGER Blocco dati DB 11 necessario DATA BLOCK DB 11 STRUCT NUMERO INT 1 NUMERO1 STRUCI NUMERO2 INT 256 D_STRUCT ROLA3 W ROLA4 W ROLAS WO ROLA6 W ROLA7 W ROLA8 W ROLA9 W ROLA10 WO D_STRUCT 16 aa 16 aa 16 aa 16 aa 16 aa 16 aa 16 aa Oi OOO ODO EGIN PAROLA10 W 164 bb END_DATA_ BLOCK Esempio 14 7 Assegnazione di valori a variabili globali SCL per S7 300 400 C79000 G7072 C522 01 14 11 Assegnazione di valori Per esempio il blocco dati DB 11 pu essere impiegato come segue REGOLATORE_1 ARRAY 1 4 OF INT PAROLADISTATOl WORD PAROLADIST
250. lto un OB poich esso viene richiamato ciclicamente dal sistema STEP 7 soluzione Con esso vengono realizzati i seguenti compiti per il programma e Richiamo e alimentazione del blocco funzionale RILEVAZIONE con dati d ingresso e dati di controllo 71 e Immissione dei dati di risultato del blocco funzionale RILEVAZIONI e Emissione dei valori per la visualizzazione All inizio della parte dichiarazioni presente il campo dati temporaneo con 20 bytes di dati di sistema vedere anche il capitolo 8 BLOCCO_ORGANIZZATIVO CICLO FERTILI LITRI LIETI LILLE TITLE RETREAT CICLO corrisponde a 0B1 cio esso viene richiamato ciclicamente dal sistema S7 Parte 1 Richiamo del blocco funzionale e conferma dei valori d ingresso Parte 2 Immissione dei valori di uscita ed emissione con commutazione uscita ale i a a ANTA A an VAR_TEMP dati di sistema ARRAY 0 20 OF BYTE Area per OB1 END_VAR BEGIN Parte 1 EEFKKFKKK FK FK FK KEKKKKKEKEKFKKFKFKEKFKKKEFKEKFKKKFKKEKKFKKKFKKKXKEKKX E RILEVAZIONE RILEVAZIONE_DATI valoremisura_in WORD_TO_INT Ingresso valorenuovo Ingresso 0 0 Interruttore d ingresso come simbolo ordinamentonuovo Interruttore di ordinamento sceltafunzione Interruttore di funzione sceltanuova Interruttore di codifica scelta Codifica Parte 2 FEFKFKEKEKE KE K EE EKEKEKKEKKKKKEKKKKKKKEKKKKKKKKKKKKKKFKKKKKKEKKKE IF Interruttore di uscita THEN Com
251. lustra l indicazione di data e ora Indicazione dell ora ORA1 DATE_AND_TIME 1995 01 01 12 12 12 2 ORA2 DT 1995 02 02 11 11 11 11 13 Definizione di constanti ed etichette di salto 11 6 Etichette di salto Descrizione Definizione di etichette di salto Esempio 11 14 Le etichette di salto Labels servono per definire la destinazione di una istruzione GOTO vedere capitolo 11 4 Le etichette di salto vengono definite con il loro nome simbolico nella parte dichiarazioni del blocco di codice vedere capitolo 8 4 Blocco etichette di salto gt IDENTIFICATORE Etichetta di salto C Figura 11 20 Sintassi per blocco etichette di salto END_LABEL L esempio seguente illustra la convenzione per le etichette di salto LABEL EL END_LABI ETICHETTA r ETICHI ETTA2 ETICH ETTA3 Esempio 11 4 Etichette di salto SCL per S7 300 400 C79000 G7072 C522 01 Definizione di dati globali Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 I dati globali sono dati che possono essere utilizzati da qualsiasi blocco di codice FC FB OB L accesso a questi dati pu aver luogo in modo assoluto o simbolico In questo capitolo vengono descritte le singole aree di dati Viene inoltre descritto il modo di accesso a tali dati Capitolo Argomento trattato Pagina
252. ma SCL in formato libero Programma SCL Regole formato libero sintattiche non a formato libero Regole lessicali Figura A 4 Livelli delle regole e libert di formato SCL per S7 300 400 C79000 G7072 C522 01 A 3 Descrizione formale del linguaggio Formalit Semantica A 4 Ogni regola possiede un nome che viene preposto Se la regola viene utilizzata in una regola sovraordinata questo nome appare in un rettangolo Se il nome della regola scritto in caratteri maiuscoli si tratta di un token che viene descritto nelle regole lessicali Nelle regole pu essere descritta solo la struttura formale del linguaggio Esse non sempre descrivono il significato cio la semantica Perci nei punti pi importanti accanto alle regole vengono scritte sempre informazioni supplementari Seguono alcuni esempi di queste informazioni e Jn caso di elementi dello stesso tipo ma con significato diverso viene indicato un nome supplementare p es nella regola dell indicazione della data nella SEQUENZA DI CIFRE DECIMALI anno mese o giorno Il nome indica il tipo d impiego e Lerestrizioni importanti vengono annotate accanto alle regole p es per il simbolo viene annotato che esso deve essere definito nella tabella dei simboli SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio A 2 Panoramica dei terminali Definizione Panoramica SCL per S7 300 400 C79000 G7072 C522 01 Un t
253. magine di processo Bit Mx y Mx y Merker Bit MBx MBx Merker Byte MDx MDx Merker Doppia parola MWx MWx Merker Parola MXx y MXx y Merker Bit PABx PQBx Uscita periferia diretta Byte PADx PQDx Uscita periferiadiretta Doppia parola PAWx PQOWx Uscita periferiadiretta Parola PEBx PIBx Ingresso periferia diretta Byte PEDx PIDx Ingresso periferia diretta Doppia parola PEWx PIWx Ingresso periferia diretta Parola PEWx PIWx Ingresso periferia diretta Parola PEWx PIWx Ingresso periferia diretta Parola x Numero compreso fra 0 e 65535 indirizzo assoluto y Numero compreso fra 0 e 7 numero di bit Sono esempi validi ti 1 0 MW10 PAW5 DB20 DW3 1 Questi identificatori di operando valgono solo insieme all indicazione del blocco dati SCL per S7 300 400 C79000 G7072 C522 01 7 9 Terminologia generale SCL 7 6 Numeri Panoramica Numero intero Numeri interi come numeri binari ottali o esadecimali Numeri in virgola mobile 7 10 In SCL i numeri possono essere scritti in vari modi Un numero pu avere a scelta un segno un punto decimale o un esponente Le seguenti asserzioni valgono per tutti i numeri 1 Un numero non pu contenere n virgole n spazi 2 Per una separazione ottica consentito l uso di un trattino _ 3 Un numero pu essere preceduto a scelta da un segno positivo o negativo Se nessun segno precede il numero quest ultimo viene considerato positivo
254. mario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Capitolo Argomento trattato Pagina 17 1 Funzioni di conteggio 17 2 17 1 1 Ingresso e analisi del valore di conteggio 17 1 2 Conteggio in avanti Counter Up 17 1 3 Conteggio all indietro Counter Down 17 7 17 1 4 Conteggio in avanti all indietro Counter Up Down 17 8 17 1 5 Esempio della funzione S_CD Contatore all indietro 17 2 Funzioni di temporizzazione TIMER 17 2 1 Ingresso e analisi del valore di tempo 17 2 2 Avviamento del temporizzatore come impulso 17 16 17 2 3 Avviamento del temporizzatore come impulso prolungato 17 17 17 2 4 Avviamento del temporizzatore come ritardo all inserzione 17 2 5 Avviamento del temporizzatore come ritardo all inserzione con memoria 17 2 6 Avviamento del temporizzatore come ritardo alla disinserzione 17 20 17 2 7 Esempio di programma di un impulso prolungato 17 2 8 Selezione del temporizzatore giusto 17 22 17 1 Contatori e temporizzatori 17 1 Funzioni di conteggio Panoramica Richiamo Valore della funzione 17 2 STEP 7 mette a disposizione una serie di funzioni standard di conteggio Questi contatori possono essere utilizzati nel programma SCL senza doverli prima definire Essi devono solo essere alimentati con i necessari parametri STEP 7 offre le seguenti funzioni di conteggio e Contatori di conteggio in avanti Counter Up e Contatori di conteg
255. me simbolico funzione standard realizzata nel compilatore Assegnazione Parametro FB d ingresso Assegnazione di transito Q Espressione Assegnazione d ingresso Assegnazione di transito d uscita Q Parametro FC SCL per S7 300 400 C 16 C79000 G7072 C522 01 Regole sintattiche Tabella C 7 Sintassi dei richiami Regola Diagramma sintattico Parametro attuale Assegnazione d ingresso Espressione IDENTIFICAZIONE TEMPORIZZATORE UT gt IDENTIFICAZIONE Nome del CONTATORE parametro d ingresso Parametro formale IDENTIFICAZIONE BLOCCO Assegnazione d uscita p IDENTIFICATORE a gt di transito Nome del parametro d uscita o Parametro attuale parametro di transito Parametro formale Assegnazione di IDENTIFICATORE gt eta transito Nome del parametro di transito Parametro attuale Parametro formale SCL per S7 300 400 C79000 G7072 C522 01 C 17 Regole sintattiche C 7 Istruzioni di controllo Tabella C 8 Regola Istruzione IF Non dimenticare di mettere un punto e virgola dopo la parola chiave END_IF Istruzione Case Non dimenticare di mettere un punto e virgola dopo la parola chiave END_CASE Lista dei valori C 18 a Sintassi delle istruzioni di controllo Diagramma si
256. metri di uscita Elenco dichiarazioni X X END_VAR e i VAR_IN_OUT Parametri di transisto Elenco dichiarazioni X X END_VAR Elenco dichiarazioni la lista degli identificatori del tipo che deve essere dichiarato l1 Nei DB e UDT le parole chiave VAR e END_VAR vengono sostituite da STRUCT e END_STRUCT 2 Ladichiarazionedi variabili all interno della coppia di parole chiave VAR e END_VAR am messa nelle funzioni ma con la compilazione le dichiarazioni vengono spostate nell area tem poranea SCL per S7 300 400 C79000 G7072 C522 01 8 7 Struttura di sorgenti SCL Attributi di sistema per parametri Ai parametri di ingresso uscita e transito possibile inoltre assegnare attributi di sistema ad es per la progettazione dei messaggi o dei collegamenti Attributi di sistema per parametri max 24 caratteri IDENTIFICATORE gt C i stampabili Q Figura 8 7 Sintassi Attributi di sistema per parametri La tabella 8 4 mostra quali attributi di sistema possono essere assegnati ai parametri Tabella 8 4 Attributi di sistema per parametri Attributo Valore Assegnare questo attributo quando e di dichiarazione e S7_server connection rilevante il parametro per la progettazione dei alarm_archiv collegamenti o dei messaggi Questo parametro contiene il numero di collegamento o
257. mi SCL 2 6 Creazione del blocco funzionale ANALISI Parte dichiarazioni In questo blocco la parte dichiarazioni si compone delle seguenti parti di ANALISI E y 4 Dichiarazione delle costanti fra CONST e END_CONST e Parametri di transito fra VAR_IN_OUT e END_VAR e Parametri di uscita fra VAR_OUTPUT e END_VAR Dichiarazione delle variabili temporanee fra VAR_TEMP e END_VAR FUNCTION_BLOCK ANALISI ERRATE ARA RARA EEA EA RARE READER AAA REFERENTE EEA Parte 1 Ordinamento buffer circolare con valori di misura Parte 2 Avvio calcolo dei risultati RE A AR e a a a e RE RE a RE IEP RI Re E RAR RR e e RR e e a a a a a Ae eee arr Figura 2 12 Intestazione del blocco funzionale ANALISI CONST LIMITE 7 END_CONST VAR_IN_OUT bufferordinamento ARRAY 0 LIMITE OF INT END_VAR VAR_OUTPUT buffercalcolo ARRAY 0 LIMITE OF STRUCT radice INT quadrato i INT END_STRUCT END_VAR VAR_TEMP scambiare BOOL index hilf INT valore risult REAL END_VAR Figura 2 13 Parte convenzioni del blocco funzionale ANALISI Svolgimento Il parametro di transito bufferordinamento viene associato al buffer circolare valorimisura cio il contenuto originale del buffer viene sovrascritto con l ordinamento dei valori di misura Per i risultati di calcolo viene creato il campo nuovo buffercalcolo come parametro di uscita I suoi elementi sono strutturati in mod
258. mma istruzione per istruzione e visualizzare i risultati nella finestra dei risultati Un contenitore per tutti gli oggetti di una soluzione di automazione indipendentemente dal numero di stazioni unit e dal loro impiego Il programma utente contiene tutte le istruzioni e le dichiarazioni per l elaborazione dei segnali tramite i quali viene controllato l impianto o un processo Esso viene assegnato ad un unit modulare programmabile p es CPU FM e pu essere strutturato in unit pi piccole blocchi Il programma utente S7 si trova nel contenitore Blocchi Esso contiene blocchi i quali vengono caricati e possono essere eseguiti in un unit programmabile S7 p es CPU per comandare un impianto o un processo Glossario 9 Glossario Programmazione simbolica Programmazione strutturata Protezione di blocco Punto d arresto R Rappresentazione BCD Regola sintattica Regole lessicali Richiamo di blocco RUN RUN P Glossario 10 Il linguaggio di programmazione SCL consente l impiego di sequenze simboliche di caratteri al posto di operandi p es l operando A1 1 pu essere sostituito da Valvola_17 La tabella dei simboli in STEP 7 assicura il collegamento fra l operando e la sequenza simbolica di caratteri assegnati Per risolvere problemi di automazione piuttosto complessi il programma utente viene suddiviso in piccole parti di programma completamente autonome blocch
259. mo del software Bi SCL Programmazione di blocchi S7 File Visualizza n Deal 4 E B cs sim X o e 2 1 Premere F1 per la Guida Figura 4 1 Finestra SCL Avvertenza Per ulteriori informazioni sull uso e le operazioni standard di Windows 95 si rimanda al manuale Windows oppure online al programma di esercitazione di Windows 95 SCL per S7 300 400 C79000 G7072 C522 01 Come operare con SCL 4 2 Adattamento della superficie operativa Panoramica Barra del titolo Barra dei menu ____ Barra degli strumenti Area di lavoro Riga di stato SCL per S7 300 400 C79000 G7072 C522 01 Analogamente ad altre finestre STEP 7 le finestre SCL si compongono dei seguenti elementi standard vedere figura 4 2 Barra del titolo contiene il titolo della finestra e i simboli per il comando della finestra Barra dei menu contiene tutti i menu disponibili nella finestra Barra degli strumenti contiene simboli che consentono di eseguire rapidamente i comandi usati pi frequentemente Area di lavoro contiene le varie finestre nelle quali si pu editare il testo del programma oppure leggere informazioni del compilatore e di test Riga di stato visualizza lo stato e ulteriori informazioni sull oggetto selezionato EG SCL Programmazion
260. mpio di richiamo di FB con blocco dati di istanza Dopo l esecuzione del blocco in VARIABILEL1 disponibile il valore calcolato per il parametro di transito IQ1 SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali Lettura del valore I due esempi sottostanti servono ad illustrare le alternative possibili per leggere il d uscita parametro d uscita L accesso al parametro d uscita avviene mediante RISULTATO DB10 CONTROL Si pu per utilizzare il parametro d uscita anche con un altro richiamo di FB per alimentare direttamente un parametro di ingresso FB17 DB12 I _1 DB10 CONTROL Esempio 16 3 Risultato del richiamo di FB con blocco dati di istanza SCL per S7 300 400 C79000 G7072 C522 01 16 11 Richiamo di funzioni e blocchi funzionali 16 2 5 Esempio di richiamo di un istanza locale Principio Richiamo Lettura parametro d uscita 16 12 Un blocco funzionale con un semplice loop FOR potrebbe essere programmato come illustrato nell esempio 16 1 in cui si presuppone che nella tabella dei simboli sia stato definito il simbolo TEST per 1 FB17 Questo FB pu essere richiamto come indicato nell esempio seguente a condizione che nel blocco richiamante VARIABILE sia stata dichiarata come REAL Richiamo istanza locale TEST_L VALORE FINALE 10 IQ1 VARIABILI Esempio 16 4 Esempio di richiamo
261. mpone normalmente di testo progressivo In una simile sorgente si possono programmare diversi blocchi Questi ultimi possono essere OB FB FC DB o UDT In questo capitolo viene descritta la struttura esterna dei blocchi I seguenti capitoli contengono una descrizione delle strutture interne Capitolo Argomento trattato Pagina Bas i Struttura 8 2 8 2 Inizio e fine di un blocco 8 4 8 3 Attributi di blocco 8 4 Partedichiarazioni 8 5 Parte istruzioni 8 6 Istruzione 8 11 8 7 Struttura di un blocco funzionale FB 8 12 8 8 Struttura di una funzione FC 8 9 Struttura di un blocco organizzativo OB 8 10 Struttura di un blocco dati DB 8 11 Struttura di un tipo di dati definito dall utente UDT 8 19 8 1 Struttura di sorgenti SCL 8 1 Struttura Panoramica Sequenza dei blocchi Una sorgente SCL si compone del testo sorgente da 1 fino a n blocchi si tratta dei blocchi FB FC OB DB e UDT Per poter compilare la propria sorgente SCL in singoli blocchi l utente deve osservare determinate strutture e norme sintattiche concernenti questi blocchi Unit di programma SCL F Blocco organizzativo i Funzione Da Blocco funzionale I gt a Blocco dati Tipo di dati definito dall utente Figura 8 1 Sintassi di una sorgente Per quanto riguarda la sequenza dei blocchi durante la creazione della sorgente si deve osserv
262. mponente di struttura VALMISURA RESISTENZA 4 5 Assegnazione di una costante ad un elemento di un campo semplice VALMISURA CAMPOSEMPLICE 1 2 4 END_FUNCTION_BLOCK Esempio 14 2 Assegnazione di valori con variabili di tipo STRUCT SCL per S7 300 400 C79000 G7072 C522 01 14 5 Assegnazione di valori 14 4 Assegnazione di valori con variabili di tipo ARRAY Variabile di campo Un campo si compone di 1 fino a max 6 dimensioni e contiene elementi di campo tutti dello stesso tipo Per l assegnazione di campi ad una variabile esistono due varianti di accesso Si pu fare riferimento a campi completi oppure a campi parziali Per fare riferimento ad un campo completo si deve indicare il nome della variabile del campo nomedicampo_1 Un singolo elemento di campo viene indirizzato con il nome del campo seguito da valori indice idonei racchiusi fra parentesi quadre Per ogni dimensione disponibile un indice Essi vengono separati mediante virgole e sono racchiusi fra parentesi quadre Un indice deve essere un espressione aritmetica con tipo di dati INT nomedicampo_1 2 nomedicampo_1 4 5 Assegnazione di Un campo completo pu essere assegnato ad un altro campo se corrispondono sia il un campo tipo di dati delle componenti che i limiti di campo indici di campo pi piccoli e pi completo grandi possibili Sono assegnazioni valide nomedicampo_l nomedicampo_2 Assegnazione
263. mutazione uscita Uscita RILEVAZIONE_DATI risultato_out Radice o quadrato ELSE Uscita RILEVAZIONE_DATI valoremisura_out Valore di misura END_IF END_BLOCCO_ORGANIZZATIVO Figura 2 6 Blocco organizzativo CICLO 0B1 Conversioni dei Il valore di misura presente all ingresso come tipo BYTE Esso deve essere tipi di dati convertito in INT A tal fine esso deve essere convertito da WORD in INT mentre la precedente conversione da BYTE in WORD avviene automaticamente tramite il compilatore vedere il capitolo 18 Non invece necessaria alcuna conversione per l uscita poich quest ultima stata dichiarata come INT nella tabella dei simboli vedere figura 2 5 SCL per S7 300 400 C79000 G7072 C522 01 2 11 Sviluppo di programmi SCL 2 5 Guida alla soluzione Creazione del blocco funzionale RILEVAZIONE Il tipo di blocco FB stato scelto poich esistono dati che devono essere salvati da un ciclo di programma all altro Si tratta delle variabili statiche che vengono dichiarate nella parte di dichiarazione VAR END_VAR vedere tabella 2 4 Le variabili statiche sono variabili locali i cui valori vengono conservati per tutte le esercuzioni dei blocchi Esse hanno la funzione di memorizzare i valori di un blocco funzionale e vengono depositate nel blocco dati di istanza Parte 1 Parte 2 Parte 3 FUNCTION_BLOCK RILEVAZIONE Rielevazione dei valori di misura Avvio ordinamento e calcolo
264. n avanti che all indietro In caso di simultaneit degli impulsi di conteggio in avanti e all indietro vengono eseguite entrambe le operazioni Il valore di conteggio rimane immutato Tabella 17 5 Modo di funzionamento Contatore in avanti e all indietro avanti Operazione Conteggio in Modo di funzionamento Il valore del contatore viene aumentato di 1 quando lo stato del segnale all ingresso CU passa da 0 a 1 e il valore di conteggio minore di 999 Conteggio all indietro Il valore del contatore viene diminuito di 1 quando lo stato del segnale all ingresso CD passa da 0 a 1 e il valore di conteggio maggiore di 999 Imposta Quando lo stato del segnale all ingresso S passa da 0 a 1 il contatore contatore viene impostato con il valore dell ingresso PV Un tale cambio di segnale sempre necessario per poter impostare un contatore Resetta Il contatore viene resettato quando l ingresso R 1 Il reset del contatore imposta il valore di conteggio a 0 Interrogazione Un interrogazione dello stato del segnale all uscita Q risulta 1 se il valore contatore di conteggio maggiore di 0 L interrogazione risulta 0 se il valore di conteggio uguale a 0 17 1 5 Esempio della funzione S_CD Contatore all indietro Occupazione dei parametri 17 8 La tabella 17 6 illustra l
265. nazione di valori con variabili di tipo STRUCT e UDT 14 4 Assegnazione di valori con variabili di tipo ARRAY 14 6 14 5 Assegnazione di valori con variabili di tipo STRING 14 8 14 6 Assegnazione di valori con variabili di tipo DATE_AND_TIME 14 9 14 7 Assegnazione di valori con variabili assolute per aree di memoria 14 10 14 8 Assegnazione di valori con variabili globali 14 11 Istruzioni di controllo rr 15 1 PANOMAMICA iii i aE R a i a ra 15 2 lbiuzione IF lt il 15 3 Istruzione CASE 15 4 Istruzione FOR iasa ae ae 15 5 Istruzione WHILE iii i 15 6 Istruzione REPEAT io iraniana 15 7 Istruzione CONTINUE 15 8 ISEIUZIONE EXIT iii ae adk MEA R E lla 15 9 Istruzione GOTO seene iden drenhe kema a E a a IE a E E E a a aa 15 10 Istruzione RETURN Richiamo di funzioni e blocchi funzionali 16 1 Richiamo e trasferimento di parametri n 16 2 Richiamo di blocchi funzionali FB o SFB 121 Paame FB ici da 16 2 2 Assegnazione d ingresso FB 16 2 3 Assegnazione di transito FB nnana 16 2 4 Esempio di richiamo di un istanza globale 16 2 5 Esempio di richiamo di un istanza locale SCL per S7 300 400 C79000 G7072 C522 01 Contenuto 16 3 Richiamo di fUNzIONI iii 16 317 Parametri FO ii noai ai a 16 3 2 Assegnazione
266. nda al capitolo 16 e Parametro d ingresso Ogni funzione per la conversione di un tipo di dati possiede esattamente un parametro d ingresso con il nome IN Poich si tratta di una funzione con un solo parametro si deve indicare solo il parametro attuale e Valore della funzione Il valore della funzione sempre il valore di ritorno della funzione stessa Le due tabelle illustrano le regole in base alle quali viene convertito un tipo di dati La tabella 18 3 indica anche se la rispettiva funzione influsice sul OK e Assegnazione di nomi Poich i tipi di dati del parametro d ingresso e del valore della funzione risultano dal rispettivo nome della funzione essi non sono elencati nelle tabelle 18 2 e 18 3 p es nella funzione BOOL_TO_BYTE il tipo di dati del parametro d ingresso BOOL e il tipo di dati del valore della funzione BYTE La tabella 18 2 illustra le funzioni di conversione di tipi di dati della classe A Queste funzioni vengono attivate implicitamente dal compilatore ma possono anche essere attivate esplicitamente dall utente Il risultato sempre definito Tabella 18 2 Funzioni di conversione dei tipi di dati della classe A Nome della funzione BOOL_TO_BYTE BOOL_TO_DWORD BOOL_TO_WORD BYTE_TO_DWORD BYTE_TO_WORD Regola di conversione Integrazione con zeri iniziali CHAR_TO_STRING Trasformazione in una stringa di lunghezza 1 contenente lo stesso car
267. ndice C in cui esse vengono utilizzate come terminali In generale le parole chiave non dipendono dal mnemonico Tabella A 7 Parole chiave SCL e identificatori predefiniti in ordine alfabetico Parole chiave Descrizione Regola sintattica AND Operatore logico Operatore logico di base ANY Identificazione per il tipo di dati ANY Specificazione tipo di dati parametro ARRAY Introduzione della specificazione di un array segue la Specificazione tipo di dati array lista indice fra P e BEGIN Introduzione parte istruzioni nel blocco di codice o Blocco organizzativo funzione nella parte inizializzazione del blocco dati blocco funzionale blocco dati BLOCK_DB Identificazione per il tipo di dati BLOCK_DB Specificazione del tipo di dati parametro BLOCK_FB Identificazione per il tipo di dati BLOCK_FB Specificazione del tipo di dati parametro BLOCK_FC Identificazione per il tipo di dati BLOCK_FC Specificazione del tipo di dati parametro BLOCK_SDB Identificazione per il tipo di dati BLOCK_SDB Specificazione del tipo di dati parametro BOOL Tipo di dati semplice per dati binari Tipo di dati bit BY Introduzione dell ampiezza di passo Istruzione FOR BYTE Tipo di dati semplice Tipo di dati bit CASE Introduzione istruzione di controllo per selezione Istruzione CASE CHAR Tipo di dati semplice Tipo del carattere CONST Introduzione per la definizione di costanti Blocco costanti CONTINUE Istruzione di controllo per loop FOR WHILE e Istruzioni CONTINUE REPEAT
268. ne pu estendersi anche su pi righe e oltre a spazi vuoti pu contenere solo commenti In tal modo si pu interrompere e continuare pi volte un literal di stringa vedere anche la figura 11 10 Interruzione di stringa Spazio blank A capo automatico linefeed Ritorno del carrello carriage return Rimpagina formfeed page oppure Caratteri di Tabulatore orizzontale tabulator formattazione i O Sa Commento H Figura 11 10 Sintassi dell interruzione di stringa I caratteri di un literal di caratteri o di stringa possono essere dei caratteri qualsiasi contenuti nel set di caratteri ASCII completo I caratteri di formattazione speciali e i caratteri non rappresentabili direttamente e devono essere introdotti con l ausilio del segno del dollaro Carattere y Carattere y j A segno del dollaro StAMPADIO Carattere sostitutivo o Carattere di controllo PoLoRoT Cifra Cifra esadecimale esadecimale Rappresentazione sostitutiva in codice esadecimale Figura 11 11 Sintassi di un carattere SCL per S7 300 400 C79000 G7072 C522 01 Definizione di constanti ed etichette di salto Caratteri non In un literal di caratteri si possono introdurre anche caratteri non stampabili del set stampabili di caratteri ASCII ampliato A tal fine si deve utilizzare la rappresentazione sostitutiva in codice esadecimale Un carattere ASCII viene introdotto con
269. ne del dispositivo dell utente oppure un unit MPI che viene installata nel dispositivo dell utente In alcuni dispositivi di programmazione l interfaccia MPI gi installata Sommario del Capitolo Argomento trattato Pagina capitolo 3 1 Autorizzazione licenza d utilizzo 3 2 3 2 Installazione disinstallazione del software SCL 3 4 SCL per S7 300 400 C79000 G7072 C522 01 3 1 Installazione del software 3 1 Autorizzazione licenza d utilizzo Introduzione Dischetto di autorizzazione N Eseguire la procedura di autorizzazione durante la prima installazione 3 2 Per l uso del pacchetto software SCL necessaria una specifica autorizzazione licenza d utilizzo Il software cos protetto pu essere utilizzato solo se sul disco fisso del corrispondente PG PC viene riconosciuta la necessaria autorizzazione per il programma o il pacchetto software Per l autorizzazione l utente ha bisogno del dischetto di autorizzazione con protezione anticopiatura che fa parte della fornitura Esso contiene l autorizzazione ed il programma AUTHORS necessario per visualizzare installare e disinstallare l autorizzazione Il numero delle possibili autorizzazioni definito sul dischetto di autorizzazione mediante un contatore di autorizzazioni Ad ogni autorizzazione il contatore viene decrementato di 1 Non appena esso raggiunge il valore 0 con questo dischetto non sono pi possi
270. nei blocchi funzionali di sistema le informazioni che si possono trasferire nel caso di una funzione con il valore della funzione devono essere memorizzate in parametri d uscita Questi parametri d uscita vengono quindi analizzati tramite i blocchi dati di istanza Per ulteriori informazioni si rimanda al capitolo 16 SCL per S7 300 400 C79000 G7072 C522 01 Interfaccia di richiamo 19 2 Interfaccia di trasferimento agli OB Blocchi organizzativi OB disponibili Ulteriori informazioni SCL per S7 300 400 C79000 G7072 C522 01 I blocchi organizzativi costituiscono l interfaccia fra il sistema operativo della CPU e il programma utente Con l ausilio di OB si possono eseguire determinate parti di un programma all avviamento della CPU con esecuzione a frequenza ciclica o temporale a determinate ore o in determinati giorni allo scadere di una durata di tempo predefinita se si verificano degli errori se si verificano interrupt di processo o allarmi di comunicazione I blocchi organizzativi vengono elaborati in base alla priorit loro assegnata Non tutte le CPU sono in grado di elaborare tutti gli OB disponibili in S7 Per una descrizione degli OB disponibili si rimanda ai dati tecnici della CPU usata Per ulteriori informazioni si rimanda alla guida online e ai seguenti manuali 70 Manuale Sistema di automazione S7 300 Installazione configurazione e dati della CPU Questo manuale contiene i dati tecnici c
271. nei suoi parametri formali tabella 2 1 Tabella 2 1 Parametri formali di RILEVAZIONE Nome Tipo di Tipo di dichiarazione Descrizione dati valoremi INT VAR_INPUT Valore di misura sura_inse rito valorenuovo BOOL VAR_INPUT Interruttore per confermare il valore di misura nel buffer circolare ordinamento BOOL VAR_INPUT Interruttore per confermare il nuovo valore di misura nel buffer circolare sceltafun BOOL VAR_INPUT Commutatore per scegliere radice zione o quadrato scelta WORD VAR_INPUT Codifica per scegliere il valore di uscita sceltanuova BOOL VAR_INPUT Interruttore per confermare la codifica risul DWORD VAR_OUTPU Uscita del risultato calcolato tato_uscita valoremi DWORD VAR_OUTPU Uscita del corrispondente valore sura_uscita di misura 2 7 Sviluppo di programmi SCL ANALISI SORT end QUADRAT 2 8 DFB RILEVAZIONE richiama l FB ANALISI Entrambi hanno come dati in comune il campo valori di misura da ordinare Perci esso viene dichiarato come parametro di transito Per i risultati del calcolo della radice e del quadrato viene creato un campo strutturato come parametro di uscita Per i parametri formali vedere la tabella 2 2 Tabella 2 2 Parametri formali di ANALISI Nome Tipo di dati Tipo di dichiarazione Descrizione bufferordi ARRAY VAR_IN_OUT Campo valori di misura n
272. nomi e Perl assegnazione dei nomi si consiglia di scegliere nomi univoci ed espressivi che facilitano la comprensione del programma e Si deve verificare dapprima se il nome gi occupato dal sistema p es da identificatori dei tipi di dati o delle funzioni standard e Campo di validit per i nomi che hanno validit globale il campo di validit si estende per l intero programma I nomi con validit locale sono validi solo all interno di un blocco In tal modo si ha la possibilit di utilizzare lo stesso nome in diversi blocchi La tabella A 12 informa l utente sulle varie alternative SCL per S7 300 400 C79000 G7072 C522 01 A 17 Descrizione formale del linguaggio Restrizioni per l assegnazione di nomi Impiego di IDENTIFICATORE A 18 Durante l assegnazione di nomi si devono osservare le seguenti restrizioni I nomi devono essere univoci nel loro campo di validit cio i nomi che sono gi stati assegnati all interno di un blocco non possono essere pi assegnati nello stesso blocco Inoltre i seguenti nomi occupati dal sistema non possono essere utilizzati e Nomi di parole chiavi p es CONST e Nomi di operatori p es AND XOR END_CONST BEGIN e Nomi di identificatori predefiniti p es nomi per tipi di dati come BOOL STRING INT e Nomi di costanti predefinite TRUE e FALSE e Nomi di funzioni standard p es ABS ACOS ASIN COS LN e Nomi di identificazion
273. notevolmente se per gli indirizzi dei simbolica blocchi e per i blocchi vengono assegnati nomi simbolici A tal fine necessario trascrivere le relative registrazioni nella tabella dei simboli come illustra la figura 2 5 vedere capitolo 7 I nomi possono essere formati in base alla convenzione sui nomi per IDENTIFICATORI o in base alla convenzione per le identificazioni dei segnali p es Ingresso 0 0 vedere appendice A Commento La figura 2 5 illustra il commento introduttivo alla sorgente SCL con la tabella dei introduttivo con simboli in cui vengono stabiliti i nomi simbolici presupposto indispensabile per la tabella dei simboli compilazione delle sorgente C AE E E E E AAA E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E FE FE FE FE FE FE FE FE FE Programma SCL per la rilevazione e l ulteriore elaborazione di valori di misura Il programma stato programmato in modo simbolico Prima che possa essere compilato deve esere presente l attribuzione dei nomi simbolici agli indirizzi dell unit e ai blocchi che vengono eseguiti nella CPU A tal fine necessaria la seguente tabelle dei simboli Introduzione EB1 BYTE Valore di misura Ingresso 0 0 E0 0 BOOL Interruttore d ingresso per l immissione del valore di misura Interruttore di ordinamento EO 1 BOOL Avvio ordinamento e calcolo Interruttore di funzione E0 2 BOOL
274. nstallazione dell autorizzazione di SCL come drive di destinazione si deve indicare il drive C Se si rende necessario eseguire una nuova procedura di autorizzazione p es quando si desidera formattare il drive contenente l autorizzazione si deve prima salvare l autorizzazione A tal fine necessario il dischetto di autorizzazione originale Per trasferire nuovamente l autorizzazione sul dischetto di autorizzazione procedere come segue 1 Inserire il dischetto di autorizzazione originale nel drive A a 3 5 2 Richiamare il programma AUTHORS EXE dal dischetto di autorizzazione 3 Selezionare il comando di menu Autorizzazione Disinstalla 4 Quindi nella finestra di dialogo visualizzata introdurre il drive contenente l autorizzazione e confermare il dialogo Viene visualizzata una lista di tutte le autorizzazioni contenute nel drive corrispondente 5 Selezionare l autorizzazione che si desidera disinstallare e confermare il dialogo Se l operazione si conclude senza errori viene visualizzato il messaggio Autorizzazione lt Nome gt cancellata con successo dal drive lt X gt 6 Confermare il messaggio Dopodich viene visualizzata nuovamente la finestra di dialogo con la lista delle altre autorizzazioni presenti sul drive Chiudere infine la finestra di dialogo se non si desidera disinstallare ulteriori autorizzazioni Il dischetto pu in seguito essere nuovamente utilizzato per eseguire la proce
275. ntattico Condizione ia Condizione Espressione THEN Ga l CASE Espressione istruzioni Parte Valore D al Lista dei valori C Parte istruzioni mwalo Parte istruzioni END_CASE Valore Valore SCL per S7 300 400 C79000 G7072 C522 01 Regole sintattiche Tabella C 8 Regola Valore Istruzioni di ripetizione e istruzioni di salto Istruzione FOR Non dimenticare di mettere un punto e virgola dopo la parola chiave END_FOR Assegnazione iniziale SCL per S7 300 400 C79000 G7072 C522 01 Sintassi delle istruzioni di controllo Diagramma sintattico LITERALINTEGER IDENTIFICATORE Nome di costante Istruzione FOR Istruzione WHILE Istruzione REPEAT Istruzione CONTINUE Istruzione Istruzione RETURN Istruzione T se j r csi Es e Espressione base per valore finale Ge Assegnazione gt _FOR iniziale BY Espressione base per ampiezza di passo Parte assegnazioni del tipo di dati INT DINT Variabile T semplice Espressione base per valore iniziale C 19 Regole sintattiche Tabella C 8 Regola Istruzione WHILE Non dimenticare d
276. nte il programma SETUP EXE non stato avviato sotto Windows 95 e Lo spazio di memoria non sufficiente sul disco fisso vi deve essere uno spazio di memoria libera di almento 8 MB e Dischetto difettoso se si verifica che un dischetto difettoso si prega di rivolgersi alla propria rappresentanza Siemens e Errore d uso iniziare da capo l installazione e seguire rigorosamente le istruzioni 3 5 SCL per S7 300 400 C79000 G7072 C522 01 Come operare con SCL Panoramica Questo capitolo contiene informazioni sull uso di SCL Esso informa l utente sulla superficie operativa dell editor di SCL Sommario del Capitolo Argomento trattato Pagina capitolo 4 1 Avvio del software SCL 4 2 4 2 Adattamento della superficie operativa 4 3 4 3 Lavorare con l editor SCL 4 5 SCL per S7 300 400 C79000 G7072 C522 01 4 1 Come operare con SCL 4 1 Avvio del software SCL Avvio della superficie operativa Windows Avvio dal SIMATIC Manager 4 2 Dopo aver installato il software SCL sul proprio PC si pu avviare SCL anche tramite il pulsante Start sulla barra degli strumenti in Windows 95 Registrazione sotto SIMATIC STEP 7 Il modo pi rapido per avviare SCL quello di posizionare il puntatore del mouse su una sorgente SCL nel SIMATIC Manager e fare doppio clic Informazioni al riguardo si trovano nel manuale utente 231 La figura 4 1 mostra la finestra SCL dopo il richia
277. nti della struttura corrispondono sia nel tipo di dati che nel nome completa Un assegnazione valida Structname_1l Structname_2 Assegnazione di Ad ogni componente di struttura pu essere assegnata una variabile compatibile al componenti di tipo o un altra componente di struttura Sono assegnazioni valide struttura Structname_l elementl Valore Structname_l elementl i 201 0 Structname_l elementl Structname_2 elementl Structname_l nomedicampol Structname_2 nomedicampo2 Structname_l nomedicampo 10 100 SCL per S7 300 400 14 4 C79000 G7072 C522 01 Assegnazione di valori Esempi Gli esempi seguenti illustrano le assegnazioni di valori per i dati delle strutture VALAUSIL RE VALMISURA Struttura obiettivo TENSIONE RE RESISTENZA RE CAMPOSEMPLICE A RUCT ET STRUCT TENSIONE RESISTENZA CAMPOSEMPLICE RUCT END_VA BEGIN ABssegnazione di una struttura completa ad una struttura completa VALMISURA VALATTUALE Assegnazione di una componente di struttura ad una componente di struttura VALMISURA TENSIONE VALATTUALE TENSIONE Assegnazione di una componente di struttura ad una componente di struttura per una variabile dello stesso tipo VARAUSIL VALATTUALE RESISTENZA Assegnazione di una costante ad una co
278. o Esempio Function Block CONTATORE Var_Input Miocontatore Counter End_Var currVAL S_CD C_NO Miocontatore Poich i valori dei parametri p es CD E 0 sono memorizzati in modo globale in determinati casi la loro indicazione opzionale Queste regole di carattere generale devono essere rispettate in fase di assegnazione dei parametri e Durante il richiamo si deve sempre assegnare il parametro per l identificazione del contatore C_NO e A seconda della funzione del contatore si deve assegnare il parametro CU Contatore in avanti o il parametro CD Contatore all indietro e L indicazione dei parametri PV valore di preimpostazione e S impostazione pu essere effettuata a coppie e Il valore del risultato in formato BCD sempre il valore della funzione Avvertenza I nomi delle funzioni e dei parametri sono uguali nei mnemonici SIMATIC e IEC Solo l identificazione del contatore dipende dal mnemonico SIMATIC Z e IEC C SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori Esempio di L esempio 17 2 illustra il richiamo delle funzioni di conteggio richiamo di funzioni di conteggio Function_block FB1 VAR currVal binVal word actFlag bool END_VAR BEGIN currVal 1 S_CD C_NO Z10 CD TRUE S TRUE PV 100 R FALSE CV binvVal Q actFlag currVal 1 S_CU C_NO Z11 CU M0 0 S M0 1 PV 16 110 R M0 2 CV b
279. o da contenere radice e quadrato per ogni valore di misura SCL per S7 300 400 C79000 G7072 C522 01 2 17 Sviluppo di programmi SCL Parte istruzioni 2 18 La figura 2 14 descrive il nesso esistente fra i campi descritti valorimisura bufferordinamento buffercalcolo ANALISI Figura 2 14 Interfaccia dell FB ANALISI Questa interfaccia illustra il nucleo dello scambio di dati per l elaborazione dei valori di misura I valori vengono memorizzati nel blocco dati di istanza RILEVAZIONE_DATI poich nel FB RILEVAZIONE richiamante stata creata un istanza locale per FB ANALISI Dapprima vengono ordinati i valori di misura nel buffer circolare e quindi vengono eseguiti i calcoli e Metodo dell algoritmo per l ordinamento Per ordinare il buffer dei valori di misura viene impiegato il metodo di scambio permanente di valori cio due valori successivi vengono confrontati fra loro e scambiati fino ad ottenere la sequenza desiderata Il buffer utilizzato il parametro di transito bufferordinamento e Avvio del calcolo Dopo aver completato l ordinamento per effettuare i calcoli viene eseguito un loop in cui vengono richiamate la funzione QUADRAT per calcolare il quadrato e la funzione SORT per calcolare la radice I risultati ottenuti vengono memorizzati nel campo strutturato buffercalcolo SCL per S7 300 400 C79000 G7072 C522 01 Sviluppo di programmi SCL Digramma di
280. o in ENO Subito dopo il richiamo di un blocco in base al valore di ENO si pu verificare se tutte le operazioni del blocco sono state eseguite correttamente o se si sono verificati degli errori Esempio L esempio seguente illustra l uso del parametro ENO FUNCTION_BLOCK FB57 Vasi osano BEGIN Richiamo di un blocco funzionale FB30 DB30 X1 10 X2 10 5 Verificare se nel blocco richiamato tutto si svolto correttamente IF ENO THEN tutto corretto RE verificatisi errori per cui attivare il rimedio errori VE ERES END_IF Peta E END_FUNCTION_BLOCK Esempio 16 9 Uso di ENO Esempio L esempio seguente illustra una combinazione di EN e ENO EN e ENO possono anche essere combinati fra loro AL FB30 DB30 X1 10 X2 10 5 La funzione seguente dev sser seguita solo se l FB 30 stato eseguito senza errori RISULTATO FC 85 EN ENO PAR_1 27 Esempio 16 10 Uso di EN e ENO SCL per S7 300 400 C79000 G7072 C522 01 16 21 SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori Panoramica In SCL l esecuzione del programma pu essere comandata in base all indicazione di un temporizzatore o allo stato di un contatore A tal fine STEP 7 mette a disposizione dell utente funzioni di temporizzazione e conteggio che non devono essere definiti prima di utilizzare il programma SCL Som
281. o superino solo in modo irrilevante i tempi reali di esecuzione del processo e Ambiente di test Laboratorio Nell ambiente di test Laboratorio l area di osservazione viene limitata solo dalla potenza di elaborazione della CPU collegata Si pu per avere un aumento dei tempi di ciclo rispetto al processo reale e l area di controllo massima maggiore di quella dell ambiente di test Processo 6 3 Test di un programma Come si impiega Controlla continuativa mente 6 4 Per eseguire la funzione Controlla continuativamente procedere nel modo seguente 1 Assicurarsi che siano soddisfatti i requisiti descritti nel capitolo 6 1 2 Selezionare la finestra che contiene la sorgente del programma da testare 3 Per modificare eventualmente l ambiente del test preimpostato processo selezionare il comando di menu Test gt Ambiente di test gt Laboratorio 4 Posizionare il cursore sulla riga del testo sorgente che contiene la prima istruzione dell area da testare 5 Selezionare il comando di menu Test Controlla continuativamente Risultato l area massima di controllo possibile viene determinata e visualizzata con una barra grigia sul margine sinistro della finestra La finestra si suddivide in due sulla destra verranno visualizzati riga per riga i nomi e i valori attuali delle variabili contenute nell area di controllo 6 Selezionare il comando di menu Test
282. occupazione dei parametri della funzione riportata nell esempio S_CD Tabella 17 6 Parametro di richiamo Parametro Descrizione CNO MIOCONTATORE CD Ingresso E0 0 S SETTARE PV Preimpostazione 16 0089 R Resettaggio Q A0 7 CV BIN_WERT SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori Esempio L esempio 17 3 illustra la funzione di conteggio S_CD FUNCTION _BLOCK CONTARE VAR_INPUT IOCONTATORE COUNTER END_VAR VAR_OUTPUT RISULTATO INT END_VAR VAR IMPOSTARE BOOL RESETTARE BOOL VALORE_BCD WORD Stato contatore codice BCD VALORE_BCD WORD Stato cont binario PREIMPOSTAZIONE WORD END_VAR BEGIN A0 0 1 IMPOSTARE E0 2 RESETTARE E0 3 PREIMPOSTAZIONE 16 0089 VALORE_BCD S_CD C_NO MIOCONTATORE Conteggio in avanti CD E 0 S IMPOSTARE PV PREIMPOSTAZIONE R RESETTARE CV VALORE_BIN O A0 7 RISULTATO WORD_TO_INT VAL_BIN ULTER ELA come parametro d uscita AW4 VALORE_BCD All uscita per visualizzazione END_FUNCTION_BLOCK Esempio 17 3 Esempio di una funzione di conteggio SCL per S7 300 400 C79000 G7072 C522 01 17 9 Contatori e temporizzatori 17 2 Funzioni di temporizzazione TIMER Panoramica I temporizzatori sono elementi funzionali nel programma utente
283. odice o della parte dichiarazione di un blocco dati ridondante poich essa viene eseguita automaticamente SCL per S7 300 400 15 16 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali 16 Panoramica Da un blocco SCL si possono richiamare quali funzioni FC o blocchi funzionali FB e Funzioni e blocchi funzionali generati in SCL e Funzioni e blocchi funzionali che sono stati programmati in un altro linguaggio STEP 7 p es AWL KOP e Funzioni di sistema SFC e blocchi funzionali di sistema SFB disponibili nel sistema operativo della CPU usata dall utente Sommario del Capitolo Argomento trattato Pagina capitolo ieri Richiamo e trasferimento di parametri Tel 16 2 Richiamo di blocchi funzionali FB o SFB 16 2 1 Parametri FB 16 2 2 Assegnazione d ingresso FB 16 7 16 2 3 Assegnazione di transito FB 16 8 16 2 4 Esempio di richiamo di un istanza globale 16 10 16 2 5 Esempio di richiamo di un istanza locale 16 12 16 3 Richiamo di funzioni 16 3 1 Parametri FC 16 3 2 Assegnazione d ingresso FC 16 3 3 Assegnazione d uscita di transito FC 16 17 16 3 4 Esempio di richiamo di funzioni 16 19 16 4 Parametri definiti implicitamente 16 20 SCL per S7 300 400 C79000 G7072 C522 01 16 1 Richiamo di funzioni e blocchi funzionali 16 1 Richiamo e trasferimento di parametri Trasferimento di parametri Principio Parametri formali 16 2 Du
284. ome A 4 0 S_ODTS Temporizzatore come A 4 0 S_OFFDT bet e _ Il tempo massimo durante il quale il segnale d uscita rimane adu 1 equivale al valore di tempo t programmato Il segnale d uscita rimane adu 1 per un breve periodo di tempo quando il segnale d ingresso passa a 0 blee______ t T_ gt Il segnale d uscita rimane ad 1 per il tempo programmato indipendentemente dal tempo in cui il segnale d ingresso rimane ad 1 L impulso viene riavviato quando viene attivato il segnale d avvio nell ambito di t ta Il segnale d uscita passa da 0 a 1 allo scadere del tempo e se il segnale d ingresso ancora 1 i Il segnale d uscita passa da 0 a 1 allo scadere del tempo programmato indipendentemente dal tempo in cui il segnale d ingresso rimane ad 1 ea et Il segnale d uscita passa da 0 a 1 quando il segnale d ingresso passa da 1 a 0 Il segnale d uscita rimane ad 1 per il tempo programmato Il temporizzatore viene avviato quando il segnale d ingresso passa da 0 a 1 Figura 17 8 Scelta del giusto temporizzatore 17 22 SCL per S7 300 400 C79000 G7072 C522 01 Funzioni standard SCL Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Per risolvere i problemi che si verificano pi frequentemente SCL m
285. omi nelle funzioni standard predefinite si Nomi predefiniti nelle costanti standard no Identificazioni di operando negli identificatori no assoluti Nomi liberi si Simboli della tabella dei simboli si I nomi delle funzioni standard p es BYTE_TO_WORD e ABS possono cos essere scritti anche a lettere minuscole Allo stesso modo i parametri per le funzioni di temporizzazione e di conteggio p es SV se o ZV SCL per S7 300 400 C79000 G7072 C522 01 Descrizione formale del linguaggio A 10 Assegnazione di nomi in SCL Assegnazione di In genere per l assegnazione di nomi si hanno due possibilit nomi selezionabili nooy e Si possono assegnare dei nomi nell ambito di SCL Questi nomi devono corrispondere alla regola IDENTIFICATORE in base alla figura A 8 La regola IDENTIFICATORE pu essere usata per ogni nome in SCL e Inoltre si possono inserire nomi tramite STEP 7 con l ausilio della tabella dei simboli Anche per questi nomi la regola IDENTIFICATORE o Simbolo come ulteriore possibilit Grazie alle virgolette il simbolo pu venire formato da tutti 1 caratteri stampabili p es spazio IDENTIFICATORE Lettera gi Lettera jy A Trattino Trattino SIMBOLO Carattere gt 7 i stampabile C gt Figura A 8 Regole lessicali IDENTIFICATORE e Simbolo Regole per Si prega di tener presente quanto segue assegnazione dei
286. one Modo di funzionamento SCL per S7 300 400 C79000 G7072 C522 01 Il segnale d uscita passa da 0 a 1 allo scadere del tempo programmato indipendentemente dal tempo in cui il segnale d ingresso rimane ad 1 La figura 17 6 illustra il modo di funzionamento del temporizzatore Avvia temporizzatore come ritardo all inserzione con memoria Segnale d ingresso Segnale d uscita temporizzatore come ritardo all inserzione con memoria E 2 1 A4 0 S_ODTS Figura 17 6 Temporizzatore Avvia temporizzatore come ritardo all inserzione con memoria Tabella 17 13 Modo di funzionamento Avvia temporizzatore come ritardo all inserzione con memoria Operazione Modo di funzionamento Avvia L operazione Avvia temporizzatore come ritardo alla disinserzione con temporizzatore memoria avvia un temporizzatore indicato quando lo stato del segnale all ingresso di avvio S passa da 0 a 1 Per abilitare il temporizzatore sempre necessario un cambio del segnale Riavvia Il temporizzatore viene riavviato con il valore indicato quando lo stato del temporizzatore segnale all ingresso S passa nuovamente da 0 a 1 mentre il tempo scorre Definiscitempo Il tempo continua a scorrere con il valore indicato all ingresso TV anche di esecuzione quando lo stato del segnale all ingresso S passa a 0 ancora prima dello sca
287. one fisico logico Online indica lo stato di funzionamento in cui il dispositivo di programmazione collegato con il sistema di automazione fisico logico Un operando una parte di un istruzione e indica con che cosa deve operare il processore Esso pu essere indirizzato sia in modo assoluto che in modo simbolico Un operazione fa parte di un istruzione e indica che cosa deve fare il processore I parametri d ingresso esistono solo nelle funzioni e nei blocchi funzionali Con l ausilio dei parametri d ingresso i dati vengono trasferiti al blocco richiamante per un ulteriore elaborazione I parametri di transito sono presenti nelle funzioni e nei blocchi funzionali Tramite parametri di transito i dati vengono trasferiti al blocco richiamato elaborati e il blocco richiamato deposita nuovamente i risultati nella stessa variabile Tramite i parametri d uscita di un blocco nel programma utente STEP 7 1 risultati vengono trasferiti al blocco richiamante SCL per S7 300 400 C79000 G7072 C522 01 Glossario Parametri formali Parametro Parametro attuale Parola chiave Parola di stato Parte dichiarazioni Passo singolo Progetto Programma utente Programma utente S7 SCL per S7 300 400 C79000 G7072 C522 01 Un parametro formale un segnaposto per il parametro effettivo parametro attuale nei blocchi di codice parametrizzabili Negli FB e nelle FC i parametri formali vengono dichia
288. one secondo il capitolo 12 3 Prefisso di dimensione Prefisso di memoria E X i jJ Indirizzo i Espressione base per indice racchiusa fra parentesi Identificazione di operando quadre L indicizzazione deve essere conforme alle regole seguenti e Perun accesso con tipo di dati BYTE WORD o DWORD si deve utilizzare esattamente un indice L indice viene interpretato come indirizzo a byte La larghezza di accesso viene definita tramite il prefisso di dimensione e In caso di accesso con tipo di dati BOOL si devono utilizzare due indici Il primo indice specifica l indirizzo a byte mentre il secondo indice specifica la posizione del bit all interno del byte e Ogni indice deve essere un espressione aritmetica del tipo di dati INT PAROLAMISURA_1 i EW CONTATORI MARCHIO E NBIT Esempio 12 3 Accessoindicizzato 12 7 Definizione di dati globali 12 6 Blocchi dati Panoramica Convenzione Accesso ai blocchi dati Sintassi 12 8 Nei blocchi dati a seconda del caso specifico si possono memorizzare ed elaborare tutti i dati il cui campo di validit fa riferimento all intero programma o all intero progetto Ogni blocco di codice pu accedere in lettura o scrittura ai dati utente globali Per la sintassi concernente la struttura di blocchi dati si rimanda al capitolo 8 Si deve distinguere fra due diversi tipi di blocchi dati e blocchi dat
289. one FOR Espressione base TaS per ampiezza passo La definizione di un loop con FOR comprende anche la definizione di un valore iniziale e di un valore finale Entrambi i valori devono essere dello stesso tipo della variabile d esecuzione Esecuzione L istruzione FOR viene elaborata conformemente alle regole seguenti 1 Quando viene attivato il loop la variabile d esecuzione viene impostata sul valore iniziale e ad ogni passaggio del loop viene incrementata dell ampiezza di passo indicata ampiezza di passo positiva o diminuita ampiezza di passo negativa finch non venga raggiunto il valore finale 2 Dopo ogni giro si verifica se la condizione valore iniziale lt valore finale soddisfatta In caso positivo la sequenza di istruzioni viene eseguita mentre in caso negativo il loop e quindi la sequenza di istruzioni viene saltata Avvertenza Si osservi che l istruzione END_FOR deve essere conclusa con un punto e virgola SCL per S7 300 400 15 8 C79000 G7072 C522 01 Istruzioni di controllo Assegnazione iniziale Valore finale e ampiezza di passo Regole Esempio SCL per S7 300 400 C79000 G7072 C522 01 Per la formazione del valore iniziale della variabile d esecuzione disponibile l assegnazione iniziale rappresentata in figura 15 5 Assegnazione iniziale Variabile e Espressione gt semplice D Phase gt i pe
290. one dei tipi dei dati Dichiarazione di variabili Editazione orientata alla sorgente Editor SCL Glossario 4 I dati locali sono i dati assegnati ad un blocco di codice e che vengono dichiarati nella sua parte di dichiarazione o nella parte dichiarazioni Essi comprendono a seconda del tipo di blocco parametri formali dati statici dati temporanei I dati statici sono dati locali di un blocco funzionale che vengono memorizzati nel blocco dati di istanza e perci rimangono immutati fino alla successiva elaborazione del blocco funzionale I dati temporanei a livello locale appartengono al blocco di codice e non occupano alcuna area di memoria statica poich essi vengono depositati nello stack della CPU I loro valori rimangono immutati solo durante l esecuzione di un blocco I dati utili vengono scambiati fra un unit centrale e un unit di segnale fra un unit funzionale e unit di comunicazione tramite l immagine di processo o accessi diretti I dati utili possono essere segnali di ingresso uscita digitali e analogici informazioni di comando e di stato di unit funzionali Il Debugger SCL un debugger per linguaggi avanzati con il quale si possono localizzare errori logici di programmazione nei programmi utente creati in SCL Tramite la decompilazione conformemente alla rappresentazione AWL possibile caricare e visualizzare il blocco caricato nella CPU con qualsiasi PG PC Possono anche essere assenti de
291. oni del tipo VOID non hanno alcun valore di ritorno Funzione Specificazione del tipo dati IDENTIFICAZIONE nni O dea I BEGIN Parte istruzioni END_FUNCTION Figura 8 11 Sintassi di una funzione FC Dopo la parola chiave FUNCTION introdurre come nome della FC la parola chiave FC seguita dal numero del blocco oppure il nome simbolico dell FC Esempi FUNCTION FC100 FUNCTION NUMERO DI GIRI Qui si deve indicare il tipo di dati del valore di ritorno Sono consentiti tutti i tipi di dati descritti nel capitolo 9 fatta eccezione per i tipi di dati STRUCT e ARRAY L indicazione di un tipo di dati pu essere omessa se con VOID si rinuncia al valore di ritorno Per i blocchi dichiarazioni consentiti si rimanda al capitolo 8 4 Nell ambito della parte istruzioni al nome della funzione si deve assegnare il risultato della funzione Segue un esempio di istruzione valida nell ambito di una funzione con la denominazione FC31 p es FC31 VALORE SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL Esempio L esempio riportato illustra una funzione con i parametri d ingresso formali x1 yl y2 con una parametro di uscita formale Q2 e con un valore di ritorno FC11 Per il significato dei parametri formali si rimanda al capitolo 10 FUNCTION FC11 REAL VAR_INPUT xl REAL x2 REAL yl REAL y2 REAL END_VAR
292. operando nomi selezionabili liberamente p es per variabili ed etichette di salto oppure nomi simbolici generati in una tabella dei simboli Glossario 5 Glossario Identificazione di operando Immagine di processo Immagine di processo delle uscite IPU Immagine di processo degli ingressi IPI Indirizzamento assoluto Indirizzamento simbolico Integer INT Interfaccia di richiamo Istanza Istanza locale Istruzione Glossario 6 Un identificazione di operando una parte dell operando di un operazione contenente informazioni come p es l area di memoria in cui l operazione trova un valore oggetto dati con cui esegue una combinazione oppure trova la grandezza di un valore oggetto dati con il quale esegue una combinazione Nell istruzione Valore EB10 EB l identificazione di operando E indica l area ingresso della memoria B indica un byte in quest area Nella CPU gli stati dei segnali delle unit di ingresso e uscita digitali vengono trasferiti in un immagine di processo Si distingue fra l immagine di processo degli ingressi IPI e quelle delle uscite IPU Alla fine del programma utente l immagine di processo delle uscite viene trasferita dal sistema operativo alle unit di uscita Prima dell elaborazione del programma utente il sistema operativo legge l immagine di processo degli ingressi dalle unit d ingresso Nell ind
293. ostata l opzione corrispondente vedere sotto L opzione informazioni di test deve essere selezionata per ogni programma che si desidera testare con SCL a livello di linguaggio avanzato Ad ogni richiamo di un blocco funzionale esso genera un corrispondente blocco dati di istanza purch quest ultimo non sia gi esistente Si ha la possibilit di adattare il processo di compilazione in base alle esigenze specifiche dell utente A tal fine si deve selezionare il comando di menu Strumenti Impostazioni e nella finestra di dialogo Impostazioni fare clic sulla scheda Compilatore Le opzioni possono essere inserite e disinserite facendo clic con il mouse Impostazioni x Creablocco Compilatore Editor KW Crea codice oggetto Numero max di errori 99 ARRE E Ottimizza codice oggetto Lunghezza max stringa 253 Controlla limiti area E Autorizza commenti annidati i Crea informazioni sull eliminazione errori Attiva flag OK Annulla Applica P Figura 5 3 Finestra di dialogo Impostazioni scheda Compilatore SCL per S7 300 400 C79000 G7072 C522 01 Programmare con SCL Opzioni Creazione del blocco Avvio del processo di compilazione SCL per S7 300 400 C79000 G7072 C522 01 Le opzioni hanno i seguenti significati e Numero massimo di errori numero massimo di errori Il Compiler interrompe la compilazione di una sorgente SCL quando viene raggiunto il nume
294. per S7 300 400 2 6ES7811 1CA02 8EA0 01
295. perandi 13 2 1 Operandi Panoramica Gli operandi sono oggetti con i quali si possono creare espressioni Gli operandi possono essere rappresentati con un diagramma sintattico vedere figura 13 2 Operando gt Costante S p Variabileampliata gt Espressione NOT Operando Figura 13 2 Sintassi di operandi Costante Si possono utilizzare costanti con il loro valore numerico con un nome simbolico o con una sequenza di caratteri Costante gt Valore numerico gt Sequenza di caratteri Nome di costante Figura 13 3 Costanti come operandi Seguono alcuni esempi di costanti valide 4_711 4711 30 0 CARATTERE FATTORI G SCL per S7 300 400 C79000 G7072 C522 01 13 5 Espressioni operatori e operandi Variabile ampliata La variabile ampliata un termine generico per indicare una serie di variabili che vengono descritte pi dettagliatamente nel capitolo 14 Variabile ampliata Variabile semplice gt Variabile assoluta per aree di memoria nella CPU gt Variabile in DB E Variabile in istanza locale si Figura 13 4 Sintassi per la variabile ampliata Esempi di variabili Seguono alcuni esempi di variabili valide ampliate VALOR EWI0 E100 5 DB100 DW IN NGIRI MOTORI SOR 20 variabile Variabile Variabile Variabile Variabi
296. personale qualificato ai sensi delle avvertenze di sicurezza contenute nella presente documentazione si intende chi dispone della qualifica a inserire mettere a terra e contrassegnare secondo gli standard della tecnica di sicurezza apparecchi sistemi circuiti elettrici Uso conforme alle Osservare quanto segue disposizioni i i Pericolo Il dispositivo deve essere impiegato solo per l uso previsto nel catalogo e nella descrizione tecnica e solo in connessione con apparecchiature e componenti esterni omologati dalla Siemens Marchi di prodotto SIMATIC SIMATC HMI e SIMATIC NET sono marchi registrati della SIEMENS AG Tutte le altre sigle qui riportate possono corrispondere a marchi il cui uso da parte di terzi pu violare i diritti di propriet Copyright Siemens AG 1998 All rights reserved Laduplicazione e la cessione della presente documentazione sono vietate come pure l uso improprio del suo contenuto se non dietro autorizzazionescritta Letrasgressionisono passibilidi risarcimento dei danni Tutti i diritti sono riservati in particolare quelli relativi ai brevetti e ai marchi registrati Siemens AG Bereich Automatisierungs und Antriebstechnik Geschaetfsgebietindustrie Automatisierungssysteme Postfach 4848 D 90327 Nuernberg Esclusione della responsabilit Abbiamo controllato che il contenuto della presente documenta zione corrisponda all hardware e al software descritti Non potendo tuttavia esclud
297. pu associare l ingresso Enable con un valore interno AND Il risultato viene assegnato automaticamente all uscita ENO Nei richiami concatenati di blocchi con ENO si pu eseguire l elaborazione dei blocchi successivi in funzione della corretta elaborazione del blocco precedente In SCL un espressione serve per l elaborazione dei dati Si distingue fra espressioni aritmetiche logiche e di confronto Conformemente a IEC 1131 3 una funzione FC un blocco di codice senza dati statici Una funzione offre la possibilit di trasferire parametri nel programma utente In tal modo le funzioni sono particolarmente adatte per parametrizzare funzioni complesse di frequente ripetizione come p es calcoli Una funzione di sistema SFC una funzione integrata nel sistema operativo della CPU che in caso di necessit pu essere richiamata nel programma utente STEP 7 Prima che possano essere elaborati tutti i blocchi devono dapprima essere richiamati La sequenza e l annidamento di questi richiami viene denominata gerarchia di richiamo STEP 7 offre all utente la possibilit di far visualizzare sullo schermo testi ausiliari dipendenti dal contesto mentre si lavora con il software di programmazione Il termine identificatore viene usato per far riferimento agli oggetti linguistici di SCL Esistono le seguenti classi identificatori standard nomi predefiniti e parole chiave identificatori assoluti o identificazioni di
298. r S7 300 400 di riferi Funzioni standard e di sistema I i mento GRAPH HiGraph CFC per CFC per 285 per S7 S7 S7 Volume 1 Volume 2 Jesi 252 254 249 Linguaggi diprogrammazione xxx numero di riferimento bibliografico Figura 1 1 Panoramica sulla documentazione S7 SCL per S7 300 400 IV C79000 G7072 C522 01 Prefazione Tabella 1 1 Contenuto della documentazione S7 Titolo Contenuto Prontuario Questo prontuario consente un facile approccio con le procedure di configurazione e pro Sistema di automazione grammazione dell S7 300 400 E utile soprattutto per coloro che utilizzano il sistema di S7 300 automazione S7 per la prima volta Introduzione alla configu razione e programmazione Manuale di programma zione Software di sistema per S7 300 400 Sviluppo di programmi Il manuale di programmazione Software di sistema per S7 300 400 Sviluppo di pro grammi fornisce le nozioni fondamentali relative alla configurazione del sistema operativo e del programma utente di una CPU S7 Questo manuale destinato agli utenti che non conos cono i sistemi S7 300 e S7 400 Offre una panoramica delle procedure di programmazione e consente quindi di eseguire la configurazione del programma utente Manuale di riferimento Software di sistema per S7 300 400 Funzioni standard e di sistema Il sistema operativo delle CPU dell S 7 include funzioni di sistema e blocchi organizzativi che po
299. r S7 300 400 C79000 G7072 C522 01 Avvia temporizzatore come ritardo all inserzione S_ODT 17 18 17 22 Avvia temporizzatore come ritardo all inserzione con memoria S_ODTS 17 19417 22 Avvia temporizzatore come ritardo alla disinserzione S_OFFDT 17 2017 22 Avviare software SCL 4 2 AWL blocco SCL ricompilare 1 4 estensione SCL 1 2 B Barra degli strumenti Barra dei men 4 3 Base di tempo risoluzione 17 15 Base di tempo per S5 TIME 17 15 Blocchi A 2 combinare programmazione 2 10 Blocchi dati 1 3 Blocchi dati globali accesso assoluto 12 9 accesso indicizzato accesso strutturato Blocchi dichiarazione FB 8 1218 14 OB 8 16 Blocchi funzionali 1 3 j 19 2 Blocchi funzionali di sistema 19 2 Blocchi organizzativi OB1 2 12 2 13 2 16 2 17 2 20 2 21 BLOCCO tipo di parametro 7 13 Blocco 1 3 2 5 concezione STEP 7 1 3 predefinito tipo funzione 1 3 1 4 Blocco di commento 7 20 Blocco funzionale richiamo 16 3 RILEVAZIONE 2 12 Blocco funzionale di sistema SFB Blocco organizzativo OB tipi 19 3 Indice 1 Indice analitico Blocco SCL AWL ricompilare 1 4 nali BLOCK tipo di parametro 9 12 Cc Campo a due dimensioni matrice 9 7 a pi dimensioni 9 7 a una dimensione vettore 9 7 Capacit di apprendimento SCL Caratteri di assegnazioni 14 2 Caricamento di un valore di tempo formato 17 14 C
300. r il valore iniziale Figura 15 5 Sintassi perl assegnazione iniziale Esempi FOR I 1 TO 20 FOR I 1 TO Inizio J Per la formazione del valore finale e della ampiezza di passo desiderata si pu formare un espressione base Valgono le seguenti regole per l istruzione FOR e L indicazione di BY ampiezza di passo pu essere omessa Se l ampiezza di passo non viene specificata essa assume il valore 1 e Il valore iniziale il valore finale e l ampiezza di passo sono espressioni vedere capitolo 13 L analisi avviene una sola volta all inizio dell esecuzione dell istruzione FOR e Durante l esecuzione del loop non consentita alcuna modifica del valore finale e dell ampiezza di passo L esempio 15 3 illustra l uso dell istruzione FOR FUNCTION_BLOCK RICERCA VAR INDICE INT PAROLAIDENT ARRAY 1 50 OF STRING ND_VAR ti BEGIN FOR INDICE 1 TO 50 BY 2 DO IF PAROLAIDENT INDEX KEY THEN EXIT END_IF END_FOR END_FUNCTION_BLOCK Esempio 15 3 Istruzione FOR 15 9 Istruzioni di controllo 15 5 Istruzione WHILE Principio L istruzione WHILE consente l esecuzione iterativa di una sequenza di istruzioni sotto il controllo di una condizione d esecuzione La condizione d esecuzione viene generata in base alle regole di una espressione logica Sintassi Istruzione WHILE WHILE Espressione DO ili END_WHILE Condiz
301. rametri formali del blocco degli FB e FC si possono utilizzare dei cosiddetti tipi di parametri Questi tipi di dati servono per e definire come parametri funzioni di contatori e temporizzatori TIMER COUNTER e definire FC FB DB e SDB come parametri BLOCK_xx e consentire come parametro un operando di qualsiasi tipo di dati ANY e consentire come parametro un area di memoria POINTER Tabella 9 5 Tipo di parametri Parametro Dimensione Descrizione TIMER 2 byte Contrassegna un determinato timporizzatore che viene utilizzato dal programma nel blocco di codice richiamato Parametro attuale p es T1 COUNTER 2 byte Contrassegna un determinato contatore che viene utilizzato dal programma nel blocco codice richiamato Parametro attuale p es Z10 BLOCK_FB 2 byte Contrassegna un determinato blocco che viene utilizzato dal BLOCK_FC programma nel blocco codice richiamato BLOCK_DB Parametro attuale p es FC101 BLOCK_SDB DB42 ANY 10 byte Viene impiegato nei casi in cui come tipo di dati del parametro attuale consentito un tipo di dati qualsiasi POINTER 6 byte Contrassegna una determinata area di memoria che deve essere impiegata dal programma Parametroattuale p es M50 0 Viene definito un determinato temporizzatore o contatore che si desidera utilizzare per l elaborazione di un blocco I tipi di dati TIMER e COUNTER sono consentiti solo per parametri d ingresso VAR_INPUT SCL per S7
302. rametro Tipo di Tipo di Descrizione param dati C_NO COUNTER Numero di identificazione del contatore IDENTIFICAZIONE CONTATORE l area dipende dalla CPU CU Ingresso BOOL Ingresso CU conteggio in avanti CD Ingresso BOOL Ingresso CD conteggio all indietro S Ingresso BOOL Ingresso per impostazione del contatore PV Ingresso WORD Valore compreso nel campo 0 999 per impostare il contatore introdotto come valore 16 lt valore gt laddove il valore in formato binario BCD R Ingresso BOOL Ingresso di resettaggio Q Uscita BOOL Stato del contatore CV Uscita WORD Stato del contatore binario Esempio In seguito al richiamo menzionato nell esempio 17 1 durante il calcolo della funzione viene riservata un area di memoria globale del tipo COUNTER con il nome Z12 Valore di conteggio S_CUD C_NO Z12 CD E 0 CU E 1 S E 2 amp PV 120 R FALSE CV binVal Q actFlag Esempio 17 1 Richiamo di una funzione di conteggio all indietro SCL per S7 300 400 C79000 G7072 C522 01 17 3 Contatori e temporizzatori Richiamo dinamico Regole 17 4 Al posto del numero di conteggio assoluto p es C_NO Z10 nel richiamo si pu indicare anche una variabile con il tipo di dati COUNTER Ci presenta il vantaggio di poter eseguire un richiamo dinamico del contatore assegnando a questa variabile un altro numero assoluto ad ogni richiam
303. rante il richiamo di funzioni o blocchi funzionali avviene uno scambio di dati fra il blocco richiamante e richiamato I parametri che devono essere trasferiti devono essere indicati nel richiamo come lista di parametri I parametri vengono inseriti tra parentesi Pi parametri vengono separati mediante virgole Nel seguente esempio di un richiamo di una funzione vengono indicati un parametro d ingresso un parametro di transito e un parametro d uscita Lista dei parametri FC31 E _Par 3 D_Par LUNGHEZZA A_Par Somma di controllo Parametro d ingresso attuale Parametro di transito attuale Parametro d uscita i attuale Nome della funzione Figura 16 1 Principio del trasferimento di parametri L indicazione dei parametri avviene in forma di assegnazione di valori vedere figura 16 2 Mediante questa assegnazione di valori si assegnano determinati valori parametri attuali ai vari parametri che sono stati definiti nella parte dichiarazioni del blocco richiamato parametri formali Parametri attuali Parametri formali 3 X E Par LUNGHEZZA SS D_Par Somma di controllo lt A_Par Figura 16 2 Assegnazione di valori all interno della lista dei parametri I parametri formali sono parametri che il blocco aspetta di ricevere durante il richiamo Essi sono semplicemente dei Segnaposti per i parametri attuali che vengono trasferiti al blocco durante il richiamo Questi parametr
304. rati dall utente negli SFB e nelle SFC essi sono gi presenti Durante il richiamo del blocco al parametro formale viene assegnato un parametro attuale dopodich il blocco richiamato lavora con questo valore aggiornato I parametri formali fanno parte dei dati locali del blocco e vengono suddivisi in parametri d ingresso d uscita e di transito In SCL variabile di un blocco di codice parametro attuale parametro formale In un richiamo di un blocco funzionale FB o di una funzione FC i parametri attuali sostituiscono i parametri formali Esempio il parametro formale Start viene sostituito con il parametro attuale E 3 6 In SCL le parole chiave vengono utilizzate per contrassegnare l inizio di un blocco per marcare sezioni nella parte di dichiarazione risp nella parte convenzioni e per contrassegnare delle istruzioni Esse vengono inoltre utilizzate per commenti e attributi La parola di stato fa parte integrante dei registri dell unit centrale La parola di stato contiene informazioni di stato e informazioni di errore che possono verificarsi nel corso dell elaborazione di comandi STEP 7 I bit di stato possono essere letti e scritti dall utente i bit di errore possono solo essere letti Qui vengono dichiarati i dati locali di un blocco di codice Il passo singolo un passo di test nell ambito della funzione passo singolo del Debugger SCL Nella funzione passo singolo si pu eseguire il progra
305. rattini Indicazione della data gt SEQUENZA DI CIFRE SEQUENZA DI SEQUENZA DI DECIMALI CIFRE DECIMALI CIFRE DECIMALI Anno Mese Giorno Figura 11 13 Sintassi perl indicazione della data Delle indicazioni valide per la data potrebbero essere Indicazione della data VARIABILE DI TEMPOLl DATE 1995 11 11 VARIABILE DI TEMPO2 D 1995 05 05 SCL per S7 300 400 11 10 C79000 G7072 C522 01 Definizione di constanti ed etichette di salto Durata La durata conformemente alla figura 11 14 viene introdotta dal prefisso TIME o T L indicazione della durata pu aver luogo in due modi e rappresentazione decimale e rappresentazione a livelli DURATA TIME Rappresentazione decimale l T L Rappresentazione a livelli L Rappresentazione decimale RO Ogni unit di tempo p es ore minuti pu essere indicata una sola volta La sequenza giorni ore minuti secondi millisecondi deve essere rispettata Figura 11 14 Sintassi per la durata La rappresentazione decimale viene utilizzata quando si deve indicare la durata con giorni ore minuti secondi o millisecondi Rappresentazione decimale SEQUENZA DI Giorni CIFRE DECIMALI SEQUENZA DI SEQUENZA DI B0 CIFRE DECIMALI C CIFRE DECIMALI Ore SEQUENZA DI CIFRE DECIMALI SEQUENZA DI CIFRE DECIMALI SEQUENZA DI Minuti CIFRE DECIMA
306. re Tabella I nomi seguenti non sono identificatori validi per i motivi indicati 4 Il primo carattere deve essere una lettera o un trattino Array ARRAY una parola chiave e non ammessa Valore S I blank spazi non sono consentiti si deve ricordare che uno spazio un carattere 7 7 Terminologia generale SCL 7 5 Identificatori standard Definizione Parole chiave di blocchi In SCL gi stata definita una serie di identificatori per i quali si usa il termine di identificatori standard e le parole chiave di blocchi e e gli identificatori di operandi per indirizzare le aree di memoria della CPU Questi identificatori standard vengono utilizzati per l indirizzamento assoluto di blocchi La tabella 7 1 ordinata in base al mnemonico tedesco inoltre viene indicata anche il corrispondente mnemonico internazionale Tabella 7 1 Parole chiave di blocchi Mnemonico Mnemonico identifica SIMATIC IEC C DBx DBx Blocco dati Data Block FBx FBx Blocco funzionale Function Block FCx FCx Funzione Function OBx OBx Blocco organizzativo Organization Block SDBx SDBx Blocco dati di sistema System Data Block SFCx SFCx Funzione di sistema System Function SFBx SFBx Blocco funzionale di sistema System Function Block Tx Tx Temporizzatore Timer UDTx UDTx Tipo di dati definito dall utente User defined Data Type Zx Cx Contatori Counter x Cifra comp
307. re vari linguaggi all interno di un unico progetto Se si usa per la prima volta un linguag gio consigliabile leggere il manuale per acquisire familiarit con le procedure di sviluppo dei programmi Durante l esecuzione del software possibile consultare la Guida online che fornisce infor mazioni dettagliate sull uso dei vari editor compilatori Manuali I linguaggi GRAPH HiGraph e CFC offrono ulteriori possibilit permettono di creare co GRAPH HiGraph mandi sequenziali comandi di stato o collegamenti grafici di blocchi I manuali contengono CFC sia le istruzioni per l utente che la descrizione dei linguaggi Se si usa per la prima volta un linguaggio consigliabile leggere il manuale utente per acquisire familiarit con le procedure di sviluppo dei programmi Durante l esecuzione del software ad eccezione di HiGraph possibile consultare la Guida online che fornisce informazioni dettagliate sull uso dei vari editor compilatori 1 Pacchetti opzionali per il software di sistema per S7 300 400 SCL per S7 300 400 C79000 G7072 C522 01 Prefazione Guida all uso del manuale Convenzioni Supporto Informazioni particolari vi Il presente manuale su SCL presuppone la conoscenza di nozioni teoriche sui programmi S7 descritte nel manuale di programmazione 234 Poich i pacchetti linguistici fanno riferimento al software di base STEP 7 si dovrebbe avere una buona conoscenza del softwar
308. reare un file di comando compilazione In compilazione questo file vengono trascritti i nomi delle sorgenti SCL presenti nel progetto Queste sorgenti SCL vengono compilate in elaborazione batch Creazione La creazione del file avviene nelle seguenti fasi e Quando si genera un file con Nuovo o con Apri si deve creare il filtro per il file di comando compilazione e Il file con il quale si lavora adesso ha come contrassegno specifico l estensione inp e Quando si compila questo file i file indicati tramite il nome di questo file vengono compilati in successione Compilazione Durante la compilazione i blocchi generati vengono depositati nel contenitore Blocchi del programma S7 SCL per S7 300 400 5 10 C79000 G7072 C522 01 Test di un programma Panoramica Dove si trovano ulteriori informazioni Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Le funzioni di test di SCL offrono la possibilit di controllare l esecuzione di un programma nella CPU e di localizzare in tal modo probabili errori Durante la compilazione vengono riconosciuti e visualizzati gli errori sintattici Anche gli errori del tempo di esecuzione del programma vengono visualizzati tramite allarmi di sistema con le funzioni di test si possono identificare eventuali errori logici di programmazione Per informazioni pi dettagliate sul test con SCL si rimanda alla Guida online Mentre si lavora
309. regole sono racchiuse in una cornice arrotondata o in un cerchio le informazioni sul loro contenuto sono riportate in appendice A La propriet formato libero significa per l utente e Si possono inserire caratteri di formattazione in qualsiasi posizione e Si possono inserire commenti al blocco e commenti alla riga vedere capitolo 7 6 C 1 Regole sintattiche C 1 Tabella C 1 Regola Programma SCL Unit di programma SCL Blocco organizzativo Funzione Si osservi che nelle fun zioni senza VOID nella parte istruzioni il valore di ritorno deve essere assegnato al nome della funzione Blocco funzionale Suddivisione delle sorgenti SCL Sintassi delle sorgenti SCL Diagramma sintattico Unit di programma SCL Du Blocco organizzativo H Funzione H gt Blocco funzionale H Blocco dati Tipo di dati definito dall utente H ORGANIZATION BLOCK CATE gazone Parte dichiarazioni OB BEGIN IDENTIFISAZIONE C Specificazione tipo di dati Parte istruzioni H END_ORGANIZATION_BLOCK Parte dichiarazioni FC BEGIN gt FUNCTION_BLOCK _ Parte istruzioni END FUNCTION 4 IDENTIFICAZIONE FB Parte dichiarazioni FB San i Parte istruzioni END_FUNCTION_BLOCK ES SCL per S7 300 400 C79000 G7072 C
310. resa fra 0 e 65533 DBO Riservato IDENTIFICATORE STANDARD Parola chiave Nimen blocco _Numero DB FB FC OB UDT Figura 7 5 Sintassi di un identificatore standard Sono identificazioni valide FB10 DB100 T141 SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Identificatore di operandi Le aree di memoria di una CPU possono essere indirizzate da qualsiasi posizione del programma con il proprio identificatore di operando La tabella seguente ordinata in base al mnemonico SIMATIC inoltre viene indicata anche il corrispondente mnemonico internazionale Mnemonico Mnemonico indirizza Tipo di dati SIMATIC IEC Axy Qxy Uscita tramiteimmaginedi processo Bit ABx QBx Uscita tramite immagine di processo Byte ADx QDx Uscita tramite immagine di processo Doppia parola AWx QWx Uscita tramite immagine di processo Parola AXx y QXx y Uscita tramite immagine di processo Bit Dx y Dx y Blocco dati Bit DBx DBx Blocco dati Byte DDx DDx Blocco dati Doppia parola DWx DWx Blocco dati Parola DXx DXx Blocco dati Bit Ex y Ix y Ingresso tramite immagine di processo Bit EBx IBx Ingresso tramite immagine di processo Byte EDx IDx Ingresso tramite immagine di processo Doppia parola EWx TWx Ingresso tramite immagine di processo Parola EXx y IXx y Ingresso tramite im
311. ressioni operatori e operandi 13 1 Operatori Panoramica Classi di operatori 13 2 Le espressioni si compongono di operatori e operandi La maggior parte degli operatori di SCL sono una combinazione di due operandi e vengono perci denominati binari Gli altri operatori lavorano con un solo operando e vengono perci denominati unari Gli operatori binari vengono scritti fra gli operandi p es A B Un operatore unario sempre situato prima del suo operando p es B La priorit degli operatori descritta nella tabella 13 1 regola la sequenza dei calcoli La cifra 1 corrisponde Tabella 13 1 alla massima priorit Panoramica degli operatori Classe Operatore Rappresentazione Priorit Operatore di Assegnazione 11 assegnazione Questo operatore assegna un valore ad una variabile Operatoriaritmetici Potenza HE 2 Operatori unari Pi unario 3 Questi operatori servono Meno unario 3 per calcoli matematici Operatori aritmetici di base Moltiplicazione 4 Funzione modulo MOD 4 Divisione numeri interi DIV 4 Addizione 5 Sottrazione 5 Operatori di confronto Minore di lt 6 Maggiore di gt 6 Questi operatori sono ne Minore o uguale lt 6 sa gt i Mea Maggiore o uguale gt 6 Uguaglianza 7 Disuguaglianza lt gt 7 Operatori logici Negazione unario NOT 3 Operatori logici di base Questi operatori sono AND ANDo amp necessari per e
312. rgente Quando si combinano due operandi di tipo diverso l utente deve eseguire una corrispondente conversione Quando si passa ad un altra classe p es dal tipo dati a bit al tipo dati numerici e quando il tipo dati di destinazione meno importante del tipo dati di sorgente anche durante il cambio all interno di una classe dello stesso tipo La conversione implicita significa che una funzione di conversione viene inserita automaticamente dal compilatore Quando si combinano due operandi di tipo diverso viene eseguita una conversione se non vi alcun cambio ad un altra classe e se il tipo di dati di destinazione non meno importante del tipo dati di sorgente Sono costanti il cui valore e tipo viene determinato dal modo di scrittura formale Si distingue tra literal numerici literal di caratteri e literal per indicazioni di tempo Le costanti con nomi simbolici sono segnaposti per valori costanti di blocchi di codice Le costanti simboliche vengono utilizzate per facilitare la lettura di un programma I dati globali sono dati ai quali si pu far riferimento da qualsiasi blocco di codice FC FB OB Si tratta in particolare di merker M ingressi E uscite A temporizzatori contatori ed elementi di blocchi dati DB Ai dati globali si pu accedere sia in modo assoluto che simbolico Glossario 3 Glossario Dati locali Dati statici Dati temporanei Dati utili Debugger SCL Decompilazione Dichiarazi
313. riabile IDENTIFICATORE ampliata 4 Nome di parametro del parametro di transito Parametro attuale Parametroformale Figura 16 9 Sintassi dell assegnazione di transito Poich il parametro attuale assegnato durante l esecuzione di un FB pu essere modificato come parametro di transito esso deve essere una variabile Per tale motivo nelle assegnazioni di transito un parametro d ingresso non pu essere assegnato non sarebbe possibile attualizzare il nuovo valore Tabella 16 3 Parametri attuali nelle assegnazioni di transito Parametro Spiegazione attuale Variabile Sono disponibili i seguenti tipi di variabili ampliate ampliata variabili e parametri semplici accesso a variabili assolute accesso a blocchi dati richiamo di funzioni vedere anche capitolo 14 SCL per S7 300 400 C79000 G7072 C522 01 Richiamo di funzioni e blocchi funzionali Particolarit SCL per S7 300 400 C79000 G7072 C522 01 Si osservino le seguenti particolarit Dopo l esecuzione del blocco il valore modificato del parametro di transito viene aggiornato Fanno eccezione i parametri di transito di un tipo di dati semplice In questo caso l aggiornamento avviene solo se nel richiamo stato indicato un parametro attuale Nei parametri di transito di un tipo di dati non semplici non sono consentiti come parametri attuali i parametri di transito di FB iparametri di FC Parametro AN
314. riabili e i tipi di dati vedere capitolo 10 2 All inizio dell esecuzione di un OB FB o FC il valore dei dati temporanei non definito Non possibile alcuna inizializzazione L esempio 10 5 illustra la dichiarazioni di variabili di blocco temporanee VAR_TEMP BUFFER_1 ARRAY 1 10 OF INT AIUTO1l AIUTO2 REAL END_VAR Esempio 10 5 Dichiarazionedi variabili di blocco temporanee L accesso alle variabili avviene sempre nella parte istruzioni del blocco di codice nella cui parte dichiarazioni stata dichiarata la variabile accesso dall interno vedere capitolo 14 Assegnazione di valori 10 9 Convenzione di variabili locali e parametri di blocco 10 7 Parametri di blocco Panoramica Blocco dichiarazioni VAR_INPUT VAR_OUTPUT VAR_IN_OUT 10 10 I parametri di blocco sono parametri formali di un blocco funzionale o di una funzione Quando si richiama il blocco funzionale o la funzione i parametri attuali sostituiscono i parametri formali e costituiscono in tal modo un meccanismo per lo scambio di informazioni fra i blocchi richiamati e i blocchi richamanti e I parametri formali d ingresso assumono i valori d ingresso attuali flusso di dati dall esterno verso l interno e I parametri formali di uscita servono per il trasferimento di valori di uscita flusso di dati dall interno verso l esterno e I parametri formali di transito svolgono sia la funzione di parametri d ingres
315. rie esigenze specifiche Durante l immissione dati non viene eseguito alcun controllo sintattico Compilatore Dopo aver creato i propri file sorgente con l Editor SCL essi devono essere compilati ossia convertiti in codice MC7 File sorgente SCL Blocco 1 Blocco i Batch Compiler File sorgente 1 File sorgentej Blocchi nel programma S7 File di comando compilazione Figura 1 3 Compilatore SCL SCL per S7 300 400 C79000 G7072 C522 01 1 5 Presentazione del prodotto Debugger Pacchetto STEP 7 1 6 Il compilatore SCL consente e di compilare un file sorgente SCL con pi blocchi in un solo lancio di compilazione e di compilare pi sorgenti SCL mediante un file di comando compilazione contenente i nomi dei file sorgente e di impostare in modo ottimale il compilatore in base alle proprie esigenze specifiche e di visualizzare tutti gli errori e i messaggi di avviso che si verificano durante la compilazione e di localizzare con facilit i passaggi del testo sorgente contenente errori eventualmente come opzione con descrizione dell errore e indicazioni sul modo di eliminare l errore Il debugger SCL consente di controllare lo svolgimento di un programma nel PLC per poter identificare eventuali errori logici ea N me o o a
316. ro di errori indicato e Crea codice dell oggetto generare con codice eseguibile su un PLC s no e Ottimizza codice dell oggetto generare un codice pi breve Una volta selezionata l opzione delle informazioni sul test non tutte le ottimizzazioni sono possibili e Controlla limiti dell area verificare durante l esecuzione se nell area consentita per questo campo secondo la convenzione sono contenuti indici di campo Se un indice di campo supera l area consentita il flag OK viene impostato su FALSE e Crea informazioni sull eliminazione degli errori generare informazioni di test s no Le informazioni sul test sono necessarie per eseguire i test con il debugger di linguaggi avanzati e Attiva flag OK in fase di esecuzione ogni operazione errata dovrebbe impostare la variabile OK su FALSE e Lunghezza massima della stringa ridurre la lunghezza standard del tipo di dati STRING Nell impostazione di base la lunghezza standard di 254 caratteri e Autorizza commenti annidati nella sorgente SCL possono essere annidati pi commenti l uno dentro l altro s no Nella scheda Crea blocco si hanno varie possibilit di influenzare il processo di compilazione e E possibile impostare se durante la compilazione debbano o meno essere sovrascritti blocchi gi esistenti e E possibile creare dati di riferimento automaticamente durante la compilazione di una sorgente Se questa opzione se
317. rte di programma Questa selezione si basa sul valore corrente di un espressione di selezione Istruzione CASE Espressione di selezione Integer gt CASE Espressione OF Valore Parte 79 Lista dei valori istruzioni l Parte ELSE istruzioni END_CASE Figura 15 2 Sintassi dell istruzione CASE Esecuzione L esecuzione dell istruzione CASE avviene conformemente alle regole seguenti 1 Durante l elaborazione dell istruzione CASE si verifica se il valore dell espressione di selezione contenuto in una determinata lista di valori Ogni valore di questa lista rappresenta uno dei valori consentiti per l espressione di selezione L espressione di selezione deve fornire un valore del tipo INTEGER 2 Se il confronto ha esito positivo viene eseguita la parte istruzioni assegnata alla lista 3 Il ramo ELSE opzionale e viene eseguito se il confronto non ha esito positivo Avvertenza Si osservi che l istruzione END_CASE deve essere conclusa con un punto e virgola SCL per S7 300 400 15 6 C79000 G7072 C522 01 Istruzioni di controllo Lista dei valori Regole Esempi SCL per S7 300 400 C79000 G7072 C522 01 Essa contiene i valori consentiti per l espressione di selezione Lista dei valori Numero intero Valore D Valore Figura 15 3 Sintassi della lista dei
318. sente che la parte dichiarazioni determina anche la struttura del DB d istanza assegnato Esempi CONST COSTANTE 5 ND_CONST ti VAR VALORE1 VALORE2 VALORE3 INT ND_VAR ti SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL Esempio L esempio 8 2 illustra il codice sorgente per un blocco funzionale In questo caso i parametri di ingresso e uscita qui V1 V2 sono stati impostati con valori iniziali FUNCTION _BLOCK FB11 VAR_INPUT Vl INT 7 D_VAR VAR_OUTPUT V2 REAL D_VAR VAR m Z m Z LOOP_1 INT END_VAR BEGIN IF V1 7 THEN LOOP_1 Vl V2 FC2 VALORETEST LOOP_1 Richiamo della funzione FC2 con assegnazione parametri tramite la variabile LOOP_1 END_IF END_FUNCTION_BLOCK Esempio 8 2 Sintassi di un blocco funzionale SCL per S7 300 400 C79000 G7072 C522 01 8 13 Struttura di sorgenti SCL 8 8 Struttura di una funzione FC Panoramica Identificazione FC Specificazione del tipo di dati Parte dichiarazioni FC Parte istruzioni 8 14 Una funzione FC un blocco di codice al quale non assegnata alcuna area di memoria Essa non necessita di alcun DB di istanza Contrariamente ad un FB tale funzione pu ritornare un risultato di funzione valore di ritorno al punto di richiamo Perci tale funzione pu essere utilizzata come una variabile in un espressione Le funzi
319. sere caricati devono essere stati compilati senza errori La funzione Cancellazione totale consente di cancellare in modo online l intero programma utente in una CPU Si deve tener presente che la funzione suddetta resetta la CPU che tutti i collegamenti esistenti con la CPU vengono interrotti e che se inserita una Memory Card il contenuto della Memory Card viene copiato nella memoria di caricamento interna Procedere nel modo seguente 1 Selezionare il comando di menu Sistema di destinazione Stato di funzionamento e commutare la CPU su STOP 2 Selezionare il comando di menu Sistema di destinazione Cancellazione totale 3 Confermare l azione nella finestra di dialogo visualizzata in seguito Il caricamento dei blocchi nello stato di funzionamento STOP presenta determinati vantaggi poich durante la sovrascrittura di un vecchio programma nello stato di funzionamento RUN si possono verificare degli errori Procedere nel modo seguente 1 Selezionare il comando di menu Sistema di destinazione Carica 2 Se il blocco gi presente nella RAM della CPU dopo la relativa domanda del sistema si deve confermare l eventuale sovrascrittura del blocco 5 9 Programmare con SCL 5 7 Creazione di un file di comando compilazione Panoramica Si pu automatizzare la compilazione di pi sorgenti SCL mediante la creazione di un file di comando compilazione File di comando Per il proprio progetto STEP 7 si pu c
320. so sia di parametri di uscita Per ulteriori informazioni sull uso di parametri e sul corrispondente scambio di informazioni si rimanda al capitolo 16 Blocco di parametri VAR_INPUT j Dichiarazione VAR_OUTPUT l di variabili END_VAR VAR_IN_OUT Inizializzazione possibile solo per VAR_INPUT e VAR_OUTPUT Figura 10 8 Sintassi di un blocco parametri Questo blocco dichiarazioni fa parte di un FB o di una FC nell ambito della dichiarazione di variabili vengono indicati il nome della variabile e il tipo di dati assegnati vedere capitolo 10 2 Dopo la compilazione di un FB insieme con il blocco VAR e END_VAR questo blocco determina la struttura del blocco dati di istanza assegnato SCL per S7 300 400 C79000 G7072 C522 01 Convenzione di variabili locali e parametri di blocco Esempio L esempio 10 6 illustra la convenzione di un parametro VAR_INPUT Parametro d ingresso REGOLATORE DWORD ORA TIME_OF_DAY END_VAR VAR_OUTPUT Parametro d uscita VALORI DI RIFERIMENTO ARRAY 1 10 of INT END_VAR VAR_IN_OUT Parametro di transito IMPOSTAZIONE INT END_VAR Esempio 10 6 Dichiarazionidi parametri Accesso L accesso ai parametri di blocco avviene nella parte istruzioni di un blocco di codice e Accesso dall interno cio nella parte istruzioni del blocco nella cui parte dichiarazioni stato dichiarato il parametro Ci
321. spressioni OR esclusivo XOR logiche OR OR 10 Caratteri di parentesi Espressione 1 SCL per S7 300 400 C79000 G7072 C522 01 Espressioni operatori e operandi 13 2 Sintassi delle espressione Panoramica Risultato di un espressione Sequenza di analisi SCL per S7 300 400 C79000 G7072 C522 01 Le espressioni possono essere rappresentate con il diagramma sintattico illustrato nella figura 13 1 Le espressioni aritmetiche logiche e di confronto e le espressioni di potenza presentano alcuni aspetti particolari e perci vengono descritte separatamente nei capitoli da 13 3 fino a 13 6 Espressione Operando i Operatore base Espressione logico Espressione Operatore di confronto Operatore base aritmetico Potenza gt Espressione Esponente gt Espressione Meno unario NOT Negazione O Espressione JO Figura 13 1 Sintassi di espressioni Il risultato di un espressione pu essere e assegnato ad una variabile e utilizzato come condizione per una istruzione di controllo e utilizzato come parametro per il richiamo di una funzione o di un blocco funzionale La sequenza di analisi di un espressione dipende e dalla priorit degli operatori interessati e e dalla sequenza sinistra destra o e dalla parentesi usata per operatori della stessa priorit 13 3 Espressioni operatori e operandi
322. ssi singoli eseguire 6 6 utilizzo stato di blocco eseguire 6 4 taglio 18 8 Funzione di conversione lista classe B 18 4 Funzione di sistema SFC 1 4 Funzione di test controlla comanda variabili generazione di dati di riferimento 6 9 Funzione standard numerica 18 9 Funzioni di conteggio 17 2 Funzioni di temporizzazione TIMER 17 10 Funzioni standard 18 2 conversione esplicita dei tipi di dati 18 2 conversione implicita dei tipi di dati 18 2 conversione tipo di dati 18 2 Funzioni standard di stringhe di bit 18 11 lista funzioni 18 11 SCL per S7 300 400 C79000 G7072 C522 01 Funzioni standard numeriche lista funzioni generali funzioni logaritmiche funzioni trigonometriche 18 10 G Generale compiler debugger editor GRAPH errori durante l installazione 3 5 installazione Guida alla soluzione 2 11 l Identificatore Identificazione di errore tipi di OB 19 3 Identificazione di operando 12 4 Impiego istruzione GOTO Impostazione del compilatore Indice 9 7 Indicizzazione regole 12 7 INDIETRO Vedere Conteggio all indietro S_CD Indirizzo Inizializzazione parametri d ingresso 10 5 variabili statiche Installazione panoramica presupposti sommario del capitolo 3 1 Installazione GRAPH errori procedura Interruzione di stringa 11 8 Istanza globale richiamo Istanza locale richiamo Istruzione CASE
323. ssono risultare utili durante la programmazione Il manuale fornisce una panoramica delle funzioni di sistema dei blocchi organizzativi e delle funzioni standard caricabili dispo nibili con l S7 nonch a titolo informativo descrizioni dettagliate delle interfacce da utiliz zare nel programma utente Manuale utente Il manuale utente STEP 7 illustra l utilizzo principale e le funzioni del software di automa STEP 7 zione STEP 7 Il manuale fornisce sia all utente principiante di STEP 7 che all esperto di STEP 5 una panoramica delle procedure di configurazione programmazione e messa in servizio dell S7 300 400 Durante l esecuzione del software possibile consultare la Guida online Manuale di conversione Il manuale di conversione STEP 7 Da S5 a S7 utile se si desidera convertire il pro STEP 7 gramma S5 per poterlo eseguire sulle CPU S7 Il manuale fornisce una panoramica delle Da S5 a S7 procedure del programma di conversione Per istruzioni dettagliate sull uso delle funzioni di conversione consultare la Guida online che descrive anche le interfacce delle funzioni con vertite disponibili in STEP 7 Manuali I manuali dei linguaggi di programmazione AWL KOP FUP e SCL contengono sia le istru AWL KOP FUP SCL zioni per l utente che la descrizione del linguaggio Per la programmazione dell S7 300 S7 400 sufficiente un solo linguaggio tuttavia all occorrenza possibile uti lizza
324. stringa di bit N CHAR_TO_INT La stringa di bit presente nel parametro d ingresso N viene registrata nel byte meno significativo del valore della funzione Il byte pi significativo viene riempito con zeri DATE_TO_DINT Immissione della stringa di bit N DINT_TO_DATE Immissione della stringa di bit S DINT_TO_DWORD Immissione della stringa di bit N DINT_TO_INT Copiatura del bit per il segno Il valore presente nel parametro d ingresso viene in terpretato nel tipo di dati INT Se il valore minore di 32_768 o maggiore di 32_767 la variabile OK viene impostata su FALSE DINT_TO_TIME Immissione della stringa di bit N DINT_TO_TOD Immissione della stringa di bit S DWORD_TO_BOOL Copiatura dei bit meno significativo S DWORD_TO_BYTE Copiatura degli 8 bit di valore minimo S DWORD_TO_DINT Immissione della stringa di bit N DWORD_TO_REAL Immissione della stringa di bit N DWORD_TO_WORD Copiatura dei 16 bit meno significativi S INT_TO_CHAR Immissione della stringa di bit S INT_TO_WORD Immissione della stringa di bit N REAL_TO_DINT Arrotondamento del valore IEEE REAL a DINT S Se il valore minore di 2_147_483_648 o maggiore di 2_147_483_647 la variabile OK viene impostata su FALSE REAL_TO_DWORD Immissione della stringa di bit N REAL_TO_INT Arrotondamento del valore IEEE REAL a INT S Se il valore minore di 32_768 o maggiore di 2_147_483_647 la variabile OK viene impost
325. sualizzato un messaggio corrispondente e l utente ha le seguenti possibilit di scelta e interrompere l installazione per poi disinstallare la vecchia versione SCL sotto Windows 95 e avviare quindi la nuova installazione oppure continuare l installazione e sovrascrivere la vecchia installazione con la nuova versione In ogni caso prima di eseguire un installazione si consiglia di disinstallare la vecchia versione eventualmente presente nel sistema La semplice sovrascrizione di una vecchia versione del programma presenta lo svantaggio che durante la successiva disinstallazione vi possono essere componenti della vecchia installazione che non vengono rimossi Durante il processo di installazione nella finestra di dialogo vengono visualizzate domande oppure vengono offerte varie opzioni fra le quali l utente deve scegliere Si prega di leggere con cura le seguenti note per poter rispondere facilmente e rapidamente alle varie domande rivolte all utente durante il dialogo SCL per S7 300 400 C79000 G7072 C522 01 Installazione del software Disinstallazione Sulla configurazione dell installazione Sull autorizzazione Conclusione dell installazione Errori durante l installazione SCL per S7 300 400 C79000 G7072 C522 01 Per eseguire la disinstallazione si consiglia di adottare il metodo di disinstallazione normalmente usato sotto Windows 95 1 Sotto Windows 95 avviare il dialogo per l insta
326. te le dimensioni del campo con e indice minimo e massimo possibile campo indice per ogni dimensione L indice pu essere un numero intero qualsiasi da 32768 fino a 32767 e ilimiti devono essere separati da due punti e Le singole aree di indice devono essere separate mediante virgole L intera specificazione indice viene racchiusa fra parentesi quadre Con la specificazione del tipo di dati si dichiara il tipo di dati dei componenti Sono consentiti tutti i tipi di dati elencati in questo capitolo Il tipo di dati di un ARRAY pu a sua volta essere una struttura Le seguenti specificazioni sono possibili tipi di ARRAY ARRAY 1 10 OF REAL ARRAY 1 10 OF STRUCT END_STRUCT ARRAY 1 100 1 10 OF REAL T 9 7 Tipi di dati 9 3 4 Tipo di dati STRUCT Panoramica Dichiarazione dei componenti Identificatore 9 8 Un tipo di dati STRUCT descrive un area composta da un numero fisso di componenti i quali possono essere di qualsiasi tipo Nel diagramma sintattico 9 4 questi elementi di dati vengono indicati subito dopo la parola chiave STRUCT nella dichiarazione dei componenti In particolare un elemento di dati del tipo STRUCT pu essere a sua volta del tipo strutturato In altre parole consentito l annidamento del tipo di dati STRUCT Nel capitolo 10 viene descritto in che modo si pu accedere ai dati di una struttura Specificazione del tipo di dati STRUCT Dichiarazione dei END_
327. temporizzatore viene interrotto durante il suo funzionamento se lo stato temporizzatore del segnale all ingresso S passa da 1 a 0 Definiscitempo Il temporizzatore continua a scorrere con il valore indicato all ingresso TV di esecuzione finch lo stato del segnale all ingresso S 1 Resetta Il temporizzatore viene resettato quando l ingresso di resettaggio R passa da 0 a 1 durante lo scorrimento del temporizzatore In seguito a questo cambio anche il valore del tempo e la base di tempo vengono resettati a zero Lo stato del segnale 1 all ingresso R non rilevante se il temporiz zatore non in funzione Interroga stato Un interrogazione dello stato del segnale per 1 all uscita Q risulta 1 se del segnale il tempo scaduto senza errori e l ingresso S ancora 1 Se il temporizzatore stato interrotto un interrogazione dello stato del segnale 1 risulta sempre 0 Un interrogazione dello stato del segnale per 1 all uscita Q risulta sem pre 0 anche se il temporizzatore non in funzione e RLC all ingresso S sempre 1 Interrogavalore Il valore di tempo attuale pu essere interrogato all uscita BI tramite il attuale di tempo valore della funzione S_ODT SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori 17 2 5 Avviamento del temporizzatore come ritardo all inserzione con memoria Descrizi
328. teral di numeri interi LITERAL DI NUMERI INTERI O gt Or Sequenza di cifre decimali 1 numero intero ottale CANE numero intero esadecimale solo per i tipi di dati numero intero binario INTEeDINT Figura 11 4 Sintassi di un literal di numeri interi Gli esempi seguenti contengono valide modalit di scrittura per sequenze di cifre decimali all interno di literal di numeri interi 1000 1_120_200 666_999 _400_311 Numeri L indicazione di un literal di numeri interi in un sistema numerico diverso da quello binari ottali decimale avviene premettendo i prefissi 2 8 o 16 ai quali fa seguito la cifra esadecimali nella rappresentazione del rispettivo sistema Il trattino pu essere inserito fra le cifre per facilitare la leggibilit di grandi numeri La modalit di scrittura generale di un literal di numeri interi viene illustrata nella figura 11 5 con un esempio di una sequenza di cifre per un numero ottale Sequenza di cifre ottali Cifra ottale gt 4 or Trattino Figura 11 5 Sintassi di una sequenza di cifre ottali Gli esempi seguenti contengono valide modalit di scrittura per literal di numeri interi Valore_2 2 0101 Numero binario valore decimale 5 Valore_3 8 17 Numero ottale valore decimale 14 Valore_4 16 F Numero esadecimal valore decimale 15 SCL per S7 300 400 C79000 G7072 C522 01 11 5 Definizione di constant
329. terminate parti del blocco come p es simboli e commenti Con la dichiarazione dei tipi dei dati l utente pu dichiarare tipi di dati definiti dall utente La dichiarazione di variabili comprende l indicazione di un nome simbolico di un tipo di dati eventualmente di un valore di preassegnazione indirizzo e commento La programmazione in SCL consente l introduzione orientata alla sorgente di un programma STEP 7 L introduzione di un programma pu essere eseguita con qualsiasi tipo di editor Il codice programma vero e proprio viene generato solo durante la compilazione In questa fase vengono identificati anche eventuali errorri Questo tipo di introduzione particolarmente adatto per la creazione simbolica di programmi standard L Editor SCL un editor adattato a SCL con il quale si pu creare una sorgente SCL SCL per S7 300 400 C79000 G7072 C522 01 Glossario Enable EN Enable out ENO Espressione Funzione FC Funzione di sistema SFC G Gerarchia di richiamo Guida online Identificatore SCL per S7 300 400 C79000 G7072 C522 01 In STEP 7 ogni blocco possiede un ingresso Enable EN che pu essere impostato durante il richiamo di un blocco Se su EN presente un segnale 1 il blocco viene richiamato mentre se presente un segnale 0 il blocco non viene richiamato In STEP 7 ogni blocco possiede un uscita Enable Output ENO All interno del blocco l utente
330. ti si presuppone sempre che il simbolo DISTANZA sia stato definito in una tabella dei simboli per FC 37 FUNCTION DISTANZA REAL VAR_INPUT X1 REAL X2 REAL Yl REAL Y2 REAL END_VAR VAR_OUTPUT Q2 REAL END_VAR BEGIN DISTANZA SORT AX2 X1 2 Y2 Y1 F 2 Q2 X1 X2 Y1 Y2 END_FUNCTION Esempio 16 6 Calcolo della distanza Per l ulteriore utilizzo di un valore di una funzione sono disponibili fra l altro le seguenti possibilit in un assegnazione di valori p es LUNGHEZZA DISTANZA X1 3 Y1 2 X2 8 9 Y2 7 4 Q2 Somma di controllo in un espressione aritmetica o logica p es RADIUS DISTANZA X1 3 Y1 2 X2 8 9 Y2 7 4 Q2 Somma di controllo in un assegnazione dei parametri di un blocco che viene richiamato p es FB32 DISTANZ DISTANZA X1 3 Y1 2 X2 8 9 Y2 7 4 Q2 Somma di controllo Esempio 16 7 Calcolo di valori all interno di un FC 16 19 Richiamo di funzioni e blocchi funzionali 16 4 Parametri definiti implicitamente Panoramica I parametri definiti implicitamente possono essere utilizzati senza doverli prima definire in un blocco In SFC sono disponibili i seguenti parametri definiti implicitamente e il parametro d ingresso EN e e il parametro d uscita ENO Entrambi i parametri sono del tipo BOOL e sono depositati nell area dei dati di blocco temporanei Parametro Ogni blocco funzion
331. ti si pu caricare un valore di conteggio predefinito e Decimale come valore di un numero intero p es 295 purch questo valore corrisponda ad un valido formato BCD e In formato BCD introduzione come costante esadecimale p es 16 127 Il risultato pu essere analizzato in due formati diversi e Come risultato della funzione tipo WORD in formato BCD e Come parametro d uscita CV tipo WORD binario SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori 17 1 2 Conteggio in avanti Counter Up Descrizione Con il contatore Counter Up si possono eseguire solo operazioni di conteggio in avanti Tabella 17 3 Modo di funzionamento Contatore in avanti Modo di Operazione Modo di funzionamento funzionamento Conteggio in Il valore del contatore viene aumentato di 1 quando lo stato del segnale avanti all ingresso CU passa da 0 a 1 e il valore di conteggio minore di 999 Imposta Quando lo stato del segnale all ingresso S passa da 0 a 1 il contatore contatore viene impostato con il valore dell ingresso PV Un tale cambio di segnale sempre necessario per poter impostare un contatore Resetta Il contatore viene resettato quando l ingresso R 1 Il reset del contatore imposta il valore di conteggio a 0 Interrogazione Un interrogazione dello stato del segnale all uscita Q risulta 1 se il valore contatore di conteggio maggiore di
332. to Pagina 15 1 Panoramica 15 2 15 2 Istruzione IF 15 3 Istruzione CASE 15 4 Istruzione FOR 15 5 Istruzione WHILE 15 6 Istruzione REPEAT 15 11 15 7 Istruzione CONTINUE 15 12 15 8 Istruzione EXIT 15 13 15 9 Istruzione GOTO 15 10 Istruzione RETURN 15 16 15 1 Istruzioni di controllo 15 1 Panoramica Istruzioni di selezione Istruzioni di ripetizione Istruzioni di salto 15 2 Nei programmi spesso si verifica il problema di dover eseguire determinate sequenze di istruzioni in funzione di certe condizioni La diramazione di programma Selezione offre la possibilit di controllare il flusso di programma attivando da 2 fino a n sequenze di istruzioni alternative Tabella 15 1 Tipi di diramazioni Tipo di diramazione Istruzione IF Funzione Con l istruzione IF si pu far proseguire l esecuzione del programma da una diramazione scelta fra due alternative in funzione di un determinata condizione che pu essere TRUE o FALSE Istruzione CASE Con l istruzione CASE si pu far proseguire l esecuzione del programma in base ad una diramazione di tipo 1 n assegnando ad una variabile un determianto valore scelto fra n valori possibili L elaborazione di loop pu essere controllata con l ausilio di istruzioni di ripetizione Un istruzione di ripetizione indica quali parti di un programma devono essere ripetute in funzione di determinate condizioni Tabella 15 2 Tipi di istruzioni per l
333. tomazione S7 400 M7 400 Configurazione Manuale di riferimento Sistemi di automazione S7 400 M7 400 Caratteristiche delle unit modulari Lista operazioni Sistema di automazione S7 400 Manuale di conversione STEP 7 Da S5 a S7 Manuale utente Software di base per S7 e M7 STEP 7 Manuale AWL per S7 300 400 Programmazione di blocchi Manuale KOP per S7 300 400 Programmazione di blocchi Manuale di programmazione Software di sistema per S7 300 400 Sviluppo di programmi Manuale di riferimento Software di sistema per S7 300 400 Funzioni standard e di sistema Manuale FUP per S7 300 400 Programmazione di blocchi Indice generale STEP 7 D 1 Bibliografia 249 Manuale CFC Continuous Function Chart Volume 2 251 Manuale GRAPH per S7 300 400 Programmazione di comandi sequenziali 252 Manuale HiGRAPH per S7 300 400 Programmazione di diagrammi di stato 253 Manuale C per S7 300 400 Programmazione in C 254 Manuale CFC Continuos Chart Volume 1 290 Manuale utente ProC C per M7 300 400 Programmazione in C 291 Manuale utente ProC C per M7 300 400 Debugger per programmi in C 800 DOCPRO Sviluppo di schemi circuitali a norma solo su CD 800 Manuale di riferimento Software di sistema per S7 300 400 STEP 7 Funzioni standard parte 2 solo su CD SCL per S7 300 400 D 2 C79000 G7072 C522 01 Glossario ALT Area di memoria Attributo B Blocco Blocco dati di istanza
334. uando si impiega l istruzione GOTO si devono osservare le regole seguenti e La destinazione di un istruzione di salto deve trovarsi all interno dello stesso blocco e La destinazione di salto deve essere univoca e Un salto in un blocco di loop non consentito possibile invece un salto da un blocco di loop SCL per S7 300 400 C79000 G7072 C522 01 Istruzioni di controllo Esempio L esempio 15 8 illustra l uso dell istruzione GOTO FUNCTION_BLOCK FB3 GOTO_BSP VAR INDICE INT A INT B ENT e INT PAROLA DI IDENTIFICAZIONE ARRAY 1 51 OF STRING END_VAR LABEL ETICHETTA1 ETICHETTA 2 ETICHETTA 3 END_LABEL BEGIN IF A gt B THEN GOTO ETICHETTA 1 ELSIF A gt C THEN GOTO ETICHETTA 2 END_IF SA ETICHETTA 1 INDICE 1 GOTO ETICHETTA3 ETICHETTA 2 INDICE 2 RE ETICHETTA 3 ff Esempio 15 8 Istruzione di salto GOTO SCL per S7 300 400 C79000 G7072 C522 01 15 15 Istruzioni di controllo 15 10 Istruzione RETURN Principio Un istruzione RETURN causa l uscita dal blocco momentaneamente in elaborazione OB FB FC e il ritorno al blocco richiamante o al sistema operativo quando si esce da un OB Istruzione RETURN RETURN Figura 15 11 Sintassi dell istruzione RETURN Avvertenza Un istruzione RETURN alla fine della parte di esecuzione di un blocco di c
335. uenza gt Blocco 1 Blocco 2 Blocco aj Iterazione Alternativa Figura 7 1 Diagrammasintattico Il diagramma sintattico viene letto da destra verso sinistra Si devono osservare le seguenti strutture delle regole e Sequenza sequenza di blocchi e Opzione ramo saltabile e Jterazione ripetizione di rami e Alternativa diramazione Un blocco un elemento base oppure un elemento che a sua volta si compone di vari blocchi La figura seguente mostra i tipi di simboli corrispondenti ai vari blocchi S__I Elemento base che non deve essere Elemento composto che viene ulteriormente descritto descritto da ulteriori diagrammi Si tratta di caratteri stampabili e di sintattici caratteri speciali di parole chiave e di identificatori predefiniti Le indicazioni su questi blocchi devono essere accettate senza alcuna modifica SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL Che cosa significa Durante l introduzione di testi sorgente si devono osservare sia le regole sintattiche libert di formato che le regole lessicali Entrambi i gruppi vengono descritti nelle appendici B e C La libert di formato significa che fra i blocchi vuoti si possono inserire caratteri di formattazione come spazi tabulatori cambi pagina e commenti Regole lessicali Le regole lessicali come p es rappresentato nella la figura 7 2 non consentono alcuna libert di formato Quando si applica una regola lessicale le
336. ufferordinamento index 1 bufferordinamento index 1 hilf scambiare TRUE END_IF END_FOR UNTIL NOT scambiare END_REPEAT CK Parte 2 Calcolo PR AAA AAA AAA AAA AAA AAA AA AAA AAA AAA AAA A AAA AAA AAA AAA AAA AAA Calcolo della radice con la funzione standard SORT e calcolo del quadrato con la funzione QUADRAT FOR index 0 TO LIMITE BY 1 DO valore INT_TO_REAL bufferordinamento index risult SQRT valore REAL_TO_INT risult QUADRAT bufferordinamento index buffercalcolo index radice buffercalcolo index quadrato END_FOR END_FUNCTION_BLOC Figura 2 16 Parte istruzioni del blocco funzionale ANALISI SCL per S7 300 400 2 20 C79000 G7072 C522 01 Sviluppo di programmi SCL 2 7 Creazione della funzione QUADRAT Parte istruzioni Dapprima si verifica se il valore d ingresso supera il limite massimo consentito per il campo di conteggio di numeri interi In tal caso viene trascritto il valore massimo per i numeri interi Altrimenti viene eseguita la funzione di calcolo del quadrato Il risultato viene trasferito come valore della funzione FUNCTION QUADRAT INT EERIAIKA AAA EA ae EA EA EEA EEA AEREA ARE EA AAA AE AAA AAA AAA EEA AEREE Questa funzione fornisce come valore della funzione il quadrato del valore d ingresso oppure in caso di overflow il valore massimo che pu essere rappresentato come numero intero io i iii iii eee VAR_INPUT valore 3 INT END_VAR B
337. umenti Impostazioni quindi selezionare l opzione nella scheda Compilatore della finestra di dialogo successiva e Un commento non deve interrompere n un nome simbolico n una costante Per consentita l interruzione di stringhe Questi commenti sono falsi FUNCTION _BLOCK Adattamento BLOCK FB 10 Esempio di Nell esempio sono contenuti due blocchi al commento e un commento a una riga inserimento di commenti FUNCTION_BLOCK FB15 l IC Qui vi il commento a pi righe Cchesipuogesiendensi sis Universe ig VAR INTERRUTTORE INT commento a una riga END_VAR BEGIN D 7 7 a x 1 Assegnazione di un valore alla variabile L J INTERRUTTORE 3 END_FUNCTION_BLOCK Figura 7 10 Esempio di commenti Avvertenza I commenti a una riga che si trovano nella stessa riga direttamente dietro alla dichiarazione delle variabili di un blocco vengono importati al momento della decompilazione in AWL Questi commenti si trovano in AWL nell area delle interfacce ovvero nella parte superiore della finestra vedere anche 231 Nell esempio riportato nella figura 7 10 viene perci confermato il primo commento a una riga SCL per S7 300 400 C79000 G7072 C522 01 7 21 SCL per S7 300 400 C79000 G7072 C522 01 Struttura di sorgenti SCL Panoramica Sommario del capitolo SCL per S7 300 400 C79000 G7072 C522 01 Una sorgente SCL si co
338. vare una sorgente SCL esistono diverse possibilit e Selezionare il comando di menu File Salva o fare clic sul simbolo Salva nella barra degli strumenti La sorgente SCL viene aggiornata e Se si desidera creare una copia della sorgente SCL attuale selezionare il comando di menu File Salva con nome Appare la finestra di dialogo Salva con nome in cui si pu indicare il nome e il percorso del duplicato e Quando viene eseguito il comando di menu File Chiudi e una sorgente SCL modificata non stata ancora salvata il sistema chiede se l utente desidera salvare o annullare le modifiche apportate oppure se si desidera interrompere il comando Chiudi AI posto del comando di menu File Chiudi si pu anche fare clic sul simbolo Chiudi nella riga del titolo Anche quando si desidera uscire da SCL tramite il comando di menu File Esci non avendo ancora salvato lo stato attuale delle sorgenti aperte per ogni sorgente viene visualizzato un dialogo in cui l utente pu salvare o annullare le modifiche apportate In qualsiasi momento possibile stampare blocchi dichiarazioni e istruzioni presenti nella sorgente SCL A tal fine si deve dapprima installare e impostare la stampante tramite il pannello di controllo di Windows Procedere nel modo seguente e Fare clic sul simbolo Stampa nella barra degli strumenti oppure selezionare il comando di menu File Stampa Viene visualizzata una finestra di
339. variabili A1 A2 A3 INT non possibile In tal caso le variabili devono essere inizializzate singolarmente I campi vengono impostati in base alla figura 10 3 con dei valori iniziali Lista inizializzazione campo Costante H Listainzializzazione campo Costante H Num dec H j Q gt Fattore di ripetizione Listainizializzazione campo Q Figura 10 3 Sintassi dell inizializzazione di campi CAMPO ARRAY 1 10 1 100 OF INT 10 100 0 j Fattore di ripetizione numero se l Valore Fattore di ripetizione numero righe SCL per S7 300 400 C79000 G7072 C522 01 10 5 Convenzione di variabili locali e parametri di blocco Esempi 10 6 L esempio 10 1 illustra l inizializzazione di una variabile statica Esempio 10 1 Inizializzazione di variabili statiche L esempio 10 2 illustra l inizializzazione di un campo a due dimensioni Se si desidera definire in SCL la seguente struttura di dati sotto il nome REGOLATORI deve scrivere z1 si VAR R EGOLATORE A RRAY 1 3 1 4 OF INT 54 736 83 77 1289 10362 385 2 60 37 7 103 4 60 Esempio 10 2 Inizializzazionedi campo L esempio 10 3 illustra l inizializzazione di una struttura VAR ENERATORE STRUCT EN E EN E DATI Al NT R IL A2
340. vi e CPU 314 non possibile alcun punto di arresto attivo Dopo aver avviato la funzione di test Punti d arresto attivi si possono eseguire le seguenti funzioni e Esegui istruzione successiva Avanzare di un istruzione permette l emissione dei valori delle variabili e Continua Continuare fino al successivo punto di arresto attivo e Esegui fino alla selezione Continuare fino a un punto di testo contrassegnato nella sorgente definito dall utente Avvertenza Si deve tener presente che il numero massimo dei punti di arresto attivi non viene superato quando si usano i comandi di menu Esegui istruzione successiva o Esegui fino alla selezione poich tali comandi impostano e attivano implicitamente un punto di arresto 6 5 Test di un programma Come si usa la funzione Punti d arresto attivi 6 6 Prima di avviare il test assicurarsi che siano soddisfatti i requisiti indicati nel capitolo 6 1 A questo punto possibile testare il programma nella CPU passo dopo passo utilizzando la funzione Punti d arresto attivi Il procedimento viene illustrato nella descrizione dettagliata che segue e nella figura 6 1 Selezionare la finestra contenente la sorgente del blocco da testare 2 Impostare i punti di arresto posizionando il cursore sulla posizione desiderata nella sorgente programma e scegliere quindi il comando di menu Test Definisci punto d arresto I punti di arresto vengono rappr
341. viene dichiarata nella parte dichiarazioni Variabile OK La variabile OK serve per annotare l esecuzione corretta o errata di una sequenza di comando blocchi Si tratta di una variabile globale del tipo BOOL SCL per S7 300 400 C79000 G7072 C522 01 Glossario 13 SCL per S7 300 400 C79000 G7072 C522 01 Indice analitico A Accesso ai dati globali 12 2 12 3 Accesso assoluto ai blocchi dati globali 12 9 ai dati globali del sistema 12 4 Accesso indicizzato ai blocchi dati globali 12 11 ai dati globali del sistema 12 7 regole 12 7 12 11 Accesso strutturato ai blocchi dati globali 12 12 Ambiente di sviluppo batch compiler debugger editor Area di lavoro 4 3 Aree di dati dichiarazione 12 2 Aree di memoria CPU panoramica dati globali Aritmetici operatori 13 7 Assegnazione di variabili semplici 14 3 Assegnazione d uscita parametri attuali parametro attuale Assegnazione di nomi Assegnazione di transito parametri attuali 16 8 Assegnazione di valori 14 1 campi campi parziali 14 6 dati di sistema globali dati utente globali strutture 14 4 Assegnazione parametri 16 2 Attributi di blocco definizione Attributi di sistema per blocchi 8 6 per parametri AUTHORS EXE Autorizzazione 3 5 dischetto originale ei Avvia temporizzatore come impulso S_PULSE 17 16217 22 Avvia temporizzatore come impulso prolungato S_PEXT 17 17 SCL pe
342. viene spiegato nel capitolo 14 Assegnazione di valori e nel capitolo 13 Espressioni operatori e operandi e Accesso dall esterno si pu accedere ai parametri di blocchi funzioni tramite i DB di istanza assegnati vedere capitolo 14 8 SCL per S7 300 400 C79000 G7072 C522 01 10 11 Convenzione di variabili locali e parametri di blocco 10 8 Flag flag OK Descrizione Convenzione Esempio 10 12 Il flag OK serve per prendere nota dell esecuzione corretta o errata di un blocco Si tratta di una variabile globale di tipo BOOL con la parola chiave OK Se durante l esecuzione di un istruzione di blocco si verifica un errore p es un overflow durante una moltiplicazione il flag OK viene impostato su FALSE Quando si esce dal blocco il valore del flag OK viene memorizzato nel parametro di uscita ENO capitolo 16 4 definito implicitamente e pu quindi essere analizzato dal blocco richiamante All inizio dell esecuzione di un blocco il flag OK ha il valore TRUE Tale valore pu essere interrogato oppure impostato su TRUE FALSE in qualsiasi posizione di un blocco con istruzioni SCL Il flag OK una variabile definita dal sistema Non necessaria alcuna convenzione Tuttavia se si desidera utilizzare il flag OK nel proprio programma utente prima della compilazione si deve selezionare l opzione del compilatore Attiva Flag OK L esempio 10 7 illustra l impiego del flag OK Impostare
343. vio dell ordinamento del buffer circolare ed esecuzione di calcoli con i valori di misura I risultati vengono memorizzati in un campo nuovo buffer di calcolo IF ordinamentonuovo lt gt ordinamentovecchio THEN puntatore 0 Resettare il puntatore buffer circolare istanza_analisi bufferordinamento valorimisura Richiamo di ANALISI END_IF ordinamentovecchio ordinamentonuovo bufferrisultati istanza_analisi buffercalcolo Quadrato e radice Parte 3 Analisi codifica e preparazione uscita XXX XXX XX XXX XXX X In caso di modifica di sceltanuova viene determinata nuovamente la codifica per l indirizzamento dell elemento di campo per l uscita i bit rilevanti di scelta vengono mascherati e convertiti in integer A seconda della posizione dell interruttore sceltafunzione viene preparata radice o quadrato per l uscita IF sceltanuova lt gt sceltavecchia THEN indirizzo WORD_TO_INT SHR IN scelta N 12 AND 16 0007 END_IF sceltavecchia sceltanuova IF sceltafunzione THEN risulatto_out bufferrisultato indirizzo quadrato ELSE risultato_out bufferrisultato indirizzo radice END_IF valoremisura_out valorimisura indirizzo Visualizzazione valori di misura END_FUNCTION_BLOCK Figura 2 11 Parte istruzioni del blocco funzionale RILEVAZIONE SCL per S7 300 400 2 16 C79000 G7072 C522 01 Sviluppo di program
344. zatore Avvia temporizzatore come impulso prolungato Tabella 17 11 Modo di funzionamento Avvia temporizzatore come impulso prolungato Modo di Operazione Modo di funzionamento funzionamento ana VERSUS A RE vvia L operazione Avvia temporizzatore come impulso prolungato avvia un temporizzatore tempo indicato quando lo stato del segnale all ingresso di avvio S passa da 0 a 1 Per abilitare il temporizzatore sempre necessario un cambio di segnale Avvia Se lo stato del segnale all ingresso S durante il tempo di esecuzione passa nuovamente il nuovamente a 1 il tempo viene avviato nuovamente con il valore del tempo di tempo indicato esecuzione Preimposta Il temporizzatore continua a funzionare con il valore indicato all ingresso tempo di TV fino allo scadere del tempo programmato esecuzione Resetta Il temporizzatore viene resettato quando l ingresso di reset R passa da 0 a 1 durante lo scorrimento del temporizzatore In seguito a questo cambio anche il valore del tempo e la base di temporizzazione vengono resettate a zero Lo stato del segnale 1 all ingresso R non rilevante se il temporizzatore non in funzione Interroga stato Finch il temporizzatore in funzione un interrogazione dello stato del del segnale segnale 1 all ingresso Q fornisce il risultato 1 indipendentemente dalla lunghezza del segnale d ingresso Interrog
345. zatore come ritardo alla disinserzione Operazione Modo di funzionamento Avvia L operazione Avvia temporizzatore come ritardo alla disinserzione avvia il temporizzatore temporizzatore indicato quando lo stato del segnale S passa da 1 a 0 Per abilitare il temporizzatore necessario sempre un cambio del segnale Riavvia Il temporizzatore viene riavviato quando lo stato del segnale all ingresso S temporizzzatore passa nuovamente da 1 a 0 p es dopo il resettaggio Definiscitempo Il tempo scorre con il valore indicato all ingresso TV di esecuzione Resetta Il temporizzatore viene resettato se l ingresso di resettaggio R passa da 0 a 1 mentre il tempo scorre Interroga stato Una interrogazione del segnale per 1 all uscita Q ha come risultato 1 se lo del segnale stato del segnale all ingresso S 1 oppure se il tempo scorre Interroga valore Il valore di tempo attuale pu essere interrogato all uscita BI e con il valore di tempo attuale della funzione S_OFFDT SCL per S7 300 400 C79000 G7072 C522 01 Contatori e temporizzatori 17 2 7 Esempio di programma per un impulso prolungato Esempio S_PEXT SCL per S7 300 400 C79000 G7072 C522 01 L esempio 17 6 illustra un programma per l impiego della funzione di temporizzazione impulso prolungato UNCTION_BLOCK SE EMPORALE VAR_INPUT IOT
346. zioni indicanti il modo in cui SCL interpreta i singoli caratteri SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL 7 3 Parole riservate Significato Parole chiave SCL per S7 300 400 C79000 G7072 C522 01 AND ANY ARRAY BEGIN BLOCK_DB BLOCK_FB BLOCK_FC BLOCK_SDB BLOCK_SFB BLOCK_SFC BOOL BY BYTE CASE CHAR CONST CONTINUE COUNTER DATA _BLOCK DATE DATE_AND_TIME DINT DIV DO DT DWORD ELSE ELSIF END_CASE END_CONST END_DATA BLOCK END_FOR END_FUNCTION Le parole riservate sono parole chiave che devono essere usate esclusivamente nel modo prescritto Non viene fatta alcuna distinzione fra lettere maiuscole e minuscole END_STRUCT END_VAR END_WHILE EXIT FOR FUNCTION FUNCTION _BLOCK GOTO IF INT LABEL MOD NIL NOT OF OR ORGANIZATION _BLOCK POINTER REAL REPEAT RETURN SSTIME STRING STRUCT THEN TIME TIMER TIME_OF_DAY TO TOD TYPE VAR VAR_TEMP UNTIL Terminologia generale SCL Parole chiave continuazione Altri nomi riservati END_FUNCTION_BLOCK END_IF END_LABEL END_TYPE END_ORGANIZATION _BLOCK END_REPEAT VOID EN ENO OK TRUE FALSE Nomi delle funzioni standard VAR_INPUT VAR_IN_OUT VAR_OUTPUT WHILE WORD XOR D Nelle funzioni standard si distingue fra caratteri maiuscoli e minuscoli SCL per S7 300 400 C79000 G7072 C522 01 Terminologia generale SCL 7 4 Identificatori in SCL Definizione Regole
Download Pdf Manuals
Related Search
Related Contents
MI-ETH Reference Manual - ACKSYS Communications & Systems C.A.T™ Manager - SPX Corporation Installation Manual au format PDF - Ville de Metz Montage- und Wartungsanleitung LF-985 Copyright © All rights reserved.
Failed to retrieve file