SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono...

562
SIEMENS Awertenze per l'uso del manuale, indice Introduzione Programma utente SIMATIC Elaborazione del programma S5-135U CPU 928B-3UB21 Stati di funzionamento e livelli di elaborazione programma Gestione delle interruzioni e degli errori OB speciali integrati Manuale di programmazione Blocco dati DX O ampliato Occupazione ed organizzazione della memoria Accesso alla memoria con indirizzamento assoluto Funzionamento e comunicazione multiprocessore Interfacce PG e funzione PG Appendice Bibliografia Lista delle abbreviazioni Indice analitico La lista di operazioni CPU 928/CPU 928B/CPU 948, n. di ordinazione 6ES5 997-3UA53 è allegata al manuale.

Transcript of SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono...

Page 1: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

SIEMENS Awertenze per l'uso del manuale, indice

Introduzione

Programma utente

SIMATIC Elaborazione del programma

S5-135U CPU 928B-3UB21

Stati di funzionamento e livelli di elaborazione programma

Gestione delle interruzioni e degli errori

OB speciali integrati

Manuale di programmazione Blocco dati DX O ampliato

Occupazione ed organizzazione della memoria

Accesso alla memoria con indirizzamento assoluto

Funzionamento e comunicazione multiprocessore

Interfacce PG e funzione PG

Appendice

Bibliografia

Lista delle abbreviazioni

Indice analitico

La lista di operazioni CPU 928/CPU 928B/CPU 948, n. di ordinazione 6ES5 997-3UA53 è allegata al manuale.

Page 2: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Avvertenze tecniche Il presente manuale contiene awertenze tecniche relative alla sicurezza delle persone e alla di sicurezza prevenzione dei danni materiali che vanno assolutamente osservate. Le awertenze sono

contrassegnate da un triangolo e, a seconda del grado di pericolo, rappresentate nel modo seguente:

A Pericolo di morte

significa che la non osservanza delle relative misure di sicurezza provoca la morte, gravi lesioni alle persone e ingenti danni materiali.

A 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 alla descrizione del manuale.

Interventi nel dispositivo vanno effettuati esclusivamente da personale qualificato. Personale qualificato ai sensi delle awertenze di sicurezza contenute nella presente documentazione è quello che dispone della qualifica a inserire, mettere a terra e contrassegnare, secondo gli standard della tecnica di sicurezza, apparecchi, sistemi e circuiti elettrici.

Uso conforme alle Osservare quanto segue: disposizioni

A Pericolo

Il dispositivo deve essere impiegato solo per I'uso previsto nel catalogo e nella descrizione tecnica e solo in connessione con apparekhiature'e componenti esterni omologati dalla Siemens,

Per garantire un funzionamento ineccepibile e sicuro del prodotto è assolutamente necessario un trasporto, immagazzinamento, una installazione ed un montaggio conforme alle regole nonché un uso accurato ed una manutenzione appropriata.

Marchio di prodotto SIMATIC@ e SINEC@ sono marchi di prodotto della SIEMENS AG.

Tutte le altre sigle qui riportate possono corrispondere a marchi, il cui uso da parte di terzi, può violare i diritti dei possessori.

Copyright O Siemens AG 1996 All rights reserved

Laduplicazione e lacessione dellapresentedocumentazionesono vietate, come pure I'uso improprio del suo contenuto, se non dietro autorizzazionescritta. Letrasgressionisonopassibilidirisarcimento dei danni. Tutti i diritti sono riservati, in particolare quelli relativi ai brevetti e ai marchi registrati.

Siemens AG Divisione Automazione Sistemi per l'automazione industriale Postfach 4848, D-90327 Nurnberg

Esclusione della responsabilità

Abbiamo controllato che il contenuto della Dresente documenta- zione corrisponda all'hardware e al software descritti. Non potendo tuttaviaescludere eventualidifferenze. non aarantiamo unaconcor- danzatotale. Il contenutodella presentedo&mentazionevienetut- tavia verificato regolarmente, e le correzioni o modifiche eventual- mente necessarie sono contenute nelle edizioni successive. Sa- remo lieti di ricevere qualunque tipo di proposta di miglioramento.

O Siemens AG 1996 Ci riserviamo eventuali modifiche

Siemens Aktiengesellschaft

Page 3: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Awertenze per l'uso del manuale

Campo di applicazione

I1 presente manuale di programmazione descrive le funzioni della CPU 928B-3UB21 ed il corrispondente software di sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 4: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Awertenze oer l'uso del manuale

Panoramica sul Capitolo 1 fornisce informazioni sul campo di applicazione del controllore contenuto dei programmabile S5-135U con la CPU 928B. In questo capitolo viene spiegato il singoli capitoli tipico funzionamento di una CPU e la struttura di un programma CPU.

Inoltre si danno consigli circa il procedimento durante la programmazione e vengono riportati i dati identificativi della CPU 928B-3UB21 importanti per la programmazione.

Utenti che hanno già lavorato con la CPU 928B-3UB12 e che si voglino informare sulle caratteristiche che contraddistinguono le due CPU, dovrebbero consultare questo capitolo.

Capitolo 2 descrive i componenti di un programma utente STEP 5 per la CPU 928B ed il modo in cui può essere strutturato.

Capitolo 3 si riferisce agli utenti con poca esperienza nel programmare con il linguaggio di programmazione STEP 5. Fornisce le nozioni fondamentali della programmazione con STEP 5 e descrive dettagliatamente i comandi STEP 5 (con esempi applicativi).

I1 paragrafo 3.5 serve da guida di riferimento agli utenti esperti che non trovano sufficienti informazioni relative ad un determinato comando STEP 5 nella lista delle operazioni.

Capitolo 4 dà una panoramica sugli stati di funzionamento e sui livelli di elaborazione programma della CPU 928B. Fornisce informazioni dettagliate sui diversi tipi di avviamento e sui relativi blocchi organizzativi nei quali si possono definire i programmi specifici relativi a questi tipi di avviamento.

Inoltre vi sono descritte le caratteristiche riguardo l'elaborazione di programmi "ciclici", "attivati a tempo" ed "attivati su allarme" ed i corrispondenti blocchi organizzativi disponibili per il programma utente.

Capitolo 5 dà alcuni consigli su come evitare errori durante la progettazione e la programmazione di un programma STEP 5.

Fornisce informazioni sui sostegni per l'analisi di errore e sulle reazioni ad errori messe a disposizione dal programma di sistema ed inoltre descrive i blocchi organizzativi in cui si possono programmare le reazioni desiderate a certi errori.

Capitolo 6 descrive le funzioni speciali integrate del programma di sistema, la loro applicazione, il loro richiamo e parametrizzazione.

Viene descritto inoltre come riconoscere gli errori che si possono verificare durante l'elaborazione di un blocco organizzativo speciale e come gestirli via programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 5: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

A wertenze oer l'uso del manuale

Capitolo 7 riguarda la struttura ed il campo di applicazione del blocco dati DX O. Viene spiegato il significato dei diversi parametri del DX O ed il principio della sua generazione e della sua parametrizzazione tramite maschera (con esempi applicativi).

Capitolo 8 serve da guida di riferimento agli utenti con buone conoscenze del sistema. Contiene dettagliate informazioni circa i singoli settori di memoria della CPU 928B. Inoltre descrive il significato di alcune delle parole dati di sistema in cui sono memorizzate delle informazioni importanti che possono essere interrogate dall'utente.

Inoltre, viene descritto come si può attivare e disattivare la protezione del software, tramite un sistema parola dati per la CPU.

Capitolo 9 è particolarmente interessante per utenti che conoscono bene il sistema. Esso descrive i comandi STEP 5 che rendono possibile un accesso all'intera memoria con indirizzamento assoluto.

Capitolo 10 descrive quando è permesso il funzionamento multiprocessore e quale tipo di scambio dati tra le CPU ed i CP è possibile.

Fa riferimento alle condizioni da osservare durante la programmazione.

Esso dà istruzioni dettagliate (con anche esempi applicativi) riguardanti lo scambio di dati complessi in funzionamento multiprocessore (comunicazione multiprocessore).

Capitolo 11 fornisce informazioni circa l'accoppiamento PG - CPU 928B e circa il sostegno per il test del programma STEP 5 offerto dal software PG.

Appendice A confronta i dati tecnici delle CPU 928A, 928B e 948.

Appendice B fornisce avvertenze bibliografiche.

Appendice C contiene una lista delle abbreviazioni ed un indice analitico.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 6: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Awertenze oer l'uso del manuale

Guida per Suddivisione dei sottoparaorafi orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto,

all'inizio della pagina e compaiono nel Contenuto in cui sono elencati i capitoli.

Note marpinali

Per facilitare la consultazione di singole informazioni tecniche all'interno dei paragrafi, sono utilizzate note marginali poste sul margine sinistro.

Avvertenze

Avvertenza Informazioni importanti sono indicate in questa forma.

Consultazione di tabelle

Tabella 3-2 Operazioni di combinazioni binarie

1 operazione 1 Operando I Funzione l U

O

Esempi

Combinazione AND con interrogazione su segnale "1"

Combinazione OR con interrogazione su segnale "1"

E 0.0 ... 127.7 ......

Esempi, sia quelli brevi che quelli lunghi o composti di più pagine sono evidenziati da un bordo retinato. La continuazione di un esempio da più pagine è chiaramente contrassegnata.

di un ingresso nell'IPI . . . . . . . .

Esempio 1:Richiamo e parametrizzazione di un blocco funzionale all'interno di un blocco di programma in modo di rappresentazione AWL e

Modo di rappresentazione AWL

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 7: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice

Introduzione ................................................................. 1 . 1

Campo di applicazione dell'S5-135U con la CPU 928B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 2

. Funzionamento tipico di una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3

I programmi in una CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 5

Programma di sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 5 Programmautente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 - 7

Gli operandi a disposizione del programma utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 9

Accesso ai campi degli operandi e della memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 12

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Come procedere durante la programmazione? 1 13

Strumenti di programmazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 16

. . . . . . . . . . . . . . . . . . . . . Nuove caratteristiche e funzioni della CPU 928B (versione 3UB21) 1 17

Programma utente ............................................................ 2 . 1

Linguaggio di programmazione STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 2

Modi di rappresentazione KOP. FUP. AWL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 2 Programmazione strutturata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 4 Istruzioni STEP 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 5 Rappresentazione dei numeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 6 Blocchi STEP 5 e loro memorizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 10

Blocchi di programma. organizzativi e sequenziali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 14

Blocchi organizzativi di interfaccia utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 16 Blocchi organizzativi speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 19

Blocchi funzionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 21

Struttura di un blocco funzionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 22 Programmazione di un blocco funzionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 24 Richiamo e parametrizzazione di blocchi funzionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 26 Blocchi funzionali speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 31

Blocchi dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 33

Programmazione di un blocco dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 35 Attivazione di un blocco dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 36 Blocchi dati speciali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . 39

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01 vii

Page 8: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazionedelprogramma ................................................... 3 - 1

Principio dell'elaborazione del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 2

Organizzazione del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Memorizzazione di blocchi di programma e di blocchi dati 3 8

Elaborazione del programma utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 10

Definizioni per l'elaborazione del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 11

Operazioni STEP 5 con esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 13

Operazioni fondamentali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 17 Esempi di programmazione nei modi di rappresentazione AWL. KOP e FUP . . . . . . . . . . . . . 3 . 32 Operazioni integrative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 47 Operazioni organizzative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 54 Operazioni con semafori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . 67

Stati di funzionamento e livelli di elaborazione programma ......................... 4 . 1

Introduzione e panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 2

. Livelli di elaborazione programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5

Stato di funzionamento STOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 11

Caratteristiche e segnalazione dello stato di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 11 Richiesta e realizzazione di una CANCELLAZIONE TOTALE . . . . . . . . . . . . . . . . . . . . . . . . 4 . 13

Stato di funzionamento AWIAMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 15

NUOVO AWIAMENTO MANUALE e AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 16 RIAWIAMENTO MANUALE e AUTOMATICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 16 Confronto dei vari tipi di avviamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 18 Interfaccia utente per l'avviamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 19 Interruzioni in AWIAMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 22

Stato di funzionamento RUN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 24

Elaborazione ciclica del programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 26 Elaborazione di un programma su interrupt periodico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 28 Allarme di regolazione: elaborazione di regolazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 35 Allarme di processo: elaborazione di un programma su interrupt di processo . . . . . . . . . . . . . 4 . 36 Richiesta contemporanea di un'elaborazione su interrupt di processo e su interrupt periodico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 39

Gestione delle interruzioni e degli errori ......................................... 5 . 1

Errori comuni nel programma utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 2

Informazioni di errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 3

Bit di comando e registro di interruzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 7

Bit di comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 8 Contenuto del registro di interruzione (USTACK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 13 Esempi per l'analisi dell'USTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 19

Gestione degli errori tramite OB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 22

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01 viii

Page 9: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice

Errori in AWIAMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 25

DBO-FE (errore con DB O) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 26 DB1-FE (errore con DB 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 26 DB2-FE (errore con DB 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 28 DXO-FE (errore con DX O o DX 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 29 MOD-FE (errore nella memory card) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 31

Errori in RUN ed in AWIAMENTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 32

BCF (errore nel codice del comando) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 34 LZF (errore di esecuzione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 37 ADF (errore di indirizzamento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 45 QVZ (ritardo della conferma) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 46 ZYK (errore del tempo di ciclo) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 48 WECK-FE (errore per collisione di interrupt temporali) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 49 REG-FE (errore di regolazione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 50 ABBR (interruzione) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 52 Errore di comunicazione (FE-3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . 53

OB speciali integrati ........................................................... 6 . 1

Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 3

OB 110: Accesso al byte di visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 7

OB 11 1: Cancellazione di ACCU 1. 2.3. e 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 9

OB 1121113: ACCU Roll Up ed ACCU Roll Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 9

OB 120: Abilitazione/disabilitazione della funzione "disattivazione comune degli allarmi" . . 6 . 11

OB 121: Abilitazione/disabilitazione della funzione "disattivazione di singoli allarmi di schedulazione" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 14

OB 122: Abilitazione/disabilitazione della funzione "ritardo comune degli allarmi" . . . . . . . . 6 . 16

OB 123: Abilitazione/disabilitazione della funzione "ritardo di singoli allarmi di schedulazione" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 19

OB 134, OB 135. OB 136 ed OB 139 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 22

OB 150: ImpostazionePettura del tempo di sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 23

OB 151: ImpostazionePettura dell'allarme di schedulazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 28

OB 152: Analisi statistica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 35

OB 153: ImpostazionePettura dell'allarme di ritardo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 42

Da OB 160 ad OB 163: Cicli di conteggio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 45

OB 170: Lettura del registro di blocco BSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 47

OB 180: Accesso a blocchi dati variabili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 52

OB 181: Test di blocchi dati DB e DX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 56

OB 182: Copia di settori di dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 58

OB 185: Impostazione della protezione in scrittura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 61

OB 186: Compressione della memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 62

OB 1901192: Trasferimento di merker in blocchi dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 63

OB 1911193: Trasferimento di dati nel campo dei merker . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 65

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 10: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice

. . . . . . . . . . . . . . . . . . . . . . . . 6.23 OB 200 ed OB da 202 a 205: Comunicazione multiprocessore 6 . 70

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24 Da OB 216 ad OB 218: Accesso ai kachel 6 71 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.1 OB 216: Scrittura in un kachel 6 . 74

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.2 OB 217: Lettura di un kachel 6 . 76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.3 OB 218: Occupazione di un kachel 6 . 78

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.24.4 Esempio di programma 6 . 80

.................................................. 6.25 OB 220: Espansione del segno 6 . 82

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.26 OB 221: Definizione del tempo di ciclo 6 . 83

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.27 OB 222: Riazzeramento del tempo di ciclo 6 . 84

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.28 OB 223: Confronto dei modi di avviamento 6 . 84

6.29 OB 224: Trasferimento a blocchi di merker di accoppiamento . . . . . . . . . . . . . . . . . . . . . . . . . 6 . 85

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.30 OB 226. OB 227 6 . 86

6.31 OB 228: Lettura delle informazioni di stato di un livello di elaborazione programma . . . . . . 6 . 87

6.32 Da OB 230 ad OB 237: Funzioni per blocchi funzionali standard . . . . . . . . . . . . . . . . . . . . . . 6 . 89

6.33 Da OB 240 ad OB 242: Funzioni speciali per registri a scorrimento . . . . . . . . . . . . . . . . . . . . 6 . 90

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.34 OB 240: Inizializzazione di un registro a scorrimento 6 . 94

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.35 OB 241: Elaborazione di un registro a scorrimento 6 . 97

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.36 OB 242: Cancellazione di un registro a scorrimento 6 . 98

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37 OB 2501251: Regolazione/algoritmo PID 6 . 99 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37.1 Descrizione delle funzioni del regolatore PID 6 . 99

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.37.2 Algoritmo PID 6 . 101

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.38 OB 250: Inizializzazione dell'algoritmo PID 6 106

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.39 OB 251: Elaborazione dell'algoritmo PID 6 107

6.40 OB 2541255: Trasferimento/duplicazione di blocchi dati nella RAM per DB . . . . . . . . . . . . 6 . 113

..................................................... 7 Blocco dati DX O ampliato 7 . 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Applicazione 7 . 2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Struttura del DX O 7 . 3

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Parametri per il DX O 7 . 6

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Esempi di parametrizzazione 7 . 10

.................................... 8 Occupazione ed organizzazione della memoria 8 . 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Struttura della memoria 8 . 2

Suddivisione del campo di indirizzamento nella CPU 928B-3UB21 . . . . . . . . . . . . . . . . . . . . . 8 . 3

. . . . . . . . . . . . . . . . . . . . . . . Suddivisione del campo di indirizzamento della RAM di sistema 8 . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Suddivisione del campo di indirizzamento periferico 8 . 5

. . . . . . . . . . . . . . . . . . . . . . . . . Organizzazione della memoria utente nella CPU 928B-3UB21 8 . 7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Intestazione dei blocchi nella memoria utente 8 . 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista di indirizzi dei blocchi in DB O 8 . 9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Settore BA/BB 8 . 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Settore BS/BT 8 13

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Occupazione dei bit delle parole dati di sistema 8 16

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 11: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice

................................. 9 Accesso alla memoria con indirizzamento assoluto 9 . 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Introduzione 9 . 2

9.2 Accesso alla memoria tramite indirizzo in ACCU 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . 6 . . . . . . . . . . . . . . . . . . . . . . . 9.2.1 LIRRIR: Caricamento/trasferimento indiretto dei registri a 16 bit 9 . 7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.2 Esempi per l'applicazione dei registri 9 . 14

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Trasferimento di settori di memoria 9 . 16

9.3.1 Esempio per il trasferimento di un settore di memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . 19

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4 Operazioni con il registro di indirizzo base BR 9 . 24

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 Operazioni di trasferimento tra registri 9 . 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.2 Accesso alla memoria locale 9 . 27

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.3 Accesso alla memoria globale 9 . 28

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.4 Accesso alla memoria a kachel 9 . 31

10 Funzionamento e comunicazione multiprocessore ................................. 10 . 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Funzionamento multiprocessore 10 . 3

10.1.1 Scambio di dati tramite merker di accoppiamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 4 10.1.2 Assegnazione di periferia e merker di accoppiamento in funzionamento

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multiprocessore (DB 1) 10 . 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.3 Generazione del blocco dati DB 1 10 . 9

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Comunicazione multiprocessore 10 . 13

10.2.1 Identificazione delle CPU in trasmissione/ricezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2 Memorizzazione intermedia dei dati 10 . 16

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.3 Funzionamento e gestione della memoria intermedia 10 . 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.4 Awiamento del sistema 10 . 20

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.5 Richiamo degli OB di comunicazione 10 . 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.6 Parametrizzazione degli OB di comunicazione 10 . 22

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.7 Analisi dei parametri di uscita 10 . 24

.................................. 10.3 Tempo di esecuzione degli OB di comunicazione 10 . 29

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Funzione INIZIALIZZAZIONE (OB 200) 10 . 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.1 Funzione l 0 . 30

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.2 Parametri di richiamo 10 . 32

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.3 Parametri di ingresso 10 . 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4.4 Parametri di uscita 10 . 36

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5 Funzione TRASMISSIONE (OB 202) 10 . 38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.1 Funzione l 0 . 38

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.2 Parametri di richiamo 10 . 38

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.3 Parametri di ingresso 10 . 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.5.4 Parametri di uscita 10 . 41

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Funzione TEST-TRASMISSIONE (OB 203) 10 . 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.1 Funzione l 0 . 43

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.2 Parametri di richiamo 10 . 43

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.3 Parametri di ingresso 10 . 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6.4 Parametri di uscita 10 . 44

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 12: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

10.7 Funzione RICEZIONE (OB 204) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 45

10.7.1 Funzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l 0 . 45 10.7.2 Parametri di richiamo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 45 10.7.3 Parametri di ingresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 45 10.7.4 Parametri di uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 46

10.8 Funzione TEST-RICEZIONE (OB 205) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 48

10.8.1 Funzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . l 0 . 48 10.8.2 Parametri di richiamo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 48 10.8.3 Parametri di ingresso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 48 10.8.4 Parametri di uscita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 49

10.9 Applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0 - 5 0

10.9.1 Richiamo degli OB speciali tramite blocchi funzionali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 50 10.9.2 Trasmissione di blocchi dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 58 10.9.3 Ampliamento del settore dei merker di accoppiamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 . 64

. ................................................... 11 Interfacce PG e funzioni PG 11 1

11.1 Panoramica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 2

11.2 Funzioni PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 3

. 11.2.1 Informazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5

. 11.2.2 Funzioni di memorizzazione e di trasferimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5

. 11.2.3 Test di programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 7

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Attività nei punti di controllo 11 15

11.4 Accoppiamento seriale PG . controllore tramite prima o seconda interfaccia seriale . . . . . . . 11 . 16

11.5 Funzionamento parallelo di due interfacce seriali PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 17

11.5.1 Messa in servizio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 19 11.5.2 Funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 19 11.5.3 Esecuzione con determinati tipi di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 . 21

A Appendice .................................................................. A m l

A.l Confronto dei tempi di ciclo delle CPU 928.3UA21. 928B-3UB21 e CPU 948 . . . . . . . . . . . A . 2

. A.2 Identificatori di errori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A 5

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Istruzioni STEP 5 non contenute nella CPU 928B A 13

A.4 Identificatori dei livelli di elaborazione programma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A . 14

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5 Esempio di "analisi dell'USTACK1' A 15

B Bibliografia .................................................................. B m l

. C Abbreviazioni ............................................................... C l

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 13: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

In questo I1 capitolo 1 fornisce informazioni sul campo di applicazione del controllore capitolo1 programmabile S5-135U con la CPU 928B e descrive la struttura interna

dell'apparecchiatura. Viene spiegato il tipico funzionamento di una CPU e la struttura di un programma CPU. Inoltre si danno consigli circa il procedimento durante la programmazione e vengono riportati i dati identificativi della CPU 928B-3UB21 importanti per la programmazione. Utenti che hanno già lavorato con la CPU 928B-3UB21 oppure -3UB12 e che si vogliono informare sulle caratteristiche che contraddistinguono le due CPU, dovrebbero consultare il paragrafo 1.8.

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

1.1

1.2

1.3

1.3.1

1.3.2

1.4

1.5

1.6

1.7

1.8

Argomento trattato

Campo di applicazione dell'S5-135U con la CPU 928B

Funzionamento tipico di una CPU

I programmi in una CPU

Programma di sistema

Programma utente

Gli operandi a disposizione del programma utente

Accesso ai campi degli operandi e della memoria

Come procedere durante la programmazione?

Strumenti di programmazione

Nuove caratteristiche e funzioni della CPU 928B (versione 3UB21)

Pagina

1-2

1-3

1-5

1-5

1-7

1-9

1-12

1-13

1-16

1-17

Page 14: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1 . l Campo di applicazione dell'S5-135U con la CPU 928B

Collocazione nella famiglia

Prestazioni

I1 controllore programmabile S5-135U appartiene alla famiglia dei controllori a memoria liberamente programmabile SIMATIC S5. Eseguito con la CPU 928B, esso è un'apparecchiatura multiprocessore, molto potente nell'automazione di processo (controllo, comando, segnalazione, regolazione, protocollo) e può essere utilizzato sia come semplice controllore di segnali binari, sia per risolvere problemi di automazione molto più complicati.

L'S5-135U con la CPU 928B è particolarmente adatto per:

Problemi che richiedono una velocissima elaborazione a bit e a parole, cioè controllo e regolazione veloce.

Esempi: veloci processi nella costruzione di macchine (impianti per imbottigliamento, confezionatrici o impianti simili).

Problemi che richiedono una veloce comunicazione con altre CPU inserite nello stesso controllore in funzionamento multiprocessore e con unità CP (per esempio il collegamento a sistemi di bus oppure la visualizzazione).

Problemi di regolazione, facilmente risolubili grazie al software di regolazione R64 e con una confortevole interfaccia operatore tramite le pagine standard che costituiscono il sistema PMC.

Strutture di automazione che richiedono la comunicazione diretta con un calcolatore master, con altri controllori o con una stampante tramite la seconda interfaccia integrata, opp. tramite il collegamento SINEC-LI.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 15: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.2 Funzionamento tipico di una CPU

Funzionamento All'interno di una CPU si trovano i seguenti tipi di funzionamento: di una CPU

1.

Elaborazione ciclica

2.

Elaborazione ciclica

O Elaborazione a tempo

3.

L'elaborazione ciclica costituisce la parte principale di tutti i processi all'interno della CPU. In un ciclo ininterrotto viene continuamente ripetuta la stessa sequenza di elaborazione.

(( Elaborazione su allarme

L'elaborazione ciclica si divide in tre fasi principali:

Processo l CPU Processo

I I Tutte le unità di ingresso assegnate alla I 1 1 CPU vengono interrogate dal program- ma di sistema ed i valori letti sono memorizzati temporaneamente nell'im- magine di processo degli ingressi IPI.

I valori contenuti nell'IPI vengono elaborati dal programma utente ed i valori da emettere vengono inseriti nell'immagine di processo delle uscite IPU.

I valori contenuti nell'immagine di processo delle uscite (IPU) vengono emessi alle unità di uscita associate alla CPU dal programma di sistema.

Ingresso E 1.3 Leggere l'immagine di processo degli ingressi Ingresso E 1.4

1 ' Ingresso E 1.5

Analizzare i segnali di ingresso, stabilire i segnali di uscita

E 1 5 m

Uscita A 2.0 Emettere I'immagine di processo delle uscite Uscita A 3.1

I ' uscita A 4.7

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 16: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Elaborazione Per processi che necessitano segnali di comando ad intervalli regolari, su interrupt parallelamente al processo ciclico, possono essere elaborati determinati compiti periodico su i n t e m p t periodico, per esempio funzioni di controllo ad intervalli a secondi

che non influenzano il tempo di esecuzione.

Elaborazione Ad un segnale di processo, al quale si debba reagire in modo particolarmente su interrupt veloce, può essere associata una sezione del programma su interrupt di di processo processo. È possibile, ad esempio, attivare nel programma una sequenza

elaborativa speciale con un allarme di processo che viene attivato mediante un'unità creante un allarme.

Elaborazione I sopraindicati tipi di elaborazione vengono trattati dalla CPU secondo il loro secondo priorità grado di importanza. Questo grado di importanza viene definito priorità.

Siccome bisogna reagire velocemente ad un evento di tempo o di allarme, la CPU interrompe l'elaborazione ciclica per trattare un evento di tempo o di allarme. Ciò significa che l'elaborazione ciclica ha una minore priorità.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 17: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.3 1 programmi in una CPU

Introduzione I1 programma presente in ogni CPU si divide in

programma di sistema

e

programma utente.

1.3.1 Programma di sistema

Panoramica I1 programma di sistema organizza tutte le funzioni ed i processi nella CPU che non sono connessi ad un problema specifico di controllo (vedere figura 1-1).

Richiamo

dell'elaborazione

utente

(interfacce)

Realizzazione della comunicazione tramite la seconda interfaccia seriale

Realizzazione della

con il PG

Figura 1-1 Compiti del programa di sistema

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 18: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Compiti Ai compiti del programma di sistema appartengono: 1)

nuovo avviamento e riavviamento,

l'aggiornamento dell'immagine di processo degli ingressi e l'emissione dell'immagine di processo delle uscite,

il richiamo dei programmi ciclici, su interrupt periodico e su interrupt di processo,

l'identificazione ed il trattamento degli errori,

la gestione della memoria,

la comunicazione con il dispositivo di programmazione,

la realizzazione della comunicazione tramite la seconda interfaccia seriale.

Interfacce utente L'utente ha la possibilità di influenzare il comportamento della CPU in certi casi di funzionamento ed errore tramite interfacce speciali al programma di sistema.

Comportamento I susseguenti capitoli - eccetto il capitolo 7 - descrivono il comportamento preimpostato del preimpostato del sistema relativo agli eventi di processo o agli errori. sistema Esempio: corrispondentemente alla preimpostazione, la CPU si porta nello stato

di STOP se al verificarsi di un errore di codice di comando l'apposito blocco organizzativo di errore associato non è caricato.

Modificare la Questo comportamento del sistema può essere modificato tramite la preimpostazione parametrizzazione del blocco dati DXO.

La reazione del sistema dopo una tale modifica è descritta al capitolo 7!

l) Nel funzionamento con più CPU (funzionamento multiprocessore) si aggiungono anche altri compiti.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 19: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.3.2 Programma utente

Struttura La figura 1-2 mostra la struttura base di un programma utente STEP 5.

Blocchi Blocchi di organizzativi programma

OB PB Comandi Comandi STEP 5 STEP 5

Ei5$ E l l M501,7,

E 1 4 M 602

E 1 3 M 5 0 3 A 6 3

A 31

Blocchi Blocchi funzionali sequenziali FB/FX CB

Comandi Comandi STEP 5 STEP 5

FB 8

SEGMENTO 1 NOME :TRANS

E 1 3 0005 :L EB 3 0006 :T MW 200 0007 :A DB 5 0008 :B MW 200 0009 :L DW O 000A :T AW 6 0008 :BE

Blocchi in codice

Blocchi dati

DB i : ~ ~ = 0 1 0 1 : costanti o variabili 2: KF = 1120:

(bit, byte, parole, doppie parole) 3: KC = W ; 4: KY = 4.5; 5: K G s 6: KM s 7:

DX 1: KH = FFFF:

costanti o variabili 2: KH = FFFF: 3: KH = FFFF:

(bit, byte, parole, doppie parole) 4: KH = FFFF; 5: KH = FFFF; 6: KH = FFFF; 7:

Figura 1-2 Struttura di un programma utente STEP 5

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 20: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Compiti I1 programma utente contiene tutte le funzioni necessarie per l'elaborazione di uno specifico compito di controllo. Queste funzioni si possono associare direttamente alle interfacce messe a disposizione dal programma di sistema per i diversi tipi di elaborazione:

Memorizzazione Per la memorizzazione dei blocchi la CPU 928B dispone di due settori: del programma utente Memoria utente: max. 64 Kbyte

Tipo di elaborazione

Nuovo awiamento e riavviamento

Elaborazione ciclica

Elaborazione su interrupt periodico

Elaborazione su interrupt di processo

Reazione di errore

La memoria utente si trova sull'unità (CPU).

Compito

Creare le condizioni in modo che l'ulteriore elaborazione, dopo un nuovo inizio del controllo oppure dopo un riavviamento, possa basarsi su uno stato definito (p. es. predisporre l'occupazione di un segnale con un determinato valore).

Elaborazione di segnali che si ripetono continuamente (p. es. associare segnali binari, leggere e analizzare valori analoghi, stabilire segnali binari per l'emissione, emettere valori analoghi).

Speciali elaborazioni dipendenti dal tempo con le seguenti condizioni di tempo:

- più veloci del ciclo medio, - con una base di tempo che è più

grande del tempo di ciclo medio, - relative ad un determinato

momento impostabile.

Veloci reazioni speciali a determinati segnali di processo.

Elaborare disturbi dell'esecuzione normale del programma.

RAM per i blocchi dati (DB-RAM): max. 46 Kbyte

La RAM per DB è un settore supplementare della memoria che contiene i blocchi dati. I1 DB RAM si trova sull'unità (CPU).

Interfacce al programma di sistema

Come interfacce al programma di sistema sono a disposizione blocchi organizzativi per ciascuno dei modi di elaborazione speciali.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 21: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.4 Gli operandi a disposizione del programma utente

Panoramica Per la programmazione, la CPU 928B mette a disposizione i seguenti settori contenenti operandi:

Immagine di processo e periferie

Merker (merker M e merker S)

Blocchi dati

Immagine di processo degli ingressi e delle uscite IPI/IPU

Campo delle periferie (campo P)

Campo ampliato delle periferie (campo Q)

Caratteristiche

L'immagine di processo è un campo a cui il programma utente può accedere molto velocemente. È possibile accedere ai seguenti tipi di dati:

- bit singoli, - byte, - parole, - doppie parole.

Capacità 4 128 byte per ogni ingresso ed ogni uscita

l Caratteristiche Capacità

Il programma utente può accedere direttamente alle unità periferiche tramite il bus S5. È possibile operare con i seguenti tipi di dati:

- byte - parole.

256 byte per ogni ingresso ed ogni uscita

l Caratteristiche / Capacità 1 Il programma utente può accedere direttamente alle unità periferiche tramite il bus S5. È possibile operare con i seguenti tipi di dati:

- byte - parole.

256 byte per ogni ingresso ed ogni uscita

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 22: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Merker M

Merker S (campo ampliato dei merker)

Caratteristiche

I1 campo dei merker è un settore a cui il programma utente può accedere molto velocemente con le corrispondenti operazioni. I1 campo dei merker dovrebbe preferibilmente essere utilizzato per dati di lavoro spesso usati.

È possibile accedere ai seguenti tipi di dati: - bit singoli, - byte, - parole, - doppie parole.

Singoli byte di merker possono essere usati come merker di accoppiamento nello scambio di dati tra le CPU in funzionamento multiprocessore (vedere il capitolo 10). I merker di accoppiamento vengono aggiornati dal programma di sistema in una memoria intermedia del coordinatore o del CP/IP alla fine di ogni ciclo.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capacità

2048 bit (256 byte)

Caratteristiche

La CPU 928B contiene un campo supplementare di merker, il campo dei merker S. I1 programma utente può accedere a questo campo come a quello dei merker M.

I merker S, però, non possono essere utilizzati come operandi attuali per richiami di blocchi funzionali o come merker di accoppiamento per lo scambio di dati tra le CPU.

Per poter utilizzare questi merker bisogna avere il software di sistema PG "S5-DOS" dalla versione 3.0 oppure "S5-DOS/MT" dalla versione 1.0.

Capacità

8192 bit (1024 byte)

Page 23: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Temporizzatori T

Caratteristiche Capacità

Contatori Z

I temporizzatori vengono caricati dal programma utente con un valore di tempo compreso tra 10 ms e 9990 s, e quindi vengono decrementati, partendo da questo valore preimpostato mediante un'operazione iniziale finché viene raggiunto il valore zero.

Caratteristiche

256 temporizza-

tori

Capacità

Parole dati nel blocco dati attuale

I contatori vengono caricati dal programma utente con un valore di conteggio (max. 999), e quindi si possono contare in entrambe le direzioni.

256 contatori

l) Con i blocchi dati che sono più lunghi di 256 parole si può accedere alle parole dati con il numero > 255 solo con operazioni relative ad accessi assoluti di memoria (vedere capitolo 9) oppure con OB 180 (vedere capitolo 6).

Caratteristiche

Un blocco dati contiene costanti e10 variabili a byte, parole o doppie parole. Con le operazioni STEP 5 è possibile accedere sempre al blocco dati "attuale" (vedere paragrafo 2.4). È possibile accedere ai seguenti tipi di dati:

- bit singoli, - byte, - parole, - doppie parole.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capacità

256 parole

Page 24: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.5 Accesso ai campi degli operandi e della memoria

Introduzione Per l'accesso ai campi degli operandi ed alla memoria, le operazioni STEP 5 utilizzano due meccanismi diversi:

indirizzamento relativo,

indirizzamento assoluto.

Indiriuamento La maggior parte dei comandi STEP 5 indirizza una cella di memoria relativo relativo all'inizio di un campo contenente operandi. Se si opera esclusivamente con

questi comandi, i settori di codice e di dati del programma utente sono protetti contro la sovrascrittura involontaria. I1 programma utente è, allo stesso tempo, indipendente dalla CPU utilizzata, se questa dispone del campo di operandi utilizzato.

Indiriuamento Alcuni comandi STEP 5 lavorano con l'indirizzamento assoluto. Con questi assoluto comandi è possibile accedere a tutto il campo di memoria. Tali comandi possono

essere utilizzati esclusivamente nei blocchi funzionali e dovrebbero essere usati con grande prudenza per evitare un involontario danneggiamento dei dati. I comandi dipendono dalla CPU utilizzata.

Blocco dati attuale

I1 programma di sistema carica i blocchi dati nella memoria utente oppure nella RAM per DB. La loro posizione dipende dalla quantità di memoria disponibile. La lunghezza dei singoli blocchi dati può essere diversa e viene determinata durante la programmazione del blocco stesso.

I1 blocco dati attuale è il blocco il cui indirizzo iniziale e la cui lunghezza sono memorizzati in registri speciali. Queste registrazioni vengono effettuate tramite un'operazione STEP 5 speciale per il richiamo o "l'apertura" (come una pagina di un libro) di un blocco dati. I1 programma utente può - se non vengono usati comandi con indirizzamento assoluto - accedere solo al blocco dati attuale. Sono possibili i seguenti tipi di dati: bit singoli, byte, parole e doppie parole.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 25: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.6 Come procedere durante la programmazione?

Introduzione Utenti che hanno già esperienza riguardo la progettazione di programmi possono saltare questo paragrafo.

Agli utenti con poca esperienza si danno i seguenti consigli relativi a stesura, programmazione e messa in servizio di un programma STEP 5.

Realizzazione

Procedimento recursivo

Passo 1

La realizzazione di un programma di controllo STEP 5 può essere sudivisa in tre parti:

1. Determinare il compito tecnologico

2. Progettare il programma

3. Generare il programma, testarlo e metterlo in servizio

Durante il procedimento sarà necessario ripetere alcuni dei passi operativi ("procedimento recursivo"), ad esempio, se perfezionando il compito potrebbero rendersi necessari più segnali rispetto a quelli già presenti.

Determinare il compito tecnologico

Questa parte si può suddividere nei seguenti passi:

1. Generare un approssimativo diagramma di blocco circa i compiti di controllo del processo desiderato.

2. Creare una lista dei segnali di ingresso e di uscita necessitati per il compito.

3. Perfezionare il diagramma di blocco associando ai singoli blocchi i segnali e le condizioni temporali e10 i livelli dei contatori eventualmente necessari.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 26: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Passo 2 Propettare il propramma

Per questa parte dovrebbero essere programmati i seguenti passi:

1. Con l'ausilio del diagramma di blocco perfezionato generare i modi di elaborazione necessari per il programma (elaborazione ciclica, attivata a tempo ecc.) e per ognuno di loro indicare gli OB da utilizzare.

2. Raggruppare i diversi modi di elaborazione in blocchi tecnologici e10 blocchi funzionali.

3. Verificare se i blocchi si possono associare ad un blocco di programma o funzionale e quindi indicare i blocchi da utilizzare (PB x, FB y ecc.).

4. Chiarire quali temporizzatori, contatori e dati oppure quale memoria di risultato si rendono necessari.

5. Stabilire i compiti per ogni blocco codice previsto ed i dati per i merker ed i blocchi dati eventualmente necessari. Disegnare i diagrammi sequenziali per i blocchi codici.

Avvertenze sulla dimensione dell'elaborazione ciclica

Nello stabilire i modi di elaborazione bisogna tener presente quanto segue.

I1 ciclo deve essere sufficientemente veloe. Gli stati di processo non dovrebbero modificarsi più velocemente di quanto il processore possa reagire. I1 rischio è altrimenti di perdere il controllo del processo.

Come tempo di reazione massimo si deve considerare il doppio del tempo di ciclo. I1 tempo di ciclo dipende dall'elaborazione ciclica del programma di sistema e dal tipo e dalla complessità del programma utente. Spesso non è costante in quanto il programma utente viene eventualmente interrotto parecchie volte da programmi richiamati attivati a tempo e su allarme.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 27: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Passo 3 Generare il propramma. testarlo e metterlo in servizia

Questa parte si può suddividere nei seguenti passi:

1. Determinare il modo di rappresentazione per i blocchi di codice (KOP, FUP o AWL; a tale riguardo leggere il capitolo 2).

Osservare che i blocchi funzionali possono essere generati solo nel modo di rappresentazione AWL.

2. Programmare tutti i blocchi codici e di dati (per il procedimento consultare il manuale STEP 5).

3. Mettere in servizio i blocchi uno dopo l'altro (a tale scopo bisogna eventualmente programmare per ogni passo operativo un altro OB 1 che poi richiama i corrispondenti blocchi codici):

- caricare il/i blocco/-cchi

- testare il/i blocco/-cchi

(Per il procedimento, consultare il manuale di STEP 5 e il capitolo 11.)

4. Dopo esserirsi assicurati corretta esecuzione dei blocchi codici del corretto calcolo nonchè della corretta memorizzazione dei dati, si può mettere in servizio l'intero programma.

Avvertenza sulla strategia per il test del programma

I1 momento in cui si esegue il programma per la prima volta nel normale funzionamento di processo dovrebbe essere determinato dall'utente o da un team di esperti.

Più complesso è il programma e magggiore è il rischio di sicurezza, maggiore deve essere anche la precisione durante la messa in servizio del programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 28: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.7 Strumenti di programmazione

PG utilizzabili Per la generazione del programma utente sono disponibili i dispositivi di programmazione PG 685, PG 710, PG 730, PG 750 e PG 770, le cui capacità e caratteristiche vengono descritte nel catalogo ST 59/91.

Avvertenza - Per poter utilizzare anche un PG 615 o un OP 3xx bisogna inserire nel

dato di sistema BS 29 (vedere capitolo 8) l'identificatore CPU per CPU 922 (0010B). In questo caso non è possibile utilizzare dei merker S.

Se l'identificatore della CPU non viene modificato, vengono emesse delle segnalazioni errate (p. esempio con EMISSIONE USTACK) oppure non sarà possibile utilizzare gli aiuti per il test.

- La funzione test STATO si esegue su tutti i PG solo con un tempo di ciclo a 2,5 S. In funzionamento parallelo di 2 interfacce PG (vedere capitolo 11) questo valore si riduce alla sua metà.

Software utilizzabili

I programmi utente per i controllori programmabili SIMATIC S5 si possono generare:

nel linguaggio di programmazione STEP 5 (nei modi di rappresentazione KOP/FUP/AWL).

A tale scopo utilizzare il pacchetto di programmazione STEP 5 insieme al software di sistema STEP 51ST o STEP 5lMT (per la descrizione vedere 131 - Bibliografia),

oppure

in un linguaggio di programmazione più avanzato.

Se si è abituati a scrivere i programmi in un linguaggio di programmazione più avanzato, si può definire il programma STEP 5 per la CPU 928B anche nei seguenti linguaggi:

- SCL (vedere 1121-Bibliografia, il compiler SCL è contenuto nel software PG "S5-DOS/MTU dalla versione 6.)

Programmi per catene sequenziali si possono anche generare in una rappresentazione grafica con il pacchetto di programmazione GRAPH 5 (per la descrizione vedere 141 -Bibliografia). SCL e GRAPH 5 sono disponibili nella lingua tedesca, inglese e francese.

Secondo le necessità possono essere integrati nel software applicativo anche dei blocchi funzionali standard già pronti per l'uso le cui funzioni e caratteristiche vengono descritte nel catalogo ST 571111.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 29: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

1.8 Nuove caratteristiche e funzioni della CPU 928B (versione 3UB21)

Introduzione La CPU 928B versione 3UB21 offre all'utente, rispetto alla CPU 928B versione 3UB12, le funzioni e caratteristiche seguenti:

Configurazione dei posti connettore RAM integrata

Memory Card

Configurazione del DB O

Aritmetica in virgo- la mobile

Statistica Le funzioni della statistica del ciclo (OB 153) sono state ampliate rispetto alla ampliata del ciclo versione 3UB12, per es. una maggiore risoluzione dei temporizzatori.

CPU 928B-3UB21

La CPU necessita solo di un posto connettore

RAM integrata nella CPU (RAM interna) con una capacità di memoria di 64 Kbyte

Memory Card SIMATIC (Flash EPROM)

Il programma utente viene copiato, per l'esecuzione, dalla memory card nella RAM interna e viene poi protetto in scrittura.

Solo dopo la cancellazione totale della CPU.

Mantissa con 24 bit

Protezione del Tramite BS 139 è possibile impostare una password con la quale impedire la software lettura e la modifica non autorizzate del programma utente residente nella CPU.

CPU 928B-3UB12

La CPU necessita di due posti connettore

Moduli RAM inseribili con capacità di memoria differenziate

Moduli RAM inseribili

Il programma utente rimane sul modulo EPROM per l'esecuzione.

Dopo l'inserimento dell'alimentazione di corrente oppure dopo la cancellazione totale della CPU.

Mantissa con 16 o 24 bit

Programmazione Per la programmazione di una memory card Flash EPROM occorre un della memory dispositivo di programmazione PG 7xx con S5DOS a partire dalla versione V6.x. card Un programma già esistente in un vecchio modulo di memoria può essere

riprogrammato in una memory card.

Ricaricamento Se durante la cancellazione totale è inserita una memory card Flash EPROM, il della memory sistema operativo copia il contenuto nella RAM interna e configura il DB O. La card memory card non viene più utilizzata per il funzionamento.

Funzionamento Dopo aver ricaricato la memory card (in caso di cancellazione totale) la memoria EPROM utente (indir. 0000H fino a 7FFFH) viene protetta in scrittura da accessi del PG e

da parte del programma utente. Ciò corrisponde al comportamento di una CPU 928B con modulo EPROM inserito.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 30: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Introduzione

Come influenzare La protezione in scrittura può essere impostata in modo mirato oppure resettata. la protezione Per fare ciò vi sono due possibilità: in scrittura (OB 138) Settando o resettando il BS 138 prima che si sia concluso il nuovo (OB 185) avviamento della CPU (l'analisi viene eseguita al termine dell'OB 20).

Richiamando I'OB 185 nell'OB 20 (solo lì possibile) viene subito attivata o disattivata la protezione in scrittura.

Compressione Richiamando I'OB 186 è possibile avviare dal programma utente la funzione del da parte del PG Compressione della memoria . Poiché la funzione potrebbe essere programma incompatibile con i job del PG attualmente in corso di svolgimento, I'OB 186 e utente (OB 186) le funzioni del PG si interdicono reciprocamente.

Statistica del La statistica del tempo del ciclo non è più combinata al controllo del tempo tempo del ciclo del ciclo. In altre parole, un riavviamento del controllo del ciclo non produce (OB 152) più effetti su di essa.

Alternativamente alla risoluzione di 1 ms, la risoluzione può ora essere aumentata a 10 ms assegnando un nuovo numero di funzione.

Accessi al byte di L'OB 110 può ora essere utilizzato più spesso poiché le visualizzazioni non visualizzazione vengono più, come prima, sovrascritte parzialmente dal richiamo del blocco. OB 110

Controllo della All'alimentazione ON il sistema operativo esegue sempre un controllo della memoria EPROM memoria EPROM. In tal modo sono diventati superflui I'OB 226 (lettura parola

sistema operativo) e I'OB 227 (lettura somma di controllo). I blocchi continuano ad essere presenti per ragioni di compatibilità, tuttavia rispondono entrambi ancora solo con il valore 0.

Nuovi OB con La CPU 928 - UB21 dispone delle nuove funzioni speciali seguenti: funzioni speciali

OB 134 per il comando: *D

OB 135 per il comando: /D

OB 136 per il comando: MOD

OB 139 per il comando: PUSH

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 31: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

In questo Questo capitolo descrive i componenti di un programma utente STEP 5 per la capitolo CPU 928B ed il modo in cui esso può essere strutturato.

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

2.1

2.1.1

2.1.2

2.1.3

2.1.4

2.1.5

2.2

2.2.1

2.2.2

2.3

2.3.1

2.3.2

2.3.3

2.3.4

2.4

2.4.1

2.4.2

2.4.3

Argomento trattato

Linguaggio di programmazione STEP 5

Modi di rappresentazione KOP, FUP, AWL

Programmazione strutturata

Istruzioni STEP 5

Rappresentazione dei numeri

Blocchi STEP 5 e loro memorizzazione

Blocchi di programma, organizzativi e sequenziali

Blocchi organizzativi di interfaccia utente

Blocchi organizzativi speciali

Blocchi funzionali

Struttura di un blocco funzionale

Programmazione di un blocco funzionale

Richiamo e parametrizzazione di blocchi funzionali

Blocchi funzionali speciali

Blocchi dati

Programmazione di un blocco dati

Attivazione di un blocco dati

Blocchi dati speciali

Pagina

2-2

2-2

2-4

2-5

2-6

2-10

2-14

2-16

2-19

2-21

2-22

2-24

2-26

2-31

2-33

2-35

2-36

2-39

Page 32: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.1 Linguaggio di programmazione STEP 5

Introduzione Con il linguaggio di programmazione STEP 5 è possibile trasformare i compiti di automazione in un programma che fa funzionare i controllori programmabili SIMATIC S5. In STEP 5 è possibile programmare sia le più elementari funzioni binarie, sia funzioni più complesse ed operazioni aritmetiche anche in virgola mobile.

Repertorio di I1 repertorio di comandi del linguaggio di programmazione STEP 5 si divide in: comandi

Operazioni fondamentali:

- Utilizzabili in tutti i blocchi

- Rappresentazione in schema a contatti (KOP), schema funzionale (FUP) e lista istruzioni (AWL).

Operazioni integrative e di sistema:

- Utilizzabili solo nei blocchi funzionali

- Rappresentazione solo in lista istruzioni (AWL)

- Operazioni di sistema: solo per utenti con ottime conoscenze del sisistema!

2.1.1 Modi di rappresentazione KOP, FUP, AWL

Panoramica Programmando in STEP 5 è possibile scegliere per ogni blocco di codice uno dei tre modi di rappresentazione schema a contatti (KOP), schema funzionale (FUP) e lista istruzioni (AWL) in modo da adattare nel migliore dei modi la programmazione allo specifico uso dell'utente.

I1 codice macchina MC 5 generato dai dispositivi di programmazione (PG) è identico per i tre tipi di rappresentazione.

Facendo attenzione a certe particolari regole (vedere 190 durante la programmazione in STEP 5, il PG può tradurre il programma utente da un modo di rappresentazione in un qualunque altro modo.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 33: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

Rappresentazione Mentre con i modi di rappresentazione a schema a contatti e funzionale esiste la grafica o lista possibilità di rappresentare graficamente il programma STEP 5, in lista istruzioni istruzioni i singoli comandi vengono semplicemente "listati".

Figura 2-1 Modi di rappresentazione del linguaggio di programmazione STEP 5

SCHEMA A CONTA-TTI

Programmazione con simboli grafici come per schemi funzionali

Corrisponde a DIN 19239

Rappresentazione GRAPH 5 è un linguaggio di programmazione per la rappresentazione grafica di grafica di catene catene sequenziali. Esso va associato ad uno degli altri tre modi di sequenziali rappresentazione KOP, FUP o AWL. I1 programma scritto con GRAPH 5 in

rappresentazione grafica viene automaticamente tradotto dal dispositivo di programmazione in un programma STEP 5.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

LISTA ISTRUZIONI

Programmazione con abbreviazioni mnemotecniche

Corrisponde a DI N 1 9239

AWL U E UN E U E ON E O E = A

SCHEMA FUNZIONALE

Programmazione con simboli grafici

Corrisponde a IEC 117-15 DIN 40700 DIN 40719 DIN 19239

FUP

Page 34: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.1.2 Programmazione strutturata

Panoramica I1 programma utente può essere strutturato tramite STEP 5 dividendolo in singole parti indipendenti di programma (blocchi).

La suddivisione del programma utente rende più comprensibile la struttura del programma stesso e può associare precise funzioni a ben determinate parti dell'impianto.

Vantaggi La realizzazione di questa "programmazione strutturata" offre notevoli vantaggi:

programmazione facile e trasparente anche con grossi programmi,

possibilità di standardizzare parti di programma,

facile organizzazione del programma,

modifiche semplici,

facile test di singole parti del programma,

facile messa in servizio.

Che cos'è un Un blocco è una parte del programma utente delimitata per funzione, struttura ed blocco? impiego.

È possibile distinguere tra blocchi che contengono istruzioni (owero codice) per l'elaborazione dei segnali (blocchi organizzativi, di programma, funzionali, sequenziali) e blocchi che contengono dati (blocchi dati).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 35: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.1.3 Istruzioni STEP 5

Definizione Un'istruzione STEP 5 è la più piccola unità a sè stante di un programma utente. Essa definisce uno specifico compito per la CPU. Un'istruzione STEP 5 è composta da una parte operazione e da una parte operando.

Esempio

Operandi assoluti e simbolici

Codice operazione Parametro

L A M 54.1 f 7

Parte operazione Parte operando (che fare?) (con che cosa?)

L'operando può essere definito in forma assoluta o simbolica (tramite una lista di attribuzione).

Esempio di rappresentazione assoluta: :U E 1.4

Esempio di rappresentazione simbolica: :U -Motore1

Per la programmazione assoluta e simbolica vedere anche il manuale STEP 5.

Campo di I1 repertorio operazioni STEP 5 permette di applicazione delle operazioni combinare valori binari tra di loro, impostarli o resettarli STEP 5

caricare e trasferire valori

confrontare valori tra di loro e elaborare valori aritmeticamente

gestire valori di conteggio e temporizzazione

trasformare le rappresentazioni dei valori

richiamare blocchi ed eseguire salti all'interno di un blocco

e

influire sull'elaborazione del programma.

Risultato logico I1 bit centrale per il controllo del programma è il risultato logico combinatorio combinatorio RLC (detto anche VKE). Esso viene generato tramite combinazioni digitali ed RLC influenzato da alcune operazioni.

I1 repertorio delle operazioni STEP 5 ed altri dettagli per la generazione dell'RLC vengono descritti esaurientemente nel paragrafo 3.5. Sono anche riportati degli esempi circa i singoli comandi STEP 5.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 36: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.1.4 Rappresentazione dei numeri

Panoramica Per poter permettere al processore di combinare, modificare o confrontare dei valori numerici, questi devono essere caricati negli accumulatori (registri di lavoro della CPU) in codice binario.

In relazione al tipo di operazione da eseguire, sono possibili in STEP 5 le seguenti rappresentazioni di numeri:

Numeri binari: numeri in virgola fissa a 16 bit numeri in virgola fissa a 32 bit numeri in virgola mobile con una mantissa a 16 o 24 bit

Numeri decimali: numeri in codice BCD (segno e 3 decimali)

Introduzione di Introducendo o emettendo valori numerici, si deve definire con il PG il formato valori numerici (p. es. KF per numeri in virgola fissa) con cui si desidera che questi numeri siano sul PG dati o visualizzati. I1 PG si incarica di trasformare i numeri dalla loro

rappresentazione interna in quella desiderata.

Operazioni possibili

Con numeri in virgola fissa a 16 bit oppure in virgola mobile si possono realizzare tutte le operazioni aritmetiche come confrontare, sommare, sottrarre, moltiplicare e dividere.

Avvertenza I numeri in codice BCD non possono essere utilizzati per operazioni aritmetiche perché forniscono risultati non corretti.

Con i numeri in virgola fissa a 32 bit è possibile realizzare operazioni di confronto. Inoltre essi sono usati come gradino intermedio nella trasformazione di numeri codificati BCD in numeri in virgola mobile. Con i comandi +D e -D è possibile ora utilizzarli anche per operazioni di addizione e sottrazione.

I1 linguaggio STEP 5 contiene anche delle operazioni di trasformazione con le quali è possibile trasformare dei numeri direttamente nelle forme di rappresentazione più importanti.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 37: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

Numeri in virgola I numeri in virgola fissa sono numeri interi duali dotati di segno. fissaa 16 bit e 32 bit Codificazione dei numeri in virgola fissa

Nella rappresentazione binaria essi sono composti da 16 bit (1 parola) o da 32 bit (2 parole), dove il bit n. 1 5 o n. 3 1 rappresentano il segno:

'0' = numero positivo

'1' = numero negativo.

I numeri negativi vengono rappresentati come complemento a 2.

Definizione sul PG

Numeri in virgola fissa a 16 bit:

Numeri in virgola fissa a 32 bit:

Campo di valori permesso

Numeri in virgola fissa a 16 bit:

Numeri in virgola fissa a 32 bit:

Utilizzo dei numeri in virgola fissa

I numeri in virgola fissa vengono utilizzati per compiti semplici di calcolo e per il confronto con valori di conteggio. Siccome i numeri in virgola fissa sono sempre numeri interi, bisogna fare attenzione che il risultato di una divisione di due numeri in virgola fissa è sempre un numero in virgola fissa senza decimali.

Numeri in virgola Numeri in virgola mobile sono numeri decimali, sia positivi che negativi. Essi mobile occupano sempre una doppia parola (32 bit). Un numero in virgola mobile viene

sempre rappresentato come un numero esponenziale.

Eseguendo una somma, sottrazione, moltiplicazione o divisione, la CPU 928B opera con una mantissa di 24 bit (dal bit O al bit 23).

L'esponente occupa 8 bit e definisce l'ordine di grandezza del numero in virgola mobile. Dal segno dell'esponente si può capire se il numero in virgola mobile è maggiore o minore di 0,l.

Utilizzo dei numeri in virgola mobile

L'utilizzo di numeri in virgola mobile è consigliato per la soluzione di complicati problemi di calcolo, specialmente per moltiplicazioni e divisioni, ed anche per poter lavorare con numeri molto grandi o molto piccoli.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 38: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

Precisione

La mantissa determina la precisione del numero:

precisione con una mantissa a 24 bit:

2-24 = 0,000000059604 (cioè 7 posti dopo la virgola)

Se il segno della mantissa è 'O', il numero è positivo; se il segno è '1' il numero è negativo e viene rappresentato in complemento a 2.

I1 valore in virgola mobile '0' viene rappresentato come valore duale 80000000H (32 bit, vedere "codificazione dei numeri in virgola mobile").

Codificazione dei numeri in virgola mobile

Un numero in virgola mobile viene codificato nel modo seguente:

l Esponente l Mantissa l V = Segno

Definizione del formato per numeri in virgola mobile sul PG: KG

Campo di valori permesso

da I 0,1469368 x a I 0,1701412 x lo3'

Introduzione/emissione sul PG

a) Blocco codificato:

Deve essere caricato il numero Z = 12,34567 come costante in virgola mobile.

Introduzione:

Emissione tramite il PG dopo la trasmissione della riga:

:L KG , + 1234567, + 02 1

Mantissa con segno i

Esponente (base 10) con segno

Valore del numero introdotto: +0,1234567 x 10'~ = 12,34567

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 39: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

b) Blocco dati:

Deve essere specificato il numero Z = - 0,005 come costante in virgola mobile

Introduzione:

Emissione tramite il PG dopo la trasmissione della riga:

6: KG , = 5000000, - 02 1

Mantissa con segno 1

Esponente (base 10) con segno

Valore del numero introdotto: - 0,5 x = 0,005

Numeri codificati I numeri decimali vengono rappresentati in codice BCD. 16 bit (1 parola) BCD dell'accumulatore vengono occupati dal segno (V) e da 3 cifre nel seguente

modo:

Le singole cifre sono numeri binari positivi a 4 bit compresi tra 0000 e 1001 (cioè tra O e 9).

15 12

V V V V

I bit di sinistra sono riservati per il segno.

Segno di un numero positivo: O000 Segno di un numero negativo: 1111

11 8

centinaia

Campo di valori permesso

da -999 a +999

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

7 4

decine

3 O

unità

Page 40: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.1.5 Blocchi STEP 5 e loro memorizzazione

Identificazione Un blocco è caratterizzato da:

tipo di blocco (OB, PB, SB, FB, FX, DB, DX)

e

numero di blocco (numero tra O e 255).

Tipi di blocco I1 linguaggio di programmazione STEP 5 distingue i seguenti tipi di blocco:

Blocchi organizzativi (OB)

I blocchi organizzativi fungono da interfaccia tra il programma di sistema ed il programma utente. Essi possono essere suddivisi in due gruppi:

- I blocchi organizzativi da OB 1 a OB 39 vengono richiamati dal programma di sistema e comandano l'elaborazione del programma, la gestione dell'avviamento della CPU e la gestione delle situazioni di errore. Questi OB vengono programmati dall'utente.

- I blocchi organizzativi da OB 40 a OB 255 contengono funzioni speciali del programma di sistema. Essi vengono richiamati dal programma utente se necessario.

Blocchi di programma (PB)

Essi vengono utilizzati per la strutturazione del programma utente e contengono parti di programma suddivise secondo un criterio tecnologico o funzionale. Normalmente i blocchi di programma contengono la maggior parte del programma utente.

Blocchi sequenziali (SB)

I blocchi sequenziali erano originariamente dei blocchi di programma speciali che permettevano l'elaborazione graduale di catene sequenziali. Queste catene sequenziali possono adesso essere programmate tramite GRAPH 5 161 e quindi i blocchi sequenziali hanno perso il loro significato originale. I blocchi sequenziali servono ora come ampliamento dei blocchi di programma e possono essere utilizzati allo stesso modo di questi ultimi.

Blocchi funzionali (FBIFX)

Essi servono a programmare funzioni ripetitive o complesse (p. es. funzioni digitali, comandi sequenziali, regolazioni, funzioni di segnalazione).

Un blocco funzionale può essere richiamato più volte da un blocco sovraordinato e ad ogni richiamo può essere dotato di nuovi operandi ("parametrizzato").

Utilizzando il tipo di blocco EX si può aumentare il numero dei blocchi funzionali da 256 a 512.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 41: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Blocchi dati (DBPX)

Nei blocchi dati vengono messi i dati (fissi o variabili) con i quali opera il programma utente. Questo tipo di blocco non contiene alcuna istruzione STEP 5 e si distingue per la sua funzione da tutti gli altri blocchi. Utilizzando il tipo di blocco DX si può aumentare il numero dei blocchi dati da 253 a 506.

Struttura formale Tutti i tipi di blocchi sono costituiti da di un blocco

un'intestazione del blocco

un corpo del blocco.

Intestazione del L'intestazione del blocco è lunga sempre 5 parole dati e contiene sia delle blocco informazioni per la gestione del blocco nel PG, sia dati per il programma di

sistema.

Corpo del blocco Nel corpo del blocco sono contenuti (in relazione al tipo di blocco):

istruzioni STEP 5 (per OB, PB, SB, FB, EX),

dati variabili o costanti (per DB, DX)

e

lista degli operandi formali (per FB, EX).

Blocco di intestazione accessorio

Lung heua massima

Per i blocchi del tipo DB, DX, FB e FX il dispositivo di programmazione genera anche un blocco di intestazione accessorio (DV, DXV, FV, FXV). I blocchi accessori contengono informazioni circa il formato dei dati (per DB e DX) oppure riguardo le etichette di salto (in caso di FB e EX) che possono essere interpretate solo dal dispositivo di programmazione. I blocchi accessori non vengono mai trasferiti nella memoria della CPU. L'utente non ha alcuna possibilità di accedere o modificare direttamente questi blocchi accessori di intestazione.

Un blocco STEP 5 può occupare al massimo 4096 parole (1 parola = 16 bit) nella memoria di programma della CPU.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 42: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Blocchi Di ogni singolo tipo di blocco, sono a disposizione per la programmazione: disponibili

OB l a 39

EB O a 255 F 512 in totale EX O a 255

DB 3 a 255 506 in totale

DX 3 a 255

I blocchi dati DB O, DB 1, DB 2, DX O, DX 1 e DX 2 contengono parametri. Essi sono riservati per ben determinate funzioni e non possono quindi essere liberamente utilizzati.

Memorizzazione Tutti i blocchi programmati vengono memorizzati dal PG nella memoria utente dei blocchi secondo il loro ordine di trasmissione (figura 2-2). Con la funzione PG

"Trasmissione blocchi B" vengono dapprima trasmessi i blocchi codificati e quindi i blocchi dati. In funzionamento RAh4 viene dapprima riempita la memoria utente con blocchi dati, dopo la trasmissione dei blocchi codificati. I rimanenti blocchi dati vengono poi scritti nella memona RAh4 per DB interna.

Gli indirizzi iniziali dei blocchi memorizzati vengono messi nel blocco dati DB O.

Ind i r izzo O

Posiz ione dei b locchi nel la memor ia utente

Figura 2-2 Esempio di memorizzazione di blocchi nella memona utente

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 43: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Caricamento Impostando il bit O della parola dati di sistema BS 144 è possibile caricare dei alternativo blocchi dati temporaneamente nella RAM per DB interna ("Caricamento (solo con alternativo", vedere capitolo 8/BS 144). Solo quando lo spazio nella RAM per versione 3UB12) DB è esaurito vengono caricati i blocchi dati nella memoria utente.

Correzione e Correggendo un blocco in "funzionamento RAM", il "vecchio" blocco viene cancellazione di contrassegnato come non valido nella memoria ed il "nuovo" blocco viene blocchi inserito nella memoria.

Allo stesso modo cancellando un blocco, questo non viene veramente cancellato, bensì solo contrassegnato come non valido. Blocchi cancellati e corretti continuano ad occupare spazio di memoria.

Avvertenza Con la funzione online COMPRESSIONE MEMORIA è possibile ottenere spazio di memoria per nuovi blocchi: la funzione ottimizza l'occupazione della memoria eliminando tutti i blocchi non più validi in memoria e quindi comprimendo quelli validi. I blocchi vengono compressi separatamente per la memoria utente e la RAM per DB interna (vedere paragrafo 11.2.2).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 44: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.2 Blocchi di programma, organizzativi e sequenziali

Introduzione Blocchi di programma (PB), organizzativi (OB) e sequenziali (SB) non si differenziano né come programmazione né dal loro richiamo. Tutti e tre possono essere programmati nelle rappresentazioni KOP, FUP o AWL.

Programmazione Per la programmazione di blocchi organizzativi, di programma e sequenziali procedere nel modo seguente:

1. Definire il tipo ed il numero del blocco che si vuole programmare.

Sono a disposizione i seguenti numeri :

- Blocchi di programma da O a 255,

- Blocchi organizzativi da l a 39,

- Blocchi sequenziali da O a 255.

2. Definire il programma utente in STEP 5.

Programmando PB, OB e SB possono essere usate solo le operazioni base di STEP 5!

Un blocco STEP 5 dovrebbe sempre contenere un programma completo. Le combinazioni logiche devono essere completate all'interno di un blocco.

3. Concludere la programmazione con il comando di fine blocco "BE".

Richiamo I blocchi - eccetto quelli da OB 1 a OB 39 - devono essere richiamati per la loro elaborazione. Questo viene fatto tramite operazioni STEP 5 speciali, i richiami di blocchi.

Questi richiami di blocchi possono essere programmati in un qualunque altro blocco organizzativo, di programma, funzionale o sequenziale. Essi sono paragonabili a salti a sottoprogrammi. Ogni salto provoca un cambio di blocco. L'indirizzo di ritorno nel blocco richiamante viene memorizzato dal sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 45: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

Richiamo I richiami di blocchi possono essere di tipo assoluto o condizionato: assoluto o condizionato Richiamo assoluto

L'operazione di salto SPA appartiene alle operazioni assolute e non influenza 17RLC. Quest'ultimo viene riportato nel blocco richiamato. Qui può essere analizzato ma non ulteriormente combinato.

I1 blocco da richiamare viene elaborato indipendentemente dal risultato logico combinatorio RLC (vedere paragrafo 3.4).

Esempio: SPA PB 100

Richiamo condizionato

L'operazione di salto SPB appartiene alle operazioni condizionate per cui il blocco da richiamare viene elaborato solo se 1'RLC è uguale a 1. In caso di RLC = 0, l'operazione di salto non viene eseguita.

Esempio: SPB PB 100

Avvertenza Dopo operazione di salto condizionato eseguita, 1'RLC viene impostato ad 'l' indipendentemente dall'esecuzione o non-esecuzione del salto nel blocco richiamato.

SPB PB 10 O M 1.5

Figura 2-3 Richiami di blocchi che abilitano l'elaborazione di un PB

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 46: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Effetto Dopo l'istruzione BE (fine blocco) la CPU continua il programma utente nel dell'istruzione BE blocco in cui era stato programmato il richiamo di blocco. L'elaborazione del

programma prosegue con l'istruzione STEP 5 immediatamente successiva al salto.

L'istruzione di fine blocco BE viene eseguita indipendentemente dall'RLC. Dopo un BE il risultato logico combinatorio RLC non può essere ulteriormente combinato. I risultati di calcoli ed 1'RLC esistenti prima dell'esecuzione di un comando BE vengono trasmessi al blocco richiamante e possono essere lì analizzati. Ritornando al blocco richiamante, l'RLC, il contenuto dei 4 accumulatori ed i risultati visualizzati ANZ O ed ANZ 1 non vengono modificati (informazioni più dettagliate riguardo gli accumulatori, ANZ O/ANZ 1 e RLC si trovano nel paragrafo 3.5).

2.2.1 Blocchi organizzativi di interfaccia utente

Introduzione I blocchi organizzativi fungono da interfaccia tra il programma di sistema ed il programma utente. I blocchi organizzativi da OB 1 ad OB 39 fanno parte del programma utente e vengono programmati come i blocchi di programma. Programmando questi OB è possibile determinare il comportamento della CPU in fase di avviamento, durante l'elaborazione del programma ed in caso di errore. I blocchi organizzativi sono attivi appena caricati nella memoria del controllore. Ciò è possibile anche durante il normale funzionamento.

Dopo che il programma di sistema ha richiamato un blocco organizzativo, viene elaborato il programma in esso contenuto.

Avvertenza I blocchi organizzativi da OB 1 ad OB 39 vengono programmati dall'utente e richiamati automaticamente dal programma di sistema come reazione ad eventi particolari!

Per eseguire il test, questi OB possono essere richiamati anche dal programma utente (SPAJSPB OB xxx). Non è però possibile, per esempio, realizzare un NUOVO AWIAMENTO con il richiamo del1 OB 20!

Le tabelle riportate qui di seguito danno una panoramica sulle interfacce utente

(OB).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 47: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

OB per l'elaborazione del programma Tabella 2-1 Panoramica sugli OB per l'elaborazione del programma

OB per I'awiamento

Blocchi

Blocco

OB 1

OB 2

OB 3 ... 5

OB 6

OB 7, OB 8

OB 9

OB 10

OB 11

OB 12

OB 13

OB 14

OB 15

OB 16

OB 17

OB 18

Tabella 2-2 Panoramica sui blocchi organizzativi per l'avviamento

organizzativi per il controllo dell'elaborazione del programma

Funzione e criterio di richiamo

Organizzazione del programma ciclico: primo richiamo dopo un'awiamento e quindi richiamo ciclico.

Organizzazione di un programma attivato su allarme; richiamo tramite un segnale sul bus S5 (allarme di processo)

Non presenti sulla CPU 928B

Allarme di ritardo

Non presenti sulla CPU 928B

Allarme generato dall'orologio integrato

Allarmi di schedulazione con intervallo fisso:

richiami ogni 10 ms

richiami ogni 20 ms

richiami ogni 50 ms

richiami ogni 100 ms

richiami ogni 200 ms

richiami ogni 500 ms

richiami ogni l s

richiami ogni 2 s

richiami ogni 5 s

l Blocchi organizzativi per il controllo dei modi di avviamento l 1 Blocco I Funzione e criterio di richiamo 1

OB 20

OB 21

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Richiamo per NUOVO AWIAMENTO (manuale ed automatico)

Richiamo per RIAWiAMENTO MANUALE/ NUOVO AWIAMENTO CON MEMORIA

OB 22 Richiamo per RIAWiAMENTO AUTOMATICO/NUOVO AWIAMENTO

Page 48: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

OB per la gestione di errori Tabella 2-3 Panoramica sui blocchi organizzativi per la gestione di errori

I I Blocchi organizzativi per la reazione ad errori deli'apparecchiatura o del

programma l)

1 Blocco I Funzione e criterio di richiamo

Errore di esecuzione (LFZ): richiamo di un blocco non caricato

Ritardo della conferma (QVZJ nel programma utente (per accesso diretto alle unità periferiche opp. ad altri indirizzi sul bus S5)

Ritardo della conferma (QVZJ durante l'aggiornamento delle immagini di processo ed il trasferimento dei merker di accoppiamento

OB 25

OB 26

OB 27

I OB 30 I Errore nel codice del comando (BCF): parametro non permesso I

Errore di indirizzamento (ADE)

Superamento del tempo di ciclo (ZYK)

Errore nel codice del comando (BCF): codice operazione non permesso

OB 28

OB 29

STOP tramite funzione PG o commutatore o via bus S5

Errore nel codice del comando (BCF): codice operazione non permesso

OB 31

OB 32

Altri errori di esecuzione (LZF)

Errore di esecuzione (LFZ): errore di trasferimento di blocchi dati

OB 33

OB 34

OB 36 bis 39 1 Non presenti sulla CPU 928B

Errore per collisione di interrupt temporali (WECK-FE)

Errore di regolazione (REG-FE)

OB 35

l) In caso di errore, se I'OB non è programmato la CPU s i porta in STOP. ECCEZIONE: se gli OB 23, 24 e 35 non sono programmati, non avviene alcuna reazione!

Errore di comunicazione sulla seconda interfaccia seriale (FE-3)

L'OB 28 viene richiamato prima del passaggio in STOP che avviene comunque, indipendentemente dal fatto che es in quale modo I'OB 28 sia programmato. ECCEZIONE: in caso di mancanza di tensione, I'OB 28 non viene richiamato!

I

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 49: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

2.2.2 Blocchi organizzativi speciali

Introduzione I seguenti blocchi organizzativi contengono funzioni speciali del programma di sistema. Essi non possono essere programmati dall'utente (questo vale per tutti gli OB compresi tra 40 e 255!), bensì solo essere richiamati. Essi non contengono un programma STEP 5. Questi OB speciali possono essere richiamati da ogni altro blocco di codice.

Panoramica Tabella 2-4 Panoramica sui blocchi organizzativi speciali

Blocchi organizzativi integrati e loro funzioni speciali I I Blocco: I Funzione:

Accesso al byte di visualizzazione Cancellazione di ACCU 1 ,2 ,3 e 4 ACCU Roll Up ACCU Roll Down

Abilitaz./disabilitaz. della funzione "disattivazione comune degli allarmi"

Abilitaz./disabilitaz. della funzione "disattivazione di singoli allarmi di schedulazione"

Abilitaz./disabilitaz. della funzione "ritardo comune degli allarmi"

Abilitaz./disabilitaz. della funzione "ritardo di singoli allarmi a tempo"

XD

P MOD PUSH

I OB 160 - 163 1 Cicli di conteggio

OB 150

OB 151

OB 152

OB 153

Impostazione/lettura dell'orologio di sistema

Impostazione/lettura dell'allarme dall'orologio

Statistica del ciclo

Impostazione/lettura dell'allarme di ritardo

I OB 220 I Ampliamento del segno

OB 170

OB 180 OB 181 OB 182

OB 185 OB 186

OB 190,192 OB 191,193

OB 200,202 - 205

OB 216 - 218

Lettura del registro di blocco (BSTACK)

Accesso a blocchi dati variabili Test di blocchi dati (DBPX) Copia di settori di dati

Azione sulla protezione da sovrascrittura Compressione memoria tramite programma utente

Trasferimento di merker in blocchi dati Trasferimento di dati nel campo dei merker

Comunicazione multiprocessore

Accesso ai "kachel" (CP ed alcune unità IP)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

OB 221

OB 222

Definizione del tempo di ciclo massimo

Riazzeramento del tempo di ciclo

Page 50: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Una descrizione dettagliata di queste funzioni speciali si trova nel capitolo 6.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 51: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.3 Blocchi funzionali

Introduzione I blocchi funzionali (EB o EX) sono delle parti del programma utente come, per esempio, i blocchi di programma. I blocchi funzionali EX hanno la stessa struttura dei blocchi funzionali EB e vengono programmati allo stesso modo. Con i blocchi funzionali si realizzano le funzioni che si presentano spesso oppure che sono più complesse. Ogni blocco funzionale rappresenta all'interno del programma utente una funzione completa. I blocchi funzionali possono

essere disponibili come prodotto software Siemens (blocchi funzionali standard su dischetto); con questi blocchi funzionali standard è possibile scrivere in modo più veloce e sicuro il programma utente riguardante comando, segnalazione, regolazione e protocollo),

oppure

essere programmati direttamente dall'utente.

Differenze rispetto agli altri blocchi

I blocchi funzionali presentano 4 sostanziali differenze rispetto agli OB, PB e SB:

Richiamando un blocco funzionale,

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 52: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.3.1 Struttura di un blocco funzionale

Intestazione del L'intestazione del blocco (5 parole) di un blocco funzionale ha la stessa struttura blocco delle intestazioni degli altri blocchi STEP 5.

Corpo del blocco I1 corpo del blocco, invece, si differenzia sostanzialmente dagli altri tipi di blocco per la propria struttura. La funzione da realizzare è scritta in forma di lista istruzioni del linguaggio STEP 5. Tra l'intestazione del blocco ed il corpo del blocco, un blocco funzionale necessita di ulteriore spazio per memorizzare il proprio nome e la lista degli operandi formali. Dato che questa lista non contiene alcuna istruzione per la CPU, essa viene saltata con un salto assoluto che viene generato automaticamente dal PG. Questa istruzione di salto non viene visualizzata nell'emissione su PG! Quando un blocco funzionale viene richiamato, si elabora solo il corpo del blocco.

Operandi assoluti o simbolici

FB nella memoria del processore

Gli operandi possono essere dati in forma assoluta (p. es. M 2.5) o simbolica (p. es. -MOTOREI). I1 significato degli operandi simbolici deve essere precedentemente determinato tramite una lista di attribuzione (vedere 134.

Così si presenta un blocco funzionale nella memoria del processore:

Nome dell'FB/FX 4 parole l l Salto della l ista degli operandi formali -F SPA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ,

Operando formale 1 Lista i 1 } 3 parole degli I 3 parole

operandi

Operando formale 2 formali

J 5 parole del blocco

--_____--- -- _----*_

- -_______- - - - - * -----------..i----

_-----_ r-------------------------. --------------i---- i l

Operando formale n

L - - - _ _ - - - - - __---_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ * -----------____--

*_---_ __I

Programma

I --_____---- -- ____________-' -----------___---

utente STEP 5

- I parola \ 4

Corpo del blocco

1 ) 3 parole 1 i J

I. operazione STEP 5 +..--i

Figura 2-4 Struttura di un blocco funzionale (FBIFX)

r L

f

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 53: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Nella memoria ci sono anche tutte le informazioni che necessitano al dispositivo di programmazione per rappresentare graficamente il blocco funzionale alla sua chiamata e per controllare gli operandi in fase di parametnzzazione e programmazione del blocco. Un'introduzione errata non viene accettata dal dispositivo di programmazione.

Distinzione: Operando con i blocchi funzionali, bisogna distinguere tra: "Programmare" - "Richiamare e programmare un FBPX parametrizzare"

e

richiamare e quindi parametrizzare un FBJFX.

Programmando si definisce la funzione del blocco. Bisogna determinare quali operandi di ingresso sono necessari e quali risultati di uscita devono essere trasmessi al programma richiamante. Tutti gli operandi di ingresso e tutti i risultati di uscita vengono quindi definiti come operandi formali che svolgono una funzione di identificaton.

Richiamo

Richiamando un blocco funzionale da un blocco sovraordinato (OB, PB, SB, FB, EX) gli operandi formali (parametri di blocco) vengono sostituiti con operandi attuali: il blocco funzionale viene parametrizzato.

Procedimento durante la programmazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione desiderata

Si vuole "direttamente" programmare un blocco funzionale, cioè senza operandi formali:

In un blocco funzionale si vogliono utilizzare operandi formali:

Procedimento

procedere come per la programmazione di blocchi di programma o sequenziali.

procedere nel modo descritto nelle pagine seguenti, ossenvando l'ordine seguente: 1. Programmare 1'FBIFX con gli operandi

formali e mantenerlo sul PG (offline) o nella memoria CPU (online),

2. Programmare il blocco/i blocchi richiamanteli con gli operandi attuali

Page 54: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.3.2 Programmazione di un blocco funzionale

Procedimento I blocchi funzionali possono essere programmati soltanto nel modo di rappresentazione "lista istruzioni". Per la definizione di un blocco funzionale con il PG si opera come segue:

1. Definire il tipo di blocco (FBPX) ed il numero del blocco funzionale.

I blocchi funzionali utente dovrebbero essere numerati a partire da 255 in successione decrescente in modo da evitare collisioni con i blocchi funzionali standard che sono numerati da FB 1 a FB 199.

2. Definire il nome del blocco funzionale.

I1 nome può essere composto da 8 caratteri al massimo e deve cominciare con una lettera.

3. Se si vuole che il blocco funzionale elaborari operandi formali:

Definire gli operandi formali che devono essere usati nel blocco.

Per ogni operando formale bisogna indicare:

- il nome del parametro di blocco (max. 4 caratteri)

- il genere del parametro ed il tipo del parametro di blocco

Si possono definire al massimo 40 operandi formali.

4. Definire quindi il programma STEP 5 in forma di lista istruzioni (AWL).

Nel far ciò gli operandi formali vengono rappresentati con il simbolo in precedenza definito (p. es. U = Xl). Esso può anche essere utilizzato nel blocco funzionale più volte in diversi posti.

5. Infine terminare il programma con il comando di fine blocco "BE".

Avvertenza Modificando la successione o il numero degli operandi formali nella rispettiva lista, bisogna prowedere ad adattare i comandi di STEP 5 del blocco funzionale, che utilizzano un operando formale, e la lista dei parametri definita nel blocco richiamante.

Programmare e modificare i blocchi funzionali possibilmente solo sul dischetto o sul disco rigido e trasferirli quindi nella CPU!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 55: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Operandi formali Come operandi formali di un blocco funzionale (detti anche parametri di blocco) sono messe a disposizione le seguenti identificazioni di genere e di tipo:

Tabella 2-5 Operandi formali permessi per i blocchi funzionali

E, D, B, T o Z sono parametri che vengono riportati sul lato sinistro del simbolo di funzione in caso di rappresentazione grafica del richiamo FB.

Genere del parametro

E = ingresso A = uscita

D = dato

B = comando T = temponzzatore (Timer) Z = contatore

I parametri di genere A vengono invece riportati sul lato destro dello stesso simbolo.

Tipo del parametro

BI/BY/WP

KM/KH/KY/KC/KF/ KT/KZ/KG

nessuno (indicazione di tipo non permessa)

I1 tipo del parametro stabilisce in caso di parametri E ed A, se si tratta di un bit, byte, parola o doppia parola, mentre nel caso di parametri D specifica il formato dei dati (p. es. rappresentazione esadecimale o binaria).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 56: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.3.3 Richiamo e parametrizzazione di blocchi funzionali

Introduzione Ogni blocco funzionale può essere liberamente richiamato nel programma utente icon qualsiasi frequenza ed in qualsiasi numero. Mentre la programmazione deve awenire sempre in lista istruzioni, il richiamo di un blocco funzionale può essere fatto anche in forma grafica (EUP o KOP).

Procedimento Per effettuare il richiamo e la parametrizzazione si procede nel seguente modo:

1. Assicurarsi di aver a disposizione il blocco funzionale richiamato o nella memona PG (offline) o nella memona CPU (oniine).

2. Scrivere nel blocco richiamante l'istruzione di richiamo.

Questo richiamo può awenire da un blocco organizzativo, di programma, sequenziale oppure da un altro blocco funzionale.

Effetto sul PG:

Dopo aver introdotto l'istruzione di richiamo (per esempio SPA FB 200), appare automaticamente il nome e la lista degli operandi formali del blocco funzionale richiesto.

3. Assegnare ad ogni operando formale l'operando attuale valido per questo richiamo, cioè parametrizzare il blocco funzionale.

Questi operandi attuali possono essere diversi ad ogni richiamo: al primo richiamo del blocco FB 200, per esempio, ingressi e uscite, al secondo merker ecc. Per ogni richiamo è possibile associare un numero massimo di operandi attuali alla lista degli operandi formali.

Richiamo assoluto/ condizionato

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

richiamo assoluto

"SPA FBn" per blocchi funzionali FB o "BA FXn" per blocchi funzionali supplementari FX:

il blocco funzionale richiamato viene elaborato indipendentemente dallo stato del risultato logico combinatono RLC.

richiamo condizionato

"SPB FBn" per blocchi funzionali FB o " BAB FXn " per blocchi funzionali supplementari FX

il blocco funzionale richiamato viene elaborato solo se RLC = 1. Se RLC = O, il richiamo del blocco non viene eseguito. Indipendentemente che il richiamo del blocco venga eseguito o meno, 1'RLC viene sempre impostato ad '1'.

Dopo un richiamo assoluto o condizionato il risultato logico combinatorio non può essere ulteriormente combinato. Saltando però nel blocco richiesto 1'RLC viene conservato e può essere lì analizzato.

Page 57: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Operandi attuali Verificare con le seguenti tabelle quali operandi attuali sono permessi per i permessi blocchi funzionali.

Tabella 2-6 Operandi attuali permessi per i blocchi funzionali

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Genere del parametro

E, A

D

Tipo del parametro

BI per un operando indirizzato a bit

BY per un operando indirizzato a byte

W per un operando indirizzato a parole

D per un operando indirizzato a doppie parole

KM per una rappresentazione binaria (16 bit)

KY per 2 numeri a byte ciascuno tra O e 255

KH per una rappresentazione esadecimale (max. 4 posizioni)

KC per 2 caratteri alfanumenci

KT per un valore di temponzza- zione (codificato in BCD) con base di tempo da .O a .3 e valore di tempo tra O e 999

KZ per un valore di conteggio tra O e 999

KF per un numero in virgola fissa tra -32768 e t32767

KG per un numero in virgola mobile da 10,1469368 x loa8 a 10,1701412 x lo3'

Operandi attuali permessi

E n.m ingressi A n.m uscite M n.m merker

EB n byte d'ingresso Ai3 n byte d'uscita MB n byte di merker DL n byte sinistro di dati DR n byte destro di dati PY n byte di periferia QB n byte di periferia (ampliamento)

EW n parole d'ingresso AW n parole d'uscita MW n parole di merker DW n parole dati PW n parole di periferia QW n parole di periferia (ampliamento)

ED n doppie parole d'ingresso AD n doppie parole d'uscita MD n doppie parole di merker DD n doppie parole dati

costanti

Page 58: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Avvertenza I merker S non possono essere usati come operandi attuali per blocchi funzionali.

Genere del parametro

Dopo il salto nel blocco funzionale, per la sua elaborazione vengono utilizzati gli operandi attuali definiti nel blocco richiamante. Grazie a questo tipo di funzionamento parametrizzabile, i blocchi funzionali possono essere richiamati più volte nel programma utente.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Tipo del parametro Operandi attuali permessi

Continuazione della

B

T

Z

tabella 2-6:

Non è ammessa alcuna indicazione del tipo

Non è ammessa alcuna indicazione del tipo

Non è ammessa alcuna indicazione del tipo

DB n blocco dati; viene eseguito il comando A DB n

FB n blocchi funzionali (ammessi solo senza parametri); vengono richiamati in modo assoluto (SPA . .n)

OB n blocchi organizzativi; vengono richiamati in modo assoluto (SPA . .n)

PB n blocchi di programma; vengono richiamati in modo assoluto (SPA . .n)

SB n blocchi sequenziali; vengono richiamati in modo assoluto (SPA. .n)

T O a 255 temporizzatori

Z O a 255 contatori

Page 59: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

Esempi

funzionale.

Programmazione del blocco funzionale FB 202:

SEGMENTO 1 NOME ESEMPIO SIG : UNO E/A/D/B/T/Z: E BI/BY/W/D: BI

SIG : DUE E/A/D/B/T/Z: E BI/BY/W/D: BI SIG : TRE E/A/D/B/T/Z: A BI/BY/W/D: BI

nel blocco di programma FB 25: Il blocco funzionale FB 202 viene richiamato e parametrizzato

Rappresentazione AWL Rappresentazione KOP/FUP

SEGMENTO 1

: SPA FB 202 FB 202 NOME : ESEMPIO UNO : E 1 3 . 5 DUE : M 1 7 . 7 M 1 7 . 7 -

Programma eseguito dopo il salto in FB 202:

: U E 1 3 . 5 : U M 1 7 . 7

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 60: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Rappresentazione AWL

SEGMENTO 1

: A D B 5

: SPA FB 201 NOME : FUNZ-CON

E 3 . 5 M 2 . 5

KT 010.1

A 2 . 3

Rappresentazione KOP/FUP

SEGMENTO 1 FB 201

FUNZ -CON

A 6.0 : BE

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 61: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Programma utente

2.3.4 Blocchi funzionali speciali

Introduzione Oltre ai blocchi funzionali che l'utente si programma da sé, esistono dei blocchi funzionali standard che sono da trattare come prodotti software finiti. Essi svolgono funzioni di uso generale (p. es. diagnostica, catene sequenziali). I blocchi funzionali standard occupano i numeri da FB 1 a FB 199.

Utilizzando dei blocchi funzionali standard bisogna prestare attenzione alle avvertenze contenute nella relativa descrizione (settori occupati, convenzioni ecc.).

I blocchi funzionali standard disponibili per il controllore S5-135U sono elencati nel catalogo ST 57 /Il / .

Esempio

Radice quadrata i n v irgo la mobile RAD:GP FB 6

I1 blocco funzionale RAD:GP calcola la radice quadrata di un numero in virgola mobile (esponente a 8 bit e mantissa a 24 bit). I1 risultato è pure un numero in virgola mobile (esponente a 8 bit e mantissa a 24 bit) dove il bit meno significativo non viene arrotondato.

I1 blocco funzionale genera, se è il caso per ulteriori elaborazioni l'identificatore "radicando negativo".

Campo dei valori :

radicando da - 0,1469368 esp. -38 a +0,1701412 esp. +39

da + 0,3833434 esp. -19 a +0,1304384 esp. +20

Funzione : Y = Y = SQRT; A = RADI

Richiamo del blocco funzionale standard FB 6:

Nell'esempio sotto riportato viene calcolata la radice quadrata di un numero in virgola mobile che è predisposto in DD 5 del DB 17 con esponente a 8 bit e mantissa a bit. I1 risultato è ancora un numero in virgola mobile a 32 bit e viene messo in DD 10. In precedenza deve essere attivato il relativo blocco dati. I1 parametro S (genere del parametro: A; tipo del parametro: BI) specifica il segno del radicando: S = 1 significa radicando negativo.

Parole di merker occupate: da MW 238 a MW 254.

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 62: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Rappresentazione AWL Rappresentazione KOP/FUP

: A DB 17 SEGMENTO 2

: SPA FB 6 FB 6 Seg- NOME : RAD : GP men- RADI : DD 5 t o 2 V Z : M 1 5 . 0

* ) SQRT : DD 10

DD= doppia parola dati

Utilizzo del blocco funzionale FB O

Quando il blocco organizzativo OB 1 non è programmato, il programma di sistema richiama FB O che funge così da blocco ciclico.

Essendo utilizzabile in un blocco funzionale l'intero repertorio di operazioni STEP 5, la programmazione di FB O invece che di OB 1 ha particolarmente senso quando si vuole fare elaborare un programma breve che debba essere molto veloce.

Avvertenza I1 blocco FB O dovrebbe pertanto essere utilizzato solo per l'elaborazione ciclica del programma! (Esso non può essere parametrizzato.)

Se si programma sia I'OB 1 che 1'FB 0, viene elaborato ciclicamente solo 1 I'OB 1.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 63: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.4 Blocchi dati

Introduzione Nei blocchi dati (DB) o blocchi dati ampliati (DX) sono memorizzati i dati fissi o variabili che servono per l'elaborazione del programma utente. Nei blocchi dati non viene elaborata alcuna istruzione STEP 5.

I dati di un blocco dati possono essere:

combinazioni di bit a piacere, p. es. per stati dell'impianto,

numeri (esadecimali, binari, decimali), p. es. valori di tempo o risultati di calcoli

caratteri alfanumerici, p. es. per segnalazioni.

Struttura di un blocco dati

Blocco di intestazione accessorio

Un blocco dati (DBJDX) è composto da varie parti:

blocco di intestazione accessorio (DV, DXV),

intestazione del blocco,

corpo del blocco.

I1 blocco di intestazione accessorio viene generato automaticamente sul disco rigido o sul dischetto del dispositivo di programmazione e non viene trasferito alla CPU. Esso contiene il formato delle parole dati contenute nel corpo del blocco.

L'utente non ha alcun accesso diretto a questo blocco.

Avvertenza Trasferendo un blocco dati dal controllore programmabile sul dischetto o sul disco rigido, il relativo blocco accessorio viene cancellato. Per questo motivo non si dovrebbe mai modificare un blocco dati con diversi formati di dati direttamente nel controllore programmabile e quindi ritrasferirli sul dischetto, perchè, così facendo ogni parola di questo DB viene rappresentata nel formato selezionato nella maschera di preimpostazione.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 64: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Intestazione del L'intestazione del blocco occupa 5 parole di memoria e contiene: blocco

l'identificatore di blocco

l'identificatore del PG

il tipo di blocco ed il numero di blocco

il numero di biblioteca

la lunghezza del blocco (compresa la lunghezza dell'intestazione del blocco).

Corpo del blocco I1 corpo del blocco contiene, in successione a partire dalla parola dati DWO, le parole dati con cui lavora il programma utente. Ogni parola dati occupa una parola di memoria (16 bit).

Lunghezza max. Un blocco dati può occupare al massimo 4096 parole (intestazione inclusa) della memoria della CPU. Durante la definizione ed il trasferimento di blocchi dati con il PG, bisogna prestare attenzione alla capacità di memoria della CPU utilizzata!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 65: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.4.1 Programmazione di un blocco dati

Procedimento Per la creazione di un blocco dati si opera come segue:

1. Definire il tipo di blocco dati (DBJDX) ed un numero di blocco compreso tra 3 e 255.

2. Definire le singole parole dati nel formato desiderato.

(L'introduzione di parole dati non viene terminata con il comando di fine blocco BE!)

Avvertenza I blocchi dati DB O, DB 1, DB 2, DX O, DX 1 e DX 2 sono riservati per particolari funzioni e quindi non liberamente utilizzabili (vedere "Blocchi dati speciali")!

Formati dati permessi

In un blocco dati è possibile utilizzare i formati elencati nella tabella seguente.

Tabella 2-7 Formati dati permessi in un blocco dati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 66: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.4.2 Attivazione di un blocco dati

Introduzione Un blocco dati (DB o DX) può essere attivato solo in modo assoluto. Ciò è possibile all'interno di un OB, PB, SB, FB e FX. Un certo blocco dati può essere attivato più volte nel programma utente.

L'attivazione di un blocco dati awiene nel modo seguente:

Validità

Operazione desiderata

Per attivare un blocco dati DB,

Per attivare un blocco dati DX,

Accesso

Procedimento

introdurre l'istruzione STEP 5 "A DB.."

introdurre l'istruzione STEP 5 "AX DX.."

Dopo l'attivazione di un blocco dati, tutte le istruzioni successive che contengono l'operando 'D' fanno riferimento al blocco attivato.

I1 blocco dati attivato rimane valido anche quando, a seguito di un richiamo di blocco, l'elaborazione del programma continua in un altro blocco.

Se in questo blocco viene ora attivato un nuovo blocco dati, questo è valido solo nel blocco richiamato. Ritornando al blocco richiamante, riprende a valere il vecchio blocco dati.

L'accesso da parte del programma ai dati memorizzati nel blocco dati attivato avviene mediante le operazioni di caricamento e di trasferimento (per informazioni più dettagliate consultare il capitolo 3).

Effettuando una combinazione binaria, il bit di parola dati indirizzato viene utilizzato per la generazione dell'RLC. I1 contenuto della parola dati non viene modificato.

Effettuando un'operazione di memorizzazione, il valore dell'RLC viene assegnato al bit di parola dati indirizzato. I1 contenuto della parola dati potrebbe risultare modificato.

Con un comando di caricamento il contenuto della parola dati indirizzata viene caricato nell'accumulatore 1. I1 contenuto della parola dati non viene modificato.

Con un comando di trasferimento i dati contenuti nell' ACCU 1 vengono trasferiti alla parola dati indirizzata. I1 vecchio contenuto della parola dati viene sovrascritto.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 67: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

Avvertenza Prima dell'accesso ad una parola dati bisogna attivare nel programma utente il blocco dati desiderato, in quanto solo così facendo la CPU trova la giusta DW. La parola dati indirizzata deve essere presente nel blocco dati attivato, altrimenti il programma di sistema rileva un errore di trasferimento o caricamento durante l'accesso.

Con i comandi di caricamento e trasferimento è possibile accedere solo fino alla parola dati 255!

Un blocco dati attivato rimane valido finché,

a) viene attivato un altro blocco dati

oppure

b) il blocco richiamante finisce con l'esecuzione di 'BE' o 'BEB'.

Esempi

1 contenuto della parola dati DW 1 del blocco dati B 10 deve essere trasferito nella DW 1 del DB 20.

e istruzioni che permettono di realizzare cib sono:

:A DB 10 (attivazione del DB 10) :L DW 1 (caricamento della DW 1 in ACCU 1) :A DB 20 (attivazione del DB 20) :T DW 1 (trasferimento dellrACCU 1 in DW 1)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 68: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

e1 blocco di programma PB 7 viene attivato il blocco ati DB 10 (A DB 10). Nell'elaborazione del programma uccessiva vengono elaborati i dati di questo blocco dati.

opo un richiamo (SPA PB 20) viene elaborato il blocco di rogramma PB 20. I1 blocco dati DB 10 continua perb a alere. Solo quando viene attivato il blocco dati DB 11 A DB 11) si cambia l'area dei dati validi. Fino alla ine del blocco di programma PB 20 (BE) il DB 11 rimane

itornando al PB 7, ritorna ad essere valido il blocco ati DB 10.

gura 2-5 Validità di un blocco dati attivato

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 69: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

2.4.3 Blocchi dati speciali

Introduzione Nella CPU 928B i blocchi dati DB O, DB 1, DB 2, DX O, DX 1 e DX 2 sono riservati per determinate funzioni. Essi vengono gestiti dal programma di sistema e non sono liberamente utilizzabili dall'utente.

Blocco dati DB O (vedere paragrafo 8.3)

I1 blocco dati DB O contiene la lista degli indirizzi iniziali di tutti i blocchi che si trovano nella memoria utente o nella RAM per DB della CPU. Questa lista di indirizzi viene creata dal programma di sistema in fase di inizializzazione (dopo la CANCELLAZIONE TOTALE) e quindi viene automaticamente aggiornata in caso di introduzione o modifica di blocchi con il PG.

Blocco dati DB 1 (vedere paragrafo 10.1)

I1 blocco dati DB 1 contiene la lista degli ingressi ed uscite digitali (periferia P con relativo indirizzo a byte da O a 127) nonchè dei merker di accoppiamento di ingresso e di uscita che sono attribuiti alla CPU, ed eventualmente la lunghezza del blocco dei temporizzaton.

I1 DB 1 può essere parametnzzato e caricato:

per ridurre il tempo di ciclo in funzionamento monoprocessore dato che solo gli ingressi, le uscite e i temporizzatori elencati nel DB 1 vengono aggiornati.

I1 DB 1 deve essere parametrizzato e caricato:

- in funzionamento multiprocessore

- se sono presenti merker di accoppiamento con CP.

Blocco dati DB 2 (vedere paragrafo 4.5)

I1 blocco dati DB 2 serve a parametrizzare l'algoritmo di regolazione R64. La funzione di regolazione può essere trattata come un prodotto software e opera in collaborazione del programma di sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 70: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Proaramma utente

DXO Blocco dati DX O (vedere capitolo 7)

I1 blocco dati DX O contiene la predisposizione di alcune funzioni del programma di sistema (p. es. per la gestione dell'awiamento). È possibile modificare queste predisposizioni nel DX O e quindi adattare le reazioni del programma di sistema alle particolari esigenze dell'utente.

Blocco dati DX 1

Riservato.

Blocco dati DX 2

I blocco dati DX 2 serve per determinare il tipo di accoppiamento per la comunicazione con la seconda interfaccia senale. Dettagli circa la parametnzzazione di questo blocco sono contenuti nel manuale "Comunicazione" 1141.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 71: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma 3 In questo Questo capitolo si riferisce agli utenti con poca esperienza nel programmare con capitolo il linguaggio di programmazione STEP 5. Fornisce le nozioni fondamentali della

programmazione con STEP 5 e descrive dettagliatamente i comandi STEP 5 per la CPU 928B (con esempi applicativi).

I1 paragrafo 3.5 serve da guida di riferimento agli utenti esperti che non trovano sufficiente informazione relativo ad un determinato comando STEP 5 nella lista delle operazioni /l/.

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Pagina

3-2

3-3

3-8

3-10

3-11

3-13

3-17

3-32

3-47

3-54

3-67

Capitolo

3.1

3.2

3.3

3.4

3.4.1

3.5

3.5.1

3.5.2

3.5.3

3.5.4

3.5.5

Argomento trattato

Principio dell'elaborazione del programma

Organizzazione del programma

Memonzzazione di blocchi di programma e di blocchi dati

Elaborazione del programma utente

Definizioni per l'elaborazione del programma

Operazioni STEP 5 con esempi

Operazioni fondamentali

Esempi di programmazione nei modi di rappresentazione AWL, KOP e FUP

Operazioni integrative

Operazioni organizzative

Operazioni con semafori

Page 72: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.1 Principio dell'elaborazione del programma

Panoramica I1 programma utente STEP 5 può essere elaborato in diversi modi.

Normalmente nei controllori programmabili predomina l'elaborazione ciclica: il programma di sistema viene elaborato ciclicamente (vedere paragrafo 3.4) richiamando una volta in ogni ciclo il blocco organizzativo OB 1 (vedere figura 3-1).

Programma di sistema I Programma utente

dall'avviamento

Aggiornamento dei 1 merker di accoppia- 1 / mento di ingresso

Aggiornamento dell'immagine di processo degli ingressi (IPI)

Richiamo di OB 1

Emissione dell'immagine di processo delle uscite (IPU)

Aggiornamento dei merker di accoppiamento di uscita B E

I

Figura 3-1 Principio dell'elaborazione ciclica del programma

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 73: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.2 Organizzazione del programma

Introduzione Con l'organizzazione del programma si determina se ed in quale successione devono essere elaborati i blocchi predisposti. Per fare ciò, bisogna inserire nel blocco organizzativo dei richiami assoluti o condizionati ai vari blocchi.

Dai singoli blocchi organizzativi, di programma, funzionali e sequenziali, è possibile richiamare a piacere altri blocchi di programma, funzionali e sequenziali (sia uno dopo l'altro che quelli annidati).

I1 programma utente dovrebbe essere organizzato in modo tale da mettere in evidenza le strutture essenziali dal programma o le parti dell'impianto tecnicamente interconnesse.

Le figure 3-2 e 3-3 rappresentano due esempi di una struttura di programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 74: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Arresto impianto

funzionamento

stato iniziale

Comando della catena sequenziale

Alimentazione Merker di ' interfaccia per singoli attuatori

Alimentazione

Alimentazione

segnalazione da periferia standard

segnalazione da periferia standard

Figura 3-2 Esempio per l'organizzazione del programma utente secondo la struttura del programma

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 75: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

PB 'X'

Comand i s ingo l i

SPA PB 'X'

PB 'Y'

Comandi sequenzial i

SPA PB 'Y'

FB 'Z '

SPA PB 'Z '

Emissione protocol l i

Figura 3-3 Esempio per l'organizzazione del programma utente secondo la struttura dell'impianto

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 76: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Annidamento dei La figura 3-4 spiega il principio dei richiami di blocco annidati. blocchi

*) Operaz ione a cu i s i r i torna

OB 1 PB 5 PB 20

Figura 3-4 Richiamo annidato di blocchi codificati

S P A P B 5 / U M 200.5;

Indirizzo di blocco

La posizione di un blocco nella memoria utente (o nella RAM per DB) è determinata dal suo indirizzo iniziale di blocco: peri blocchi codificati esso è l'indirizzo della cella di memoria in cui si trova il primo comando in STEP 5 del blocco (per EB e EX il comando SPA tramite lista degli operandi formali); per i blocchi dati esso è l'indirizzo della prima parola dati.

,l. op. STEP 5

A DB 20

SPA PB 20 / = A 6 0 . 6 ' ) ~

Per far sì che la CPU possa trovare nella memoria un blocco richiamato, gli indirizzi iniziali di tutti i blocchi validi sono inseriti in una lista di indirizzi di blocco contenuta nel blocco dati DB O. I1 blocco DB O viene gestito direttamente dal programma di sistema e non può essere attivato dall'utente.

,l. op. STEP 5

A DB 30

SPA F B 30' NOME: KURV

B E

Per poter ritornare al blocco chiamante dopo l'elaborazione del blocco richiamato, la CPU memorizza, per ogni richiamo di un nuovo blocco, l'indirizzo di ritorno: esso è l'indirizzo della cella di memoria in cui si trova l'istruzione STEP 5 successiva al richiamo del blocco. Inoltre la CPU memorizza l'indirizzo iniziale e la lunghezza del blocco dati valido in quel punto.

U E 55.0*)+

'B E

Profondità di È possibile annidare al massimo 62 blocchi l'uno nell'altro. Se vengono annidamento richiamati più di 62 blocchi l'uno nell'altro, la CPU segnala un errore e si porta

in STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 77: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Esempio per la profondità di annidamento

di elaborazione

0 8 2 -b FB21

0 B 13 -b PB 131 -b FB 131

OB1 -b P B I + F B I

Profondità di annidamento

Figura 3-5 Esempio per la profondità di annidamento blocchi

La profondità di annidamento del programma può essere così calcolata:

- si sommino tutti i blocchi organizzativi programmati (nell'esempio: 4 OB).

- si sommino le profondità di annidamento dei singoli blocchi organizzativi (nell'esempio: 2 + 2 + 1 + O = 5).

- la somma dei due precedenti risultati costituisce la profondità di annidamento del programma (nell'esempio: 4 + 5 = profondità di annidamento 9) che non deve superare il numero 62.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 78: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

3.3 Memorizzazione di blocchi di programma e di blocchi dati

Introduzione Perchè la CPU possa elaborare il programma utente, questo deve essere caricato nella memoria di programma. Come memoria di programma sono a disposizione la memoria utente (RAM o EPROM) e la RAM integrata per DB.

Per caricare blocchi codice e blocchi dati nella memoria del programma è possibile utilizzare i metodi seguenti:

"Funzionamento Se durante la CANCELLAZIONE TOTALE della CPU non è inserita alcuna RAM" memory card (Flash EPROM), la CPU va in "funzionamento RAM".

I blocchi codice ed i blocchi dati vengono caricati dal PG nella memona utente o nella RAM per DB della CPU. Essi possono essere ricaricati (sostituiti) dal PG in qualsiasi momento, così come modificati o cancellati. In altre parole, è disinserita la protezione in scrittura.

"Funzionamento I blocchi codice e i blocchi dati vengono copiati dalla memory card nella EPROM" memoria utente mediante il programma del sistema. I1 programma del sistema

imposta inoltre un identificatore di protezione in scrittura.

Ciò significa che tutti i blocchi copiati non possono essere ricaricati, modificati o cancellati.

Per poter modificare i dati nei blocchi dati si deve provvedere a far sì che i blocchi dati giungano nella RAM per DB.

I blocchi dati che sono programmati nella memory card possono essere copiati o spostati nella RAM per DB con l'ausilio degli OB 2541255 (p. es. nell'OB di avviamento). Altri blocchi dati possono essere caricati dal PG nella RAM per DB.

Non appena i blocchi dati si trovano nella RAM per DB, essi possono essere ricaricati, modificati oppure cancellati.

Le modifiche di questi blocchi dati non vengono tuttavia memorizzate nella memory card. Prima della cancellazione totale successiva, ne deve essere quindi salvato il contenuto.

Dopo la cancellazione totale è possibile estrarre la memory card; i dati sono disponibili nella memona utente.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 79: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Inserimento/disinserimento della protezione in scrittura

Nel caso debbano essere eseguite modifiche ai blocchi durante il funzionamento EPROM, è possibile annullare nuovamente la protezione in scrittura cancellando l'identificatore della protezione in scrittura (vedere cap. 8.3, BS 138).

E' possibile dotare nuovamente i blocchi di protezione in scrittura quando viene impostato l'identificatore della protezione in scrittura.

E' inoltre possibile dotare una CPU priva di memory card di una protezione in scrittura quando si imposta l'identificatore della protezione in scrittura.

Visualizzazione della confi~urazione della memoria

Se l'utente desidera farsi visualizzare le informazioni sulla memoria nel funzionamento EPROM con la funzione del PG "Configurazione memona", allora come lunghezza della memoria verrà visualizzato il valore "0" e come indirizzo finale della memoria utente il valore 'OEEEEH'.

Avvertenza La memory card può essere programmata solo sul PG. A tal fine si può utilizzare il software del PG a partire dalla versione 6. Nel programmare occorre selezionare sul PG il modo di funzionamento "WORD" (vedere descrizione S5-DOS 130.

RAM per DB I blocchi dati DBDX vengono scritti nella memoria RAM per DB tramite le apposite funzioni "Generare" o "Copiare". Trasferendo blocchi dati dal PG nella CPU, essi vengono depositati nella RAM per DB nel caso in cui la memona utente sia piena oppure nel "Funzionamento RAM" sia impostato "Caricamento alternato" (vedere paragrafo 8.3 - BS 144).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 80: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

3.4 Elaborazione del programma utente

Tutto il software della CPU (composto dal programma di sistema e dal programma utente STEP 5) deve realizzare le seguenti funzioni:

AWIAMENTO della CPU,

Comando del processo da automatizzare tramite il continuo ripetersi delle operazioni programmate (CICLO),

Comando del processo da automatizzare tramite la reazione ad eventi che si presentano sporadicamente o in precisi momenti (allarmi) oppure come reazione ad errori.

In tutti i 3 casi esiste la possibilità di far eseguire sulla CPU parti speciali del programma utente tramite interfacce utenti (blocchi organizzativi speciali da OB 1 ad OB 35 - vedere paragrafo 2.2).

Avviamento

Ciclo

Prima che la CPU possa iniziare l'elaborazione ciclica, è necessario realizzare un'inizializzazione in modo da raggiungere un certo stato definito da cui poter partire. Quale inizializzazione si debba eseguire dipende dall'evento che provoca 1'AWIAMENTO ed anche dalle preimpostazioni della CPU. Ulteriori informazioni si trovano nel capitolo 4.

I1 comportamento della CPU in fase di AWIAMENTO può essere influenzato dalla programmazione dei blocchi organizzativi OB 20, OB 21 ed OB 22 oppure dalla parametrizzazione del blocco dati DX O (vedere capitolo 7).

Dopo l'esecuzione di un AWIAMENTO, il programma di sistema attiva l'elaborazione ciclica. Esso assicura le funzioni "di sfondo" necessarie per risolvere il problema di automazione (vedere la figura 3-1 all'inizio del capitolo). Dopo aver realizzato le funzioni di sistema necessarie per iniziare un CICLO, il programma di sistema richiama il blocco organizzativo OB 1 o quello funzionale FB O che prowedono a gestire il programma utente. In uno di questi due blocchi possono essere programmate le operazioni STEP 5 per l'elaborazione ciclica.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 81: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Reazione ad Per poter reagire appropriatamente ad un allarme o ad un errore, la CPU 928B allarmi ed errori mette a disposizione dei blocchi organizzativi speciali (OB 2, OB 6 e da OB 9 ad

OB 18 per l'elaborazione di allarmi, OB 19 e da OB 23 ad OB 35 per la reazione ad errori). In questi blocchi possono essere memorizzati i programmi STEP 5 desiderati.

Per l'elaborazione di allarmi o errori, il programma di sistema richiama il relativo blocco organizzativo e lo "annida" nel normale funzionamento ciclico. Ciò significa che il funzionamento ciclico viene interrotto dall'elaborazione di un allarme o di un errore. L'attivazione dei vari blocchi organizzativi avviene secondo una priorità fissa (per ulteriori informazioni vedere i capitoli 4 e 5).

Oltre che con i blocchi organizzativi, il comportamento della CPU in caso di elaborazione di allarmi può essere influenzato anche tramite la parametrizzazione del blocco dati DX O.

I blocchi organizzativi da OB 1 ad OB 39 possono essere richiamati dal programma di sistema non appena essi vengono caricati nella memoria di programma (anche durante il funzionamento).

Se essi non vengono invece caricati, non si ha alcuna reazione della CPU, oppure, nella maggior parte dei casi di errore, essa si porta in STOP (vedere al riguardo il paragrafo 5.4).

Come i blocchi organizzativi, anche il blocco dati DX O può essere caricato nella memoria di programma durante il normale funzionamento. Esso diventa però valido solo a l successivo NUOVO AVVIAMENTO. Se il blocco DX O non viene caricato, valgono le predisposizioni standard (vedere il capitolo 7).

3.4.1 Definizioni per l'elaborazione del programma

Tempo di ciclo I1 tempo di ciclo parte con l'attivazione del cosiddetto controllo del tempo di ciclo e termina all'attivazione successiva. I1 tempo che la CPU necessita per l'elaborazione del programma tra due attivazioni viene detto tempo di ciclo. Esso è composto dai tempi occorrenti per l'elaborazione del programma di sistema e di quello utente.

Nel tempo di ciclo rientrano anche:

il tempo di elaborazione del programma ciclico (programma di sistema ed utente)

il tempo di elaborazione degli allarmi (per esempio comandati a tempo)

il tempo di elaborazione delle interruzioni (errori).

Controllo del tempo di ciclo

La CPU controlla il tempo di ciclo per un valore massimo. Questo valore massimo è generalmente fissato a 150 ms. L'utente ha però la possibilità di impostare il controllo del tempo di ciclo, cioè di riavviarlo durante l'elaborazione del programma utente (vedere capitolo 7 "DX O" e paragrafi 6.23 e 6.24 "OB speciale OB 221 e 222").

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 82: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Immagine di processo degli ingressi e delle uscite (IPI ed IPU)

Merker di accoppiamento

Possibilità di interruzione

Prima dell'inizio dell'elaborazione del programma utente, vengono letti tutti gli stati dei segnali delle unità periferiche di ingresso e trasferiti nell'immagine di processo degli ingressi. Dall'immagine di processo degli ingressi il programma utente ricava l'immagine di processo delle uscite. Dopo l'elaborazione del programma utente, i segnali contenuti nell'IPU vengono trasferiti alle unità periferiche di uscita.

Memorizzando temporaneamente i segnali di periferia dell'immagine di processo degli ingressi e delle uscite, si evita che una modifica dello stato logico di un bit all'interno di un ciclo di programma causa un destabilimento della corrispondente uscita di periferia.

Le immagini di processo sono quindi un settore di memoria il cui contenuto viene emesso alle periferie o letto daiie periferie solo una volta per ciclo.

Avvertenza L'immagine di processo esiste solo per ingressi e uscite della periferia P con un indirizzo contenuto tra il byte O ed il byte 127!

I merker di accoppiamento servono per lo scambio di dati tra le singole CPU in funzionamento multiprocessore oppure tra una CPU ed alcuni processori di comunicazione.

Prima dell'inizio dell'elaborazione del programma utente ciclico, vengono letti i merker di accoppiamento d'ingresso della CPU. Dopo l'elaborazione del programma utente, i merker di accoppiamento di uscita vengono trasmessi al coordinatore e10 ai processori di comunicazione.

I merker di accoppiamento di ingresso e di uscita vengono definiti tramite la programmazione del blocco dati DB 1 (vedere paragrafo 10.1).

L'elaborazione ciclica del programma può essere interrotta

dall'elaborazione di un programma su interrupt di processo,

dall'elaborazione di un programma su interrupt periodico,

da un allarme di ritardo,

da un allarme dall'orologio.

Essa può inoltre essere interrotta o completamente interrotta

dal presentarsi di un errore hardware o software,

da un intervento esterno (comando da PG o selettore di STOP, multiprocessore MP-STOP,

da un comando di STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 83: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.5 Operazioni STEP 5 con esempi

Introduzione Un'operazione STEP 5 è composta da una parte operativa ed un operando. Nella parte operativa viene determinato che cosa deve fare la CPU (operazione). L'operando indica con che cosa un'operazione deve essere eseguita.

Le operazioni STEP 5 si suddividono funzionalmente in diversi gruppi:

operazioni fondamentali (utilizzabili in tutti i blocchi codificati),

operazioni integrative (utilizzabili solo in blocchi funzionali FBJFX)

operazioni organizzative (utilizzabili solo in blocchi funzionali FBJFX),

operazioni con semafori (utilizzabili solo in blocchi funzionali FBJFX).

Gli accumulatori La CPU 928B possiede quattro accumulatori, ACCU 1 ... ACCU 4. Una parte come registro di preponderante delle operazioni a parole STEP 5 usa come sorgente per gli lavoro operandi e come destinazione per i risultati due registri (32 bit): ACCU 1 ed

ACCU 2.

l) gli accumulatori da 2 a 4 hanno la stessa struttura

ACCU 1 1)

Gli accumulatori si comportano differentemente in dipendenza dall'operazione STEP 5 da eseguire. Esempi:

Le operazioni di caricamento usano sempre l'accumulatore 1 come destinazione. I1 vecchio contenuto dell'ACCU 1 viene traslato nell'ACCU 2 (stack lift). Gli accumulatori 3 e 4 non vengono modificati durante le operazioni di caricamento.

24 23 Accu-1-H-L Accu-1-LH l 7 Accu-1-LL

ACCU-1-H ACCU-1-L O l

Le istruzioni aritmetiche combinano il contenuto dell'ACCU 1 con quello dell'ACCU 2, scrivono il risultato nell'ACCU 1 e trasferiscono il contenuto dell'ACCU 3 all'ACCU 2 e il contenuto dell'ACCU 4 all'ACCU 3 (stack drop). In caso di calcoli con numeri in virgola fissa a 16 bit vengono trasferite soltanto la parola LOW di ACCU 3 nella parola LOW di ACCU 2 e la parola LOW di ACCU 4 nella parola LOW di ACCU 3.

Parola High

Quando viene sommata una costante (ADD BF/KF/DH) al contenuto dell'ACCU 1, gli accumulatori 2, 3 e 4 rimangono invariati.

Byte High

Parola Low

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte Low Byte High Byte Low

Page 84: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Visualizzazione Tutte le operazioni STEP 5 o interrogano o determinano le segnalazioni. Le dei risultati segnalazioni vengono memorizzate in un byte di visualizzazione. Le visualizzazioni

si suddividono in due gruppi: le visualizzazioni di operazioni digitali (visualizzazioni a parole, bit 4...7 nel byte di visualizzazione) e le visualizzazioni di operazioni binarie ed organizzative (visualizzazioni a bit, bit 0...3 nel byte di visualizzazione). I1 modo di influenzare ed analizzare le diverse visualizzazioni tramite le operazioni STEP 5 viene spiegato nella lista delle operazioni /l/.

I1 byte di visualizzazione viene emesso con la funzione online PG "STATO BLOCCO" (vedere paragrafo 11.2.3) ed ha la seguente struttura:

Bit 7 6 5 4 3 2 1 O

Visualizzazioni a bit ERAB Prima interrogazione

Visualizzazioni a parole

Una catena di combinazioni logiche con combinazioni binarie comincia sempre con una cosidetta prima interrogazione che genera un nuovo RLC. Questa prima interrogazione imposta il bit di visualizzazione ERAB a 'l'. Durante le successive combinazioni logiche di questa catena, 1' ERAB rimane '1' ed 1'RLC può essere cambiato tramite queste combinazioni logiche.

ANZ 1

Visualizzazioni a bit

La catena di combinazioni attuale viene terminata tramite un'operazione di memorizzazione binaria (p. es. S A 5.0). L'operazione di memorizzazione imposta ERAB = O; 1'RLC può essere analizzato (p. es. con operazioni dipendenti dall'RLC) ma non essere più combinato. La prossima combinazione logica binaria dopo un'operazione di memorizzazione binaria sarà una nuova "prima interrogazione".

OR

Esempio di ERAB

ANZO

:U E 1.0

:O E 6.3 RLC viene influenzato dalla combinazione OR

:UN E 2.1 RLC viene influenzato dalla combinazione AND-NOT

:S A 2.4 ERAB viene impostato a 'O', la catena di combinazione è terminata

:SPB FB 150 Richiamare il blocco funzio- nale in dipendenza dallrRLC

STA

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

OV OS VKE ERAB

Page 85: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Altre visualizzazioni a bit RLC Risultato logico combinatorio

Contiene il risultato di operazioni di combinazione di singoli bit e di comparazione (vedere la lista delle operazioni: operazioni di combinazioni binarie oppure operazioni di comparazione).

STA Stato

Indica lo stato logico del bit interrogato o impostato. Lo stato viene aggiornato quando vengono eseguite operazioni di combinazioni binarie - eccetto U(, O(, ), O - e di memorizzazione.

OR Oppure

Visualizzazione interna della CPU per il trattamento di combinazioni "AND prima di OR".

Visualizzazioni a parole OV Eccedenza (overflow)

I1 bit OV viene impostato quando si è superato il campo numerico massimo durante l'ultima operazione aritmetica.

OS Eccedenza memorizzante

È usato per riconoscere se e quando, nel corso di operazioni aritmetiche, è intervenuto un errore di eccedenza (overflow).

ANZledANZO

Visualizzazioni codificate del risultato. La tabella 3-1 illustra come possono essere interpretate.

Avvertenza Per la diretta nlevazione delle visualizzazioni sono disponibili le operazioni di comparazione e di salto (vedere paragrafi 3.5.1 e 3.5.3).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 86: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Tabella 3-1 Visualizzazioni dei risultati di operazioni STEP 5 I I I

Visualizzazioni Opera- a p zioni % 1

aritme combi- di con- tiche natorie fronto

Risultato

Risultato

Risultato = o

ACCU 2 - -

ACCU 1

ACCU 2 <

ACCU 1

1 O Risultato Risultato ACCU 2 > o 2 o >

ACCU 1

zero

zioni di scor- rimento

Semaforo

impostato

tras- viene impostato

oppure

Opera- zioni di

salto eseguite

SPZ

SPM SPN

SPP SPN

SPN

Avvertenza In caso di un cambio di livello, per esempio durante l'elaborazione di un allarme di schedulazione, tutti gli accumulatori e le visualizzazioni a bit e a parole (RLC ecc.) vengono salvati e alla continuazione del livello interrotto vengono nuovamente caricati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 87: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.5.1 Operazioni fondamentali

Introduzione Le operazioni fondamentali possono essere programmate in tutti i blocchi di codice e tipi di rappresentazione (KOP, FUP e AWL).

Operazioni di combinazioni binarie

Tabella 3-2 Operazioni di combinazioni binane

1 Operazione 1 Operando I Funzione

Combinazione AND con interrogazione su segnale "1"

Combinazione OR con interrogazione su segnale "1"

di un ingresso nell'IPI di un'uscita nell'IPU di un bit di merker di un bit di merker S di un bit di una parola dati di un temporizzatore di un contatore

Combinazione AND con interrogazione su segnale "0"

Combinazione OR con interrogazione su segnale "0"

di un ingresso nell'IPI di un'uscita nell' IPU di un bit di merker di un bit di merker S di un bit di una parola dati di un temporizzatore di un contatore

I - I Combinazione OR di funzioni logiche AND

Combinazione AND di espressioni tra parentesi Combinazione OR di espressioni tra parentesi Parentesi chiusa (fine di un'espressione tra parentesi)

I Sono permessi fino a 8 livelli, cioè 7 parentesi aperte.

Formazione del19RLC

Le operazioni di combinazioni binane determinano il risultato logico combinatono (RLC). All'inizio di una catena di combinazioni logiche, la formazione dell'RLC per la pnma combinazione (prima interrogazione) dipende soltanto dallo stato del segnale interrogato (stato), ma non dal tipo di combinazione (O = OR, U = AND).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 88: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Esempio di formazione dell'RLC

All'interno della catena, 1'RLC viene formato dal tipo di combinazione, dall'RLC precedente e dallo stato del segnale interrogato. La catena di combinazioni logiche viene terminata tramite una istruzione (p. es. operazione di memorizzazione) che limita 1'RLC ( ERAB = O). Dopo ciò 1'RLC può essere rilevato ma non ulteriormente combinato.

0 - limite RLC 1 - prima interrogazione

Operazioni di memorizzazione

Tabella 3-3 Operazioni di memorizzazione

1 Operazione I Operando 1 Funzione l Se RLC = '1': impostare Se RLC = '1': cancellare

un ingresso nell'IPI un'uscita nell'IPU un merker un merker S un bit di una parola dati

Assegnare I'RLC ad

un ingresso nell'IPI un'uscita nell'IPU un merker un merker S un bit di una parola dati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 89: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di caricamento e trasferimento

Tabella 3-4 Operazioni di caricamento e trasferimento

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione

L T

Operando

EB O ... 127 EW O ... 126 ED O ... 124

AB O ... 127 AW O ... 126 AD O ... 124

MB O ... 255 MW 0 ... 254 MD O ... 252

SY O ... 1023 SW O ... 1022 SD O ... 1020

DR O ... 255 DL O ... 255 DW 0 ... 255 DD O ... 254

PY O ... 127

PY 128 ... 255

PW O ... 126

PW 128 ... 254

QB O ... 255 QW 0 ... 254

Funzione

Caricare Trasferire

un byte d'ingresso dall'/nell'IPI una parola d'ingresso dall'/nell'IPI una doppia parola d'ingresso dalInell'IP1

un byte d'uscita dall'/nell/IPU una parola d'uscita dall'1nell'IPU una doppia parola d'uscita dall'1nell'IPU

un byte di merker una parola di merker una doppia parola di merker

un byte di merker S una parola di merker S una doppia parola di merker S

il byte destro di una parola dati dalad un DB, DX il byte sinistro di una parola dati dalad un DB, DX una parola dati dalad un DB, DX una doppia parola dati dalad un DB, DX

un byte di periferia degli ingressiluscite digitali (settore P) un byte di periferia degli ingressiluscite digitalilanalogici (settore P)

una parola di periferia degli ingressiluscite digitali (settore P) una parola di periferia degli ingressiluscite digitalilanalogici (settore P)

un byte dell'ampliamento della periferia (settore Q) una parola dell'ampliamento della periferia (settore Q)

Page 90: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di caricamento

Operazione

Le operazioni di caricamento scrivono il valore indirizzato nell'ACCU 1, il cui contenuto viene trasferito nell'ACCU 2 (stack lift).

Operazioni di trasferimento

Operando

Le operazioni di trasferimento scrivono il contenuto dell'ACCU 1 nella cella di memoria indirizzata.

Funzione

Continuazione della

L

LC

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

tabella 3-4

KB O ... 255 KC 2 caratteri in

formato ASCII

KF -32768 ... t32767

KG KH O...FFFF DH O ...

FFFF FFFF KM matrice a l 6 bit KY O ... 255 per

ogni byte

KT 0.0 ... 999.3 KZ O ... 999

T O ... 255 Z O ... 255

T O bis 255 Z O bis 255

Caricare

una costante (numero ad 1 byte) una costante (2 caratteri in formato ASCII)

una costante (numero in virgola fissa)

una costante (numero in virgola mobile) una costante in codice esadecimale una costante (doppia parola) in codice esadecimale

una costante (configurazione binaria) una costante (numero a 2 byte)

una costante (valore di tempo, codifica BCD) una costante (valore di conteggio)

un valore di tempo, codifica duale un valore di conteggio, codifica duale

Caricare

un valore di tempo un valore di conteggio

codifica BCD

Page 91: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Esempi circa le operazioni di caricamento e trasferimento

La figura 3-6 mostra il caricamento/trasferimento di un byte, una parola o una doppia parola da/in un settore di memoria organizzato a byte (IPI, IPU, merker, periferia).

:L EB i viene caricato il byte i dellrIPI nellrACCU 1-LL. :L EW j vengono caricati i byte j ed j+l del IPI nellrACCU-1-L. :L MD k vengono caricati i byte di merker da k a k+3 nellrACCU 1.

SOIO per operazioni di car icamento

Figura 3-6 Operazioni di cancamento e trasferimento in un settore di memoria organizzato a byte

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 92: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

La figura 3-7 mostra il caricamento/trasferimento di un byte, una parola o una doppia parola da/in un settore di memoria organizzato a parole.

:L DR i viene caricato il byte destro dalla parola dati i nellrACCU-1-LL. :L DL j viene caricato il byte sinistro dalla parola dati j nellrACCU-1-LL. :L DW k viene caricata la parola dati k nellrACCU-1-L. :L DD 1 vengono caricate le parole dati 1 ed 1+1 nellrACCU 1.

Byte destro 4

P a r o l a d a t i i

P a r o l a d a t i j

l) solo per operazioni di caricamento

Avvertenza Le operazioni di caricamento non influenzano le visualizzazioni. Le operazioni di trasferimento cancellano il bit 0s.

Quando viene caricato un byte o una parola, i bit a valenza maggiore nell'ACCU 1 vengono cancellati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 93: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Interazione con Si può interagire con la periferia tramite i comandi di caricamento e la periferia trasferimento:

direttamente:

con L..iT.. ..PY, ..PW, ..QB, ..QW

oppure

via immagine di processo:

con L..iT.. ..EB, ..EW, ..ED, .AB, ..AW, ..AD

e con le operazioni di combinazione.

Avvertenza Con i comandi T PY O ... 127 e T PW O ... 126 viene parallelamente aggiornata l'immagine di processo delle uscite.

Riguardo la perifena bisogna sempre tener presente quanto segue:

L'immagine di processo degli ingressi e delle uscite esiste per 128 byte di ingresso e di uscita nella perifena P, con gli indirizzi dal byte O al byte 127.

Per la periferia P con indirizzi relativi dal byte 128 al byte 255 e per l'intera periferia Q non esiste alcuna immagine di processo (riguardo i campi di indirizzamento della perifena vedere il paragrafo 8.2.2.)

Le unità di ingresso o di uscita con indirizzi nella periferia Q possono essere inserite solo in apparecchiature di ampliamento (non nell'apparecchiatura centrale).

Nella stessa apparecchiatura di ampliamento si possono usare o solo perifene P o solo perifene Q.

Precauzione Se in un'apparecchiatura di ampliamento vengono usati indirizzi relativi della periferia Q, questi indirizzi non sono più disponibili per unità periferiche nell'apparecchiatura centrale (doppio indirizzamento).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 94: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di Per caricare un tempo con un comando di start o un contatore con un comando di temporizzazione abilitazione, è necessario prima caricare il valore neii'ACCU 1. e di conteggio

Si consiglia di usare le seguenti operazioni di caricamento:

per temporizzatori: L KT, L EW, L AW, L MW, L DW, L SW. per contatori: L KZ, L EW, L AW, L MW, L DW, L SW.

Per avviare un temporizzatore con il valore di tempo impostato è necessario un cambio di fronte sull'RLC.

Un contatore viene impostato con il valore di conteggio impostato quando si verifica un fronte positivo sull'RLC.

Nella seguente tabella sono contrassegnati con le corrispondenti frecce, i cambi di fronte nella colonna "RLC".

Tabella 3-5 Operazioni di temporizzazione e di conteggio

l) fronte positivo ( i ): cambio di segnale da 'O' ad '1' fronte negativo ( L ): cambio di segnale da '1' a 'O'

Operazione

SI SV SE SS SA R

S R ZV ZR

Con l'esecuzione delle operazioni di temporizzazione e di conteggio SI, SE, SV, SS, SA e S, il valore dell'ACCU 1 viene trasferito nella cella di tempo o di conteggio (corrisponde al comando di trasferimento) e la relativa operazione viene attivata.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operando

T O ... 255 T O ... 255 T O ... 255 T O ... 255 T O ... 255 T O ... 255

Z O ... 255 Z O ... 255 Z O ... 255 Z O ... 255

RLC 1)

i i i i

i

i i

Funzione

attivazione di un tempo in forma impulsiva attivazione di un tempo in forma impulsiva prolungata attivazione di un tempo con ritardo all'inserzione attivazione di un tempo con ritardo all'inserzione ed autoritenuta attivazione di un tempo con ritardo alla disinserzione cancellazione di un tempo

impostazione di un contatore (valore BCD da O a 999) cancellazione di un contatore incremento di un'unità di conteggio decremento di un'unità di conteggio

Page 95: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Valori di tempo Un valore di tempo può essere caricato nell'ACCU 1 direttamente con il comando L KT o indirettamente da una parola di merker o di dati e deve avere la seguente struttura (per L KT, la base di tempo viene indicata dopo il punto nell'operando):

Valore di tempo in BCD da O a 999 9 N. bit

Esempio

1 5 1 4 1 3 1 2 1 1 1 0

Base di tempo in BCD: 0: 0,01 s 1: 0 , l s 2: l s

Questi bit sono irrilevanti, cioè vengono ignorati durante 1' vwiamento del tempo

9

x x 1 0 0 0 0 1 0 0 1 0 0 1 1 1

l Valore di tempo: 127

Base di tempo: 1 s

Avvertenza Ogni avviamento di un tempo comporta un'imprecisione di 1 base di tempo. Per questa ragione si dovrebbe scegliere la base di tempo più piccola possibile.

8

Esempio: durata del tempo 4 s non: l s x 4 imprecisione: l s

bensì: 0,01 s x 400 imprecisione: 0,01 s

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

7 6 5 4 3 2 1 O

Page 96: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Valori di Un valore di conteggio può essere caricato nell'ACCU 1 direttamente con il conteggio comando L KZ o indirettamente da una parola di merker o di dati e deve essere avere

la seguente struttura:

N. bit

Esempio

Valore di conteggio in BCD da O a 999

Questi bit sono irrilevanti, cioè vengono ignorati durante 1' mpostazione del contatore

x x x x 0 0 0 1 0 0 1 0 0 1 1 1

i +

V Valore di conteggio: 127

Neiia cella di tempo o di conteggio, il valore di tempo o conteggio è memorizzato in codice duale. Per l'interrogazione del tempo o del contatore, il valore della ceiia di tempo o di conteggio può essere caricato nell'ACCU 1 direttamente o come numero BCD.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 97: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Altri esempi di valori di tempo e di conteggio

Valore d i t e m p o

h ................................................

O C e l l a d i t e m p o T 1 0 ................................................

................................................

O A C C U 1 ................................................

"L T 1OW:Caricamento diretto nellrACCU 1 del valore duale del tempo T 10

La base di tempo non viene caricata nellraccumulatore.

Valore di conteggio

v O Cel la di conteggio Z 10

O ACCU 1

"L Z 10": Caricamento diretto nellrACCU 1 del valore duale del contatore Z 10

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 98: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

O C e l l a di t e m p o T 10

D u a l e - B C D

C B a s e di t e m p o Valore d i t e m p o

"LC T 10": Caricamento codificato nellrACCU 1 del valore di tempo e della base di tempo del temporizzatore T 10

Valore di con teggio

O Ce l la di con teggio Z 10

Duale - B C D

O ACCU 1

1 Valore di con teggio in BCD

"LC Z 10": Caricamento codificato nellrACCU 1 del valore di conteggio del contatore Z 10.

Usando il cancamento codificato, i bit di stato 14 e 15 delle celle di tempo, oppure da 12 a 15 delle celle di conteggio, non vengono caricati. Le loro posizioni vengono impostate a 'O'. I1 valore nell'ACCU 1 può essere elaborato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 99: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni aritmetiche

Tabella 3-6 Operazioni aritmetiche

1 Operazione 1 Operando 1 Funzione l Somma di due numeri in virgola fissa (16 bit) Sottrazione di due numen in virgola fissa (16 bit) Moltiplicazione di due numen in virgola fissa (16 bit) Divisione di due numeri in virgola fissa (16 bit):

quoziente in ACCU-1-L, resto in ACCU-1-H

Somma di due numeri in virgola mobile (32 bit) Sottrazione di due numen in virgola mobile (32 bit) Moltiplicazione di due numen in virgola mobile (32 bit) Divisione di due numeri in virgola mobile (32 bit)

Le operazioni aritmetiche combinano il contenuto dell'ACCU 1 con quello dell'ACCU 2 (per esempio "ACCU 2 - ACCU 1"). I1 risultato viene messo in ACCU 1. I registri di calcolo vengono così variati (per operazioni con numen di virgola fissa solo la parola LOW):

Prima: <ACCU l > <ACCU 2> <ACCU 3> <ACCU 4>

Dopo: i / / / l

<Risultato> <ACCU 3> <ACCU 4> <ACCU 4>

Avvertenza Comandi per la sottrazione ed addizione di doppie parole in virgola fissa sono contenuti nelle operazioni integrative. Inoltre è possibile utilizzare il comando ENT per il cancamento degli accumulatori 3 e 4 (vedere paragrafo 3.5.3).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 100: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Operazioni di confronto

Tabella 3-7 Operazioni di confronto

1 Operazione 1 Operando 1 Funzione l Confronto di uguaglianza Confronto di disuguaglianza Confronto di maggiore Confronto di maggiore o uguale Confronto di minore Confronto di minore o uguale

...E: confronto di due numeri in virgola fissa (16 bit)

... D: confronto di due numeri in virgola fissa (32 bit)

... G: confronto di due numeri in virgola mobile (32 bit)

Operazioni di blocco

Tabella 3-8 Operazioni di blocco

l) solo per il test

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Funzione

Salto assoluto Salto condizionato (solo se RLC = 1)

ad un blocco organizzativo ad un blocco organizzativo speciale ad un blocco di programma ad un blocco funzionale ad un blocco sequenziale

Salto assoluto Salto condizionato (solo se RLC = 1)

ad un blocco funzionale FX

Conclusione di un blocco Conclusione condizionata di un blocco (solo se RLC = 1) Conclusione assoluta di un blocco

Attivazione di un blocco dati DB Attivazione di un blocco dati DX

Generazione di un blocco dati DB Generazione di un blocco dati DX

(ACCU 1 deve contenere il numero delle parole dati - max. 4091- del nuovo blocco)

Operazione

S P A S P B

B A B A B

B E B E B B E A

A A X

E EX

Operando

OB 1 ... 39 l)

OB 110 ... 255 PB O ... 255 FB O ... 255 SB O ... 255

EX O ... 255 -

DB 3 ... 255 DX 3 ... 255

DB 3 ... 255 DX 3 ... 255

Page 101: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

E DBIEX DX Generazione di un blocco dati

I1 comando E DBx genera il blocco dati DB con il numero x (3 a x a 255) nella RAM per DB della CPU. I1 contenuto del blocco dati non viene impostato a zero, cioè le parole dati hanno contenuto casuale.

Prima di programmare un'istruzione, l'utente deve depositare il numero delle parole dati per il nuovo DB nell'ACCU-1-L. La corrispondente intestazione del blocco viene generata tramite il comando "E DB" oppure "EX DX". Un blocco dati (senza l'intestazione) può occupare max. 4091 parole nella memoria.

Se il blocco dati da generare esiste già, se la lunghezza non è ammessa o se non c'è abbastanza spazio nella RAM per DB, il programma di sistema richiama I'OB 31. Se esso non è programmato, la CPU si porta in STOP segnalando un errore di esecuzione.

I1 comando EX DXx genera nella RAM per DB un blocco dati DX e funziona come il comando E DBx .

Operazioni nulle/di creazione d'immagine1 di STOP

Tabella 3-9 Operazioni nulleldi creazione d'immagineldi STOP

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione

N O P O N O P 1

B L D

S T P

Operando

-

O ... 255

-

Funzione

Nessuna operazione Nessuna operazione

Istruzione di creazione d'immagine per il dispositivo di programmazione: trattata dalla CPU come una operazione nulla

Passaggio della CPU alla condizione di STOP.

Page 102: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.5.2 Esempi di programmazione nei modi di rappresentazione AWL, KOP e FUP

Operazioni di combinazione

Rappresentazione STEP 5

Schema a contatti Schema logico istruzioni

All'uscita A 3.5 si ha segnale "1 ", quando tutti gli ingressi hanno contemporaneamente segnale "1 ". All'uscita A 3.5 si ha segnale "O", quando almeno uno degli ingressi ha segnale "O".

li numero delle interrogazioni e la sequenza di programmazione sono indifferente.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 103: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di combinazione (continuazione)

Rappresentazione STEP 5 Schema a contatti Schema logico

istruzioni

All'uscita A 3.2 si h a segnale " 1 ", quando almeno uno degli ingressi h a segnale " 1 " .

All'uscita A 3.2 si h a segnale "O", se tutti gli ingressi hanno contemporaneamente lo stato "0".

Rappresentazione STEP 5

Schema a contatti istruzioni

E 1.5 E 1.6 E 1.4 E 1.3

= A3.1

All'uscita A 3.1 si ha segnale "1 " quando è soddisfatta almeno una combinazione AND.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 104: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di combinazione (continuazione)

Rappresentazione STEP 5

Schema a contatti istruzioni

U E 6.0 E 6 . 0 E 6 . 1 E6 .2E6.3 E6 .0 E6.2 E6.3

= A2.1

All'uscita A 2.1 si ha segnale "1" quando I'ingresso E 6.0 o I'ingresso E 6.1 e uno degli ingressi E 6.2 o E 6.3 hanno segnale "1 ".

gnale "0" quando I'ingresso E 6.0 ha segnale "O" e quando la combinazione

Rappresentazione STEP 5

Schema a contatti istruzioni

E 1 . 4 E 1 . 5 E 2 . 0 E 2 . 1

= A3.0

All'uscita A 3.0 si ha segnale "1 " quando ambedue le combinazioni OR sono soddisfatte.

All'uscita A 3.0 si ha segnale "0" quando almeno una combinazione OR non è soddisfatta.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 105: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di combinazione (continuazione)

Rappresentazione STEP 5

Schema a contatti Schema logico

Operazioni di memorizzazione

Se lo stato di segnale all'ingresso E 2.7 diventa "O", questo stato viene ritenuto, cioè il segnale viene

Lo stato di segnale "1 " all'ingresso E 1.4 provoca il reset della memoria (segnale "0" all'uscita A 3.5). Se lo stato di segnale all'ingresso E 1.4 diventa "O", questo stato viene ritenuto.

Quando il segnale di impostazione (ingresso E 2.7) è contemporaneo al segnale di reset (ingresso E 1.4), viene presa in considerazione l'interrogazione programmata per ultima nell'esempio E E 1.4) durante l'elaborazione del programma restante, cioè il reset dell'uscita A 3.5 è priotario.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 106: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di memorizzazione (continuazione)

Rappresentazione STEP 5

Schema a contatti istruzioni

U E 2.6 E1 .3 E2 .6

Il segnale "1 " all'ingresso E 2.6 provoca I'impostazione della memoria.

Se lo stato di segnale "1" all'ingresso E 2.6 diventa "O", questo stato viene ritenuto, cioè il segnale viene memorizzato.

Lo stato di segnale "1" all'uscita E 1.3 provoca il reset della memoria.

Se lo stato del segnale all'ingresso E 1.3 diventa "O", questo stato rimane memorizzato.

Quando il segnale di impostazione (ingresso E 2.6) è contemporaneo al segnale di reset (ingresso

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 107: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Operazioni di memorizzazione (continuazione)

Rappresentazione STEP 5

Schema a contatti Schema logico istruzioni

R M 4 0 E 1 7 n n n nn M 4 0 nnnnn M 2 0 \ \ \ \ \

Con fronte del segnale in salita ail'ingresso E 1.7, la combinazione AND (UE 1.7 e UN M 4.0) soddisfatta, e con I'RLC = 1 vengono impostati i merker M 4.0 ('merker di fronte") e M 2.0 ("merker di segnale").

merker M 2.0 viene resettato.

merker M 2.0 ha segnale ' 1 " quindi solo durante un'unica esecuzione dei programma.

Divisore di frequenza

Ad ogni cambio di segnale da "O" a "1" (fronte in salita) dell'ingresso E 1 .O, il divisore di frequenza (uscita A 3.0) cambia il proprio stato. Pertanto all'uscita della memoria si ha la metà della frequenza di ingresso.

Problema

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Rappresentazione STEP 5

Schema logico Lista istruzioni

Schema a contatti

Page 108: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Operazioni di temporizzazione

Rappresentazione STEP 5

Schema a contatti istruzioni

Con risultato logico combinatorio "1" ed alla prima elaborazione, il temporizzatore viene awiato. Con elaborazione ripetuta e risultato logico combinatorio "1 " il temporizzatore non viene influenzato.

Con risultato logico combinatorio "0" il temporizzatore viene

Le interrogazioni U T oppure O T danno lo stato di segnale "1" finché il tempo scorre.

temporizzatore viene caricato con il valore indicato (1 0). numero a destra della virgola indica la base dei tempi: =O.OIs 2 = l s =O.ls 3 = 10s

scite DU e DE sono uscite digitali della cella di temporizza- e. Sull'uscita DU si trova il valore di conteggio codificato in e, sull'uscita DE codificato in BCD.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 109: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di temporizzazione (continuazione)

Rappresentazione STEP 5

Schema a contatti istruzione

Con risultato logico combinatorio "1" ed alla prima elaborazione si awia il temporizzatore.

Con RLC "O" il temporizzatore non viene influenzato.

Le interrogazioni U T oppure O T hanno segnale "1" finché

Impostazione del valore di tempo con il valore in BCD degli operandi E, A, M oppure D (nell'esempio parola d'ingresso 15).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 110: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di temporizzazione (continuazione)

Rappresentazione STEP 5

Schema a contatti Schema logico istruzioni

Il temporizzatore viene caricato con il valore indicato (9). E 3.5

Il numero a destra della virgola indica la base dei tempi: M 5 f i E

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 111: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di temporizzazione (continuazione)

Rappresentazione STEP 5

Schema a contatti istruzioni

U E 3.2

= A 4.3

Con risultato logico combinatorio "1" ed alla prima elaborazione si awia il temporizzatore.

Con risultato logico combinatorio "0" il temporizzatore non viene

Rappresentazione STEP 5

Schema a contatti istruzioni

Il temporizzatore viene awiato quando cambia il risultato logico combinatorio da "1" a "0" all'ingresso iniziale e rimane attivo per il tempo programmato. Con risultato logico combinatorio "1" il temporizzatore viene

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 112: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di conteggio

Rappresentazione STEP 5

Schema a contatti Schema logico istruzioni

Il contatore viene caricato con il valore indicato (150) quando il risultato logico combinatorio cambia da "O" ad "1 " aii'ingresso iniziale (E 4,1),

l i merker necessario per ia riievazione dei fronte dei segnale ail'ingresso di impostazione compreso

Rappresentazione STEP 5

Schema a contatti istruzioni

U E 4.0

U E 4.2 R 2 2 U 2 2 = A 2.4

Con risultato logico combinatorio "1" (E 4.2) il contatore viene azzerato (resettato).

Con risultato logico combinatorio "0" il contatore non viene influenzato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 113: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Operazioni di conteggio (continuazione)

valore del contatore indirizzato viene incrementato di 1, il massimo valore è 999. a funzione "conteggio in avanti" (ZV) viene eseguita solamente con fronte positivo (da "O" a "1 ") ella combinazione programmata prima di ZV. I merker necessari al rilevamento del fronte del egnale degli ingressi di conteggio sono compresi nella parola di conteggio.

razie alle due memorie del fronte dei segnali separate per il conteggio in avanti (ZV) e per il

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 114: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di conteggio (continuazione)

Rappresentazione STEP 5

Schema a contatti Schema logico istruzioni

Il valore del contatore indirizzato viene decrementato di 1, il valore minimo è O, La funzione "conteggio all'indietro" (ZR) viene eseguita solamente con fronte positivo (da "O" a "1") della combinazione programmata prima di ZR. I merker necessari al rilevamento del fronte dei segnale degli ingressi di conteggio sono compresi nella parola di conteggio.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 115: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di comparazione

Rappresentazione STEP 5

Schema a contatti istruzioni

L EB19

= A3.0

L'operando indicato per primo viene confrontato con l'operando successivo, secondo la funzione di confronto. Il confronto rende un risultato logico combinatorio binario. RLC = "1 ": il confronto è soddisfatto se ACCU-1 -L = ACCU-2-L RLC = "O": il confronto non è soddisfatto se ACCU-1 -L >< ACCU-2-L Le visualizzazioni ANZ 1 e ANZ O vengono impostate secondo la lista di operazioni. ACCU 2-H e ACCU l -H non sono significativi nel confronto dei numeri in virgola fissa a 16 bit. Per la comparazione di due numeri in virgola fissa (!=D) o in virgola mobile (!=G) a 32 bit, tutto il contenuto di ACCU 1 e ACCU 2 (32 bit) viene confrontato. Il confronto prende in considerazione la rappresentazione numerica degli operandi, cioè nell'esempio il contenuto di ACCU-1 -L e ACCU-2-L viene interpretato come numero in virgola fissa.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 116: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di comparazione (continuazione)

Rappresentazione STEP 5

Schema a contatti istruzioni

L EB21 EB21 DW3

L'operando indicato per primo viene confrontato con l'operando successivo secondo la funzione di confronto. Il confronto rende un risultato logico combinatorio binario. RLC = "1 ": il confronto è soddisfatto se ACCU-1 -L >< ACCU-2-L RLC = "O": il confronto non è soddisfatto se ACCU-1 -L = ACCU-2-L Le visualizzazioni ANZ 1 e ANZ O vengono impostate come descritto all'inizio del paragrafo 3.5. ACCU-2-H e ACCU-1-H non sono significativi nel confronto dei numeri in virgola fissa a 16 bit. Per la comparazione di due numeri in virgola fissa (32 bit) o in virgola mobile, tutto il contenuto di ACCU 1 e ACCU 2 viene confrontato. Lo stesso vale per i confronti su maggioranza, maggioranza o uguaglianza, minoranza, minoranza o uguaglianza (vedere la lista delle operazioni). Il confronto prende in considerazione la rappresentazione numerica degli operandi, cioè nell'esempio il contenuto di ACCU-1-L e ACCU-2-L viene

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 117: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.5.3 Operazioni integrative

Introduzione Sul dispositivo di programmazione il repertorio delle operazioni integrative può essere utilizzato solo nei blocchi funzionali (FB o FX). I1 repertorio delle operazioni per i blocchi funzionali è così costituito dalle operazioni fondamentali e dalle operazioni integrative.

Delle funzioni integrative fanno parte le operazioni di sistema: con esse si può, per esempio, scrivere in memoria in una qualunque posizione oppure modificare il contenuto dei registri della CPU.

Riguardo le "operazioni di sistema", vedere il capitolo 9 "Accesso alla memoria con indirizzamento assoluto".

Precauzione Le operazioni di sistema dovrebbero essere utilizzate soltanto da programmatori esperti e da specialisti e sempre con la massima attenzione.

Nei blocchi funzionali, le operazioni vengono programmate solo in lista istruzione AWL. I1 programma dei blocchi funzionali non può essere quindi rappresentato in forma grafica (KOP o FUP). Di seguito vengono descritte le operazioni integrative. Inoltre vengono riportate le possibili combinazioni dei comandi di sostituzione per gli operandi attuali.

Contrassegno Le operazioni di sistema sono contrassegate con una nella prima colonna delle operazioni delle seguenti tabelle. di sistema

Combinazioni binarie

Tabella 3-10 Combinazioni binane di operandi formali

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione

U =

UN =

O =

ON =

Operando

0 0 o

Funzione

Funzione AND, interrogazione di un operando formale sullo stato di segnale '1' Funzione AND, interrogazione di un operando formale sullo stato di segnale '0' Funzione OR, interrogazione di un operando formale sullo stato di segnale '1' Funzione OR, interrogazione di un operando formale sullo stato di segnale '0'

Inserire operando formale Come operandi attuali sono ammessi ingressi, uscite, dati e merker con indirizzo binario (genere di parametro E, A; tipo di parametro BI) come pure temporizzatori e contatori (genere di parametro: T, Z).

Page 118: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Combinazioni digitali

Tabella 3-11 Combinazioni digitali

1 Operazione I Operando 1 Funzione 1

I I xow I I Combinazione digitale OR esclusiva del13ACCU-1-L e del13ACCU-2-L I

UW

OW

Gli accurnulaton 2,3 e 4 non vengono influenzati. Le visualizzazioni ANZ 1 e ANZ O vengono influenzate (vedere "Visualizzazioni a parola").

Combinazione digitale AND dell'ACCU-l-L e dell'ACCU-2-L

Combinazione digitale OR dell'ACCU-1-L e dell'ACCU-2-L

Operazioni di memorizzazione

Tabella 3-12 Operazioni di memorizzazione di operandi formali

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione

S =

RB =

RD =

- - - -

Operando

0 o n 0

1

Funzione

Impostazione @inaria) di un operando formale

Reset (binario) di un operando formale

Reset (digitale) di un operando formale per temporizzatori e contatori

Assegnazione di un risultato logico combinatono ad un operando formale

Inserire operando formale

Come operandi attuali sono ammessi ingressi, uscite, dati e merker (genere di parametro: E, A, tipo di parametro: BI).

Page 119: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di temporizzazione e conteggio

Tabella 3-13 Operazioni di temporizzazione e conteggio di operandi formali

1 Operazione I Operando I Funzione 1 SI =

SE =

svz =

ssv =

SAR =

FR =

Awiamento di un tempo (operando formale) come impulso. il valore (genere di parametro: T) deve essere memorizzato nell'ACCU-1-L.

Awiamento di un tempo (operando formale) come ntardo all'inserimento. il valore (genere di parametro: T) deve essere memorizzato neli'ACCU-1-L.

Awiamento di un tempo (operando formale) con il valore memorizzato neli'ACCU-1-L come impulso prolungato, oppure impostazione di un contatore (operando formale) con il valore di conteggio memorizzato neli'ACCU-1-L (genere di parametro: T, 9.

Awiamento di un tempo (operando formale) con il valore memorizzato neli'ACCU-1-L come ntardo all'inserzione con memoria oppure conteggio in avanti di un contatore (operando formale); (genere di parametro: T, 9.

Awiamento di un tempo (operando formale) con il valore memorizzato neli'ACCU-1-L come ntardo alla disinserzione oppure conteggio ali'indietro di un contatore (operando formale); (genere di parametro: T, 9.

Abilitazione di un operando formale (temporizzatore/contatore) per il nuovo avviamento (descrizione vedi "FR T", "FR Z"); (genere di parametro: T, Z).

Inserire operando formale

Abilitazione al nuovo avviamento di un temporizzatore: L'operazione viene eseguita solo con un fronte di salita sull'RLC (cambio da 'O' a 'l'). Esso provoca un nuovo avviamento della temporizzazione se al momento dell'esecuzione I'RLC è 'l'. (Vedere disegno con diagramma di tempo sotto la tabella.)

Abilitazione all'impostazione o conteggio di un contatore: L'operazione viene eseguita solo con un fronte di salita sull'RLC (cambio da 'O' a 'l'). Esso provoca una nuova elaborazione del contatore se al momento dell'esecuzione I'RLC è 'l'.

RLC C per SI T i

RLC per FR f t t

Interrog. per U T I I

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 120: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Esempi

Richiamo di un blocco funzionale Programma nel blocco funzionale Programma eseguito

:SPA FB203 NOME :ESEMPIO1

:U =ANNA :U E 10.3 :L KT 010.2 :L KT 010.2 :SSV =DORA :SS T 17 :U =DORA :U T 17 := =E= := A 18.4

:SPA F B 2 0 4 NOME :ESEMPIO2

:U =ALFA :U E 10.5 :SSV =DELTA :ZV Z 15 :U =BETA :U E 10.6 :SAR =DELTA :ZR Z 15 :U =GAMM :U E 10.7 :L KZ 100 :L KZ 100 :SVZ =DELTA :S Z 15 :UN =DELTA :UN Z 15 := =EPSI := M 58.3

:SPA FB205 NOME :ESEMPI03

:U =UNO :U E 10.4 :L =TRE :L EW20 :SVZ =DUE :SV T 18 :U =DUE :U T 18 := =QUAT := M 100.7

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 121: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di caricamento e trasferimento

Tabella 3-14 Operazioni di caricamento e trasferimento di operandi formali

1 Operazione I Operando 1 Descrizione 1 Caricamento di un operando formale: il valore dell'operando introdotto come operando formale viene caricato nell'accumulatore (genere di parametro: E, T, Z, A, tipo di parametro: BY, W, D).

Caricamento codificato di un operando formale: il valore della cella di temponzzazione/di conteggio introdotto come operando formale viene caricato nell'ACCU codificato in BCD (tipo parametro: T,?).

Caricamento di una rappresentazione binaria in un operando formale: La rappresentazione binana dell'operando viene caricata nell'ACCU (genere parametro D; tipo parametro KF, KH, KM, KY, KC, KT, KZJ.

Caricamento di una rappresentazione binaria in un operando formale: La rappresentazione binana dell'operando formale viene caricata nell'ACCU (genere di parametro: D; tipo di parametro: KG).

Trasferimento ad un operando formale: il contenuto dell'accumulatore viene trasferito all'operando introdotto come operando formale (genere di parametro: E, A, tipo di parametro: BY, W; D).

Inserire operando formale

Come operandi attuali sono ammessi gli operandi relativi alle operazioni fondamentali (eccetto i merker S). Con 'LW=' sono ammessi un dato sotto forma di rappresentazione binaria (KM), o di rappresentazione esadecimale (KH), numeri interi a 2 byte (KY), caratteri (KC), numeri in virgola fissa (W), valori di temponzzazione (KT) e di conteggio (KZ). Con 'LD=' è amesso un dato sotto forma di un numero in virgola mobile.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 122: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

BA O ... 255 Cancamento di una parola dal settore "interfaccia" (settore BA) I I in ACCU 1

Tabella 3-15 Operazioni di caricamento e trasferimento di operandi speciali

BB O ... 255 Caricamento di una parola dal settore "interfaccia" ampliato (settore BB) in 1 A c c u i

Operazione

O ... 255 Cancamento di una parola dal settore dei "dati di sistema" (settore BS) in I B S I ACCU 1

BT O ... 255 Caricamento di una parola dal settore dei "dati di sistema" ampliato (settore BT) 1 in ACCU 1

Operando

Trasfenmento del contenuto dell'ACCU 1 ad una parola del settore "interfaccia" (settore BA)

Funzione

Trasferimento del contenuto dell'ACCU 1 ad una parola del settore "interfaccia" ampliato (settore BB)

Trasfenmento del contenuto dell'ACCU 1 ad una parola del settore dei "dati di sistema" (settore BS)

Trasfenmento del contenuto dell'ACCU 1 ad una parola del settore dei "dati di sistema" ampliato (BT)

Al contrario dei settori BA, BB e BT, il settore BS ammette l'uso soltanto delle parole da BS 60 a BS 63. Vedere anche il paragrafo 8.3.4 "Settore BSJBT".

È possibile usare l'intera lunghezza del settore BT (da BT O a BT 255), a condizione che non vengano utilizzati blocchi funzionali standard.

Operazioni aritmetiche

Tabella 3-16 Operazione aritmetica ENT

Funzione I Operazione

Viene eseguito uno "stack-lift" negli accumulatori 3 e 4:

<ACCU 4> := <ACCU 3>

<ACCU 3> := <ACCU 2>

Operando

Gli accumulatori 1 e 2 non vengono variati. I1 contenuto originario dell' ACCTJ 4 va nerin.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 123: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Esempio

La seguente frazione deve essere calcolata: (30 + 3 * 4 ) / 6 = 7

A C C U 1 A C C U 2

P r e i m p o s t a z i o n e d e g l i A C C U p r i m a d e l l a s e r i e d i o p e r a z i o n i a r i t m e t i c h e

L KF +30

Tabella 3-17 Operazioni integrative aritmetiche

l) La programmazione dipende dal tipo di PG utilizzato e dalla versione del software di sistema del PG. Cambiamenti di ACCU 2 ed ACCU 3: vedere le operazioni fondamentalUoperazioni aritmetiche, paragrafo 3.5.1.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione Operando

BF -128 ... t127

KF -32 768 ... t32 767

DH 0000 0000 ... FFFF FFFF

S

S

S

S

S

S

Funzione

Addizione di una costante a byte (numero in virgola fissa) all'ACCU-1-L (con il segno) / le visualizzazioni in ANZ O, ANZ 1, OV ed OS non vengono influenzate! il contenuto di ACCU-1-H e di ACCU 2,3 e 4 non viene cambiato.

Addizione di una costante in virgola fissa (parola) all'ACCU-1-L / le visualizzazioni in ANZ O, ANZ 1, OV ed OS non vengono influenzate! il contenuto di ACCU-1-H e di ACCU 2 ,3 e 4 non viene cambiato.

Addizione di una costante in virgola fissa (doppia parola) all'ACCU l / le visualizzazioni in ANZ O, ANZ 1, OV ed OS non vengono influenzate! il contenuto di ACCU 2 ,3 e 4 non viene cambiato.

Addizione di due costanti in virgola fissa (doppia parola) (ACCU 2 t ACCU 1) / il risultato può essere analizzato tramite ANZ O / ANZ 1. ')

Sottrazione di due costanti in virgola fissa (doppia parola) (ACCU 2 - ACCU 1) / il risultato può essere analizzato tramite ANZ O / ANZ 1. ')

I contenuti di ACCU 1 ed ACCU 2 vengono scambiati.

ADD

ADD

ADD ')

+D')

-D1)

TAK

Page 124: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.5.4 Operazioni organizzative

Introduzione Anche le operazioni di sistema fanno parte delle operazioni organizzative.

Operazioni di salto

Precauzione Le operazioni di sistema devono essere utilizzate soltanto da programmatori esperti e da specialisti, e sempre con la massima attenzione.

Le operazioni di sistema sono contrassegnate con una nella prima colonna delle seguenti tabelle!

La destinazione di un salto condizionato o assoluto viene contrassegnata da un'etichetta simbolica (4 caratteri al massimo, di cui il primo deve essere una lettera). I1 parametro simbolico del comando di salto deve essere identico all'indirizzo simbolico dell'istruzione di destinazione.

Durante la programmazione si deve fare attenzione che la distanza assoluta di salto non superi + 127 parole e che una istruzione STEP 5 può essere composta da più parole.

I salti possono avvenire solo all'interno del blocco e non possono provocare un cambio di segmento ("segmento" = elemento di suddivisione per PB, SB ed OB, vedere la descrizione del PG).

Avvertenza L'istruzione di salto e la destinazione del salto (indirizzo simbolico) devono essere nello stesso segmento. Per ogni segmento non è permesso avere due etichette uguali. Eccezione: questo non vale per i salti SPR, il cui parametro è una distanza assoluta.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 125: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

SPA =

SPB =

SPZ =

Tabella 3-18 Operazioni di salto

ind

(ind = indirizzo simbolico con max.

4 caratteri)

Operazione

Salto assoluto: I1 salto viene eseguito indipendentemente dalle condizioni.

Salto condizionato: I1 salto condizionato viene eseguito quando il risultato logico combinatono RLC è "1". Con RLC = "0" l'istruzione non viene eseguita e l'RLC viene impostato ad "1".

Operando

Salto se il risultato è '0' : I1 salto viene eseguito solo quando ANZ 1 = O e ANZ O = 0. L'RLC non cambia.

Funzione

SPN =

SPP =

SPM =

SPO =

SPS =

SPR

ind

(ind = indirizzo simbolico con max.

4 caratteri)

Salto se il risultato non è '0' : I1 salto viene eseguito solo quando ANZ 1 z ANZ O . L'RLC non cambia.

Salto se il risultato > '0' : I1 salto viene eseguito solo quando ANZ 1 = 1 e ANZ O = 0. L'RLC non cambia.

Salto se il risultato e '0': I1 salto viene eseguito solo quando ANZ 1 = O e ANZ O = 1. L'RLC non cambia.

Salto con overflow: I1 salto viene eseguito in caso di overflow (OV = 1). Se non c'è un overflow (OV = O), il salto non viene eseguito. L'RLC non cambia. Esiste un overflow quando durante operazioni aritmetiche viene superato il limite del campo numerico.

Salto quando viene impostata la visualizzazione OS (overflow memorizzante) : I1 salto viene eseguito in caso di overflow ( 0 s = 1). Se non c'è un overflow ( 0 s = O), il salto non viene eseguito. L'RLC non cambia. Esiste un overflow quando durante operazioni aritmetiche viene superato il limite del campo numerico.

Salto relativo nell'ambito della memoria utente oppure del blocco funzionale (p. e. per passare ad un altro segmento). L'operazione viene sempre eseguita indipendentemente dalle condizioni. Come operando deve essere definita la differenza tra gli indirizzi "destinazione salto - comando attuale" (numero di parole). Nel far ciò si salta ad un indirizzo superiore (operando positivo) o inferiore (operando negativo) al comando attuale.

Precauzione L'operazione SPR deve essere utilizzata soltanto da programmatori esperti e da specialisti, e sempre con la massima attenzione per evitare eventuali stati di errore nell'impianto.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 126: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di scorrimento

Tabella 3-19 Operazioni di scorrimento

Le operazioni di scorrimento usano soltanto 1'ACCU 1. Il parametro di queste operazioni indica di quante posizioni viene traslato o ruotato il contenuto di ACCU 1. Le operazioni SLW, SRW e SVW usano soltanto la parola inferiore dell'accumulatore mentre SLD, SVD, RLD e RRD traslano tutto il contenuto di ACCU 1 (32 bit).

Operazione

SLW

SRW

SLD

SVW

SVD

RLD

RRD

Le operazioni di scorrimento vengono eseguite indipendentemente dalle condizioni.

I1 valore dell'ultimo bit traslato può essere valutato via ANZ l/ANZ O tramite le funzioni di salto:

Operando

O ... 15

O ... 15

O ... 32

O ... 15

O ... 32

O ... 32

O ... 32

Funzione (operazione con ACCU 1)

Traslare a sinistra una parola (le posizioni che si liberano a destra vengono messe a zero)

Traslare a destra una parola (ie posizioni che si liberano a sinistra vengono messe a zero)

Traslare a sinistra una doppia parola (le posizioni che si liberano a destra vengono messe a zero)

Traslare a destra una parola con segno (le posizioni che si liberano a sinistra vengono cancate con il segno = bit 15)

Traslare a destra una doppia parola con segno (le posizioni che si liberano a sinistra vengono cancate con il segno = bit 31)

Ruotare verso sinistra

Ruotare verso destra

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Scorrimento: l'ultimo bit traslato

o 1

ANZ 1

o 1

ANZ O

o O

Operazione di salto

SPZ=

SPN= SPP=

Page 127: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Esempi

Programma STEP 5: Contenuto delle parole dati:

:L D W 5 2 KH = 14AF

:T D W 5 3 KH = 4AFO

2. La doppia parola di ingresso ED O deve essere letta ed il contenuto dellrACCU 1 traslato in modo che le posizioni dei bit in grassetto della doppia parola di ingresso (parzialmente traslate) rimangano conservate e le posizioni di bit rimanenti vengano occupate con valori definiti (O H oppure OF H).

Programma STEP 5: Contenuto di ACCU 1 (esadecimale)

ACCU-1-H : ACCU-1-L:

:L E D 0 :SLW 4 :SRW 4 :SLD 4 :SVW 4 FBCD :SVD 4 :RLD 4 :RRD 4

3. Moltiplicazione con potenza di due, p. es. nuovo valore = vecchio valore x 8

:L m 1 0

:T m 1 0 Attenzione: i limiti positivi del settore non devono essere superati!

4. Divisione con potenza di due, p. es. nuovo valore = vecchio valore : 4

:A D B 5 :L DW O :SRW 2 :T DW O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 128: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Operazioni di conversione

Tabella 3-20 Operazioni di conversione

DEF I1 valore in ACCU-1-L @it O ... bit 15) viene interpretato come un numero in BCD. Dopo la conversione, 1'ACCU-1-L contiene un numero in virgola fissa a 16 bit.

Operazione

KEW

KZW

KZD

DEE

DUE

DED

DUD

FDG

GFD

DUF

Funzione

Formazione del complemento a 1 dell'ACCU-1-L (16 bit)

Formazione del complemento a 2 dell' ACCU-l-L (16 bit)

Formazione del complemento a 2 dell' ACCU 1 (32 bit)

Conversione di un numero in virgola fissa (16 bit) da BCD in duale

Conversione di un numero in virgola fissa (16 bit) da duale in BCD

Conversione di parola doppia (32 bit) da BCD in duale

Conversione di parola doppia (32 bit) da duale in BCD

Conversione di un numero in virgola fissa (32 bit) in un numero in virgola mobile (32 bit); vedere OB 220: espansione del segno

Conversione di un numero in virgola mobile in un numero in virgola fissa (32 bit)

I1 valore in ACCU-1-L @it O ... bit 15) viene interpretato come un numero in virgola fissa a 16 bit. Dopo la conversione, 1'ACCU-1-L contiene un numero in BCD.

V (segno): O = positivo l = negativo

v v v v

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

10 l o 1 10 O

Page 129: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

DED

DUD

31 30

I1 valore in ACCU 1 @it O ... bit 31) viene interpretato come un numero in BCD. Dopo la conversione, 1'ACCU 1 contiene un numero in virgola fissa a 32 bit.

I1 valore in ACCU 1 @it O ... bit 31) viene interpretato come un numero in virgola fissa a 32 bit. Dopo la conversione, 1'ACCU 1 contiene un numero in BCD.

o

DUD L DED i o

V (segno): O = positivo l = negativo

v v v v

FDG

GFD

10

I1 valore in ACCU 1 @it O ... bit 31) viene interpretato come un numero in virgola fissa a 32 bit. Dopo la conversione, 1'ACCU 1 contiene un numero in virgola mobile (esponente e mantissa).

I1 valore in ACCU 1 @it O ... bit 31) viene interpretato come un numero in virgola mobile a 32 bit. Dopo la conversione, 1'ACCU 1 contiene un numero in virgola fissa a 32 bit.

10

FDG L 31 30 ... 2 4 1 23

GFD i

10

Esponente Mantissa

La conversione avviene tramite la moltiplicazione della mantissa (duale) con il valore (duale) dell'esponente, operazione nella quale il valore della mantissa viene aumentato spostando il punto decimale verso i bit di peso maggiore in base al valore dell'espontente (in base "2"). Dopo la moltiplicazione, il resto della mantissa originaria rimane a destra del punto decimale definito. Queste configurazioni di bit vengono arrotondate ad un numero intero.

10

Tramite questo algontmo di conversione si hanno le seguenti classi di risultato:

Numeri in virgola mobile z O oppure a -1 vengono arrotondati al numero intero immediatamente minore.

10

Numeri in virgola mobile e O e > -1 danno il risultato '0'.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

10 10 O

Page 130: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Esempi di conversione

Numero in Numero in virgola virgola mobile fissa a 32 bit

GFD

Esempi circa di KEW, KZW

. I1 contenuto della parola dati 64 deve essere invertito bit per bit e memorizzato nella parola dati 78.

Programma STEP 5: Occupazione delle parole dati:

KM = 0011111001011011

KM = 1100000110100100

. I1 contenuto della parola dati 207 deve essere interpretato come numero in virgola fissa e memorizzato con segno invertito nella parola dati 78.

Programma STEP 5: Occupazione delle parole dati:

KF = +51

KF = -51

Decremento1 incremento

Tabella 3-21 Operazione di decremento/incremento

I 1 1 I 1 ... 255 1 Incremento dal byte LOW (bit O ... 7) dell'ACCU-1-L del valore dell'operando ') I

Operazione

D

l) I1 contenuto del byte LOW di ACCU-1-L viene decrementato (ridotto) o incrementato (aumentato) del numero indicato come operando (senza riporto). L'esecuzione dell'operazione è indipendente dalle condizioni.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operando

1 ... 255

Funzione

Decremento dal byte LOW @it O ... 7) dell'ACCU-1-L del valore dell'operando ')

Page 131: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Esempio

Programma STEP 5: Occupazione delle parole dati:

Operazioni di elaborazione

Tabella 3-22 Operazioni di elaborazione

l) I1 valore inserito nel dato di sistema o nell'operando formale viene interpretato come codice di operazione di una operazione STEP 5 da eseguire.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione Operando

DW 0 ... 255

MW 0 ... 254

n L

1)

BS 60 ... 63

S

Funzione

Elaborare una parola dati: la successiva operazione viene combinata con l'operando il cui valore è inserito nella parola dati e quindi eseguita.

Elaborare una parola merker: la successiva operazione viene combinata con l'operando il cui valore è inserito nella parola merker M e quindi eseguita.

Elaborare un'operando formale (tipo di parametro: B): Possono essere sostituiti solo A DB, SPA PB, SPAOB, SPA FB, SPA SB.

Inserire operando formale

Elaborazione indiretta di un operando formale: Eseguire un'istruzione il cui codice istruzione è inserito in un operando formale. il numero dell'operando formale da eseguire è contenuto in ACCU 1.

Eseguire un'istruzione del settore dati di sistema (BS) (dati di sistema liberi: BS 60 ... 63). In caso di comandi a due parole bisogna caricare la seconda parola in BS n t l .

B

B =

BI

B

Page 132: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Avvertenza Con B DW, B MW, BI o B BS possono essere combinate soltanto le seguenti operazioni:

- U.. , UN.. , O.. , ON.. , S.. , R.. , = .. con i settori E, A, M, S,

- L.., T.. con i settori P, Q, E, A, M, S, D, BA, BB, BS, BT,

- LT, L Z,

- LCT, LCZ,

- SLW, SRW,

- D, I, SES, SEF,

- A DB, SPA.. , SPB.., E DB, EX DX, AX DX, BAB FX, BA FX.

I1 PG non controlla se la combinazione è ammessa.

Esempi per le BDWIBMW operazioni di elaborazione Sostituzione d e ~ l i operandi

Con le istruzioni "B DW" e "B MW" è possibile accedere ai dati in modo sostitutivo, per esempio durante un ciclo del programma. L'accesso sostitutivo consiste di un'istruzione B DW/ B MW e di una successiva operazione STEP 5 del repertorio descritto sopra. "Sostituzione" significa che l'operando per l'operazione non viene introdotto direttamente durante la programmazione ma definito soltanto durante l'elaborazione del programma STEP 5.

I1 tipo dell'operando viene scelto durante la programmazione dai tipi possibili per questa operazione, per esempio PB per l'operazione " SPA PB nn" .

I1 valore dell'operando (nn nell'esempio "SPA PB nn") deve essere caricato in una parola dati o di merker M (parola di parametro) prima dell'accesso sostitutivo con B DW/B MW.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 133: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

:L KF +l20 :T MW14 Caricare MW 14 con il valore "KF +12OW :B MW14 :L E B O

7 . Prima del1 'esecuzione del1 'operazione "L EB" , il valore '0' dell'operando viene sostituito con il valore '120'; esecuzione: L EB 120

2. Parola dati come registro indice: Viene richiesta l'impostazione a '0' dei contenuti delle parole dati da DW 20 a DW 100. I1 registro indice per il parametro delle parole dati è DW 1.

:L KF +20 Caricamento del registro indice :T DW 1

M001 :L KF +O Cancellazione :B DW 1 :T DW O :L DW 1 Incremento del registro indice :L KF +l

:T DW 1 :L KF +l00

:SPB =M001 Salto se l'indice non supera il campo Continuazione del programma STEP 5.

3. Distributore di salto a sottoprogrammi: :B MW 5 :SPA =M001 :SPA =M002

Distanza di salto

:SPA =M005

M001 : .

M002 : . Vantaggio: tutte le parti di programma sono contenute in un blocco.

M003 : .

4.Distributore di salto per richiami di blocchi:

:B W 1 0 Contenuto della par.di merker MW 10:

- PB x

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 134: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

S . . . un operando con o-

N. bit

Per la sostituzione di operandi con operazioni binarie possono essere utilizzati i seguenti tipi di operando: ingressi, uscite, merker M, merker S, temporizzaton e contatori. Utilizzando questa sostituzione, la struttura della parola dati o di merker M (parola di parametro) dipende dal tipo di operando utilizzato.

Parola di parametro per ingressi ed uscite

Parola di parametro per merker M

N. bit

15 11

senza significato

Parola di parametro per merker S

N. bit

10

Indirizzo bit d a O a 7

15 11

senza significato

Parola di parametro per temporizzatori e contatori

N. bit 1 15 8 1 7

8 7 6

O

10 8

Indirizzo bit da O a 7

15

O

l senza significato l Numero di temporizzatore o contatore da O a 255 1

O

Indirizzo byte da O a 127

7 O

Indirizzo byte da O a 255

Principio della sostituzione con un'operazione binaria

14 12

Indirizzo bit da O a 7

t Istruzione eseguita

11 O

Indirizzo byte da O a 1023

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 135: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Esempio per l'operazione BI

istruzione vengono trasferiti da un blocco richiamante come operandi formali MW 10, MW 1 2 e MW 1 4 . I1 codice istruzione che deve essere eseguito è depositato dal blocco richiamante come numero corrente nella parola di merker MW 1 6 . I1 risultato dell'operazione eseguita viene messo in ACCU 1 e quindi trasferito nella parola di merker MW 1 8 .

NOME :TEST

S I 0 :W10 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH S I 0 : W 1 2 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH S I 0 : W 1 4 E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KH

:L MW16 Numero corrente dell'operando formale con il codice istruzione desiderato

Codice istruzione trasferito viene eseguito :T MW16 Risultato da ACCU 1

:L KF +l :T MW16 Numero corrente dell'operando formale con il :SPA =RICH codice istruzione desiderato

:SPA FB 1 Richiamare FB TEST NOME :TEST

Codice istruzione "L EB 9 O W , operando formale 1 Altro codice istruzione, operando formale 2

MW14 : KH yyyy Altro codice istruzione, operando formale 3

:T MW18 ACCU 1 -, MW 1 8

Lista degli operandi attuali nel FB 2 Principio di esecuzione nel FB 1

(n. corrente dell'operando attuale)

Operazioni eseguite tramite "Blu

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 136: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Blocco/abilitazione degli allarmi

Tabella 3-23 Blocco/abilitazione degli allarmi

L'istruzione di blocco/abilitazione degli allarmi può essere usata, per esempio, quando l'elaborazione di un particolare programma non deve essere interrotta da un allarme di processo. Nella parte di programma compresa tra le istruzioni AS ed AF non sarà più possibile l'elaborazione di programmi su allarme. Al riguardo vedere anche I'OB speciale OB 120 "Disattivazione comune degli allarmi" descritto nel paragrafo 6.5.

Operazione

AS

AF

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operando Funzione

Blocco dell'elaborazione di allarmi

Abilitazione dell'elaborazione di allarmi

Page 137: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

3.5.5 Operazioni con semafori

Introduzione Se due o più CPU di un controllore programmabile in funzionamento multiprocessore (vedere capitolo 10) usano contemporaneamente certi settori globali di memoria (periferia, CP, IP), esiste il rischio che le CPU si sovrascrivano i dati o che vengano letti stati non congruenti. Per questa ragione è necessario coordinare l'accesso delle CPU ai settori comuni di memoria.

Questa coordinazione delle singole CPU è possibile tramite i semafori ed i comandi SES e SEF:

Può, per esempio, essere programmato il seguente coordinamento di due CPU: soltanto dopo l'impostazione del semaforo programmato (SES) le CPU che partecipano al funzionamento multiprocessore possono accedere al settore di memoria comune. Un semaforo xx può essere impostato solo da una CPU. Se essa non riesce a impostarlo, deve rinunciare all'accesso. Deve inoltre rinunciare ad un altro accesso dopo aver abilitato il semaforo (SEF).

SESISEF: (non è un'operazione di sistema) impostarelabilitare un semaforo

Tabella 3-24 Impostare/abilitare un semaforo

Avvertenza I comandi SES xx e SEF xx devono essere utilizzati da tutte le CPU che devono accedere in modo sincronizzato ad un settore globale di memoria comune.

Operazione

SES

SEF

I blocchi funzionali standard, i blocchi di trasporto ed i blocchi per la comunicazione multiprocessore controllano il coordinamento interno. Non è necessario che l'utente programmi le operazioni SES xx e SEF xx utilizzando questi blocchi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operando

O ... 31

O ... 31

Funzione

Impostare un semaforo

Abilitare un semaforo

Rilevamento dei risultati delle operazioni tramite ANZ O/ANZ 1

Page 138: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Effetto di SESISEF I1 comando SES xx (impostare un semaforo) occupa nel coordinatore un certo byte per la CPU che esegue il comando (a condizione che non sia già occupato da un'altra CPU).

Finché in questo byte è inserito il numero della CPU, le altre CPU non possono accedere al settore di memoria protetto da quel semaforo (numero da O a 31). Con questo, il settore è bloccato per tutte le altre CPU.

Per far funzionare correttamente questo coordinamento è necessario che tutte le CPU che desiderano accedere allo stesso settore della memoria globale usino lo stesso semaforo.

I1 comando SEF xx (abilitare un semaforo) cancella il byte nel coordinatore. Con ciò viene nuovamente abilitato l'accesso in lettura/scrittura delle altre CPU a quel settore di memoria. Un semaforo può essere liberato solo dalla CPU che lo aveva impostato.

Applicazione di La figura 3-8 mostra il principio di coordinamento dell'accesso tramite un SESISEF semaforo.

INIZIO

Impostare i l semaforo: 1 SES I I

Accesso al la memoria globale protetta dal semaforo

Abil itare i l semaforo: SEF

I

Fine

Figura 3-8 Coordinamento dell'accesso alla memoria globale

Prima di impostare o abilitare un certo semaforo, i comandi SES e SEF interrogano lo stato di questo semaforo. Le visualizzazioni ANZ O ed ANZ 1 vengono influenzate nel seguente modo:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 139: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

il semaforo è stato impostato da un'altra CPU e non può essere impostato o abilitato.

Avvertenza L'interrogazione di un certo semaforo (lettura) e l'impostazione/ l'abilitazione del semaforo (scrittura) costituiscono una unità. Nessun'altra CPU può accedere al semaforo durante l'esecuzione di queste attività.

Nell'usare i semafori bisogna tenere presente quanto segue:

Un semaforo è una variabile globale, cioè il semaforo numero 16 è presente solo una volta anche utilizzando, per esempio, tre CPU.

I comandi SES e SEF devono essere usati da tutte le CPU il cui accesso ad un settore di memoria globale deve awenire in modo coordinato.

Tutte le CPU interessate devono attivare lo stesso tipo di avviamento. In caso di NUOVO AWIAMENTO, tutti i semafori vengono cancellati, mentre con un riavviamento manuale o automatico essi rimangono invariati.

L'AWIAMENTO in funzionamento multiprocessore deve essere sincronizzato. Per questo motivo non è possibile il funzionamento di test.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 140: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

Esempio di applicazione per i semafori

In un S5-135U sono inserite 4 CPU che trasmettono ad un unico dispositivo delle segnalazioni tramite un settore di memoria globale della periferia Q (QW 6). Ogni segnalazione deve rimanere attiva 10 secondi e quindi può essere sovrascritta da una segnalazione proveniente dalla stessa o da un'altra CPU. L'uso della parola QW 6 (ampliamento della periferia, nessuna immagine di processo) viene controllato con un semaforo. Una segnalazione in QW 6 può essere scritta solo dalla CPU che si è riservato questo settore con l'impostazione del relativo semaforo. I1 semaforo rimane impostato per 10 secondi (temporizzatore T10) dopodiché la CPU rilascia il semaforo e di conseguenza il settore da esso controllato. La parola QW 6 può quindi essere utilizzata per una nuova segnalazione da una qualunque CPU. Se durante un tentativo di impostazione del semaforo si appura che questo è già stato impostato da un'altra CPU, la CPU riprova nel ciclo successivo a impostare il semaforo ed a emettere la segnalazione.

Realizzazione:

I1 seguente programma può funzionare in tutti 4 CPU, con diverse segnalazioni. Vengono caricati i seguenti blocchi:

IMPOSTAZIONE

PROGRAMMA PRINCIPALE

REIMPOSTAZIONE

Vengono usati 5 merker:

M 10.0 = 1: È richiesta o viene elaborata una segnalazione.

M 10.1 = 1: I1 semaforo è stato impostato.

M 10.2 = 1: I1 temporizzatore è attivato.

M 10.3 = 1: La segnalazione è trasferita.

M 10.4 = 1: I1 semaforo è cancellato.

FB 10: SEGNALAZIONI

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 141: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del programma

Se nessuna segnalazione attiva

NOME :MAIN

:U M 10.0 :SPB =M001

:UN E 0.0

:L KH 2222 Generare segnalazione e :T MW 12 :UN M 10.0 :S M 10.0 impostare merker "SEGNALAZIONE".

M001 :SPA FB10 Richiamare FB "SEGNALAZIONE" NOME :MELDE

NOME :MELDE

:UN M 10.1 :SPB FB 100

NOME :SEMASET

:U M 10.1 Se semaforo è impostato :UN M 10.2 e temporizzatore non è attivato, :S M 10.2 :L KT010.2 attivare temporizzatore. :SV T 10

:U M 10.2 Se temporizzatore è attivato :UN M 10.3 e nessuna segnalazione viene trasmessa, :SPB FB 110 richiamare il FB "EMISSIONE SEGNALAZIONE".

NOME :MELDAUSG

:U M 10.2 Se temporizzatore è attivato :UN M 10.4 e semaforo non è reimpostato :UN T 10 e tempo trascorso, : SPB FB 101 richiamare il FB "RESETTARE SEMAFORO".

NOME :SEMARESE

:UN M 10.4 Se è reimpostato il semaforo,

:L KH0000 :T MB10 reimpostare tutti i merker.

C o n t i n u a z i o n e s u l l a pross ima pag in

Se non è impostato nessun semaforo, richiamare 1'FB "IMPOSTARE SEMAFORO".

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 142: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Elaborazione del oroaramma

NOME :SEMASET

Impostare semaforo n. 10 :SPZ =M001 :UN M 10.1 Se viene impostato semaforo, :S M 10.1 impostare merker "SEMAFORO SETTATO"

NOME : MELDAUSG

:L MW12 Trasferire segnalazione alla

:UN M 10.3 :S M 10.3 Impostare merker "EMISSIONE SEGNALAZIONE"

NOME :SEMARESE

:SPZ =M001 :UN M 10.4 :S M 10.4 Impostare merker "SEMAFORO RESETTATO"

Abilitare semaforo no. 10

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 143: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione programma

In questo capitolo

Questo capitolo dà una panoramica sugli stati di funzionamento ed i livelli di elaborazione programma della CPU 928B versione 3UB21. Fornisce informazioni dettagliate sui diversi tipi di avviamento e sui relativi blocchi organizzativi nei quali si possono definire i programmi specifici relativi a questi tipi di avviamento.

Inoltre vengono descritte le caratteristiche riguardo l'elaborazione di programmi "ciclici", "su interrupt periodico" e "su interrupt di processo" ed i corrispondenti blocchi organizzativi disponibili per il programma utente.

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

4.1

4.2

4.3

4.3.1

4.3.2

4.4

4.4.1

4.4.2

4.4.3

4.4.4

4.4.5

4.5

4.5.1

4.5.2

4.5.3

4.5.4

4.5.5

Argomento trattato

Introduzione e panoramica

Livelli di elaborazione programma

Stato di funzionamento STOP

Caratteristiche e segnalazione dello stato di funzionamento

Richiesta e realizzazione di una CANCELLAZIONE TOTALE

Stato di funzionamento AWIAMENTO

NUOVO AWIAMENTO MANUALE e AUTOMATICO

RIAWIAMENTO MANUALE e AUTOMATICO

Confronto dei vari tipi di avviamento

Interfaccia utente per l'avviamento

Interruzioni in AWIAMENTO

Stato di funzionamento RUN

Elaborazione ciclica del programma

Elaborazione di un programma su interrupt periodico

Allarme di regolazione: elaborazione di regolazioni

Allarme di processo: elaborazione di un programma su interrupt di processo

Richiesta contemporanea di un'elaborazione su interrupt di processo e su interrupt periodico

Pagina

4-2

4-5

4-11

4-11

4-13

4-15

4-16

4-16

4-18

4-19

4-22

4-24

4-26

4-28

4-35

4-36

4-39

Page 144: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.1 Introduzione e panoramica

Introduzione La CPU 928B riconosce tre stati di funzionamento:

stato di funzionamento STOP

stato di funzionamento AWIAMENTO

stato di funzionamento RUN

Negli stati di funzionamento AWIAMENTO e RUN possono verificarsi certi eventi che richiedono una reazione del programma di sistema. In molti casi viene quindi richiamato il blocco organizzativo (tra OB 1 ed OB 35) relativo a questo evento come interfaccia utente.

I LED sul lato frontale della CPU segnalano i diversi stati di funzionamento. Alcuni degli stati di funzionamento vanno attivati manualmente. A tale scopo si possono utilizzare tra l'altro anche gli elementi operativi che si trovano sul lato frontale della CPU. La posizione dei LED e degli elementi operativi è illustrata nella figura 4-1.

LED di errore (rossi)

LED (verde)

Involucro per la memory card

Commutatore dei modi di funzionamento

LED (rosso) Selettore dei modi di funzionamento Interfaccia 1

%afa per W,

Interfaccia SI l

Numero di ordinazione e versione attuale -

Interfaccia 2

Involucro per il modulo interiaccia Interfaccia SI 2

Leva di distacco Dispositivo di blocco

Figura 4-1 Lato frontale della CPU 928B con elementi operativi e di segnalazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 145: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Segnalazione Diversi LED sul lato frontale dell'unità centrale segnalano lo stato di degli stati di funzionamento attuale della CPU. La seguente tabella spiega la relazione tra le funzionamento segnalazioni dei LED STOP e RUN ed il relativo stato di funzionamento. Queste tramite LED segnalazioni vengono integrate da ulteriori segnalazioni LED (BASP, ADE,

QVZ, ZYK).

Tabella 4-1 Significato dei LED "RUN" e "STOP"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

LED "RUN"

On

Off

Off

Off

Off

On

LED " STOP"

Off

On

Off

Lampeggia lentamente

Lampeggia velocemente

On

Stato di funzionamento

La CPU si trova nello stato di funzionamento RUN.

La CPU si trova nello stato di funzionamento STOP. Dopo una richiesta di STOP tramite commutatore o funzione PG, il LED STOP rimane acceso perché il passaggio nello stato di funzionamento STOP è stato richiesto dall'utente o, in funzionamento multiprocessore, da un'altra CPU e non dalla CPU stessa.

La CPU si trova nello stato di funzionamento AWIAMENTO, oppure

la CPU si trova in AWIAMENTOIRUN, il controllo di elaborazione è attivato ed un punto di fermata raggiunto,

oppure la CPU si trova in AWIAMENTOIRUN, il controllo di elaborazione è attivato ed un punto di fermata è stato cancellato prima di essere raggiunto (stato di attesa).

La CPU si trova nello stato di funzionamento STOP. La CPU ha causato un passaggio nello stato di funzionamento STOP (eventualmente anche quello delle altre CPU). Possibili cause: ADE, QVZ, LZF, BCF, errore di regolazione, errore per collisione di interrupt temporale, errore di ciclo, overflow del BSTACK, comando STP. Mettendo il commutatore dei modi di funzionamento su STOP la luce lampeggiante diventa luce continua.

La CPU si trova nello stato di funzionamento STOP. È stata richiesta una CANCELLAZIONE TOTALE o dalla CPU stessa o dall'utente.

Grave errore di sistema Rimedio: - realizzare una cancellazione totale della CPU; - se l'errore non è eliminato:

togliere e reinserire l'alimentazione di rete del controllore ed eseguire quindi la cancellazione totale;

- se l'errore ancora non è eliminato: togliere l'alimentazione di rete del controllore, estrarre la CPU ed inserirla nuovamente e quindi realizzare una cancellazione totale;

- se l'errore ancora non è eliminato: cambiare la CPU opp. farla riparare.

Page 146: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

LED di errore e di segnalazione LED "BASP"

Esso segnala se il segnale BASP del bus S5 (inibizione dell'emissione comando) è attivato:

In funzionamento monoprocessore, la CPU inibisce il segnale BASP passando nello stato RUN e lo disinibisce passando nello stato STOP. BASP è attivato sia in AWIAMENTO e STOP, sia nel primo ciclo dopo un RIAWIAMENTO.

In funzionamento multiprocessore, la segnalazione BASP è identica a quella in funzionamento monoprocessore se il commutatore sul coordinatore si trova in posizione RUN. (Per il caso particolare "Funzionamento TEST" consultare il manuale di sistema 121.)

Avvertenza Se BASP è attivato, tutte le uscite digitali sono inibite.

Se prima del passaggio nello stato di funzionamento RUN è stato eseguito un RIAWIAMENTO AUTOMATICO o MANUALE, il LED BASP si spegne solo nel momento in cui l'elaborazione del resto del ciclo è terminata.

LED QVZ

Ritardo alla conferma di un'unita di periferia.

LED "ADF"

Errore di indirizzamento; il programma utente ha indirizzato un indirizzo nell'immagine di processo sotto il quale non è stata inserita alcun'unità nella periferia.

LED "ZYK"

Errore di ciclo; superamento del tempo di controllo di ciclo.

Gli errori ADE e QVZ possono verificarsi in AWIAMENTO ed in RUN, l'errore di ciclo soltanto in RUN.

Alla fine di un livello di elaborazione errore ADE, QVZ o ZYK il programma di sistema cancella il LED di errore se non segue lo stato STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 147: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.2 Livelli di elaborazione programma

Introduzione La figura 4-2 riporta una panoramica degli stati di funzionamento e dei livelli di elaborazione programma della CPU 928B (versione 3UB21). Le abbreviazioni per i livelli di errore seguiranno nella prossima pagina.

LED R U N : Off LED STOP: O n

Per funzionamento multiprocessore:

LED R U N : Off punto d i attesa per LED R U N : O n LED STOP: Off il passaggio sin- LED STOP: Off LED BASP: O n cronizzato in ciclo LED BASP: Off l l

- 1 - Stato di funzionamento 1 Stato di ;;;namento

AVVIAMENTO h

STP PEU BAU

DOPP STUEU STUEB

4

Stato di funzionamento

STO P i NUOVOAVVIA- i MENTO MAN.I ! NUOVOAVVIA- / BCF MENTO CON / LZF MEMORIA/ RIAVVIAMENTO / ADF N U O V O A V V I ~ - Q V Z M E N T O AUTOt$ N U O V O MENTO C O N i M E M O R I A I i R I A V V I A M E N T ~

A

NAU I

N AU

STP PEU

-1 BAU 7

DOPP STUEU

CICLO

AL-OROLOGiO

AL-SCHED.

AL-REGOLAZ.

AL-RITARDO

AL-PROCESSO

WECK-FE REG-FE ZYK BCF

LZ F ADF

Q VZ SSF

Figura 4-2 Stati di funzionamento e livelli di elaborazione programma

l Ritorno tensione Mancanza N AU

di tensione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

ABBR. (OB 28) (selettore modi di funzio- namento, STOP da PG o da altra CPU)

Page 148: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Livelli di elaborazione programma in AVVIAMENTO:

NUOVO AWIAMENTO MANUALE RIAWIAMENTO MANUALE NUOVO AWIAMENTO MANUALE CON MEMORIA NUOVO AWIAMENTO AUTOMATICO CON MEMORIA NUOVO AWIAMENTO AUTOMATICO RIAWIAMENTO AUTOMATICO

Livelli di avviamento

BCF LZF ADF QVZ SSF

(Errore nel codice del comando) (Errore di esecuzione) Livelli di (Errore di indinzzamento) errore (Ritardo della conferma) (Errore dell'interfaccia)

Livelli di elaborazione programma in RUN:

CICLO ALLARME DALL'OROLOGIO ALLARME DI SCHED. 5 sec ALLARME DI SCHED. 2 sec ALLARME DI SCHED. 1 sec ALLARME DI SCHED. 500 msec ALLARME DI SCHED. 200 msec ALLARME DI SCHED. 100 msec ALLARME DI SCHED. 50 msec ALLARME DI SCHED. 20 msec ALLARME DI SCHED. 10 msec ALLARME DI REGOLAZ.

ALLARME DI RITARDO ALLARME DI PROCESSO

WECK-FE REG-FE ZYK BCF LZF ADF QVZ SSF ABBR

(Elaborazione ciclica del programma) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico) (Elaborazione su interrupt periodico per regolazioni) (Elaborazione su interrupt periodico) (Elaborazione su interrupt di processo)

(Errore per collisione di interrupt temporali) (Errore di regolazione) (Superamento del tempo di ciclo) (Errore nel codice del comando) (Errore di esecuzione) (Errore di indirizzamento) (Ritardo della conferma) (Errore dell'interfaccia) (Interruzione)

Livelli di errore

Livelli base

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 149: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Caratteristiche Un livello di elaborazione programma è contraddistinto da determinate di un livello di caratteristiche che verranno spiegate nelle prossime pagine. elaborazione programma Annidamento di altri livelli

Al verificarsi di un evento che richiede un'elaborazione di priorità maggiore, il livello attuale viene interrotto dal programma di sistema ed il livello di maggiore priorità viene annidato.

L'annidamento avviene

- per i livelli di errore e di elaborazione programma in AWIAMENTO: sempre alla fine di un blocco,

- per tutti gli altri livelli: alla fine di un blocco o di un comando (in relazione a quanto parametrizzato in DX 0, vedere capitolo 7).

Programma specifico di sistema

Ogni livello di elaborazione ha il suo programma specifico di sistema.

e1 livello di elaborazione CICLO il programma di sistema ggiorna l'immagine di processo degli ingressi e delle scite, controlla il tempo di ciclo e gestisce 'interfaccia per il PG (punto di controllo di sistema).

USTACK

Dopo il richiamo di un blocco organizzativo dal programma di sistema, la CPU esegue le istruzioni STEP 5 in esso contenute. Nel far ciò, il set di registro attuale nell'USTACK viene salvato e viene creato un nuovo set di registro (registri: da ACCU 1 ad ACCU 4, puntatore al registro di blocco, registro di indirizzo blocco, indirizzo inziale del blocco dati, lunghezza di blocco dati, contatore di indirizzo STEP ed il registro di indirizzo base). Se la normale elaborazione del programma è stata interrotta dal verificarsi di un evento, dopo l'elaborazione dell'OB (e di tutti i blocchi in esso annidati), la CPU riprende l'elaborazione del programma dal punto in cui era stata sospesa a meno che non sia programmato alcun comando di STOP nell'OB.

USTACK

Prolondltà 1

USTACK

Prolondltà 2

USTACK

USTACK = Rappresentazione del Ilvelll nterrottl

Figura 4-3 Principio del cambio di livello e degli USTACK

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 150: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Priorità I livelli di elaborazione hanno una priorità fissa. In relazione a ciò, essi possono interrompersi ed annidarsi l'uno nell'altro.

I "livelli di avviamento e di errore" si differenziano dai "livelli base" per il fatto che, al verificarsi dell'evento, essi vengono solitamente inseriti dopo l'esecuzione del comando in corso. Essi possono essere annidati nei livelli base ed anche tra di loro. In caso di errore, l'ultimo verificatosi ha sempre la priorità maggiore.

Un "livello base" può invece essere annidato in un livello di priorità inferiore solo alla fine di un blocco, a meno che tale preimpostazione sia stata modificata scrivendo l'apposito programma nel DX O (vedere capitolo 7).

Priorità dei "livelli base" :

CICLO ALLARME DALL'OROLOGIO ALLARME DI SCHED. 5 sec ALLARME DI SCHED. 2 sec

ALLARME DI REGOLAZIONE ALLARME DI RITARDO ALLARME DI PROCESSO

priorità crescente

urante l'elaborazione di un allarme di chedulazione, si verifica un allarme di processo. ato che l'allarme di processo ha una priorita aggiore, l'elaborazione del livello di allarme di chedulazione viene interrotta alla fine del blocco n corso e quindi attivato il livello di elaborazione LLARME DI PROCESSO. Se elaborando l'allarme di rocesso si presenta adesso un errore di ndirizzamento, allora la gestione dellrallarme di rocesso viene interrotta al comando successivo per nnidare il livello ADF.

Reazione con un Un livello di elaborazione una volta attivato (ADE, BCF, LZF, QVZ, REG, doppio errore ZYK) e non ancora completamente elaborato non può essere nuovamente

attivato, neanche se un altro livello di elaborazione viene inserito tra i due livelli uguali. In questo caso la CPU va immediatamente in STOP (eccezione: errore per collisione di interrupt temporali) a causa di una doppia chiamata di un livello di elaborazione programma (in USTACK: "DOPP"). Nell'USTACK al livello "01" sono contrassegnati sia l'identificatore "DOPP", sia il livello di errore richiamato due volte.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 151: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Esempi di doppio errore

Errore di indirizzamento in PB 30 causa lo STOP

Errore di indirizzamento in FB 5: richiamo di OB 251 livello ADF

Figura 4-4 Cambio del livello in caso di doppio errore

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 152: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

A Errore codice operazione i n FB 22 causa lo STOP

Errore tempo di ciclo durante l 'elaborazione del l 'OB 30: r ichiamo di OB 31 / l i ve l lo LZF

con errore codice

Errore parametro in FB 3 r ichiamo d i OB 30 / l ivel lo BCF

Descrizione dei I singoli livelli di elaborazione programma con i relativi blocchi organizzativi singoli livelli vengono descritti particolareggiamente nei seguenti paragrafi:

Paragrafo 4.4 descrizione dei livelli di elaborazione programma in AWIAMENTO

Paragrafo 4.5 descrizione dei livelli di elaborazione in RUN

Paragrafi 5.5 e 5.6 descrizione dei livelli di errore in AWIAMENTO e RUN

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 153: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.3 Stato di funzionamento STOP

4.3.1 Caratteristiche e segnalazione dello stato di funzionamento

Caratteristiche Lo stato di funzionamento STOP è contraddistinto dalle seguenti caratteristiche:

Programma utente

Non avviene alcuna elaborazione del programma.

Conservazione dei valori

Proveniendo da una situazione di elaborazione ciclica del programma e passando allo stato di STOP, rimangono conservati i valori di contatori, temporizzatori, merker ed immagini di processo.

Segnale BASP

I1 segnale BASP viene emesso. Con ciò sono disabilitate tutte le uscite digitali.

Eccezione: in funzionamento TEST, il segnale BASP non viene emesso (al riguardo vedere il manuale di sistema 124.

USTACK

Proveniendo dall'elaborazione ciclica del programma, passando allo stato STOP è disponibile un blocco di informazioni nel registro di interruzioni (USTACK) riguardo le cause dell'interruzione (vedere il paragrafo 5.4) per ogni livello di elaborazione programma interrotto.

Segnalazione Lo stato di funzionamento STOP viene segnalato da LED sul lato frontale dell'unità centrale:

LED RUN: spento LED STOP: acceso (in modo continuo o intermittente) LED BASP: acceso (eccetto in funzionamento TEST)

I1 LED STOP può così segnalare a quale motivo si deve imputare il momentaneo arresto della CPU. La luce continua o intermittente del LED STOP ha un preciso significato che verrà brevemente spiegato di seguito.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 154: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

LED STOP con Lo stato di funzionamento STOP è stato provocato luce continua

in funzionamento monoprocessore:

- commutando l'apposito selettore da RUN a STOP

- dalla funzione STOP AG sul PG

- da un errore dell'apparecchiatura (BAU, PEU)

- da una CANCELLAZIONE TOTALE

- dalla funzione "Fine controllo elaborazione" sul PG.

in funzionamento multiprocessore:

- commutando su STOP l'apposito selettore sul coordinatore

- dal passaggio in STOP di un'altra CPU a causa di un errore (la CPU su cui non si è verificato l'errore ha luce continua)

LED STOP con Un lampeggi0 lento del LED STOP segnala, nella maggior parte dei casi, un lampeggio lento errore. In funzionamento multiprocessore, il lampeggio lento permette di (ca. 0,5 Hz) individuare la CPU che ha provocato l'arresto di tutte le altre.

I1 LED STOP lampeggia lentamente:

- programmando un comando di STOP nel programma utente

- con condizioni di errori (errore nel DB 1, scelta di un modo di avviamento non permesso, ecc.)

- con errori hardware o software (richiamo di un blocco non caricato, errore di indinzzamento, errore nel codice del comando, ecc.); come ulteriori informazioni sull'errore si accendono i LED

ADE QVZ ZYK

- con la funzione FINE CONTROLLO ELABORAZIONE sul PG per questa CPU.

Il LED STOP I1 lampeggi0 veloce del LED STOP segnala che la CPU richiede una lampeggia "CANCELLAZIONE TOTALE". velocemente (ca. 2 Hz)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 155: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.3.2 Richiesta e realizzazione di una CANCELLAZIONE TOTALE

Richiesta dal Dopo aver dato la tensione di rete ed aver operato una cancellazione totale, la programma di CPU attiva una routine di inizializzazione. Se durante questa inizializzazione si sistema manifesta un errore che impedisce l'inizio del programma, la CPU si porta in

STOP ed il LED lampeggia velocemente.

Possibili errori: 11 contenuto delle memorie RAM non è corretto Rimedio: cancellazione totale della CPU.

I1 contenuto della memory card non è corretto Rimedio: inserire una memory card programmata ed eseguire una cancellazione totale.

L'errore deve essere eliminato e quindi si deve eseguire una cancellazione totale della CPU. Una CANCELLAZIONE TOTALE viene anche richiesta al verificarsi di un errore della CPU o del sistema. Tali errori si riconoscono dal fatto che la richiesta di una CANCELLAZIONE TOTALE viene ripetuta dopo la sua esecuzione. In tal caso bisogna rivolgersi alla filiale Siemens più vicina.

Richiesta dall'utente

Una CANCELLAZIONE TOTALE viene richiesta operando come segue:

1. Portare il commutatore dei modi di funzionamento da RUN a STOP. Effetto: la CPU si porta in STOP. I1 LED STOP è acceso con luce fissa.

2. Tenere il secondo selettore sulla posizione OVERALL RESET e contemporaneamente portare il commutatore dei modi di funzionamento da STOP a RUN e di nuovo su STOP. Effetto: la CANCELLAZIONE TOTALE è richiesta; il LED ROSSO lampeggia velocemente.

Avvertenza Se la CANCELLAZIONE TOTALE richiesta non deve più essere realizzata, bisogna eseguire un NUOVO AWIAMENTO o un RIAWIAMENTO MANUALE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 156: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Realizzazione della CANCELLAZIONE

Indipendentemente dal fatto che la richiesta provenga dal sistema o dall'utente, è possibile realizzare una CANCELLAZIONE TOTALE nel seguente modo:

TOTALE Tenere il selettore inferiore nella posizione OVERALL RESET e portare contemporaneamente il commutatore dei modi di funzionamento da STOP a RUN e di nuovo in STOP.

Effetto: la CANCELLAZIONE TOTALE è attivata; il LED STOP ha luce fissa.

Oppure:

Con la funzione "CANCELLAZIONE TOTALE" sul PG. (con la cancellazione da parte del PG, non è necessaria la richiesta manuale di cancellazione totale! La posizione dei due commutatori non è rilevante.)

Effetto: la CANCELLAZIONE TOTALE è attivata; il LED STOP ha luce fissa.

Somma di controllo

Con la cancellazione totale, il programma di sistema crea una somma di controllo che viene confrontata con i dati contenuti in EPROM. Se le due grandezze non corrispondono, si ha un grave errore di sistema (vedere pagina 4-3).

Avvertenza Effettuato la CANCELLAZIONE TOTALE, è permesso solo un NUOVO AWIAMENTO.

Caricamento Se mentre si esegue la CANCELLAZIONE TOTALE è inserita una memory della memory card, vengono caricati nella memoria utente della CPU tutti i blocchi codice e card tutti i blocchi dati in essa contenuti. Di conseguenza, la CPU si trova in

"funzionamento EPROM", ciò significa che i blocchi codice non possono essere caricati successivamente, modificati o cancellati; i blocchi dati, invece, possono essere ricaricati, modificati e cancellati nella RAM per DB (vedere paragrafo 3-3).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 157: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.4 Stato di funzionamento AWIAMENTO

Caratteristiche Lo stato di funzionamento AWIAMENTO è contraddistinto dalle seguenti caratteristiche:

Passaggio da STOP a RUN

L'AWIAMENTO è il passaggio dallo stato di funzionamento STOP a quello RUN.

Modi di avviamento

La CPU 928B riconosce i seguenti modi di avviamento:

- NUOVO AWIAMENTO (manuale o automatico)

- RIAWIAMENTO (manuale o automatico)

- NUOVO AWIAMENTO CON MEMORIA (NSMG, manuale o automatico)

Dopo un NUOVO AVVIAMENTO il programma utente ciclico viene elaborato dall'inizio. Dopo un RIAVVIAMENTO il programma utente ciclico riprende dal punto in cui l'elaborazione era stata interrotta.

Blocchi organizzativi

Vengono richiamati i seguenti blocchi organizzativi: per un NUOVO AWIAMENTO MANUALE o AUTOMATICO: OB 20 per un RIAWIAMENTO MANUALE opp. NSMG: OB 21 per un RIAWIAMENTO AUTOMATICO opp. NSMG : OB 22 La lunghezza di questi blocchi organizzativi non è limitata. I1 loro tempo di esecuzione non viene controllato. Negli OB di avviamento è possibile richiamare altri blocchi.

Trattamento dei dati

I valori di contatori, temporizzatori, merker ed immagini di processo vengono trattati in modi diversi nei vari tipi di avviamento.

Segnale BASP

I1 segnale BASP è presente. Questo provoca l'inibizione di tutte le uscite digitali. Eccezione: in funzionamento TEST, il segnale BASP non viene attivato! (Per il funzionamento TEST consultare il manuale di sistema 121.)

LED sul lato frontale dell'unità centrale

LED RUN : spento LED STOP : spento LED BASP : acceso (eccetto in funzionamento TEST)

Gestione dell'avviamento in funzionamento multiprocessore

Avvertenze riguardo la "gestione dell'avviamento in funzionamento multiprocessore" si trovano nel paragrafo 10.1.7.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 158: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.4.1 NUOVO AWIAMENTO MANUALE e AUTOMATICO

Quando Un NUOVO AWIAMENTO è sempre possibile quando il programma di è possibile un sistema non richiede una CANCELLAZIONE TOTALE. NUOVO AWIAMENTO?

NUOVO Così viene realizzato un NUOVO AWIAMENTO MANUALE: AWIAMENTO MANUALE Tenere il selettore dei modi di funzionamento in posizione RESET e portare

contemporaneamente il commutatore dei modi di funzionamento da STOP a RUN.

Oppure:

Selezionare la funzione START AG (NUOVO AWIAMENTO) sul PG.

NUOVO Così viene realizzato un NUOVO AWIAMENTO AUTOMATICO: AWIAMENTO AUTOMATICO In caso di una caduta della tensione di rete (o NETZ-AUS) in fase di

AWIAMENTO o RUN, al ritorno della tensione (o NETZ-EIN) la CPU esegue una routine di inizializzazione e quindi cerca di realizzare un NUOVO AWIAMENTO se il blocco dati DX O è stato parametrizzato corrispondentemente (vedere capitolo 7).

Presupposti:

I commutatori di tutte le CPU e del coordinatore rimangono su RUN.

Durante l'inizializzazione non si è manifestato alcun errore.

La CPU, prima della caduta della tensione (o NETZ-AUS), non si trovava in STOP.

In caso di una caduta della tensione in un'apparecchiatura di ampliamento (segnale PEU) la CPU va in STOP. Essa rimane in STOP finchè il segnale PEU viene disattivato e quindi cerca di eseguire un NUOVO AWIAMENTO AUTOMATICO o un RIAWIAMENTO AUTOMATICO.

4.4.2 RIAWIAMENTO MANUALE e AUTOMATICO

Quando non è Un RIAWIAMENTO non è permesso nei seguenti casi: permesso un RIAWIAMENTO? se il programma di sistema richiede una CANCELLAZIONE TOTALE

oppure

dopo uno dei seguenti eventi:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 159: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

- doppio richiamo di un livello di elaborazione programma (USTACK: DOPP),

- CANCELLAZIONE TOTALE (bit di comando: URGELOE),

- interruzione dell'avviamento (bit di comando: ANL-ABB),

- STOP dopo la funzione FINE CONTROLLO ELABORAZIONE dal PG,

- compressione in STOP,

- overflow di un registro,

- modifica del programma utente in STOP.

RIAWIAMENTO Così viene realizzato un RIAWIAMENTO MANUALE: MANUALE

Portare il commutatore dei modi di funzionamento da STOP a RUN (il selettore dei modi di funzionamento deve trovarsi nella posizione centrale).

Oppure:

Selezionare la funzione START AG (RIAWIAMENTO) sul PG.

RIAWIAMENTO Così viene realizzato un RIAWIAMENTO AUTOMATICO: AUTOMATICO

In caso di una caduta della tensione di rete (o NETZ-AUS) in fase di AWIAMENTO o RUN, al ritorno della tensione (o NETZ-EIN) la CPU esegue una routine di inizializzazione e quindi cerca di realizzare un RIAWIAMENTO se il blocco dati DX O è stato parametrizzato corrispondentemente (vedere capitolo 7) o non esiste.

Presupposti:

I commutatori di tutte le CPU e del coordinatore rimangono su RUN.

Durante l'inizializzazione non si è manifestato alcun errore.

La CPU, prima della caduta della tensione (o NETZ-AUS), non si trovava in STOP.

In caso di una caduta della tensione in un'apparecchiatura di ampliamento (segnale PEU) la CPU va in STOP. Essa rimane in STOP finchè il segnale PEU viene disattivato e quindi cerca di eseguire un RIAWIAMENTO AUTOMATICO o un NUOVO AWIAMENTO AUTOMATICO.

NUOVO Se nel blocco dati DX O è impostato il parametro "NUOVO AWIAMENTO AWIAMENTO CON MEMORIA", allora il programma di sistema realizza il NUOVO CON MEMORIA AWIAMENTO CON MEMORIA al posto del RIAWIAMENTO. Le

caratteristiche che contraddistinguono i due tipi di avviamento sono descritte nel paragrafo seguente.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 160: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.4.3 Confronto dei vari tipi di awiamento

Tabella 4-2 Confronto dei vari tipi di avviamento

l) I1 DB O viene inizializzato solo dopo una "CANCELLAZIONE TOTALE".

Compiti del programma di sistema

Analisi di: - DB1 - DB 2 - DX O - DX 2

Inizializzazione di: - DB O - 9"raccia - disabilitazionel

ritardo di allarmi - statistica ciclo

Cancellazione di: - intervallo dall'orologio - allarme di ritardo - USTACK/BSTACK - IP degli ingressi

- IP delle uscite1 periferia digitale

- periferia analogica - merker di

accoppiamento - semafori - merker S e M - contatori e

temporizzatori

Elaborazione del resto del ciclo con segnale BASP attivato

Tipo di avviamento riconosciuto dall'OB 223

Visualizzazione del modo di avviamento sul PG nei bit di comando dell'USTACK

Interfaccia utente

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

NUOVO AVVIAMENTO

manuale

sì sì sì sì

no sì

sì sì

sì sì sì sì

(completa) sì

(completa) sì

sì sì sì

no

NUOVO AWIA- MENTO

NEUSTA

OB 20

automatico

sì sì sì sì

no sì

sì sì

sì sì sì sì

(completa) sì

(completa) sì

sì sì sì

no

NUOVO AWIA- MENTO

NEUSTAt AWA

OB 20

RIAVVIAMENTO

manuale

no no no no

no no

no no

no sì no no

no

no

no no no

no

RIAWIA- MENTO

MANUALE

MWA

OB 21

NUOVO AVVIAMENTO

automatico

no no no no

no 1) no

no no

no sì no no

no

no

no no no

no

RIAWIA- MENTO AUTO-

MATICO

AWA

OB 22

CON

manuale

no no no no

no 1) no

sì no

no sì sì no

sì (secondo 9"raccia)

no

no no no

no

no

RIAWIA- MENTO

MANUALE

ANL-6 t MWA

OB 21

MEMOFUA

automatico

no no no no

no no

sì no

no sì sì no

sì (secondo 9"raccia)

no

no no no

no

no

RIAWIA- MENTO AUTO-

MATICO

ANL-6 t AWA

OB 22

Page 161: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Definizione della "ga traccia "

La "9a traccia" è la lista dei byte di ingresso/uscita contenuta nel settore delle immagini di processo che hanno dato conferma durante l'ultimo NUOVO AWIAMENTO. Se il DB 1 è programmato e caricato, la "9a traccia" contiene - dopo un NUOVO AWIAMENTO - solo i byte di ingresso/uscita elencati nel DB 1.

L'accesso alla 9a traccia tramite istruzioni STEP5 non è possibile.

4.4.4 Interfaccia utente per I'awiamento

Introduzione Come interfacce utente per i vari tipi di awiamento servono i blocchi organizzativi OB 20, OB 21 ed OB 22. In questi blocchi è possibile definire un programma STEP 5 per il relativo tipo di avviamento desiderato.

È possibile, per esempio:

impostare merker,

attivare temporizzatori (l'attivazione viene ritardata dal programma di sistema fino al passaggio in RUN),

predisporre lo scambio di dati della CPU con le unità periferiche,

sincronizzare i CP.

NUOVO AVVIAMENTO:

Quando la CPU realizza un NUOVO AWIAMENTO MANUALE o AUTOMATICO, il programma di sistema richiama una volta I'OB 20. In esso è possibile definire un programma STEP 5 che esegua prima della normale elaborazione ciclica determinate attività per un nuovo inizio dell'elaborazione ciclica.

Dopo l'elaborazione dell'OB 20 incomincia l'elaborazione ciclica del programma tramite la chiamata dell'OB 1 o della FB O. Se il blocco OB 20 non è programmato, alla fine del NUOVO AWIAMENTO (dopo le attività del sistema), la CPU inizia subito con l'elaborazione ciclica del programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 162: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

RIAVVIAMENTO MANUALE o NUOVO AVVIAMENTO MANUALE CON MEMORZA:

Quando la CPU realizza un RIAWIAMENTO o un NUOVO AWIAMENTO CON MEMORIA effettuati manualmente, il programma di sistema richiama una volta I'OB 21. In esso è possibile definire un programma STEP 5 che svolge determinate attività per una ripresa dell'elaborazione ciclica.

VVLQJENTO MANUAT ,E,

Dopo l'elaborazione dell'OB 21, in RIAWIAMENTO MANUALE l'elaborazione ciclica riprende dal punto di interruzione con la successiva istruzione:

I1 segnale BASP (inibizione delle uscite) rimane attivo durante l'elaborazione della parte di ciclo rimanente e viene reimpostato solo all'inizio del successivo (e completo) ciclo.

L'immagine di processo delle uscite viene reimpostata alla fine del ciclo rimanente.

Se I'OB 21 non è programmato, alla fine del RIAWIAMENTO MANUALE (dopo le attività del sistema) la CPU inizia subito l'elaborazione del programma dal punto in cui si era interrotta.

Avvertenza La CPU riconosce una caduta di tensione (NAU o PEU) anche se verificatasi nello stato di STOP. Realizzando quindi un RIAVVIAMENTO MANUALE, la CPU richiama I'OB 22 prima dell'OB 21. Realizzando invece un NUOVO AVVIAMENTO MANUALE, lo stato precedente della CPU viene ignorato e I'OB 22 non viene richiamato.

N u o v o AVVIAMENTO MANUATjE CON MEMQlW

Se nel DX O è stato predisposto un "NUOVO AWIAMENTO CON MEMORIA", dopo l'elaborazione dell'OB 21 il programma di sistema realizza un NUOVO AVVIAMENTO (la CPU riprende l'elaborazione del programma dalla prima istruzione STEP 5 del190B 1 o del FB O) nel quale restano conservati gli stati dei merker, dei merker di accoppiamento e dei semafori. Anche la lista degli indirizzi di blocchi (DB 0) viene conservata.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 163: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

OB 22 RIAVVIAMENTO AUTOMATICO o NUOVO AVVIAMENTO AUTOMATICO CON MEMORIA:

Quando la CPU realizza un RIAWIAMENTO AUTOMATICO o un NUOVO AWIAMENTO AUTOMATICO CON MEMORIA, il programma di sistema richiama una volta I'OB 22. In esso è possibile definire un programma STEP 5 che svolge determinate attività (di solito dopo una caduta della tensione) per una ripresa dell'elaborazione ciclica precedentemente interrotta in RUN.

Dopo un ritorno della tensione di alimentazione, la CPU esegue in RIAWIAMENTO le funzioni di sistema già descritte e cerca di continuare il programma interrotto dal punto di interruzione.

Nel far ciò viene innanzitutto richiamato I'OB 22 (se caricato). Dopo l'elaborazione dell'OB 22 l'elaborazione ciclica interrotta viene ripresa dall'istruzione successiva al punto di interruzione.

I1 ritorno della tensione di rete dopo una sua caduta provoca:

I1 segnale BASP (inibizione delle uscite) rimane attivo durante l'elaborazione della parte di ciclo rimanente e viene reimpostato solo all'inizio del primo ciclo completo.

L'immagine di processo delle uscite viene reimpostata alla fine del ciclo rimanente.

NUOVO AVVIAMENTO AUTOMBTICO CON MEMQRIA

Se nel DX O è stato predisposto un "NUOVO AWIAMENTO CON MEMORIA", dopo l'elaborazione dell'OB 22 il programma di sistema realizza un NUOVO AVVIAMENTO CON MEMORIA (la CPU riprende l'elaborazione del programma dalla prima istruzione STEP 5 de1190B 1 o de119FB O) nel quale restano conservati gli stati dei merker, dei merker di accoppiamento e dei semafori. Anche la lista degli indirizzi di blocchi (DB O) viene conservata.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 164: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.4.5 Interruzioni in AWIAMENTO

Introduzione Un programma di awiamento può essere interrotto da:

NAU (caduta della tensione di alimentazione) o PEU (caduta della tensione di alimentazione dell'apparecchiatura di ampliamento),

selezione di STOP con il commutatore, comando di STOP, MP-STP o PG-STP,

oppure

errori software ed hardware (vedere paragrafo 5.6).

Se l'avviamento interrotto deve essere ripreso con uno dei tre possibili avviamenti, si deve fare attenzione ai seguenti punti:

Caduta di In caso di caduta di tensione durante l'AVVIAMENTO e quindi ritorno di tensione durante tensione, si devono distinguere i casi riportati nella seguente tabella: I'AWIAMENTO

Modo di funzionamento impostato: RIAVVIAMENTO AUTOMATICO

La CPU sta realizzando un NUOVO AVVIAMENTO (OB 20): dopo una caduta di tensione seguita da un ntorno di alimentazione, il blocco organizzativo OB 22 (RiAWIAMENTO AUTOMATICO) viene annidato nell'OB 20 nel punto di interruzione.

La CPU sta realizzando un RIAVVIAMENTO MANUALE (OB 21): dopo una caduta di tensione seguita da un ntorno di alimentazione, il blocco organizzativo OB 22 (RiAWIAMENTO AUTOMATICO) viene annidato nell'OB 21 nel punto di interruzione.

La CPU sta realizzando un RIAVVIAMENTO AUTOMATICO (OB 22): dopo una caduta di tensione seguita da un ntorno di alimentazione, non viene annidato il secondo OB 22: I'OB 22 interrotto non viene continuato al ntorno della tensione, bensì interrotto e quindi viene immediatamente elaborato il nuovo OB 22.

Modo di funzionamento impostato: NUOVO AVVIAMENTO AUTOMATICO

LA CPU sta realizzando un NUOVO AWIAMENTO MANUALE o AUTOMATICO oppure un RiAWIAMENTO MANUALE:

dopo una caduta di tensione seguita da un ntorno di alimentazione, non viene continuato I'OB 20 o I'OB 21 interrotto; esso viene abbandonato e segue un nuovo richiamo ed elaborazione dell'OB 20.

Le stesse regole valgono per un RIAWIAMENTO AUTOMATICO che segue un segnale PEU.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 165: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

RIAWIAMENTO Se la CPU va in STOP dopo un qualsiasi tipo di avviamento (per esempio tramite MANUALE dopo selettore o ADE) e se viene quindi realizzato un RIAWIAMENTO l'interruzione di MANUALE, 1'AWIAMENTO interrotto viene continuato dal punto di un AWIAMENTO interruzione. Non viene annidato alcun OB 21.

NUOVO Se la CPU va in STOP dopo un qualsiasi tipo di avviamento e se viene quindi AWIAMENTO richiesto un NUOVO AWIAMENTO MANUALE, 1'AWIAMENTO MANUALE dopo interrotto viene terminato e quindi realizzato un NUOVO AWIAMENTO. Nel I'interruzione di far ciò viene richiamato I'OB 20 (se programmato). un AWIAMENTO

Interruzione di Un NUOVO AWIAMENTO CON MEMORIA viene interrotto da: un NUOVO AWIAMENTO NAU (caduta della tensione di alimentazione) o PEU (caduta della tensione CON MEMORIA di alimentazione dell'apparecchiatura di ampliamento),

selezione di STOP con il commutatore, comando di STOP, MP-STP o PG-STP

oppure

errori software ed hardware (vedere paragrafo 5.6).

Un NUOVO AWIAMENTO CON MEMORIA interrotto non viene ripreso al successivo riavviamento, bensì iniziato un nuovo NUOVO AWIAMENTO CON MEMORIA.

Alla selezione del modo di avviamento non viene considerato lo stato precedente.

In particolare vale:

Quando un NUOVO AWIAMENTO CON MEMORIA MANUALE o AUTOMATICO viene interrotto da una caduta della tensione di rete (NETZ AUS) o da una caduta della tensione di alimentazione dell'apparecchiatura di ampliamento, al ritorno della tensione (NETZ EIN) segue sempre un NUOVO AWIAMENTO CON MEMORIA AUTOMATICO se tutte le altre condizioni di avviamento sono state considerate.

Quando un NUOVO AWIAMENTO CON MEMORIA MANUALE o AUTOMATICO viene interrotto da una delle altre possibili cause di interruzione, allora segue un NUOVO AWIAMENTO CON MEMORIA MANUALE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 166: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.5 Stato di funzionamento RUN

Caratteristiche Quando la CPU ha terminato l'elaborazione di un AWIAMENTO (e solo in questo caso) si porta nello stato di funzionamento RUN. Questo stato di funzionamento è contraddistinto dalle seguenti caratteristiche:

Elaborazione del programma utente

I1 programma utente nell'OB 1 o nell'FB O viene elaborato ciclicamente, nel far ciò è possibile, su interrupt di processo, annidare anche altre parti del programma.

Temporizzatori, contatori, immagine di processo

Tutti i contatori e temporizzatori attivati nel programma funzionano, le immagini di processo vengono aggiornate ciclicamente.

BASP

I1 segnale BASP (inibizione delle uscite) è inattivo. Tutte le uscite digitali sono abilitate.

Merker di accoppiamento

I merker di accoppiamento - se programmati nel DB 1 - vengono aggiornati ciclicamente.

LED sull'unità centrale:

LED RUN: acceso LED STOP: spento LED BASP: spento

Avvertenza Se prima del passaggio allo stato RUN è stato eseguito un RIAWIAMENTO AUTOMATICO o MANUALE, il LED BASP si spegne solo quando la parte rimanente del ciclo è stata completata e l'immagine di processo è stata aggiornata. Lo stato RUN viene raggiunto solo dopo lo stato AVVIAMENTO.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 167: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Livelli di Nello stato di funzionamento RUN sono possibili 14 livelli di elaborazione elaborazione fondamentali: programma

CICLO:

il programma utente viene elaborato ciclicamente.

ALLARME DALL'OROLOGIO:

il programma applicativo viene elaborato ad intervalli predefiniti oppure ad una certa ora (allarme comandato dall'orologio).

9 ALLARMI DI SCHEDULAZIONE

il programma utente viene elaborato ad intervalli fissi, gestiti dal sistema.

ALLARME DI RITARDO:

il programma utente viene elaborato una sola volta dopo che è trascorso il tempo di ritardo predefinito.

ALLARME DI REGOLAZIONE:

viene elaborato un certo numero di regolazioni.

ALLARME DI PROCESSO:

il programma utente viene elaborato su interrupt di processo.

I livelli di elaborazione si differenziano nei seguenti punti:

Essi vengono attivati da eventi diversi.

In ogni livello di elaborazione sono disponibili diversi blocchi organizzativi o funzionali come interfaccia utente.

In una CPU 928B possono essere programmati contemporaneamente tutti i livelli di elaborazione base. Ogni livello viene richiamato dal programma di sistema secondo la sua priorità impostata e relativamente agli eventi verificatisi (vedere capitolo 4.2).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 168: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.5.1 Elaborazione ciclica del programma

Introduzione Nei controllori programmabili solitamente prevale l'elaborazione ciclica del programma (livello CICLO). Si tratta di un "ciclo libero", cioè al raggiungimento della fine del ciclo incomincia subito la successiva elaborazione ciclica (vedere figura 4.6).

Realizzazione

Principio

Se la CPU ha concluso la fase di avviamento senza errori, può iniziare l'elaborazione ciclica.

Principio dell'elaborazione ciclica del programma (funzioni del programma di sistema):

dall'avviamento

4 * Attivazione del controllo del tempo di ciclo

Aggiornamento dei merker di accoppiamento di ingresso

Aggiornamento dell'immagine di processo degli ingressi (IPI)

Richiamo del programma utente ciclico (OB 1 o FB O)

Programma utente

compresi gli annidamenti degli altri livelli di

elaborazione base

Emissione dell'immagine di processo delle uscite (IPU)

Aggiornamento dei merker di accoppiamento di uscita

Funzioni di sistema, per esempio, caricare o cancellare blocchi, comprimere blocchi ...

Figura 4-6 Elaborazione ciclica del programma

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 169: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Interfaccia Per l'elaborazione ciclica del programma viene regolarmente richiamato il utente: blocco organizzativo OB 1 o il blocco funzionale FB O. I1 programma utente O B l o F B O STEP 5 nell'OB 1 o FB O viene elaborato dall'inizio e continua eseguendo le

chiamate agli altri blocchi fino alla fine. Dopo l'esecuzione delle funzioni del programma di sistema la CPU ricomincia dall'inizio con la prima istruzione STEP 5 in OB 1 (o in FB O).

Nell'OB 1 si devono programmare i richiami dei blocchi di programma, funzionali e sequenziali che devono essere elaborati nel programma ciclico.

Qualora si debba scrivere un programma corto e veloce e per il quale si possa rinunciare alla strutturazione del programma, è possibile utilizzare il blocco FB 0: esso permette di impiegare l'intero repertorio di istruzioni STEP 5 e di evitare il richiamo di altri blocchi e quindi di ridurre il tempo di esecuzione del programma.

Avvertenza Bisogna programmare o OB 1 o FB O. Se vengono programmati entrambi, il programma di sistema richiama solo I'OB 1. Se per il funzionamento ciclico viene usato il blocco FB 0, esso non deve essere parametrizzato.

Punti di interruzione

L'elaborazione ciclica del programma può essere interrotta alla fine di un blocco da:

un'elaborazione del programma su interrupt di processo,

una regolazione,

un'elaborazione del programma su interrupt periodico.

Avvertenza Tramite la parametrizzazione del blocco DX O è possibile abilitare questa interruzione anche ad ogni comando (vedere capitolo 7).

L'elaborazione ciclica può essere comunque interrotta (anche definitivamente) ad ogni comando:

da un errore hardware o software

dall'operatore (funzione PG, commutatore dei modi di funzionamento, MP-STP).

da un comando di STOP

Accumulatori I 4 accumulatori deiia CPU 928B possono essere usati, dalla fine di un ciclo di come memoria programma all'inizio del successivo, come memoria dati. dati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 170: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.5.2 Elaborazione di un programma su interrupt periodico

Introduzione Un'elaborazione su interrupt periodico avviene quando un segnale proveniente da un orologio o un impulso interno comunica alla CPU di interrompere l'elaborazione ciclica e di eseguire uno specifico programma. Terminata l'elaborazione di questo programma, la CPU ritorna nel programma ciclico nel punto dove questo era stato interrotto e da lì prosegue l'elaborazione. Grazie a ciò, nel programma ciclico vengono inserite automaticamente determinate parti di programma ad intervalli precisi.

Per quanto riguarda l'elaborazione di programmi su interrupt periodico esistono diverse possibilità:

Generazione una sola volta secondo un tempo di ritardo liberamente scelto nell'area di millisecondi: un "allarme di ritardo" (livello di elaborazione ALLARME DI RITARDO). Tramite questo allarme viene richiamato il blocco organizzativo OB 6.

Generazione ad intervalli di tempo liberamente scelti o in un determinato istante: un "allarme di schedulazione comandato dall'orologio" (livello di elaborazione ALLARME DALL'OROLOGIO). Tramite questo allarme viene richiamato il blocco organizzativo OB 9.

Generazione in 9 intervalli diversi tra 10 ms e 5 s tramite "allarmi a tempo" (livello di elaborazione ALLARME DI SCHEDULAZIONE). Ad ogni allarme è associato un diverso blocco organizzativo (da OB 10 ad OB 18). Tutto ciò viene eseguito in forma ciclica, cioè il tempo che intercorre tra due attivazioni consecutive del programma è sempre lo stesso.

Allarme di ritardo Con l'allarme di ritardo della CPU 928B è anche possibile definire piccoli intervalli di tempo con una risoluzione di 1 ms. Quando è trascorso il tempo impostato, il programma di sistema richiama una volta I'OB 6.

Realizzazione Un allarme di ritardo viene generato grazie al richiamo del blocco organizzativo speciale OB 153 (vedere paragrafo 6.12). Quando il tempo di ritardo parametrizzato con I'OB 153 è trascorso, il programma di sistema interrompe l'elaborazione del programma in corso e richiama I'OB 6 (livello di elaborazione programma ALLARME DI SCHEDULAZIONE). I1 programma interrotto viene quindi ripreso dal punto di interruzione.

Interfaccia utente Come interfaccia utente, in caso di un allarme di ritardo, viene richiamato I'OB 6. OB 6 Neii'OB 6 va depositato il programma STEP 5 che deve essere elaborato in questo

caso. Se I'OB 6 non è programmato, l'elaborazione del programma non viene interrotta.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 171: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Punti di L'elaborazione di un allarme di ritardo può essere interrotta alla fine di un blocco interruzione oppure alla fine di un comando (parametrizzazione del DX 0) tramite:

l'elaborazione di un allarme di processo.

L'elaborazione di un allarme di ritardo può essere comunque interrotta (anche definitivamente) ad ogni comando:

da un errore hardware o software,

dall'operatore (funzione PG, commutatore dei modi di funzionamento, MP-STP),

da un comando di STOP.

Particolarità

Allarme dall'orologio

Un allarme di ritardo viene elaborato solo nello stato di funzionamento RUN.

Un allarme di ritardo una volta generato (= richiamo dell'OB 153 è stato elaborato), non si conserva al passaggio in STOP e in caso di MANCANZA DI TENSIONE;

Un allarme di ritardo può essere generato sia in AWIAMENTO sia in RUN (richiamo dell'OB 153).

Definendo un nuovo allarme di ritardo, cioè richiamando I'OB 153 con nuovi parametri, altri eventuali allarmi di ritardo precedentemente impostati vengono cancellati. Se però se ne sta elaborando uno proprio in quell'istante, esso viene portato a termine. Quindi è sempre valido un solo allarme di ritardo.

Se si presenta un allarme di ritardo senza che uno precedente sia stato completamente elaborato, quello nuovo va perso. Gli allarmi di ritardo non vengono controllati circa la correttezza del loro richiamo.

Con i blocchi speciali OB 120 ed OB 122 si può inibire o ritardare l'elaborazione degli allarmi di ritardo.

Sulla CPU 928B è integrato un orologio tamponato (tamponamento centralizzato tramite l'alimentatore dell'apparecchiatura centrale) che può essere impostato e letto tramite programma STEP 5. Tramite tale orologio è possibile elaborare una parte di programma su interrupt periodico.

L'allarme di ritardo viene utilizzato per processi veloci, mentre l'allarme di schedulazione è particolarmente adatto per l'elaborazione di processi unici o di processi che si presentano periodicamente a grandi intervalli di tempo, per esempio: ogni ora, ogni giorno o ogni lunedì. Se l'istante predefinito è raggiunto, il programma di sistema richiama I'OB 9.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 172: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Realizzazione Un allarme di schedulazione viene generato grazie al richiamo del blocco organizzativo speciale OB 151 (vedere paragrafo 6.10). Quando l'istante definito nell'OB 151 viene raggiunto (un'ora, una data), viene generato l'allarme. Questo può awenire una sola volta (istante fisso) oppure può ripetersi (ad intervalli regolari). Non appena viene generato l'allarme, il programma di sistema interrompe l'elaborazione del programma in corso e richiama I'OB 9 (livello di elaborazione programma ALLARME DALL'OROLOGIO). I1 programma interrotto viene alla fine ripreso dal punto di interruzione.

ostazione tramite OB 151:

TIPO DI INTERVALLO 1 (ogni minuto)

Interfaccia utente Come interfaccia operatore, in caso di allarme di schedulazione viene richiamato OB 9 I'OB 9. Nell'OB 9 va messo il programma STEP 5 che deve essere elaborato in

questo caso. Se I'OB 9 non è presente, l'elaborazione del programma non viene interrotta.

Interruzioni L'elaborazione di un allarme di schedulazione può essere interrotta alla fine di ogni blocco oppure ad ogni istruzione (parametnzzazione di DX O):

dall'elaborazione di un allarme di processo,

dall'elaborazione di un allarme di ritardo,

dall'elaborazione di un allarme di regolazione.

L'elaborazione può essere interrotta (anche definitivamente) ad ogni comando:

da un errore hardware o software,

dall'operatore (funzione PG, commutatore dei modi di funzionamento, MP-STP),

da un comando di STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 173: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Particolarità Un allarme di schedulazione viene elaborato solo nello stato di funzionamento RUN. Allarmi di questo tipo che si presentino in STOP, durante una mancanza di alimentazione o in AVVIAMENTO vanno persi.

Un allarme di schedulazione generato (= richiamo OB 151) dopo una CANCELLAZIONE TOTALE ed un NUOVO AWIAMENTO rimane presente anche in caso di RIAWIAMENTO e di una MANCANZA/RITORNO DI TENSIONE.

Definendo un nuovo allarme di schedulazione, cioè richiamando I'OB 151 con nuovi valori, altri eventuali allarmi precedentemente impostati vengono cancellati. Se però se ne sta elaborando uno proprio in quell'istante, esso viene portato a termine. Quindi è sempre valido un solo allarme di schedulazione.

Se si presenta un allarme di schedulazione senza che il precedente sia stato completamente elaborato, il nuovo va perso. Gli allarmi di schedulazione non vengono controllati circa la correttezza del loro richiamo!

Con i blocchi speciali OB 120 ed OB 122 si può inibire e rispettivamente ritardare l'elaborazione degli allarmi comandati dall'orologio.

Allarmi di schedulazione

Realizzazione

Elaborazione di un programma ad intervalli fissi:

Nella CPU 928B è possibile fare elaborare fino a 9 diversi programmi su interrupt periodico, ognuno dei quali funziona con una diversa base di tempo.

Un allarme di schedulazione viene attivato automaticamente secondo la sua base di tempo se il corrispondente OB è stato programmato.

Interfacce utente Al presentarsi di un determinato allarme di schedulazione, alla fine del blocco (o comando) corrente, viene richiamato il relativo blocco organizzativo.

Assegnazione delle basi di tempo degli allarmi di schedulazione ai relativi OB:

Tabella 4-3 Assegnazione "Base di tempo - OB richiamato"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Base di tempo

10 ms 20 ms 50 ms 100 ms 200 ms 500 ms

l s 2 s 5 s

OB richiamato

OB 10 Priorità OB 11 decrescente OB 12 OB 13 OB 14 OB 15 OB 16 OB 17 OB 18

.

Page 174: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Per esempio, in OB 13 va inserito il programma che deve essere elaborato ogni 100 ms nel normale programma ciclico.

Avvertenza In generale, gli OB con una base di tempo più corta hanno una priorità più alta e possono interrompere quelli con una base di tempo più lunga!

Tempo trascorso Ad ogni richiamo di un blocco organizzativo per l'allarme di schedulazione (da dall'ultima OB 10 ad OB 18), in ACCU 1 viene comunicato quante basi di tempo sono elaborazione trascorse dall'ultimo richiamo di quell'OB. Al riguardo vale: allarme

ACCU 1 : = numero delle basi di tempo - 1

Se, per esempio, richiamando I'OB 11, in ACCU 1 è contenuto il valore "5" , ciò significa che dall'ultimo richiamo dell'OB 11 sono trascorsi 120 ms (6 basi di tempo). Fintantoché non si verifica alcun errore per collisione di interrupt temporali, in ACCU 1 si trova il valore "0".

Interruzioni L'elaborazione di un allarme du schedulazione può essere interrotta o alla fine di un blocco (predisposizione standard) oppure ad ogni comando (tramite la programmazione del DX O) da:

l'elaborazione di un allarme di processo,

l'elaborazione di un allarme di ritardo,

l'elaborazione di un allarme di regolazione,

una rielaborazione di un allarme di schedulazione.

L'elaborazione del programma su interrupt periodico può essere interrotta ad ogni comando da:

un errore hardware o software

l'operatore (funzione PG, commutatore dei modi di funzionamento, MP-STP)

un comando di STOP

Avvertenza Un'elaborazione programma su interrupt periodico non può essere interrotto dallo stesso programma su interrupt periodico (errore per collisione di interrupt temporali)!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 175: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Errore per Se I'OB di un determinato allarme di schedulazione non è stato ancora collisione di completamente elaborato e viene richiamato una seconda volta, si verifica un interrupt errore per collisione di interrupt temporali. Esso si verifica anche qualora un temporali certo OB viene richiamato la seconda volta senza che la prima chiamata sia stata (WECK-FE) elaborata. Ciò è possibile se, per esempio, è impostato "interruzione allarmi di

schedulazione elaborati alla fine di ogni blocco" ed il programma STEP 5 è composto da blocchi molto lunghi. Al presentarsi di un errore per collisione di interrupt temporali si attiva il livello di elaborazione WECK-FE ed il programma di sistema richiama I'OB 33. In questo blocco è possibile programmare la reazione desiderata per questa situazione.

Se I'OB 33 non è caricato, la CPU si porta in STOP al verificarsi di un errore. Richiamando la funzione "EMISSIONE USTACK" sul dispositivo di programmazione, il bit di controllo WECK-FE appare contrassegnato da una crocetta, e come livello (EBENE) viene emesso l'identificatore del corrispondente errore per collisione di interrupt temporali.

Richiamando I'OB 33, il programma di sistema deposita in ACCU 1 e 2 delle informazioni supplementari che aiutano ad identificare più dettagliatamente il primo errore verificatosi:

Tabella 4-4 Identificaton di errori per collisione di interrupt temporali

L'identificatore in ACCU-2-L è l'identificatore del livello dell'allarme di schedulazione che ha causato l'errore (vedere paragrafo 5.4).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Spiegazione

Errore per collisione di interrupt temporali dell'OB 10

(10 ms)

Errore per collisione di interrupt temporali dell'OB 11

(20 ms)

Errore per collisione di interrupt temporali dell'OB 12

(50 ms)

Errore per collisione di interrupt temporali dell'OB 13

(100 ms)

Errore per collisione di interrupt temporali dell'OB 14

(200 ms)

Errore per collisione di interrupt temporali dell'OB 15

(500 ms)

Errore per collisione di interrupt temporali dell'OB 16

(1 s) Errore per collisione di interrupt temporali dell'OB 17

(2 s) Errore per collisione di interrupt temporali dell'OB 18

(5 s)

Identificatore

ACCU-1-L

1001H

1001H

1001H

1001H

1001H

1001H

1001H

1001H

1001H

ACCU-2-L

0016H

0014H

0012H

0010H

000EH

000CH

000AH

0008H

0006H

Page 176: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Continuazione Se l'elaborazione deve continuare anche al verificarsi di un errore per collisione dell'elaborazione di interrupt temporali, esistono due possibilità: introducendo il comando di fine programma dopo blocco "BE" nell'OB 33, oppure cambiando la predisposizione nel DX O, in errore per modo che al verificarsi di un errore, anche senza la programmazione dell'OB 33, collisione di l'elaborazione del programma continui. interrupt Dopo l'elaborazione dell'OB 33 il programma riprende dal punto di interruzione temporali dell'OB 13.

Avvertenze Circa l'elaborazione di programmi su interrupt periodico, è opportuno anche conoscere il funzionamento dei nuovi blocchi organizzativi speciali da OB 120, OB 121, OB 122 e OB 123, con i quali è possibile disattivare o ritardare l'elaborazione degli allarmi di schedulazione per una certa parte del programma (ciò è possibile per alcuni o per tutti gli allarmi di schedulazione programmati).

Minore è la base di tempo utilizzata per l'elaborazione di allarmi di schedulazione, e maggiore è il pericolo di errori: allarmi con base di tempo corta, per esempio, di 10 o 20 ms richiedono solitamente di essere elaborati ad ogni comando. Ciò richiede inoltre che anche gli allarmi per la regolazione e di processo siano impostati per essere elaborati ad ogni comando (vedere capitolo 7, parametrizzazione del DX O).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 177: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.5.3 Allarme di regolazione: elaborazione di regolazioni

Introduzione Nella CPU 928B accanto alle elaborazioni cicliche, su interrupt periodico e su interrupt di processo, è possibile anche una ulteriore elaborazione di regolazioni. I1 programma, sia ciclico o su interrupt periodico, viene interrotto con una frequenza determinata dall'utente (= tempo di campionamento) e quindi viene elaborato il programma per la regolazione. Fatto ciò, la CPU torna nel punto dove il programma in esecuzione era stato interrotto, e lo continua.

Realizzazione Un allarme per la regolazione viene attivato secondo il tempo di campionamento definito dall'utente.

Funzioni del programma di sistema:

gestisce il blocco organizzativo per l'elaborazione della regolazione,

aggiorna l'immagine di processo della regolazione.

Interfaccia Per la realizzazione di una regolazione, viene richiamato il blocco funzionale utente: blocco standard R64. Esso rende possibile l'elaborazione di un numero massimo di 64 funzionale regolazioni con l'aiuto del blocco DB 2 per la parametnzzazione dei regolaton. standard Per ogni regolatore deve essere parametrizzato un blocco dati. Nel DB 2, detto "Struttura di lista di regolazione, si definisce quale regolatore deve essere elaborato dal regolazione R64" programma di sistema ed in quale momento. I1 DB 2 è riservato per tale compito!

(Uno speciale pacchetto software, il "COM REG", è di notevole aiuto per la parametrizzazione, la messa in servizio e la fase di test del blocco funzionale standard R64; vedere il catalogo ST 59 191.)

Interruzioni L'elaborazione di una regolazione può essere interrotta o alla fine di ogni blocco (predisposizione standard) o ad ogni comando (programmazione del DX O) da:

l'elaborazione di un allarme di processo,

l'elaborazione di un allarme di ritardo.

Essa può essere interrotta (anche definitivamente) ad ogni comando:

da un errore hardware o software,

dall'operatore (funzione PG, commutatore dei modi di funzionamento, MP-STP),

dal comando di STOP "STP"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 178: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.5.4 Allarme di processo: elaborazione di un programma su interrupt di processo

Introduzione L'elaborazione di un programma attivato su allarme ha luogo quando un segnale sul bus S5 proveniente da una unità digitale d'ingresso abilitata all'interrupt (p.es. 6ES5 432-4UAxx) oppure da una unità intelligente IP che lo utilizza, richiede alla CPU di interrompere la normale elaborazione del programma e di eseguire una speciale parte di programma. Dopo l'elaborazione di questo programma, la CPU ritorna al punto d'interruzione e da lì prosegue l'elaborazione.

L'analisi degli allarmi di processo può avvenire su un livello o su un fronte del segnale. Essa può essere inibita, ritardata o abilitata a livello di programma. L'OB 2 può interrompere l'elaborazione del programma in corso alla fine di un blocco o di un comando (programmazione del DX O).

Realizzazione Lo stato attivo di un collegamento di interrupt sul bus S5 provoca l'allarme di processo. In dipendenza del posto connettore, ad ogni CPU è associato uno dei collegamenti di interrupt (vedere il manuale di sistema).

Interfaccia utente: OB 2

Interruzioni

Al verificarsi di un allarme di processo viene richiamato il blocco OB 2. In questo blocco va inserito lo specifico programma che deve essere elaborato nel caso di un allarme di processo.

Se I'OB 2 non è stato caricato, l'elaborazione normale non viene interrotta e non viene elaborato alcun programma su interrupt di processo.

Un programma su interrupt di processo può essere interrotto solo:

da un errore hardware o software (alla fine dei comandi)

dall'operatore (funzione PG, commutatore dei modi di funzionamento, MP-STP).

da un comando di STOP.

Avvertenza L'elaborazione di un programma su interrupt di processo non può essere interrotta né da un programma su interrupt periodico né da un altro programma di allarme!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 179: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Allarmi ripetuti Se durante l'elaborazione di un programma su interrupt di processo, si presentano nuovi allarmi di processo, essi vengono ignorati fintantochè I'OB 2 non è stato completamente elaborato (inclusi tutti i blocchi richiamati nell'OB 2). Quindi la CPU ritorna al punto di interruzione e continua ad elaborare il programma fino alla successiva fine di blocco o di comando. Solo allora viene accettato il nuovo allarme e quindi nuovamente richiamato I'OB 2. Grazie a ciò, anche in presenza di allarmi continui, il programma ciclico viene elaborato.

Avvertenze Allarmi ripetuti non vengono riconosciuti.

L'OB 2 viene richiamato anche se al raggiungimento della fine del blocco nel programma da interrompere lo stato del collegamento di interrupt è nuovamento passivo.

Allarmi di processo che si presentano durante l'elaborazione dell'OB 2 e che sono più brevi dell'elaborazione dell'OB 2 (se viene controllato il livello), non vengono riconosciuti.

Lo stato del segnale di interrupt tra l'attivazione e la fine dell'OB 2 (comando BE) non è rilevante.

Segnale dell'allarme di processo: controllo del livello

Nella CPU 928B, il segnale dell'allarme di processo viene controllato sul suo livello. Cioè: lo stato attivo del collegamento di interrupt imposta una richiesta che provoca l'elaborazione dell'OB 2 alla fine del blocco o del comando corrente (a seconda della parametrizzazione nel DX O).

In ter rupt j LT Eit;o

Al larme di processo 7 17 17 ( f n e d i blocco) , .

, . , . , . , .

c i c l o 1 A A A

A = Fine di b locco

Figura 4-7 Allarmi di processo con controllo del livello

L'OB 2 richiamato viene completamente elaborato. Se alla fine dell'OB 2 il segnale di interrupt è ancora, o nuovamente, attivo, viene elaborato un blocco del programma ciclico (solo per interruzioni alla fine di un blocco) e quindi viene richiamato nuovamente I'OB 2. Se invece il livello non è più attivo, I'OB 2 viene richiamato solo al verificarsi di un altro cambio dello stato del segnale da passivo ad attivo.

Stati attivi del segnale di interrupt prima dell'elaborazione del comando BE (fine blocco) dell'OB 2 sono irrelevanti.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 180: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Segnale dell'allarme di processo: controllo del fronte

Inibizione dell'elaborazione attivata da allarmi di processo

Questo funzionamento può essere selezionato programmando il DX O. Dopo l'elaborazione dell'OB 2 un nuovo allarme di processo viene determinato solo da un nuovo cambio dello stato (da passivo ad attivo) del segnale. L'elaborazione del comando BE (fine blocco) dell'OB 2 deve essere seguita da un "cambio del segnale da inattivo ad attivo" del segnale di interrupt per generare l'allarme di processo.

Interrupt 1 inatt ivo att ivo

Allarme di processo 17 17 ( f ~ n e d blocco)

c i c l o i A = Fine di blocco

Figura 4-8 Allarme di processo con controllo del fronte

Un programma attivato da un allarme di processo viene inserito nel programma ciclico alla fine di un blocco o di un comando STEP 5. Questa interruzione può avere un effetto negativo se una parte del programma ciclico deve essere elaborata entro un determinato tempo (per esempio per ottenere un certo tempo di reazione) oppure se una sequenza di comandi non deve essere interrotta (p.es. durante la lettura o scrittura di valori tra loro connessi).

Quando una parte di programma non deve essere interrotta da un programma su interrupt di processo, esistono le seguenti possibilità di programmazione:

Programmare questa parte di programma in modo che essa non contenga alcun cambio di blocco mantenendo contemporaneamente la predisposizione del DX O (cioè allarmi di processo elaborati alla fine di blocco). Le parti di programma che non contengono cambi di blocco non possono quindi essere interrotte.

Programmare il comando STEP 5 "AS" (inibizione degli allarmi di processo). Con il comando "AF" (abilitazione degli allarmi di processo) è poi possibile riabilitare l'elaborazione su allarme. Tra questi due comandi non viene elaborato alcun programma su interrupt di processo e quindi il programma al loro interno non può essere interrotto da allarmi di processo. "AS" e "AF" sono utilizzabili solo nei blocchi funzionali (repertorio di funzioni ampliato)!

Usare i nuovi blocchi organizzativi speciali OB 120 ed OB 122 per inibire o ritardare l'elaborazione di allarmi di processo per una specifica parte del programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 181: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

4.5.5 Richiesta contemporanea di un'elaborazione su interrupt di processo e su interrupt periodico

Priorità Se durante l'elaborazione di un programma su interrupt periodico si verifica un allarme di processo, il programma viene interrotto al successivo punto possibile (cioè alla fine del blocco o del comando) e quindi viene elaborato l'allarme di processo. Dopo viene completata l'elaborazione del programma su interrupt periodico.

Se durante l'elaborazione di un programma su interrupt di processo si verifica un allarme di schedulazione, viene dapprima completata l'elaborazione del programma su interrupt di processo e quindi viene elaborato il programma su interrupt periodico.

Se si verificano contemporaneamente un allarme di processo ed uno di schedulazione, al successivo punto di interruzione viene attivato il programma relativo all'allarme di processo. Solo quando è terminato questo programma viene considerato l'allarme di schedulazione in attesa.

La figura 4-9 illustra l'interruzione di un programma alla fine di un blocco tramite un programma su interrupt periodico o su interrupt di processo.

PB Punto di interruzione in cui un programma di priorità più alta può essere inserito in un programma ciclico, su interrupt di processo e su interrupt periodico.

L'elaborazione di un programma su interrupt periodico può essere interrotta solo da quella

ciciico di un programma su interrupt di processo e non al contrario.

i- su interrupt periodico

l su interrupt di processo

Figura 4-9 Interruzione di programmi alla fine dei blocchi

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 182: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Stati di funzionamento e livelli di elaborazione oroaramma

Tempo di I1 tempo di reazione ad un allarme di schedulazione corrisponde al tempo di reazione elaborazione di un blocco o di un comando STEP 5 (a seconda della

predisposizione). Se però al momento dell'interruzione del programma ciclico sono presenti degli allarmi di processo, il programma su interrupt periodico viene elaborato solo quando i programmi relativi a tutti gli allarmi di processo sono stati completamente elaborati.

I1 tempo di reazione massimo tra il presentarsi e l'elaborazione di un allarme di schedulazione cresce in questo caso in relazione al tempo di elaborazione degli allarmi di processo. Per escludere l'errore per collisione di interrupt temporali per un certo OB xy per l'allarme di schedulazione osservare la seguente regola:

A t B t C e D con A = somma dei tempi di elaborazione di tutti i livelli di elaborazione programma con più alta priorità (OB di allarme di processo, di regolazion o di schedulazione)

B = tempo di elaborazione dell'OB xy di allarme di schedulazione

C = tempo di esecuzione del blocco più lungo di tutti i livelli di elaborazione con priorità bassa

D = base di tempo dell'OB xy dell'allarme di schedulazione

Avvertenze Quando il programma utente non viene elaborato soltanto ciclicamente ma anche su interrupt periodico e10 su interrupt di processo, esiste il pericolo che, per esempio, merker utilizzati sia nel programma ciclico che nel programma annidato come merker di appoggio, in caso di interruzione possano essere sovrascntti da un programma su interrupt periodico o su interrupt di processo.

Per questo motivo all'inizio di un programma su interrupt periodico o su allarme si deve prowedere a "salvare" lo stato dei merker (doppia occupazione) in un blocco dati e quindi ripristinarli alla fine dell'elaborazione.

Per tale motivo sono stati preparati quattro blocchi organizzativi speciali: OB 190 e OB 192 per il "trasferimento di merker in blocchi dati", e OB 191 e OB 193 per il "trasferimento di dati nel campo dei merker".

Per evitare la doppia occupazione dei merker è possibile utilizzare i merker S per quasi tutte le applicazioni. Perciò non sono necessarie delle "misure speciali per il salvataggio" di merker (il numero dei merker S disponibile è sempre sufficiente).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 183: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e degli errori

In questo capitolo

Sommario del capitolo

Il presente capitolo dà alcuni consigli su come evitare errori durante la progettazione e la programmazione di un programma STEP 5. Vengono fornite informazioni sui sostegni per l'analisi di errore e le reazioni ad errori messe a disposizione dal programma di sistema ed inoltre vengono descritti i blocchi organizzativi in cui si possono programmare le reazioni desiderate a certi errori.

5.2 I Informazioni di errore

Capitolo

5.1

5.3 1 Bit di comando e registro di interruzione

Argomento trattato

Errori comuni nel programma utente

5.3.1 ( Bit di comando

5.3.2 1 Contenuto del registro di interruzione (USTACK)

Esempi per l'analisi dell'USTACK

Gestione degli errori tramite OB

5.5 I Errori in AWIAMENTO

DBO-FE (errore con DB O)

DB1-FE (errore con DB 1)

5.5.3 1 DB2-FE (errore con DB 2)

DXO-FE (errore con DX O o DX 2)

MOD-FE (errore nella memory card)

5.6 ( Errori in RUN ed in AWIAMENTO

BCF (errore nel codice del comando)

LZF (errore di esecuzione)

5.6.3 ( ADF (errore di indirizzamento)

5.6.4 1 QVZ (ritardo della conferma)

1 5.6.7 1 REO-FE (errore di regolazione)

5.6.5

5.6.6

1 5.6.8 I ABBR (interruzione)

ZYK (errore del tempo di ciclo)

WECK-FE (errore per collisione di interrupt temporali)

Pagina

5.6.9

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Errore di comunicazione (FE-3)

Page 184: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Errori comuni nel oroaramma utente

5.1 Errori comuni nel programma utente

Introduzione I1 programma di sistema può individuare un funzionamento difettoso della CPU, o errori durante l'elaborazione del programma di sistema oppure ancora effetti di una programmazione non corretta da parte dell'utente.

Panoramica La seguente lista contiene un certo numero di errori che si verificano più frequentemente durante la messa in servizio di un programma utente e che possono essere facilmente evitati durante la stesura del programma. Per questi motivi, durante la scrittura, la progettazione e la messa in servizio del programma STEP 5, bisogna fare attenzione ai seguenti punti:

Indirizzando degli ingressi e uscite, si devono avere le relative unità nel telaio centrale o in uno di ampliamento.

Tutti gli operandi devono avere parametri corretti.

Attenzione alle modifiche successive dei blocchi funzionali. Verificare che i blocchi funzionali FB/FX abbiano i parametri corretti e che gli operandi attuali siano definiti.

Uscite, merker, temporizzatori e contatori non devono essere elaborati in punti diversi del programma con operazioni che provochino effetti contrastanti.

I temporizzatori devono essere interrogati solo una volta per ciclo (p.es. U TI).

Tutti i blocchi dati richiamati dal programma devono esistere ed avere una lunghezza sufficiente.

Tutti i blocchi richiamati devono esistere in memoria.

I merker S dovrebbero essere salvati prima di iniziare programmi attivati su allarme o a tempo e ricaricati alla fine dell'elaborazione, qualora essi debbano essere usati da altri blocchi (per esempio FB standard).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 185: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Informazioni di errore

5.2 Informazioni di errore

Panoramica

LED sul lato frontale della CPU

Al verificarsi di un errore durante l'avviamento o l'elaborazione del programma utente, vengono messe a disposizione diverse "fonti di informazione" per poter individuare l'errore, per esempio:

LED sul lato frontale della CPU

Registro di interruzioni USTACK e bit di comando

Dati di sistema BS 3, BS 4 e BS 80

Codici di errore in ACCU 1 ed ACCU 2

Registro di blocco BSTACK

I seguenti paragrafi spiegano come analizzare queste fonti di informazione e come usare le informazioni dell'errore per la definizione dell'errore.

In caso di una situazione di STOP non desiderata, bisogna per prima cosa osservare i LED. Essi possono fornire delle informazioni sulla causa dell'errore:

Funzione online Tramite la funzione online EMISSIONE USTACK sul PG si ottengono EMISSIONE informazioni sullo stato dei bit di comando interni alla CPU e sul contenuto del USTACK registro di interruzione (USTACK).

LED

LED STOP è acceso con luce fissa

LED STOP lampeggia lentamente

LED STOP lampeggia velocemente

LED ADE è acceso con luce fissa

LED QVZ è acceso con luce fissa

LED ZYK è acceso con luce fissa

I1 programma di sistema, quando si verifica un passaggio allo stato di STOP, inserisce nell'USTACK tutte le informazioni necessarie per un riavviamento:

Significato

I diversi tipi di segnalazione del LED STOP sono reazioni a precisi tipi di errore o cause di interruzione. Consultare al riguardo il paragrafo 4.1.

Errore di indirizzamento

Ritardo della conferma

Superamento del tempo di ciclo

i contenuti dei registri,

i contenuti degli accumulatori,

il contatore di indirizzi (IND)

ed

i visualizzatori di risultato.

Questi dati sono di grande aiuto per identificare la causa di un errore.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 186: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Informazioni di errore

Prima dell'emissione del contenuto del registro di interruzione USTACK viene mostrato lo stato dei bit di comando. Essi identificano lo stato di funzionamento e forniscono altre informazioni sulla CPU e sul programma utente oltre a fornire ulteriori indicazioni circa la causa dell'errore.

La funzione online EMISSIONE USTACK può essere richiamata non solo in stato di STOP, bensì anche in AWIAMENTO ed in RUN. In questo caso vengono però mostrati solo i bit di comando.

I1 significato dei bit di comando e la struttura del registro delle interruzioni sono descritti dettagliatamente nel paragrafo 5.3.

Dati di sistema Quando il processore si porta dallo stato di AVVIAMENTO direttamente a B S 3 e B S 4 quello di STOP, nelle parole contenenti i dati di sistema BS 3 e BS 4 viene

scritto esattamente il motivo dell'errore (vedere paragrafo 5.5). In questo caso si tratta di errori in cui il programma di sistema incorre nella definizione della lista di indirizzi in DB 0, oppure durante l'analisi di DB 1, DB 2, DX O o DX 2.

Le due parole dati sono memorizzate sotto i seguenti indirizzi assoluti:

Dato di sistema BS 3: KH = EA03

Dato di sistema BS 4: KH = EA04

Tramite l'identificatore di errore in BS 3 è possibile stabilire quale errore si è verificato. Tramite l'identificatore di errore in BS 4 è possibile stabilire dove si è verificato l'errore.

Gli identificatori di errore sono definiti in formato KH.

Analisi dei dati di Con la funzione online INFORMAZIONI INDIRIZZI (KH = EA03 o EA04) è sistema BS 3 e possibile leggere direttamente il contenuto dei due dati di sistema e quindi BS 4 con il PG identificare la causa dell'errore.

Dato di sistema Se il programma di sistema riconosce un grave errore di sistema, esso imposta il BS 80 bit di comando INF nel registro di interruzioni (vedere paragrafo 5.3) e deposita

un identificatore di errore supplementare con formato dati KH nella parola dati di sistema BS 80.

La parola dati di sistema BS 80 ha l'indirizzo assoluto KH = EA50 e può essere letta come i dati di sistema BS 3 e BS 4.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 187: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Informazioni di errore

Identificatori di Se durante l'elaborazione di un programma STEP 5 in AVVIAMENTO o in errore in ACCU 1 FUNZIONAMENTO CICLICO si verifica un errore per cui è prevista e ACCU 2 l'elaborazione di un blocco organizzativo, allora il programma di sistema all'atto

della chiamata di questo OB depone automaticamente negli accumulatori ACCU 1 ed ACCU 2 delle informazioni supplementari sulle cause dell'errore (vedere il paragrafo 5.6).

Tramite l'identificatore di errore in ACCU 1 è possibile stabilire quale errore si è verificato.

Tramite l'identificatore di errore in ACCU 2 (se presente) è possibile stabilire dove si è verificato l'errore.

Gli identificatori di errore sono definiti in formato KH.

Analisi di ACCU l e 2 con il PG

Analisi di ACCU l e 2 con il programma STEP 5

Con la funzione online EMISSIONE USTACK si può leggere il contenuto di entrambi gli accumulatori direttamente dal registro di interruzione e quindi identificare la causa dell'errore.

Dato che gli identificatori di errore vengono automaticamente messi nei due accumulatori al momento della chiamata del blocco organizzativo che gestisce l'errore, essi possono essere analizzati direttamente dal programma del relativo OB. È quindi possibile prevedere in un blocco organizzativo diverse reazioni dipendenti dall'errore verificatosi.

Funzione online Tramite la funzione online EMISSIONE BSTACK sul PG è possibile, nello stato EMISSIONE di STOP dopo il verificarsi di un errore, emettere il contenuto del registro di BSTACK blocco (BSTACK - vedere paragrafo 3.2 "annidamento dei blocchi").

Nel BSTACK sono contenuti tutti i blocchi (blocchi del programma utente e blocco organizzativo OB O del programma di sistema) che sono stati richiamati consecutivamente fino al passaggio in STOP ma non ancora completamente elaborati. Siccome il registro di blocco viene riempito a partire dal fondo, nella riga superiore si trova il blocco elaborato per ultimo e nel quale si è verificato l'errore.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 188: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Informazioni di errore

Informazioni Analizzando la riga superiore si possono ottenere le seguenti informazioni: BSTACK

Esempio

Informazione

BAUST.-NR.

BAUST.-ADR.

RUCKSPR.-ADR.

REL.-ADR

DB-NR.

DB-ADR

Analisi del BSTACK:

Nell'esempio sopra riportato lo stato di STOP è sopraggiunto nellrOB 23 durante l'elaborazione dell'istruzione STEP 5 memorizzata con indirizzo assoluto "0064 - 1 = 0063".

I1 blocco OB 23 (per la gestione di un ritardo della conferma QVZ) è stato richiamato in FB 5 all'indirizzo relativo "0008 - 1 = 0007".

Nel blocco FB 6 si era richiamato il blocco dati DB 100. Al momento del passaggio della CPU in stato di STOP era valido il DB 13, richiamato nel blocco FB 5.

Significato

Tipo e numero del blocco da cui è stato richiamato il blocco errato

Indirizzo iniziale assoluto di questo blocco nella memoria utente

Indirizzo assoluto del successivo comando STEP 5 di questo blocco nella memoria utente

Indirizzo relativo (= differenza "RUCKSPR.-ADR. - BAUST.-ADR.") del successivo comando da elaborare in questo blocco (gli indirizzi relativi possono essere visualizzati sul PG selezionando con la chiave il modo di funzionamento "disabilitazione introduzione" e con S5-DOS da versione IV tramite il tasto funzionale "indirizzi")

Numero dell'ultimo blocco dati richiamato in questo blocco

Indirizzo iniziale assoluto di questo blocco (cioè indirizzo di DW 0) nella memoria di programma

BAUST.-NR. BAUST.-ADR. RUECKSPR.-ADR REL.-ADR DB-NR DB-ADR

OB 23 0063 0064 O001 13 0078

FB 5 006A 0072 0008 13 0078

FB 6 008A 0091 0007 100 0098

OB 1 009D 009E O001

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 189: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

5.3 Bit di comando e registro di interruzione

Introduzione Tramite le funzioni online INFO AG e quindi EMISSIONE USTACK è possibile analizzare con il dispositivo di programmazione sia lo stato di funzionamento e le caratteristiche della CPU e del programma utente, sia le cause di eventuali errori ed interruzioni.

Avvertenza L'emissione dei bit di comando può avvenire in qualunque stato di funzionamento, quella dell'USTACK solo in STOP.

Panoramica I dati di diagnostica vengono rappresentati sullo schermo nel modo seguente:

Bit di comando

I bit di comando determinano lo stato di funzionamento attuale o comunque l'ultimo e le cause dell'errore. Se si sono verificati più errori, vengono tutti rappresentati dai bit di comando.

Registro di interruzione

Nel registro di interruzione viene visualizzato il punto di interruzione (indirizzo), i visualizzatori ed il contenuto degli accumulatori attuali in quel momento, nonché il motivo dell'interruzione. Se si sono verificati più errori, allora viene costruito un registro d'interruzione a più livelli:

Livello 01 = ultima causa d'interruzione

Livello 02 = penultima causa d'interruzione ecc.

Superando la capacità dell'USTACK (dopo più di 13 introduzioni), avviene un passaggio simultaneo allo stato di STOP e quindi è necessario togliere e ridare tensione e quindi effettuare un NUOVO AWIAMENTO.

I1 significato delle singole abbreviazioni dei bit di comando e nel registro d'interruzione vengono illustrati di seguito.

Avvertenza I1 testo sul monitor del PG può differenziarsi da quello qui riportato perchè dipende dal software utilizzato. La descrizione di questo manuale continua comunque ad essere valida per tutte le singole posizioni.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 190: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

5.3.1 Bit di comando

Rappresentazione Emettendo il registro di interruzioni sul PG, nella prima maschera sullo schermo sullo schermo appaiono i bit di comando (vedere figura 5-1).

B I T D I C O M A N D O :

>>STP<< STP-6 FE-STP BARBEND PG-STP STP-SCH STP-BEF MP-STP l >>ANL<< ANL-6 NEUSTA M W A A W A ANL-2 NEUZU MWA-ZUL

X X X >>RUN<< RUN-6 EINPROZ BARB OB1 GEL FBOGEL OBPROZA OBWECKA

X X X

32KWRAM I6KWRAM 8KWRAM EPROM KM-AUS KM-EIN DIG-EIN DIG-AUS X X X

URGELOE URL-IA STP-VER ANL-ABB UA-PG UA-SYS UA-PRFE UA-SCH

DXO-FE FE-22 MOF-FE RAM-FE DBO-FE DBI-FE DB2-FE KOR-FE l l N A U P E U

B A U STUE-FE Z Y K Q V Z A D F

WECK-FE l I B C F FE-6 FE-5 FE-4 FE-3 L Z F REG-FE DOPP-FE 1

Figura 5-1 Esempio della prima maschera "EMISSIONE USTACK": bit di comando

I bit di comando (STP, ANL e RUN) e gli altri bit nelle prime tre righe della prima pagina dello schermo caratterizzano lo stato di funzionamento attuale, o l'ultimo, della CPU e danno inoltre informazioni su certe caratteristiche della CPU e del programma utente STEP 5.

I bit di comando possono essere visualizzati in ogni stato di funzionamento. Questo permette, per esempio, di controllare in ogni momento se il blocco organizzativo OB 2 è caricato e quindi se è possibile il funzionamento su interrupt di processo.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 191: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Significato dei Le seguenti tabelle descrivono il significato dei singoli bit. bit di comando

Tabella 5-1 Significato dei bit di comando nella riga >>STP<<

Tabella 5-2 Significato dei bit di comando nella riga > > W L < <

Bit di comando

>>STP<<

STP-6

FE-STP

BARBEND

PG-STP

STP-SCH

STP-BEF

MP-STP

Riga >>STP<< (BIT DI COMANDO)

Significato

La CPU si trova nello stato di funzionamento STOP

Non occupato

STOP per un errore: stato di STOP provocato da NAU (caduta di tensione), PEU (periferia non chiara), BAU (batteria non chiara), STUEB (BSTACK overilow), STUEU (USTACK overilow), DOPP (doppio errore) o dalla CPU.

Fine del controllo dell'elaborazione: stato di STOP provocato dalla funzione online FINE CONTROLLO ELABORAZIONE (è necessario un NUOVO AWIAMENTO). Non viene impostato se la funzione FINE CONTROLLO ELABORAZIONE è stata eseguita con la CPU in STOP.

STOP da PG: stato di STOP provocato da un comando dal PG

Commutatore su STOP: stato di STOP provocato dal commutatore in posizione STOP

Comando di STOP - stato di STOP provocato dall'elaborazione dell'istruzione STP nel

programma STEP 5 'STP' - stato di STOP provocato da un comando di STOP nel programma di

sistema, se non è stato programmato un OB per la gestione dell'errore.

STOP in funzionamento multiprocessore: - selettore sul coordinatore su posizione STOP o - stato di STOP su un'altra CPU in funzionamento multiprocessore

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Riga >>ANL<< (BIT DI COMANDO)

Bit di comando

> > W L < <

ANL-6 t

M W A

ANL-6 t

AWA

NEUSTA

M W A

A W A

Significato

La CPU si trova nello stato di funzionamento AWIAMENTO

NUOVO AWIAMENTO MANUALE CON MEMORIA

NUOVO AWIAMENTO AUTOMATICO CON MEMORIA

NUOVO AWIAMENTO MANUALE richiesto (STOP) o realizzato come ultimo AVVIAMENTO (AVVIAMENTO/RUN).

RIAWIAMENTO MANUALE richiesto (STOP) o realizzato come ultimo AWiAMENTO (AWiAMENTO/RUN).

RIAVVIAMENTO AUTOMATICO richiesto dopo una caduta della tensione (STOP) o realizzato come ultimo AVVIAM. (AVVIAM./RUN).

Page 192: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Tabella 5-3 Significato dei bit di comando nella riga >>RUN<<

Riga >>ANL<< (BIT DI COMANDO)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Bit di comando

Significato

Continuazione della tabella 5-2:

M W A t

A W A

ANL-2

NEUZU

MWA-ZUL

NUOVO AWIAMENTO AUTOMATICO richiesto (STOP) o realizzato come ultimo NUOVO AWiAMENTO AUTOM. (AWIAMENTO/RUN).

Doppia funzione: - viene impostato dopo il richiamo di FINE CONTROLLO

ELABORAZIONE (diversamente da BARBEND, viene impostato nella prima riga della pagina anche se FINE CONTROLLO ELABORAZIONE viene richiamato nello stato STOP; previene un RIAWIAMENTO)

- viene impostato dopo "Compressione in STOP"; impedisce il RIAWIAMENTO

NUOVO AWIAMENTO permesso (STOP) o era permesso un NUOVO AWIAMENTO durante l'ultimo AWiAMENTO (AWIAMENTO/RUN).

RIAVVIAMENTO MANUALE permesso (STOP) o era permesso un NUOVO AWIAMENTO durante l'ultimo AWIAMENTO (AWIAMENTO/RUN).

Page 193: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Tabella 5-4 Significato dei bit di comando nelle righe 4 e 5

I bit di comando delle righe da 6 ed 8 (vedere la seguente tabella) segnalano errori che si possono verificare nei modi di funzionamento AWIAMENTO (p.es. al primo NUOVO AWIAMENTO) e RUN (per esempio elaborando un programma su interrupt periodico). Se si sono verificati più errori, nelle ultime tre righe dei bit di comando vengono evidenziate tutte le cause di interruzione verificatesi e non ancora elaborate. Al riguardo si deve fare attenzione al dato di sistema BS 2: esso contiene il UAMK (parola cumulativa delle visualizzazioni delle interruzioni, 16 bit) nel quale sono inseriti tutti gli errori presentatisi e non ancora elaborati (vedere il paragrafo 8.3.5).

Bit di comando

32KWRAM

16KWRAM

8KWRAM

EPROM

KM-AUS

KM-EIN

DIG-EIN

DIG-AUS

URGELOE

URLIA

STP-VER

ANL-ABB

UA-PG

UA-SYS

UA-PRFE

UA-SCH

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Riga 4 e 5 (BIT DI COMANDO)

Significato

L'unità si trova in funzionamento RAM (32 x 2'' parole).

non nlevante per la versione 3UB21

non nlevante per la versione 3UB21

L'unità si trova in funzionamento EPROM (32 x 2'' parole).

La lista di indirizzi per i merker di accoppiamento di uscita del DB 1 è presente.

La lista di indirizzi per i merker di accoppiamento di ingresso del DB 1 è presente.

La lista di indirizzi degli ingressi digitali è presente.

La lista di indirizzi delle uscite digitali è presente.

Cancellazione totale della CPU (è necessario un NUOVO AWIAMENTO).

Cancellazione totale in corso sulla CPU.

Una CPU ha provocato lo STOP del controllore programmabile.

Interruzione durante l'avviamento (è necessario un NUOVO AWIAMENTO).

I1 PG ha richiesto una CANCELLAZIONE TOTALE.

I1 programma di sistema ha richiesto una CANCELLAZIONE TOTALE (non è possibile alcun avviamento); si deve attivare una CANCELLAZIONE TOTALE.

Richiesta di CANCELLAZIONE TOTALE a causa di un errore della CPU.

Richiesta di cancellazione totale tramite il commutatore: attivare una CANCELLAZIONE TOTALE o scegliere un tipo di avviamento se la CANCELLAZIONE TOTALE richiesta non deve essere eseguita.

Page 194: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Tabella 5-5 Significato dei bit di comando nelle righe 6, 7 e 8

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Bit di comando

DXO-FE

FE-22

MOD-FE

RAM-FE

DBO-FE

DB1-FE

DB2-FE

KOR-FE

N A U

P E U

B A U

STUE-FE

Z Y K

Q V Z

A D F

WECK-FE

B C F

FE-6

FE-5

Riga 6 ,7 e 8 (BIT DI COMANDO)

Significato

Errore di parametrizzazione in DX O o DX 2

Non occupato

I1 contenuto della memory card è difettoso (è necessaria una CANCELLAZIONE TOTALE).

I1 contenuto della memoria utente o delle RAM per i DB è difettoso (è necessaria una CANCELLAZIONE TOTALE).

La lista degli indirizzi di blocco nel DB O è difettosa.

La lista di indirizzi nel DB 1 per l'aggiornamento delle immagini di processo è difettosa: - DB 1 non programmato con il coordinatore inserito

o in funzionamento multiprocessore - struttura o contenuto del DB 1 non correttoi

Errore durante l'analisi del blocco di parametrizzazione DB 2 della regolazione R64.

Errore durante lo scambio dati con il coordinatore.

Caduta di tensione sull'apparecchiatura centrale.

Periferia indefinita = caduta di tensione su un'apparecchiatura di ampliamento.

Batteria difettosa = mancanza della tensione di tamponamento nell'apparecchiatura centrale.

Overflow dei registri di interruzione o di blocco (annidamento troppo profondo; è necessario un NUOVO AWIAMENTO).

Superamento del tempo di ciclo.

Ritardo della conferma durante lo scambio di dati con la periferia.

Errore di indirizzamento di ingressi o uscite: Errore provocato dall'accesso all'immagine di processo relativa a unità periferiche che non erano inserite, erano difettose o non definite in DB 1 all'ultimo NUOVO AWIAMENTO.

Errore per collisione di interrupt temporali: Prima o durante l'elaborazione di un OB di un allarme di schedulazione viene richiamato lo stesso OB una seconda volta.

Errore nel codice del comando: - Errore di sostituzione: il comando STEP 5 elaborato non è sostituibile, - Errore nel codice dell'operazione: il comando STEP 5 elaborato

è errato, - Errore del parametro: il parametro del comando STEP 5 elaborato

è errato.

Non occupato

Indicazione di un grave errore di sistema, informazioni supplementari in BS 80.

Page 195: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

5.3.2 Contenuto del registro di interruzione (USTACK)

Riga 6 ,7 e 8 (BIT DI COMANDO)

Introduzione Se la CPU si trova in stato di STOP e dopo l'emissione dei bit di comando sullo schermo del PG, premendo il tasto di conferma appare il registro di interruzione. I1 programma di sistema, passando allo stato di STOP, memorizza in questo registro tutte le informazioni necessarie per un riawiamento.

Bit di comando

Dalle informazioni contenuti nell'USTACK è possibile ricavare che tipo di errore si è verificato, ed a che punto del programma si è verificato.

Significato

Se lo stato di STOP è stato causato da un errore solo, viene creato solo un livello con informazioni di registro di interruzione. Se si verificano più errori, vengono creati più livelli del registro di interruzione (PROFONDFÀ 01, PROFONDFÀ 02 ecc.). In tutti i livelli, sotto "CAUSA DI ERRORE", è solitamente contrassegnato solo un errore.

Al verificarsi di più errori l'errore che si è verificato immediatamente prima del passaggio in STOP si trova nel registro a profondità 01.

Continuazione della tabella 5-5:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

FE-4

FE-3

L Z F

REG-FE

DOPP-FE

Errore durante caduta di tensione: Durante l'elaborazione di una precedente caduta di tensione (NAU) il programma di sistema ha rilevato un errore. Per questo motivo non è più possibile un RIAWIAMENTO.

Errore dell'interfaccia (SSF)

Errore di esecuzione: - Richiamo di un blocco non presente, - Errore di trasferimento/caricamento di blocchi dati, - Altri errori di esecuzione.

Errore durante l'elaborazione della struttura di regolazione R64 in CICLO.

Errore di doppia elaborazione: - un livello di elaborazione ancora attivo (ADE, BCF, LZF, QVZ,

REG, ZYK) viene richiamato una seconda volta. E' necessario un NUOVO AWIAMENTO.

Page 196: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Rappresentazione La figura 5-2 riporta un esempio per l'emissione del contenuto di USTACK sullo schermo sul PG.

/ R E G I S T R O D I I N T E R R U Z I O N E \ PROFONDITA: 02

REG-COMP: C70A IND: 00F3 DB-ADR: 0000 BA-ADR: O000 BLC-STP: 0002 IND-NR.: 226 DB-NR.: OB-NR.:

IND-REL: 0006 DBL-REG.: O000 LIVELLO: 0004 UAMK: 0200 UALW: O000

1 ACCU1: 0000 C464 ACCU2: O000 OOFF ACCU3: 0000 O000 ACCU4: 0000 0000 l 1 PARENTESI: KE1 111 KE2 100 KE3 111 l VISUAL. RISULTATO: ANZI ANZO OVFL OVFLS OR ERAB

X STATO VKE

X X CAUSA DI STOP: NAU PEU B AU MPSTP ZYK

ADF STP BCF S-6 LZF X

QVZ

REG

\ STUEB STUEU WECK DOPP i

Figura 5-2 Esempio della p r ima maschera "EMISSIONE USTACK" : contenuto

Spiegazioni delle PROFONDITÀ visualizzazioni di USTACK Livello del registro di interruzione per l'annidamento di errori:

PROFONDITÀ 01 = ultimo errore verificatosi, PROFONDITÀ 02 = penultimo errore verificatosi ...... PROFONDITÀ 13 = ...... (profondità massima)

La seguente tabella contiene indicazioni (identificatori USTACK) sul punto in cui si è verificato l'errore che permettono di trovare nel programma utente la relativa istruzione durante la cui elaborazione la CPU si è portata in STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 197: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e registro di interruzione

Tabella 5-6 Significato degli ident. di USTACK relativi al punto di errore

1 Indicazioni sul punto in cui si è verificato l'errore 1 Significato

REG-COM

BLC-STP

LIVELLO z

Registro comandi: contiene il codice macchina (prima parola) dell'ultimo comando elaborato di un livello di elaborazione interrotto (vedere la lista delle operazioni, codice macchina).

Puntatore del registro di blocco: contiene il numero di elementi contenuti nel registro di blocco PSTACK) al momento dell'interruzione di questo livello di elaborazione.

Definisce il livello di elaborazione programma che è stato interrotto: Z:0002: NUOVO AWIAMENTO

0004: elaborazione ciclica CICLO 0006: ALLARME DI SCHEDULAZIONEIS s (OB 18) 0008: ALLARME DI SCHEDULAZIONEI2 s (OB 17) 000A:ALLARME DI SCHEDULAZIONEIl s (OB 16) 000C:ALLARME DI SCHEDULAZIONEISOO ms (OB 15) 000E: ALLARME DI SCHEDULAZIONEI200 ms (OB 14) 0010: ALLARME DI SCHEDULAZIONW100 ms (OB 13) 0012: ALLARME DI SCHEDULAZIONEISO ms (OB 12) 0014: ALLARME DI SCHEDULAZIONEI20 ms (OB 11) 0016: ALLARME DI SCHEDULAZIONEIIO ms (OB 10) 0018: allarme dall'orologio 001A:non occupato 001C:ALLARME DI REGOLAZIONE 001E: non occupato 0020: ALLARME DI RITARDO 0022: non occupato 0024: ALLARME DI PROCESSO 0026: non occupato 0028: NUOVO AWIAMENTO MANUALE

CON MEMORIA 002A:NUOVO AWIAMENTO AUTOMATICO

CON MEMORIA 002C:passaggio allo stato di STOP con STOP in funzionamento

multiprocessore, STOP da commutatore o da PG 002E: errore dell'interfaccia 0030: errore per collisione di interrupt temporali 0032: errore di regolazione 0034: superamento del tempo di ciclo 0036: non occupato 0038: errore nel codice del comando OO3A:errore di esecuzione 003C: errore di indirizzamento 003E: ritardo della conferma 0040: non occupato 0042: non occupato 0044: RIAWIAMENTO MANUALE 0046: RIAWIAMENTO AUTOMATICO

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 198: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Indicazioni sul punto in cui si è verificato l'errore

Ident. USTACK Significato

Continuazione della

IND

... NR.

IND-REL

UAMK

UALW

IND-DB

DB-NR

REG-DBL

IND-BA

... NR.

ACCU 1...4

PARENTESI

tabella 5-6:

Contatore indirizzi: - Contiene l'indirizzo assoluto nella memoria di programma

dell'ultimo comando elaborato di un livello di elaborazione interrotto.

- In caso di errore 1'IND contiene esattamente l'indirizzo del comando con cui si è verificato l'errore!

- Prima dell'elaborazione del primo comando di un livello di elaborazione programma 1'IND contiene "0".

Tipo e numero di blocco dell'ultimo blocco elaborato.

Contatore indirizzi relativi: contiene l'indirizzo relativo (riferito all'inizio del blocco) dell'ultimo comando elaborato nell'ultimo blocco elaborato. (Gli indirizzi relativi possono essere visualizzati sul PG nel modo di funzionamento "disabilitazione introduzioni" (commutatore a chiave) o con S5-DOS dalla versione IV tramite tasto funzionale oppure facendo stampare il blocco).

Parola cumulativa delle visualizzazioni di interruzione: nell'UAMK vengono riportate tutte le cause di interruzione già verificatesi ma non ancora completamente elaborate (vedere paragrafo 8.3.5).

Parola di cancellazione delle visualizzazioni di interruzione (vedere paragrafo 8.3.5).

Indirizzo iniziale assoluto dell'ultimo blocco dati richiamato nella memoria di programma @W O). (IND-DB = 0000 se non è stato richiamato alcun DB).

Numero dell'ultimo blocco dati richiamato.

Lunghezza dell'ultimo blocco dati richiamato.

Indirizzo assoluto nella memoria di programma del prossimo comando da elaborare nell'ultimo blocco richiamato.

Tipo e numero di blocco dell'ultimo blocco richiamante.

Contenuto degli accumulaton prima del passaggio nello stato di STOP: Al verificarsi di certi errori, il programma di sistema memorizza negli accumulaton 1 e 2, prima del passaggio in STOP, degli identificatori di errore che aiutano ad identificare la causa dell'errore verificatosi.

Numero dei livelli di parentesi: "KEx abc" x = da l a 7 livelli, a = "OR" (vedere visualizzazione a bit), b = "RLC" (risultato combinatono logico,

vedere visualizzazione a bit), C = l : "UU(, C = o: "OU(.

Page 199: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

VISUAT ,IZZAZTONE RISULTATO

vedere paragrafo 3.5

Le seguenti abbreviazioni rappresentano le più importanti cause di errore. Sono contrassegnate solo le interruzioni che si sono presentate nel livello di elaborazione programma visualizzato (vedere LIVELLO). Nella definizione delle cause di errore è di aiuto il contenuto della parola cumulativa delle visualizzazioni di interruzioni (UAMK, 16 bit; vedere paragrafo 8.3.5). Talvolta il significato coincide con quello dei bit di comando.

Tabella 5-7 Identificatori USTACK: CAUSA DI ERRORE

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Ident. USTACK

NAU

PEU

BAU

MP-STP

ZYK

Q v z

ADE

STP

S-6

LZE

CAUSA DI ERRORE

Significato (OB di errore richiamato)

Caduta di tensione sull'apparecchiatura centrale.

Periferia indefinita = caduta di tensione su un'apparecchiatura di ampliamento.

Batteria difettosa = mancanza della tensione di tamponamento (apparecchiatura centrale).

STOP in funzionamento multiprocessore: - selettore sul coordinatore su posizione STOP o - stato di STOP su un'altra CPU in funzionamento multiprocessore.

Superamento del tempo di ciclo.

Ritardo della conferma durante lo scambio di dati con la periferia.

Errore di indirizzamento di ingressi o uscite, digitali con immagine di processo.

- Stato di STOP provocato dal commutatore in posizione STOP, - Stato di STOP provocato da un comando dal PG - Stato di STOP provocato dall'elaborazione dell'istruzione

"STP" nel programma STEP 5 - Stato di STOP provocato da un comando di STOP nel

programma di sistema, se non è stato programmato un OB per la gestione dell'errore.

Errore dell'interfaccia.

Errore di esecuzione (errore identificato durante l'esecuzione di un comando): - richiamo di un blocco non presente, - errore di caricamento/trasferimento di blocchi dati, - altri errori di esecuzione.

Page 200: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

CAUSA DI ERRORE

Ident. USTACK Significato (OB di errore richiamato)

Continuazione della tabella 5-7:

REG-FE

STUEB

STUEU

WECK

DOPP

Errore durante l'elaborazione della regolazione R64 nel CICLO.

Superamento del registro di blocco (BSTACK). Profondità di annidamento troppo grande, è necessario un NUOVO AWIAMENTO.

Overflow del registro di interruzioni (USTACK). Profondità di annidamento troppo grande, è necessario un NUOVO AWIAMENTO.

Errore per collisione di interrupt temporali: prima o durante l'elaborazione di un OB di un allarme di schedulazione viene richiamato lo stesso OB una seconda volta.

Errore di doppia elaborazione: un livello di elaborazione ancora attivo (ADE, BCF, LZF, QVZ, REG-FE, ZYK) viene richiamato una seconda volta. È necessario un NUOVO AWIAMENTO.

Page 201: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

5.3.3 Esempi per l'analisi dell'USTACK

La figura 5-3 illustra la struttura dellrUSTACK in relazione alle interruzioni verificatesi.

- I1 livello di elaborazione programma CICLO (OB 1) viene interrotto da un

elaborato lrOB 13. - Al presentarsi di un allarme di processo, viene abbandonato il livello

AL- DI SCHEDULAZIONE, attivato il livello ALLARME DI PROCESSO ed elaborato lrOB 2.

- Un errore di indirizzamento provoca quindi l'attivazione del livello ADF e l'elaborazione dellrOB 25. Nel programma di gestione dellrerrore è contenuto il comando STP: la CPU interrompe l'elaborazione del programma.

Profondità 01

Profondità 02

ALLARME DI PROCESSO

Profondità 04

Llveili di elaborazione programma U STAC K

Figura 5-3 Esempio 1 per l'analisi dell' USTACK

Prima del definitivo passaggio nello stato di STOP, sono quindi stati interrotti in totale 4 diversi livelli di elaborazione programma. Emettendo ora 1'USTACK sul PG, si pub osservare un USTACK a 4 livelli dove al primo livello (con profondita 01) è contenuto l'identificatore dell'ultimo livello interrotto, cioè ADF. E' possibile quindi "scendere" fino allrUSTACK con profondita 04 che rappresenta il livello CICLO, cioè il

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 202: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e registro di interruzione

Nel seguente esempio, la CPU riconosce un errore di indirizzamento nellreseguire il comando "U E x.yW nellrOB 1. Cib provoca l'elaborazione dellrOB 25. A causa di un comando STP in PB 5, la CPU si porta in STOP (vedere

Figura 5-4 Esempio 2 per l'analisi dell'USTACK

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 203: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bit di comando e reaistro di interruzione

Due livelli di elaborazione programma interrotti richiedono un USTACK a 2 livelli (vedere figura 5-5 e figura 5-6):

REGISTRO DI INTERRUZIONE

PROFONDITA: 01

1007 IND-DB:

5 DB-NR.: 16 OB-NR.: IND-REL: 0007 DBL-REG.:

LIVELLO: 003C UAMK: 0300 UALW: O000

VISUALIZZAZIONE RISULTATO: ...

CAUSA DI ERRORE:

Figura 5-5 Esempio 2 per l'analisi dell'USTACK: lo livello

REGISTRO DI INTERRUZIONE

PROFONDITA: 02

REG-COM: U Ex.y IND: 001A IND-DB: 0001 OB-NR.: 1 DB-NR.:

IND-REL: 000A DEL-REG.: LIVELLO: 0004 UAMK: 0200 UALW:

VISUALIZZAZIONE RISULTATO: ...

CAUSA DI ERRORE:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 204: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione deali errori tramite OB

5.4 Gestione degli errori tramite OB

Introduzione Quando il programma di sistema ha riconosciuto un certo errore richiama un blocco organizzativo predisposto. Programmando in maniera appropriata questo blocco organizzativo, si può definire il successivo comportamento della CPU. In relazione a come viene programmato l'OB, è possibile:

far continuare la normale elaborazione del programma,

mettere il processore in STOP

e10

fare elaborare uno speciale programma.

Assegnazione Sono stati predisposti dei blocchi organizzativi ai seguenti errori: "Causa di errore - errori di OB"

Tabella 5-8 Blocchi organizzativi richiamati in caso di errore

"STOP AG" sul PG, STOP dal bus S5 (funzionam.

con preimpostazione del DX O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 205: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Reazione in caso La reazione in caso di OB non programmati dipende dal tipo di errore: di OB non programmato Nessuna interruzione dell'elaborazione ciclica del programma

Se si verifica un ritardo della conferma (QVZ) e non si è programmato I'OB 23, I'OB 24 o I'OB 35, il programma ciclico non viene interrotto. La CPU non reagisce in alcun modo.

Qualora la CPU debba andare in STOP in caso di ritardo QVZ, allora il relativo OB deve contenere un comando di STOP e quindi essere chiuso da un BE (comando di fine blocco) oppure deve essere parametrizzato il DX O corrispondentemente.

Programma per lo STOP:

: STP : BE

Stato di STOP

In tutti gli altri casi, se i relativi OB non vengono programmati, la CPU si porta subito in STOP.

Se si desidera che in casi particolari (p. es. durante la messa in servizio) certi errori non interrompano il programma ciclico, è sufficiente programmare il relativo blocco organizzativo con il comando di fine blocco oppure parametrizzare il DX O.

Programma per il funzionamento senza interruzione:

Avvertenza I1 blocco organizzativo OB 28 costituisce un'eccezione: che esso sia (in un qualunque modo) o non sia programmato, il processore si porta sempre nello stato di STOP.

Volendo evitare il passaggio in STOP della CPU senza dover programmare il relativo OB, è sufficiente parametrizzare correttamente il blocco dati DX O.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 206: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Interruzioni durante l'elaborazione di un OB di errore

Dopo il richiamo da parte del programma di sistema dell'apposito blocco organizzativo, viene elaborato il programma in esso contenuto.

Se durante l'elaborazione di questo OB si verifica un nuovo errore, come nel programma ciclico, alla fine del comando in corso l'elaborazione viene interrotta e quindi viene richiamato il relativo blocco organizzativo.

I blocchi organizzativi vengono elaborati secondo la successione dei richiami. Quanti OB possono essere annidati dipende da vari fattori:

- T i ~ o dell'errore verificatosi;

Non possono essere annidati OB che appartengono allo stesso livello di elaborazione programma. (Per l'attribuzione degli OB di errore ai vari livelli di elaborazione, vedere il capitolo seguente).

Durante l'elaborazione dell'OB 27 (livello di elaborazione BCF) può, per esempio, essere attivato I'OB 32 (livello di elaborazione LZF), ma non I'OB 29 o I'OB 30 (sempre livello BCF).

In caso di doppia chiamata di un livello di elaborazione, la CPU va assolutamente in STOP.

Numero dei livelli di elaborazione attivati fino a auel momento;

Per ogni livello di elaborazione attivato il programma di sistema necessita di una certa quantità di memoria per la memorizzazione del registro di interruzione. Se questa quantità di memoria non è più sufficiente, si verifica un overflow dell'USTACK.

Superando la capacità massima del registro di interruzione, la CPU va immediatamente in STOP.

Numero dei blocchi richiamati fino a auel momento;

Superando la capacità massima del registro di blocco, la CPU va immediatamente in STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 207: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.5 Errori in AWIAMENTO

Introduzione Errori ed interruzioni che si presentano durante le fasi di inizializzazione e di avviamento possono provocare l'interruzione del programma di avviamento e lo STOP della CPU. Le cause di interruzione che si presentano durante il programma di avviamento (OB 20,21 e 22) vengono gestite come durante il funzionamento ciclico.

Eccezione: in caso di STOP durante l'avviamento, non viene elaborato I'OB 28.

Causa di interruzione e di errore

Per le possibili cause di interruzione e di errore indicate nella seguente tabella non c'è nessuna possibilità di reazione tramite l'interfaccia utente (OB di errore).

Tabella 5-9 Cause di interruzione e di errore in fase di AWIAMENTO

l) Per ulteriori spiegazioni vedere le seguenti pagine.

Bit di com. o identificatore

USTACK

STP

BAU

NAU

PEU

STUEU

STUEB

DOPP-FE

RAM-FE

MOD-H?

DBO-FE l)

DB1-FE l)

DBZFE l)

DXO-FE l)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Spiegazione

Comando di STOP dal programma di sistema (per m-STP) o dal programma utente.

Caduta della tensione della batteria tampone nell'apparecchiatura centrale.

Caduta della tensione di alimentazione nell'apparecchiatura centrale.

Caduta della tensione di alimentazione in un'apparecchiatura di ampliamento.

Overfiow nel registro di interruzione (USTACK).

Overfiow nel registro di blocco (BSTACK).

Doppia chiamata di un livello di elaborazione programmi di errore.

Errore durante l'inizializzazione: contenuto della RAM del sistema operativo o della RAM per DB difettoso.

Errore durante l'inizializzazione: contenuto della memory card errato.

Errore nella costruzione della lista di indirizzi di blocco (DB O).

Errore nell'analisi del DB 1 per la generazione della lista di indirizzi per l'aggiornamento dell'immagine di processo.

Errore nell'analisi del DB 2 per la regolazione R64.

Errore nell'analisi del blocco dati DX O oppure errore nell'analisi del blocco dati DX 2.

Page 208: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.5.1 DBO-FE (errore con DB O)

Introduzione Errore nella definizione della lista di indirizzi di blocco (blocco dati DB O)

I1 DB O viene generato dal programma di sistema dopo una CANCELLAZIONE TOTALE. In caso di un errore con DB 0, nelle parole dei dati di sistema BS 3 e BS 4 sono a disposizione degli identificatori di errore che descrivono in modo più dettagliato l'errore verificatosi.

La tabella seguente contiene gli identificatori di errore con DB O.

Tabella 5-10 Identificatori di errori con DB O

Identificatori di errori

5.5.2 DB1 -FE (errore con DB 1)

Identificatore BS3 BS4

8001H yyyyH

8002H yyyyH

8003H yyyyH

8004H yyyyH

8005H yyyyH

Introduzione Errore nella definizione della lista di indirizzi in DB 1 per l'aggiornamento delle immagini di processo.

Spiegazione

Lunghezza del blocco errata yyyy = indirizzo del blocco con lunghezza errata

Indirizzo finale del blocco calcolato nella memoria errato yyyy = indirizzo del blocco

Identificatore di blocco non valido yyyy = indirizzo del blocco con identificatore non valido

Numero di OB troppo grande @ermesso da OB 1 a OB 39) yyyy = indirizzo del blocco con numero errato

Numero di DB = O @emesso da DB 1 a DB 255) yyyy = indirizzo del blocco con numero errato

DB 1 mancante in funzionamento multiprocessore

oppure

lista di indirizzi in DB 1 difettosa con un NUOVO AVVIAMENTO.

Avvertenza In funzionamento multiprocessore viene controllato per ogni tipo di avviamento se il DB 1 è presente. I parametri del DB 1 invece vengono analizzati soltanto durante un NUOVO AVVIAMENTO!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 209: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Identificatori La tabella seguente contiene gli identificatori di errore con DB 1. di errori

Tabella 5-11 Identificatori di errori con DB 1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore BS3 BS4

0410H yyyyH

0411H yyyyH

0412H yyyyH

0413H yyyyH

0414H yyyyH

0415H yyyyH

0419H yyyyH

041AH yyyyH

041BH yyyyH

041CH yyyyH

Spiegazione

Identificatore non valido - identificatore d'intestazione non programmato o errato

(corretto: KC MASKO1) - identificatore non valido @ermessi: KH DEOO, DAOO,

CEOO, CAOO, BBOO) - identificatore di fine blocco non programmato o errato

(corretto: KH EEEE) yyyy = identificatore errato

"Ingressi digitali", numero di indirizzi non valido (permesso da O a 128) yyyy = numero di indirizzi errato

"Uscite digitali", numero di indirizzi non valido (permesso da O a 128) yyyy = numero di indirizzi errato

"Merker di accoppiamento di ingresso", numero di indirizzi non valido (permesso da O a 256) yyyy = numero di indirizzi errato

"Merker di accoppiamento di uscita", numero di indirizzi non valido @emesso da O a 256) yyyy = numero di indirizzi errato

Numero di temporizzatori non valido (permesso: 256) yyyy = numero di temporizzatori errato

Ritardo della conferma (QVZ) con ingressi digitali yyyy = indirizzo del byte di ingresso che non conferma

Ritardo della conferma con uscite digitali yyyy = indirizzo del byte di uscita che non conferma

Ritardo della conferma (QVZ) con merker di accoppiamento di ingresso yyyy = indirizzo del byte di merker di accoppiamento che non conferma

Ritardo della conferma (QVZ) con merker di accoppiamento di uscita yyyy = indirizzo del byte di merker di accoppiamento che non conferma

Page 210: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.5.3 DB2-FE (errore con DB 2)

Introduzione Errore durante l'analisi del blocco dati di parametrizzazione DB 2 della struttura di regolazione R64 (inizializzazione della regolazione).

In caso di un errore di questo tipo, nelle parole dei dati di sistema BS 3 e BS 4 sono a disposizione degli identificatori di errore che descrivono in modo più dettagliato l'errore verificatosi.

La tabella seguente contiene gli identificatori di errore con DB 2.

Tabella 5-12 Identificatori di errori con DB 2

Identificatori di errori

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore BS3 BS4

0421H DByyH

0422H FByyH

0423H FByyH

0424H FByyH

0425H DByyH

0426H -

Spiegazione

Blocco dati non caricato yy = numero del blocco dati non caricato

Blocco funzionale non caricato yy = numero del blocco funzionale non caricato

Blocco funzionale non identificato yy = numero del blocco funzionale non identificato

Blocco funzionale caricato con un software-PG errato yy = numero del blocco funzionale

Lunghezza del blocco dati regolazione errata yy = numero del blocco dati

La memoria nella RAh4 per DB non è sufficiente per il trasferimento dei DB di regolazione dall'EPROM utente al DB-RAM alla RAM per DB

Page 211: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.5.4 DXO-FE (errore con DX O o DX 2)

Avvertenza Gli errori con DX O e DX 2 hanno lo stesso bit di comando (DXO-FE) nella maschera dei bit di comando.

Errore durante In caso di un errore di questo tipo, nelle parole dei dati di sistema BS 3 e BS 4 l'analisi del sono a disposizione degli identificatori di errore che descrivono in modo più blocco dati DX O dettagliato l'errore verificatosi.

Tabella 5-13 Identificatori di errori con DX O

Errore durante Parametrizzazione della seconda interfaccia seriale: l'analisi del I1 blocco dati DX 2 viene analizzato dal programma di sistema ad ogni NUOVO blocco dati DX 2 AWIAMENTO. In caso di un errore con DX 2, nelle parole dei dati di sistema

BS 3 e BS 4 sono a disposizione degli identificatori di errore che descrivono in modo più dettagliato l'errore verificatosi.

Identificatore BS3 BS4

0431H yyyyH

0432H yyyyH

0433H yyyyH

0434H yyyyH

Tabella 5-14 Identificatori di errori con DX 2

Spiegazione

Identificatore non valido: - identificatore d'intestazione non programmato od errato

(corretto: KC MASKXO) - identificatore di blocco non valido - identificatore di fine blocco non programmato od errato

(corretto: KH EEEE) yyyy = identificatore errato

Parametro non valido yyyy = parametro errato

Numero di temporizzatori non permesso (permesso da O a 256) yyyy = numero di temporizzatori errato

Tempo di ciclo non permesso (permesso da 1 a 13000 ms) yyyy = tempo di ciclo errato

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore BS3 BS4

0451H -

0452H yyyyH

0453H yyyyH

Spiegazione

Lunghezza del DX 2 (senza intestazione) < 4 parole non valida

Lunghezza del DX 2 (senza intestazione) troppo corta per questo tipo di accoppiamento y y y y = lunghezza DX 2

Tipo di accoppiamento non valido yyyy = tipo di accoppiamento

Page 212: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore BS3 BS4

Spiegazione

Continuazione della tabella

0454H xxOOH

0455H xxyyH

0456H xxyyH

0457H y yyyH

0458H xxOOH

0459H xxyyH

045AH xxOOH

045BH xxyyH

045CH xxOOH

045DH xxyyH

045EH xxOOH

045m xxyyH

0460H xxyyH

0461H yyyyH

5-14:

Identificatore dati per il set di parametri statico non valido (non 44H, 58H) xx = identificatore dati

Blocco per il set di parametri statico non valido xx = identificatore / yy = numero DB

Set di parametri statico non presente xx = identificatore / yy = numero DB

Set di parametri statico troppo corto yyyy = numero del DW non presente

Identificatore dati per il set di parametri dinamico non valido (non 44H, 58H, OOH) xx = identificatore dati

Blocco per il set di parametri dinamico non valido xx = identificatore / yy = numero DB

Identificatore dati per trasmissione non valido (non 44H, 58H, OOH) xx = identificatore dati

Blocco per trasmissione non valido xx = identificatore / yy = numero DB

Identificatore dati per ricezione non valido (non 44H, 58H, OOH) xx = identificatore dati

Blocco per ricezione non valido xx = identificatore / yy = numero DB

Identificatore per i byte di coordinamento non valido (non 44H, 58H, 4DH) xx = identificatore dati

Blocco per i byte di coordinamento non valido xx = identificatore / yy = numero DB

Blocco per i byte di coordinamento non presente xx = identificatore / yy = numero DB

Parola dati per i byte di coordinamento non presente yyyy = numero del DW non presente

Page 213: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.5.5 MOD-FE (errore nella memory card)

Introduzione Nell'analizzare una memory card e nel copiare i blocchi dalla memory card vengono eseguiti diversi test. In caso di errore il bit di comando MOD-FE nella maschera del bit di comando nonché un identificatore addizionale vengono registrati nella parola dati di sistema BS 3.

Identificatori di errore in BS 3

Quando i test sopra menzionati conducono ad un errore, nella parola dati di sistema BS 3 si trova un identificatore dell'errore che fornisce maggiori dettagli sull'errore verificatosi (il contenuto di BS 4 è irrilevante).

Tabella 5-15 Identificatori degli errori della memory card e degli errori durante la copiatura dei blocchi

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 214: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6 Errori in RUN ed in AWIAMENTO

Introduzione Nello stato di funzionamento RUN l'elaborazione del programma ciclico o di uno su interrupt periodico o su interrupt di processo oppure ancora l'elaborazione di una regolazione può essere interrotta ad ogni comando dal presentarsi di certi errori, per esempio una caduta della tensione di alimentazione all'apparecchiatura centrale o un overflow del registro di interruzioni.

In fase di inizializzazione e nello stato di funzionamento AWIAMENTO il presentarsi di certe cause di interruzione provocano pure l'interruzione del programma di awiamento e la CPU o si porta nello stato di STOP, oppure richiama il blocco organizzativo previsto per quell'errore. Le interruzioni che si presentano durante il programma di awiamento vengono trattate come in CICLO.

È possibile distinguere in cause di interruzione che forzano immediatamente la CPU nello stato di STOP (p.es. STUEU) e cause di interruzione al cui verificarsi il programma di sistema, prima di provocare lo STOP del processore, richiama dei blocchi organizzativi (p.es. ADE) che possono essere programmati dall'utente.

Per le possibili cause di interruzione e di errore, non c'è nessuna possibilità di reazione tramite l'interfaccia utente (OB di errore).

Errori che Per tutte le cause di interruzione elencate avviene un passaggio immediato nello provocano stato di STOP. Nel far ciò viene costruito un USTACK con il quale viene immediatamente visualizzato l'errore verificatosi. uno STOP

Tabella 5-16 Cause di interruzione e di errore in fase di AVVIAMENTO e RUN che provocano un passaggio immediato nello stato di STOP

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Bit di comando o identificatore

USTACK

STP

BAU

NAU

PEU

STUEU

STUEB

DOPP-FE

Spiegazione

Comando di STOP dal programma di sistema (con errori dell'apparecchiatura), se un OB di errore non è caricato o se il programma utente contiene un comando di STOP.

Caduta della tensione della batteria tampone nell'apparecchiatura centrale.

Caduta della tensione di alimentazione nell'apparecchiatura centrale.

Caduta della tensione di alimentazione in un'apparecchiatura di ampliamento.

Overfiow nel registro di interruzione (USTACK), causa un annidamento troppo profondo.

Overfiow nel registro di blocco (BSTACK), causa un annidamento troppo profondo.

Doppia chiamata di un livello di elaborazione programma di errore.

Page 215: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e degli errori

Errori con il Al verificarsi di questi errori viene richiamato un OB di errore. richiamo di un OB di errore

Tabella 5-17 Cause di interruzione e di errore con il richiamo di un blocco organizzativo in RUN e in AWIAMENTO

Informazioni più dettagliate riguardo gli errori qui riportati si trovano nei successivi paragrafi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Nr. deii'OB

richiamato

OB 27 OB 29 OB 30

OB 19 OB 32 OB 31

OB 25

OB 23

OB 24

OB 26

OB 33

OB 34

OB 28

OB 35

Bit di comando o identificatore

USTACK

BCF

LZF

ADF

QVZ

ZYK

WECK-FE

REG-FE

ABBR

S-6

Spiegazione

Errore nel codice del comando: - errore di sostituzione - errore nel codice dell'operazione - errore del parametro

Errore di esecuzione: - richiamo di un blocco non presente - errore di trasferimento di DB - altri errori di esecuzione

Errore di indirizzamento: - durante l'accesso all'immagine di processo

Ritardo della conferma: - nel programma utente per accesso ad un'unità

periferica - per aggiornamento delle immagini di processo

Errore di ciclo: - superamento del tempo di controllo del ciclo

Errore per collisione di interrupt temporali: - errore durante l'elaborazione di un allarme di

schedulazione

Errore di regolazione: - errore durante l'elaborazione di un allarme di

regolazione

Interruzione: - (vedere "ABBR" in questo paragrafo)

Errore di comunicazione: - durante il trasferimento di dati tramite la seconda

interfaccia seriale

Page 216: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.1 BCF (errore nel codice del comando)

Introduzione Un errore nel codice di un comando si verifica quando la CPU non riesce a interpretare o eseguire un comando STEP 5 del programma utente. Tutti i possibili codici dei comandi sono elencati nella lista delle operazioni.

I1 comando che provoca l'errore di codice non viene eseguito. Se è stato programmato un blocco organizzativo BCF, esso viene richiamato, elaborato e quindi si continua con l'elaborazione del comando successivo nel programma utente interrotto. Se I'OB BCF non è stato programmato, la CPU si porta in STOP.

Si distinguono i seguenti errori di codice per i quali vengono richiamati corrispondenti OB di errore:

Errore di sostituzione (OB 27)

Quando in un blocco funzionale una operazione deve essere realizzata con un operando formale, la CPU elaborando il programma utente sostituisce a questi operandi formali gli operandi attuali definiti nella chiamata del blocco funzionale.

La CPU riconosce una sostituzione non permessa. Il programma di sistema in questo caso interrompe l'elaborazione del programma utente e richiama il blocco organizzativo OB 27, se questo è stato programmato.

Nell'accumulatore 1 sono contenute delle informazioni che spiegano in modo più dettagliato l'errore verificatosi.

Tabella 5-18 BCF - errore di sostituzione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

1801H -

1802H -

1803H -

1804H -

1805H -

1806H -

Spiegazione

Errore di sostituzione con il comando BBS

Errore di sostituzione con i comandi BDW, BMW

Errore di sostituzione con i comandi B=, BI=

Errore di sostituzione con i comandi L=, T=

Errore di sostituzione con i comandi U=, UN=, O=, ON=, ==, S= e RB=

Errore di sostituzione con i comandi RD=, LC=, FR=, SAR=, SE=, SSV= e SVZ=

Page 217: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Errore del codice Un codice di operazione non permesso viene rilevato quando si programma un dell'operazione comando che non è contenuto nel set delle operazioni STEP 5 della CPU 928B (OB 29) (p.es. i comandi RU e SU possono essere programmati con il PG ma non

possono essere interpretati dalle CPU 928B, 928, 922 (processore R) e 921 (processore S) nel controllore S5-135U).

Con il riconoscimento di un codice di operazione non permesso, l'elaborazione del programma utente viene interrotta e viene richiamato il blocco organizzativo OB 29, se questo è stato programmato.

Richiamando I'OB 29, nell'ACCU 1 sono a disposizione delle ulteriori informazioni che descrivono in modo più dettagliato l'errore verificatosi.

Tabella 5-19 BCF - errore del codice dell'operazione

Errore del parametro (OB 30)

Identificatore ACCU-l-L ACCU-2-L

1811H -

1812H -

1813H -

1814H -

1815H -

Precauzione Un errore nel codice dell'operazione non dovrebbe essere confermato: la CPU non riconosce se il comando errato è lungo una o più parole. Quando la CPU ha elaborato I'OB 29, esso cerca di continuare il programma interpretando la parola successiva come un comando. Nel caso che questa sia la seconda parola di un comando a più parole, o la CPU rileva un altro errore di codice, oppure interpreta questa parola come un comando valido che può causare errori di programma.

Spiegazione

Comando con codice di operazione non permesso

Codice di operazione non permesso con un comando che contiene 68H nel byte alto (high-byte) della prima parola.

Codice di operazione non permesso con un comando che contiene 78H nel byte alto (high-byte) della prima parola.

Codice di operazione non permesso con un comando che contiene 70H nel byte alto (high-byte) della prima parola.

Codice di operazione non permesso con un comando che contiene 60H nel byte alto (high-byte) della prima parola.

Un parametro non permesso viene rilevato quando un comando è stato programmato con un parametro che la CPU non riconosce (p. es. richiamo di un blocco dati riservato), oppure viene richiamata una funzione speciale non presente.

Quando la CPU riconosce un parametro non permesso, il programma di sistema interrompe l'elaborazione del programma utente e richiama il blocco organizzativo OB 30 (se caricato).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 218: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Richiamando I'OB 30, nell'ACCU 1 sono a disposizione delle informazioni supplementari che definiscono in modo dettagliato l'errore verificatosi.

Tabella 5-20 BCF - errore del parametro

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

1821H -

182BH -

182CH -

182DH -

182EH -

182FH -

1830H -

1831H -

1832H -

1833H -

1834H -

1835H -

1836H -

1837H -

1838H -

1839H -

183AH -

183BH -

183CH -

Spiegazione (parametro non permesso con:)

A DB O, 1 , 2

SPAQ3) OB O

SPAQ3) OB > 39: speciale non presente

AXDXO,AXDXl,AXDX2

L MW/T MW/L PW/T PW/L QW/T QW/L DD/T DD/B MW 255

L EW/T EW/L AW/T AW 127

L MD/T MD 253,254,255

L ED/T ED/L ADtT AD 125,126,127

RLDIRRDISVDISLD 33-255

SLW/SRW/LIR/TIR 16-255

SESISEF 32-255

U = / U N = / O = / O N = / S = / R B = / = = / RD=/FR=/SI=/SE=/SVZ=/SSV=/ SAR=/L=/LC=/LW=/T= 0, 127-255

B=/LD= 0, 126-255

U S/O S/S S/= S/UN S/ON S/R S numero byte > 1023

U S/O S/S S/= S/UN S/ON S/R S numero bit > 7

L SY/T SY parametro>l023

L SW/T SW parametro > 1022

L SD/T SD parametro >l020

E DB/EX DX parametro 0, 1 o 2 (DB o DX O, 1, 2 non generabili)

Page 219: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.2 LZF (errore di esecuzione)

Introduzione Un errore di esecuzione si manifesta quando la CPU rileva un errore durante l'elaborazione di un comando STEP 5. I1 comando che provoca l'errore di esecuzione non viene eseguito. Se è stato programmato un blocco organizzativo LZF, esso viene richiamato, elaborato e quindi si continua con l'elaborazione del comando successivo nel programma utente interrotto. Se I'OB LZF non è stato programmato, la CPU si porta in STOP.

Ci sono diversi tipi di errori di esecuzione per i quali vengono richiamati i corrispondenti OB di errore:

Richiamo di un Quando viene richiamato dal programma utente un blocco non presente, il blocco non programma di sistema rileva l'errore. Questo vale per tutti i tipi di blocco e sia presente (OB 19) per i salti assoluti, sia per quelli condizionati.

Appena la chiamata ad un blocco non presente viene riconosciuta, il programma di sistema richiama il blocco organizzativo OB 19 (se caricato). Nell'OB 19 è possibile programmare i successivi comportamenti della CPU.

Se I'OB 19 è stato programmato, esso viene richiamato e quindi l'elaborazione del programma STEP 5 interrotto viene continuata con il comando successivo. Se invece I'OB 19 non è programmato, la CPU, in caso di richiamo di un blocco non caricato, va in STOP.

Richiamando I'OB 19, nell'ACCU 1 sono a disposizione delle informazioni supplementari che definiscono in modo più dettagliato l'errore verificatosi.

Tabella 5-21 LZE - richiamo di un blocco non caricato

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

1AOlH -

1A02H -

1A03H -

1A04H -

1A05H -

1A06H -

1A07H -

Spiegazione

Blocco dati non caricato con A DB

Blocco dati non caricato con AX DX

Blocco non caricato con SPA(B) FB, OB 1 a OB 39, PB, SB

Blocco non caricato con BA(B) EX

Blocco dati non caricato con OB 254 o 255

Blocco dati non caricato con OB 182

Blocco dati non caricato con OB 15010B 15110B 153

Page 220: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Avvertenza I1 tentativo di attivare un blocco dati non caricato influenza il registro DBA (vedere capitolo 9). In questo caso è necessario attivare nuovamente un blocco dati caricato prima di accedere ai dati DB/DX.

Errore di Trasferendo dei dati in blocchi dati (DB o DX), la CPU confronta la lunghezza caricamento1 del DB richiamato con il parametro contenuto nel comando di trasferimento. Se trasferimento tramite questo parametro si supera la lunghezza del blocco dati, il comando di (OB 32) trasferimento non viene eseguito, in modo da evitare una sovrascrittura errata di

dati nella memoria.

Un errore di caricamento/trasferimento viene individuato anche quando si cerca di interrogare o modificare un bit in una parola dati non esistente.

Un errore di caricamento/trasferimento viene ancora riconosciuto in caso di accesso ad una parola dati senza aver prima richiamato un blocco dati (con A DBn oppure AX DXn).

Al riconoscimento di un errore di caricamento/trasferimento, il programma di sistema richiama il blocco organizzativo OB 32 (se caricato). I1 comando che ha causato l'errore non viene elaborato. Richiamando I'OB 32, nell'accumulatore 1 sono a disposizione delle informazioni supplementari che definiscono in modo più dettagliato l'errore verificatosi.

1 1A14H - Errore di trasferimento con TDW per una parola dati non definita 1

Tabella 5-22 LZF - errore di caricamento/trasferimento (TRAF)

Identificatore ACCU-l-L ACCU-2-L

1A11H -

1A12H -

1A13H -

1 1A17H - Errore di caricamento con LDL per una parola dati non definita 1

Spiegazione

Accesso con U/UN D, O/ON D, S/R D, =D ad una parola dati non definita

Errore di trasferimento con TDR per una parola dati non definita

Errore di trasferimento con TDL per una parola dati non definita

1A15H -

1A16H -

Errore di trasferimento con TDD per una parola dati non definita

Errore di caricamento con LDR per una parola dati non definita

I 1AlAH - I Accesso con BDW ad una parola dati non definita I

1A18H -

1A19H -

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Errore di caricamento con LDW per una parola dati non definita

Errore di caricamento con LDD per una parola dati non definita

Page 221: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Altri errori di Qui vengono compresi tutti gli errori che non appartengono ad uno dei tipi esecuzione precedentemente elencati (errore di trasferimento o richiamo di un blocco non (OB 31) presente).

Al riconoscimento di uno di questi errori di esecuzione, il programma di sistema richiama il blocco organizzativo OB 31. I1 comando (o la funzione speciale) che provoca l'errore non viene elaborato. Se I'OB 31 non è programmato, la CPU va in STOP. Se l'elaborazione del programma deve continuare anche al verificarsi di uno di questi errori, è sufficiente programmare il comando di fine blocco BE nell'OB 31.

Richiamando I'OB 31, negli accumulatori 1 e 2 sono a disposizione ulteriori informazioni che definiscono in modo più dettagliato l'errore verificatosi:

Tabella 5-23 LZF - altri errori di esecuzione (visualizzazioni degli OB 2541255 ed OB 250)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

1A21H -

1A22H -

1A23H -

1A25H -

1A29H -

1A2AH -

1A2BH -

1A2CH -

1A31H -

1A32H -

1A33H -

Spiegazione

E DB, EX DX: il blocco esiste già

E DB, EX DX: numero di parole dati non permesso (< l oppure > 4091 parole)

E DB, EX DX: la memoria RAM per DB non è sufficiente

BI: parametro in ACCU 1 non permesso (< l oppure > 125)

Livello di parentesi troppo elevato o troppo piccolo dopo W(', 'O(', '1'.

A DB, AX DX: lunghezza del blocco dati nell'intesta- zione troppo piccola (< 5 parole)

Blocco funzionale caricato con software PG errato

ACR: numero di kachel non valido in ACCU-1-L (> 255)

OB 2541255 (traslazione) oppure OB 250: il blocco dati destinazione esiste già nella RAM per DB.

OB 25410B 255 (duplicazione): il DB destinazione esiste già nella RAM per DB.

OB 25410B 255 oppure OB 250: la memoria RAM per DB non è sufficiente

Page 222: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

ore del190B 182

Tabella 5-24 LZF - altri errori di esecuzione (visualizzazioni dell'OB 182)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

1A34H 0001H

1A34H 0100H

1A34H 0101H

1A34H 0102H

1A34H 0200H

1A34H 0201H

1A34H 0202H

1A34H 0203H

1A34H 0210H

1A34H 0211H

1A34H 0212H

1A34H 0213H

1A34H 0220H

1A34H 0221H

1A34H 0222H

1A34H 0223H

Spiegazione

Scrittura sul campo dati non permessa

Tipo del campo di indirizzamento non permesso

Numero del blocco dati non permesso

Numero della prima parola di parametro non permesso

Tipo del blocco dati di sorgente non permesso

Numero del blocco dati di sorgente non permesso

Numero della prima parola dati da trasferire dalla sorgente non permesso

L'intestazione del blocco contiene come lunghezza del blocco dati di sorgente un valore < 5

Tipo del blocco dati di destinazione non permesso

Numero del blocco dati di destinazione non permesso

Numero della prima parola dati da trasferire nella destinazione non permesso

L'intestazione del blocco contiene come lunghezza del blocco dati di destinazione un valore < 5 parole

Numero dalle parole dati da trasferire non permesso (= O oppure > 4091)

Blocco dati di sorgente troppo corto

Blocco dati di destinazione troppo corto

Blocco dati di destinazione memorizzato nell'EPROM

Page 223: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Visualizzazioni La seguente tabella contiene le visualizzazioni di errore degli OB 110, OB 121, di errore dei vari OB 122, OB 221, OB 240, OB 241, OB 242 e OB 250. OB speciali

Tabella 5-25 LZF - altri errori di esecuzione (visualizzazioni dei vari OB speciali)

Identificatore ACCU-l-L ACCU-2-L

Spiegazione

1A35H -

- OB 221: valore per il nuovo tempo di ciclo non permesso (< 1 ms oppure > 13000 ms)

OB 250: numero del blocco di trasmissione non permesso

1A36H - I

OB 250: lunghezza diversa per DB x e DB x t l oppure D X x e D X x t l

1 1A3BH -

1 1A42H - I OB 241: registro a scorrimento non inizializzato 1

OB 223: i modi di avviamento delle CPU in funzionamento multiprocessore sono diversi

1A41H -

1 1A43H - I OB 240: la memoria nella RAh4 per DB non sufficiente I

OB 240, OB 241 oppure OB 242: numero del registro a scorrimento o del blocco dati non permesso (< 192 oppure > 255)

1A44H -

l 1A46H

- OB 240: posizione o numero del puntatore non permesso

( > 5)

OB 240: la DW O del blocco dati non ha contenuto "0"

1A45H - OB 240: lunghezza del registro a scorrimento nella DW 1 non permessa (non tra 2 e 256)

1 1A49H - I OB 110: valori in ACCU 1 o ACCU-2-L non permessi I

1A47H -

1A48H -

1 1A4AH - 1 OB 121: valori in ACCU 1 o ACCU-2-L non permessi I

OB 120: valori in ACCU 1 o ACCU-2-L non permessi

OB 122: valori in ACCU 1 o ACCU-2-L non permessi

1 1A4BH - I OB 123: valori in ACCU 1 non permasi 1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 224: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e degli errori

re de1190B 15Q

Tabella 5-26 LZF - altri errori di esecuzione (visualizzazioni dell'OB 150)

Tabella 5-27 LZF - altri errori di esecuzione (visualizzazioni degli OB 151, OB 152 ed OB 153)

Identificatore ACCU-l-L ACCU-2-L

1A4CH 0001H

1A4CH 0100H

1A4CH 0101H

1A4CH 0102H

1A4CH 0103H

1A4CH 0201H

1A4CH 0202H

1A4CH 0203H

1A4CH 0204H

1A4CH 0205H

1A4CH 0206H

1A4CH 0207H

1A4CH 0208H

1A4CH 0209H

1A4CH 020AH

Spiegazione

Numero funzionale non permesso (=O oppure >2)

Tipo del campo di indirizzamento non permesso

Numero del blocco dati non permesso

Numero della prima parola nel campo dei dati non permesso

L'intestazione del blocco contiene come lunghezza del blocco dati un valore < 5 parole

Introduzione dell'anno non permessa nel campo dei dati

Introduzione del mese non permessa nel campo dei dati

Introduzione del giorno del mese non permessa nel campo dei dati

Introduzione del giorno della settimana non permessa nel campo dei dati

Introduzione dell'ora non permessa nel campo dei dati

Introduzione dei minuti non permessa nel campo dei dati

Introduzione dei secondi non permessa nel campo dei dati

Centesimi di secondo nel campo dei dati non uguali a zero

Parola dati 3/bit 0...3 non uguali a zero

Formato ora non uguale all'impostazione nell'OB 151

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

Spiegazione

Visualizzazioni deii90B 151

1A4DH 0001H

1A4DH 0100H

1A4DH 0101H

1A4DH 0102H

1A4DH 0103H

1A4DH 0201H

1A4DH 0202H

Numero funzionale non permesso (=O oppure >2)

Tipo del campo di indirizzamento non valido

Numero del blocco dati non valido

Numero della prima parola nel campo dei dati non permesso

L'intestazione del blocco contiene come lunghezza del blocco dati un valore < 5 parole

Introduzione dell'anno non permessa nel campo dei dati

Introduzione del mese non permessa nel campo dei dati

Page 225: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Tabella 5-28 LZF - altri errori di esecuzione (visualizzazioni delle varie operazioni di sistema)

l) vedere capitolo 9

Identificatore ACCU-l-L ACCU-2-L

1A50H -

1A51H -

1A52H -

1A53H -

1A54H -

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Spiegazione

LRW, TRW: L'indirizzo di memoria <BR+ costante> non è nel campo da "O .. EDFFH" l)

LRD, TRD: L'indirizzo di memoria <BR+ costante> non è nel campo da "O .. EDEEH" l)

TSG, LB GB, LW GW, TI3 GB, TW GW: L'indirizzo lineare <BR+costante> non è nel campo da "O .. EFFEH"

LB GW, LW GD, TB GW, TW GD: L'indirizzo lineare <BR+costante> non è nel campo da "O .. EFEEH"

LB GD, TI3 GD: L'indirizzo lineare <BR+costante> non è nel campo

da "O .. EFFCH"

Page 226: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

l) vedere capitolo 9

Identificatore ACCU-l-L ACCU-2-L

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Spiegazione

Continuazione della tabella 5-28:

1A55H -

1A56H -

1A57H -

1A58H -

1A59H -

TSC, LB CB, LW CW, TI3 CB, TW CW: L'indirizzo kachel <BR+ costante> non è nel campo da "F400H .. FBFFH"

LB CW, LW CD, TI3 CW,TW CD: L'indirizzo kachel <BR+ costante> non è nel campo da "F400H .. FBFEH"

LB CD, TI3 CD: L'indirizzo kachel <BR+ costante> non è nel campo da "F400H .. FBFCH"

TNW, TNB: I1 blocco sorgente non si trova completamente in uno dei seguenti setton: 0000 .. 7FFF memoria utente l) 8000 .. DD7F RAM per blocchi dati DD80 .. E3FF DB O E400 .. E7FF merker S E800 .. EDFF dati di sistema (BA, BB, BS, BT, Z, T ) EEOO .. EFFF merker, immagine di proc. F000 .. FFFF periferia

TNW, TNB: I1 blocco sorgente non si trova completamente in uno dei seguenti setton: 0000 .. 7FFF memoria utente l) 8000 .. DD7F RAM per blocchi dati DD80 .. E3FF DB O E400 .. E7FF merker S E800 .. EDFF dati di sistema (BA, BB, BS, BT, Z, T ) EEOO .. EFFF merker, immagine di proc. F000 .. FFFF periferia

Page 227: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.3 ADF (errore di indirizzamento)

Introduzione Un errore di indirizzamento si manifesta quando tramite un comando STEP 5 si cerca di accedere ad un ingresso o ad un'uscita nell'immagine di processo a cui, al momento dell'ultimo NUOVO AWIAMENTO, non era associata alcuna unità periferica (unità non inserita, difettosa oppure non definita nel DB 1 della CPU).

I1 programma di sistema interrompe quindi l'elaborazione del programma utente e richiama il blocco organizzativo OB 25. Dopo l'elaborazione dell'OB 25, il programma interrotto continua con l'istruzione successiva. I1 comando STEP 5 che ha provocato l'errore ADE è stato eseguito con un valore di ingresso o uscita non definito! Se I'OB 25 non è programmato, al verificarsi di un errore di indirizzamento, la CPU va in STOP, se nel DX O non si è modificata la condizione di continuazione dell'elaborazione del programma. I1 controllo degli errori di indirizzamento può essere completamente mascherata programmando in modo corretto il DX O.

Visualizzazioni I1 programma di sistema mette a disposizione le seguenti visualizzazioni di di errore errore:

Tabella 5-29 Visualizzazioni di errore di indirizzamento A D E

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-1-L ACCU-2-L

1E40H YYYYH

Spiegazione

Errore di indirizzamento yyyy = indirizzo A D E

Page 228: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.4 QVZ (ritardo della conferma)

Introduzione Un ritardo della conferma si ha quando una unità di ingresso o di uscita non restituisce il segnale READY entro un certo tempo dopo un indirizzamento. I1 motivo di questo ritardo può essere un guasto sull'unità periferica oppure l'estrazione dell'unità durante il funzionamento.

I seguenti errori di ritardo della conferma interrompono l'elaborazione del programma utente e richiamano i relativi blocchi organizzativi.

Avvertenza Se I'OB richiamato non è programmato, l'elaborazione del programma utente continua.

Al verificarsi di un ritardo della conferma, la CPU legge essezionalmente il valore "OOH" ed opera con questo valore fittizio nel caso che l'errore QVZ venga tacitato dall'utente.

Ogni ritardo della conferma prolunga il tempo di ciclo del programma utente STEP 5.

STOP con QVZ Se un ritardo della conferma deve provocare lo STOP della CPU, nell'OB 23 o 24 deve essere programmato il comando di STOP "STP". Tramite la corretta programmazione del DX O è possibile provocare lo STOP del processore in caso di errore QVZ anche senza la programmazione degli OB 23 e 24.

QVZ ad accesso Ritardo della conferma nel programma utente per accessi diretti via bus S5 a CP, diretto tramite il IP, coordinatore o unità periferiche (p. es. con comandi L/T P, L/T Q): bus S5

OB 23 I1 programma di sistema richiama il blocco organizzativo OB 23 (se caricato).

Visualizzazioni Negli accumulatori 1 e 2 sono disponibili informazioni supplementari che di errore definiscono in modo più dettagliato l'errore verificatosi:

Tabella 5-30 Visualizzazioni QVZ in caso di ritardo della conferma

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-1-L ACCU-2-L

1E23H YYYYH

Spiegazione

Ritardo della conferma yyyy = indirizzo QVZ

Page 229: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Indirizzo QVZ L'indirizzo QVZ indica il byte di periferia che ha generato per primo un QVZ. Generalmente esso è il byte con l'indirizzo più basso tra i comandi periferici. Eccezioni sono indirizzi QVZ forniti con i comandi TNBITNW in caso di un ritardo della conferma: poiché questi comandi lavorano in modo decrescente, l'indirizzo QVZ indica il byte con l'indirizzo maggiore che ha attivato il QVZ durante un trasferimento di un gruppo di dati.

QVZ durante Ritardo della conferma durante l'aggiornamento dell'immagine di processo ed il l'aggiornamento trasferimento dei merker di accoppiamento da parte del programma di sistema. dell'lPI/IPU ed il trasferimento dei merker di accoppiamento

OB 24 I1 programma di sistema richiama il blocco organizzativo OB 24 (se caricato).

Visualizzazioni Negli accumulatori 1 e 2 sono disponibili informazioni supplementari che di errore definiscono in modo più dettagliato l'errore verificatosi:

Tabella 5-31 QVZ - visualizzazioni alla chiamata dell'OB 24

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Identificatore ACCU-l-L ACCU-2-L

1E25H yyyyH

1E26H yyyyH

1E27H yyyyH

1E28H yyyyH

Spiegazione

Ritardo della conferma con l'aggiornamento delle uscite digitali yyyy = indirizzo del byte di uscite che non dà la conferma

Ritardo della conferma con l'aggiornamento degli ingressi digitali yyyy = indirizzo del byte di ingressi che non dà la conferma

Ritardo della conferma con l'aggiornamento dei merker di accoppiamento di uscita yyyy = indirizzo del byte di merker di accoppiamento che

non dà la conferma

Ritardo della conferma con l'aggiornamento dei merker di accoppiamento di ingresso yyyy = indirizzo del byte di merker di accoppiamento che

non dà la conferma

Page 230: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.5 ZYK (errore del tempo di ciclo)

Introduzione I1 tempo di ciclo è costituito dall'intera durata dell'elaborazione del programma ciclico. Superando il tempo di ciclo massimo definito nella CPU, si provoca l'interruzione del funzionamento ciclico. Questo errore può essere provocato, per esempio, da una programmazione non corretta, da un loop troppo lungo o addirittura infinito, dalla caduta del clock, o da compiti di sistema, p.es. l'aggiornamento dell'immagine di processo in caso di programmi lunghi.

Quando si verifica il superamento del tempo di ciclo ammesso, il programma di sistema interrompe il programma utente e richiama il blocco organizzativo OB 26 (se caricato). Nel far ciò il tempo di ciclo viene resettato. Se il tempo di ciclo trascorre di nuovo completamente prima che I'OB 26 venga completamente elaborato, la CPU si porta in STOP segnalando un doppio errore (DOPP-FE).

Tempo di ciclo I1 tempo di ciclo è variabile (da 1 a 13000 ms) e riazzerabile (vedere sopra). Indipendentemente dal tempo di ciclo, 100 ms dopo che è trascorso il tempo di ciclo, viene emesso il segnale BASP, se I'OB 26 non è ancora stato completamente elaborato.

L'utente può definire il tempo di ciclo massimo sia introducendolo nel DX 0, sia richiamando il blocco organizzativo speciale OB 221.

Nel programma ciclico, il controllo del tempo di ciclo può essere resettato tramite una chiamata dell'OB 222.

STOP con OB 26 Se I'OB 26 non è programmato, la CPU si porta in STOP a meno che la non caricato preimpostazione del DX O non sia stata modificata.

Visualizzazioni Se si verifica un errore del tempo di ciclo, nessun identificatore di errore viene di errore trasferito in ACCU 1 od ACCU 2!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 231: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e degli errori

5.6.6 WECK-FE (errore per collisione di interrupt temporali)

Introduzione Quando durante l'elaborazione di un programma di schedulazione si presenta un altra richiesta di allarme per collisione di interrupt temporali, il programma di sistema riconosce un errore di questo tipo.

Se si presenta un errore per collisione di interrupt temporali, il programma di sistema interrompe l'elaborazione del programma di schedulazione e richiama il blocco organizzativo OB 33 (se caricato). In caso contrario la CPU si porta in STOP. Vedere anche paragrafo 4.5.

Visualizzazioni Negli accumulatori 1 e 2 sono disponibili informazioni supplementari che di errore definiscono in modo più dettagliato l'errore verificatosi:

Tabella 5-32 Visualizzazioni WECK-FE

Avvertenza L'identificatore in ACCU 2 è l'identificatore di livello dell'allarme di schedulazione che ha provocato l'errore.

Se I'OB 33 non è programmato, la CPU si porta in STOP. Tramite una corretta programmazione del DX O è possibile fare proseguire l'elaborazione del programma in caso di errore per collisione di interrupt temporali anche senza programmare I'OB 33.

Un nuovo richiamo del livello di elaborazione programma "errore per collisione di interrupt temporali" già attivato non causa un doppio errore (DOPP).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 232: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.7 REG-FE (errore di regolazione)

Introduzione Un errore verificatosi durante l'elaborazione dei blocchi funzionali della struttura di regolazione R64 viene identificato come errore di regolazione.

Reazione ad errori di regolazione

Avvertenza Mentre, per esempio, un errore per collisione di interrupt temporali viene sempre riconosciuto dal programma di sistema se un certo OB di allarme di schedulazione non inizia e si conclude nell'arco della sua base di tempo (p.es. 100 ms per I'OB 13, vedere sopra), un'elaborazione errata del programma di regolazione viene riconosciuta e rappresentata nel registro d'interruzione solo al richiamo del livello "ELABORAZIONE ATTIVATA A TEMPO PER REGOLAZIONI" .

Al verificarsi di un errore di regolazione il livello "ELABORAZIONE ATTIVATA A TEMPO PER REGOLAZIONI" viene abbandonato e viene attivato il livello "ERRORE DI ELABORAZIONE" (LIVELLO: 001CH) con il blocco organizzativo OB 34. La successiva reazione del processore dipende dalla programmazione dell'OB 34:

Se I'OB 34 non è programmato, il processore si porta in STOP. La causa dell'errore è facilmente ricavabile dal registro di interruzione.

Se I'OB 34 è programmato, viene elaborato il programma STEP 5 in esso contenuto (p.es. analisi degli accumulatori 1 e 2 e conseguente gestione dell'errore). Infine viene ripresa l'elaborazione della regolazione nel punto in cui questa era stata interrotta.

Se si vuole che gli errori di regolazione siano ignorati, è sufficiente programmare il comando di fine blocco BE nell'OB 34.

Se si vuole che al verificarsi di un errore, la regolazione debba comunque essere elaborata anche senza programmare I'OB 34, si deve modificare di conseguenza la preimpostazione del DX O.

Visualizzazioni Richiamando I'OB 34, negli accumulatori 1 e 2 sono a disposizione informazioni di errore supplementari che definiscono in modo più dettagliato l'errore verificatosi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 233: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Tabella 5-33 Visualizzazioni REG-FE

Registrazione In tutti i 7 casi di errore, l'identificatore di errore REG-FE viene contrassegnato nella maschera da una crocetta nella maschera dei bit di comando sul PG. Se si usa un PG senza dei bit di il sistema operativo S5-DOS, il penultimo posto della riga inferiore della comando maschera dei bit di comando non è denominato, ma viene comunque

contrassegnato. Nell'USTACK, REG viene contrassegnato come causa di errore sul livello "REGOLAZIONE".

Identificatore ACCU-l-L ACCU-2-L

0801H DByyH

0802H DByyH

0803H FByyH

0804H FByyH

0805H FByyH

0806H DByyH

0880H OOyyH

Errore del Trascorso il tempo di campionamento previsto, il programma ciclico viene tempo di interrotto al successivo cambio di blocco e qui viene elaborata la regolazione. campionamento Può darsi che l'elaborazione di un particolare blocco richieda troppo tempo per

cui si provochi un ritardo all'elaborazione della regolazione: ciò provoca un errore del tempo di campionamento.

Spiegazione

Errore del tempo di campionamento yy = numero del relativo DB per la regolazione

DB per la regolazione non caricato yy = numero del DB non caricato

FB per la regolazione non caricato yy = numero del FB non caricato

FB per la regolazione non riconosciuto yy = numero del FB non riconosciuto

FB per la regolazione caricato con un software PG errato yy = numero del FB

Lunghezza del DB per la regolazione non valida yy = numero del DB

Ritardo della conferma (QVZ) durante la regolazione yy = numero del byte di ingresso/uscita

che ha causato QVZ

Un errore di questo tipo può essere trattato come gli altri errori di regolazione (come precedentemente descritto) oppure può essere mascherato in fase di parametrizzazione. In questo caso il verificarsi di un errore del tempo di campionamento non interrompe l'elaborazione del programma.

Al riguardo vedere la descrizione della "Regolazione con il processore R" nell'S5-135U 1131.

Un errore del tempo di campionamento può anche essere evitato se nel DX O si modifica la predisposizione "Elaborazione degli allarmi di regolazione e di processo alla fine di un blocco" in "Elaborazione degli allarmi di regolazione e di processo alla fine di un comando".

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 234: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.8 ABBR (interruzione)

Attivazione Quando nel modo di funzionamento RUN, si provoca il passaggio allo stato di e reazione STOP tramite:

commutatore dei modi di funzionamento sulla CPU da RUN a STOP,

funzione PG online "STOP AG",

selettore sul coordinatore su STOP (in funzionamento multiprocessore),

il programma di sistema richiama I'OB 28 (se caricato). Dopo l'elaborazione dell'OB 28, la CPU si porta in STOP.

Avvertenza I1 passaggio allo stato di STOP avviene indipendentemente dal fatto che e da come I'OB 28 sia programmato.

1 Non viene trasferito alcun identificatore di errore in ACCU 1 od ACCU 2.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 235: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

5.6.9 Errore di comunicazione (FE-3)

Introduzione Se sulla seconda interfaccia seriale vengono rilevati errori durante un collegamento con procedura RK 512,3964/3964R, "open driver" oppure con SINEC LI, il programma di sistema richiama I'OB 35 e trasmette inoltre all'ACCU 1 ulteriori informazioni per l'esatta identificazione dell'errore.

Se I'OB 35 non è stato programmato, il programma di sistema non ha alcuna reazione, e la CPU non va in STOP (predisposizione standard). Se al verificarsi di un errore sulla seconda interfaccia seriale la CPU deve andare in STOP anche senza OB 35, ciò può essere predisposto tramite la programmazione del DX O.

Informazioni di Ogni 100 ms il programma di sistema controlla se si sono presentati errori di errore in ACCU 1 comunicazione sulla seconda interfaccia seriale. In questo caso, il programma di

sistema depone in ACCU 1 delle informazioni circa l'errore verificatosi. Se I'OB 35 è programmato, esso viene richiamato dal programma di sistema e le informazioni di errore trasferite all'ACCU 1.

Nel richiamo dell'OB 35 possono essere dati al massimo i numeri relativi a tre cause di errore. Se sono presenti più di tre cause, tale "overflow" viene segnalato da un apposito codice.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 236: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Gestione delle interruzioni e deali errori

Struttura dell'informazione di errore in ACCU 1

3 1

ACCU 1

F = 'O', nessun errore inserito nel campo di errore = ' l ' , errore inserito nel campo di errore

O

U = 'O', nessun overflow di errori (massimo tre registrazioni) = ' l ' , overflow di errori (più di tre registrazioni)

B = 'O', nessun BREAK sull'interfaccia = ' l ' , BREAK sull'interfaccia

O

BREAK In caso di BREAK sull'interfaccia, I'OB 35 viene richiamato solo all'inizio dello stato di BREAK.

Numeri di errore Qui vengono inseriti al massimo tre numeri di errore verificatisi sull'interfaccia, d a l a 3 nella sequenza con cui essi sono stati rilevati dal sistema.

O

Significato dei I1 significato di tali numeri, nonché ulteriori informazioni per l'uso numeri di errore dell'interfaccia si trovano nel manuale "Comunicazione" 1141.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

O F U B O Numero errore 1 Numero errore 2 Numero errore 3

Page 237: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

In questo Questo capitolo descrive i blocchi organizzativi speciali integrati nel programma capitolo di sistema, la loro applicazione, il loro richiamo e parametrizzazione.

Inoltre descrive come identificare gli errori che si possono verificare durante l'elaborazione di un OB speciale e come gestirli via programma.

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

6.1

6.2

6.3

6.4

6.5

6.6

6.7

6.8

6.9

6.10

6.11

6.12

6.13

6.14

6.15

6.16

6.17

6.18

6.19

6.20

6.21

Argomento trattato

Introduzione

OB 110: Accesso al byte di visualizzazione

OB 111: Cancellazione di ACCU 1,2,3, e 4

OB 1121113: ACCU Roll Up ed ACCU Roll Down

OB 120: Abilitazione/disabilitazione della funzione "disattivazione comune degli allarmi"

OB 121: Abilitazione/disabilitazione della funzione "disattivazione di singoli allarmi di schedulazione"

OB 122: Abilitazione/disabilitazione della funzione "ritardo comune degli allarmi"

OB 123: Abilitazione/disabilitazione della funzione "ritardo di singoli allarmi di schedulazione"

OB 134, OB 135, OB 136 ed OB 139

OB 150: Impostazione/lettura del tempo di sistema

OB 151: Impostazione/lettura dell'allarme di schedulazione

OB 152: Analisi statistica

OB 153: Impostazione/lettura dell'allarme di ritardo

Da OB 160 ad OB 163: Cicli di conteggio

OB 170: Lettura del registro di blocco BSTACK

OB 180: Accesso a blocchi dati variabili

OB 181: Test di blocchi dati DB e DX

OB 182: Copia di settori di dati

OB 185: Impostazione della protezione in scrittura

OB 186: Compressione della memoria

OB 1901192: Trasferimento di merker in blocchi dati

Pagina

6-3

6-7

6-9

6-9

6-11

6-14

6-16

6-19

6-22

6-23

6-28

6-35

6-42

6-45

6-47

6-52

6-56

6-58

6-61

6-62

6-63

Page 238: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

6.22

6.23

6.24

6.24.1

6.24.2

6.24.3

6.24.4

6.25

6.26

6.27

6.28

6.29

6.30

6.31

6.32

6.33

6.34

6.35

6.36

6.37

6.37.1

6.37.2

6.38

6.39

6.40

Argomento trattato

OB 1911193: Trasferimento di dati nel campo dei merker

OB 200 ed OB da 202 a 205: Comunicazione multiprocessore

Da OB 216 ad OB 218: Accesso ai kachel

OB 216: Scrittura in un kachel

OB 217: Lettura di un kachel

OB 218: Occupazione di un kachel

Esempio di programma

OB 220: Espansione del segno

OB 221: Definizione del tempo di ciclo

OB 222: Riazzeramento del tempo di ciclo

OB 223: Confronto dei modi di avviamento

OB 224: Trasferimento a blocchi di merker di accoppiamento

OB 226, OB 227

OB 228: Lettura delle informazioni di stato di un livello di elaborazione programma

Da OB 230 ad OB 237: Funzioni per blocchi funzionali standard

Da OB 240 ad OB 242: Funzioni speciali per registri a scorrimento

OB 240: Inizializzazione di un registro a scorrimento

OB 241: Elaborazione di un registro a scorrimento

OB 242: Cancellazione di un registro a scorrimento

OB 2501251: Regolazione/algoritmo PID

Descrizione delle funzioni del regolatore PID

Algontmo PID

OB 250: Inizializzazione dell'algoritmo PID

OB 251: Elaborazione dell'algontmo PID

OB 2541255: Trasfenmento/duplicazione di blocchi dati nella RAM per DB

Pagina

6-65

6-70

6-71

6-74

6-76

6-78

6-80

6-82

6-83

6-84

6-84

6-85

6-86

6-87

6-89

6-90

6-94

6-97

6-98

6-99

6-99

6-101

6-106

6-107

6- 113

Page 239: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.1 Introduzione

Presentazione I1 sistema operativo della CPU 928B mette a disposizione delle funzioni speciali che possono essere richiamate in modo condizionato (SPB OBx) o assoluto (SPA OBx). Per queste funzioni speciali sono riservati i blocchi organizzativi da OB 100 ad OB 255 che vengono quindi denominati blocchi organizzativi speciali.

Questi OB speciali vengono detti integrati in quanto sono una parte fissa del programma di sistema. L'utente ha la possibilità di richiamare gli OB speciali ma non di leggerli o modificarli.

Panoramica degli La seguente tabella dà una panoramica degli OB speciali presenti. OB speciali

Tabella 6-1 Lista degli OB speciali presenti

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Blocco

OB 110 OB 111 OB 112 OB 113

OB 120 OB 121 OB 122 OB 123

OB 134 OB 135 OB 136 OB 139

OB 150 OB 151

OB 152

OB 153

OB 160 ... 163

OB 170

OB 180 OB 181 OB 182

OB 185 OB 186

OB 190,192 OB 191,193

OB 200')' 202') OB 203,204'), 205

Funzione

Accesso al byte di visualizzazione Cancellazione di ACCU 1, ACCU 2, ACCU 3 ed ACCU 4 ACCU Roll Up ACCU Roll Down

Abilitazione/disabilitazione della funzione "disattivazione comune degli allarmi" "disattivazione di singoli allarmi di schedulazione" "ritardo comune degli allarmi" "ritardo di singoli allarmi di schedulazione"

*D /D MOD PUSH

Impostazione/lettura del tempo di sistema Impostazione/lettura dell'allanne di schedulazione

Statistica del ciclo

Impostazione/lettura dell'allanne di ritardo (dalla versione -3UB12)

Cicli di conteggio

Lettura del registro di blocco (BSTACK)

Accesso a blocchi dati variabili Test di blocchi dati @B/DX) Copia di settori di dati

Influenzamento della protezione da sovrascrittura Compressione memoria tramite programma utente

Trasferimento di merker in blocchi dati Trasferimento di gruppi di dati nel campo dei merker

Funzioni per la comunicazione multiprocessore

vedere paragrafolpagina

6.2 6-7 6.3 6-9 6.4 6-9 6.4 6-9

6.5 6-11 6.6 6-14 6.7 6-16 6.8 6-19

6.9 6-22 6.9 6-22 6.9 6-22 6.9 6-22

6.10 6-23 6.11 6-28

6.12 6-35

6.13 6-42

6.14 6-45

6.15 6-47

6.16 6-52 6.17 6-56 6.18 6-58

6.19 6-61 6.20 6-62

6.21 6-63 6.22 6-65

6.23 6-70

Page 240: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

l) OB speciali con pseudo-fine di comando

Invece di usare questi blocchi organizzativi speciali, parametrizzare il blocco dati DX O (vedere capitolo 7).

Blocco

Interfacce Per la programmazione degli OB speciali sono a disposizione le seguenti interfacce:

Richiamo di blocchi

Richiamo di blocco assoluto/condizionato SPB. ./SPA..

Parametro

Funzione

Parametro per la preimpostazione tramite ACCU 1 ed eventualmente ACCU 2 e/o celle di memoria.

vedere paragrafolpagina

Continuazione della tabella

OB 216 ... 218

OB 220

OB 221 2,

0 B 222 0 B 223

OB 224 2,

OB 226 0 B 227 OB 228

OB 230 ... 237')

OB 240 OB 241 OB 242

OB 250') OB 251')

OB 254,255')

Con il termine parametro, nella seguente descrizione dei singoli OB speciali si intendono tutti i dati necessari alla CPU per poter correttamente elaborare il blocco organizzativo speciale. Prima del richiamo dell'OB speciale desiderato nel programma STEP 5, si devono caricare questi dati negli accumulatori oppure nelle celle di memoria predisposte.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

6-1:

Accesso ai kachel

Espansione del segno

Definizione del tempo di controllo ciclo Riazzeramento del tempo di controllo ciclo Confronto dei modi di avviamento Trasferimento a blocchi di merker di accoppiamento Lettura di una parola del programma di sistema Lettura della somma di controllo del programma di sistema Lettura delle informazioni di stato di un livello di elaborazione programma

Funzioni per blocchi funzionali standard

Inizializzazione di un registro a scorrimento Elaborazione di un registro a scorrimento Cancellazione di un registro a scorrimento

Regolazione: inizializzazione dell'algoritmo PID Regolazione: elaborazione dell'algoritmo PID

Copiatura/duplicazione di blocchi dati DB e DX

6.24 6-71

6.25 6-82

6.26 6-83 6.27 6-84 6.28 6-84 6.29 6-85 6.30 6-86 6.30 6-86 6.31 6-87

6.32 6-89

6.34 6-94 6.35 6-97 6.36 6-98

6.38 6-106 6.39 6-107

6.40 6-113

Page 241: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Convenzioni di Per la parametrizzazione dei singoli blocchi organizzativi speciali ci si deve scrittura per gli attenere alle seguenti convenzioni: accumulatori

ACCU 1: ACCU 1, 32 bit

ACCU-1-L: ACCU 1, parola low, 16 bit

ACCU-1-LL: ACCU 1, parola low, byte low, 8 bit

ACCU-1-LH: ACCU 1, parola low, byte high, 8 bit

Trattamento degli errori

Al verificarsi di un errore durante l'elaborazione dell'OB speciale richiamato, il programma di sistema risponde con una reazione di errore speciale.

Parola High -

Relativamente alla reazione ad errori, gli OB speciali possono essere divisi in due gruppi.

Byte High

31 24

Parola Low

OB di errore, visualizzazioni ACCU

Byte Low

23 16

Byte High

15 8

Al primo gruppo appartengono i blocchi organizzativi speciali che in caso di errore provocano il richiamo del relativo OB di errore, nel quale può essere programmata la reazione della CPU. Questi OB di errore sono gli OB 19, OB 30 ed OB 31. Nell'ACCU 1 e, per alcuni OB speciali, nell'ACCU 2 (vedere capitolo 5.6) vengono memorizzati dei codici che permettono all'OB di errore di identificare meglio l'errore verificatosi.

Byte Low

7 O

Se, per esempio, durante l'elaborazione di un blocco organizzativo speciale la CPU riconosce una parametrizzazione errata, richiama I'OB 31. Oppure se il blocco organizzativo speciale richiamato non è presente, la CPU rileva un errore nel codice del comando e richiama I'OB 30. Se i parametri di richiamo di alcuni OB speciali contengono riferimenti ad un blocco dati e se questo blocco dati non è caricato, la CPU cerca di richiamare I'OB 19.

Se I'OB 30, o I'OB 31, non è programmato oppure contiene il comando STP, la CPU va in STOP. Nei bit di comando e nel registro di interruzione, "LFZ" oppure "BCF" vengono contrassegnati da una crocetta. Negli accumulatori vengono messe delle informazioni che spiegano l'errore in modo più dettagliato. Se I'OB 19, I'OB 30, o I'OB 31, è invece programmato (e non contiene il comando STP), dopo la sua elaborazione il programma utente riprende con la successiva istruzione. In questo caso gli accumulatori rimangono invariati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 242: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

RLC, ANZ OIANZ 1

Alcuni OB speciali trattano gli errori usando un altro meccanismo: influenzano i visualizzatori RLC o ANZOIANZl. Quando si verifica un errore durante l'elaborazione di questi OB speciali, nella maggior parte dei casi viene impostato 1'RLC (RLC = 1). Con questi OB speciali è possibile reagire ad un errore rilevando 1'RLC tramite un'operazione SPB (salto condizionato) nel programma STEP 5.

Durante l'elaborazione di alcuni OB speciali vengono influenzati i visualizzatori ANZO ed ANZI. Interrogando queste segnalazioni con le operazioni di confronto nel programma STEP 5 è possibile reagire anche in questo caso ad un errore.

Le reazioni ad errori per i singoli OB speciali vengono descritte nei seguenti paragrafi.

Avvertenza I1 richiamo di un OB speciale con un comando "SPB OB" oppure "SPA OB" non vale come cambio di blocco "effettivo" ma come un'operazione STEP 5. Non possono pertanto essere elaborati degli allarmi (in caso di preimpostazione "interruzione fine blocco")!

OB speciali con Alcuni di questi OB speciali sono funzioni la cui esecuzione richiede abbastanza pseudo-fine di tempo e al cui interno vengono poste delle cosiddette istruzioni di pseudo-fine di comando comando.

Ciò significa che l'esecuzione di queste funzioni avviene in più passi. Al verificarsi quindi di un errore (p.es. ZYK) o di un'interruzione (p.es. allarme di processo o di schedulazione), l'elaborazione del blocco organizzativo speciale viene interrotta alla fine del passo corrente (cioè alla pseudo-fine di comando), e può essere richiamato il blocco organizzativo relativo.

I blocchi organizzativi speciali contenenti pseudo-fine di comando sono evidenziati nella panoramica dei blocchi speciali integrati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 243: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.2 OB 110: Accesso al byte di visualizzazione

Funzione Con l'ausilio del blocco organizzativo speciale OB 110, è possibile sovrascrivere il registro di visualizzazione con il contenuto di ACCU 1 o mascherarlo con "1" o "O".

Contenuto di ACCU 1 per l'accesso al registro di visualizzazione:

7 6 5 4 3 2 1 O

*) I bit da 8 a 31 sono riservati per future espansioni e devono essere uguali a "0" nell'impostazione del registro di visualizzazione. Nella lettura del registro devono invece essere ignorati.

*>

Parametri

numero della funzione, valori permessi: 1, 2, o 3

A l

2. ACCU 2:

nuovo byte di visualizzazione oppure maschera

A 0

Visualizzazioni a parole

Risultato

OV

Visualizzazione a bit

N. funz. in

ACCU-2L

1

2

3

Dopo l'elaborazione dell'OB 110, il byte di visualizzazione è modificato secondo la funzione ed il contenuto di ACCU 1.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

OS

Funzione

I1 contenuto di ACCU 1 viene caricato nel registro di visualizzazione.

Tutti i bit impostati a "1" nella maschera in ACCU 1 vengono impostati a "1" nel registro di visualizzazione. Ii nuovo byte di visualizzazione viene caricato in ACCU 1.

Tutti i bit impostati a "1" nella maschera in ACCU 1 vengono impostati a "0" nel registro di visualizzazione. Ii nuovo byte di visualizzazione viene caricato in ACCU 1.

Contenuto di ACCU-1-L

OR

prima

Nuovo byte di visualiz-

zazione

Maschera

Maschera

dopo

Nuovo byte di visualiz-

zazione

Nuovo byte di visualizz.

Nuovo byte di visualizz.

STA VKE E

Page 244: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Possibilità Si distinguono le seguenti possibilità di errore: di errore

I1 numero di funzione in ACCU-2-L non è uguale a 1, 2, o 3.

In ACCU 1 è impostato uno dei bit dal n. 8 al n. 31.

In caso di errore viene richiamato I'OB 31 (altri errori di tempo di ciclo). Se I'OB 31 non è programmato, la CPU si porta in STOP. In entrambi i casi, 1'ACCU-1-L contiene l'identificatore di errore 1A49H.

Esempio L'OB 110 aiuta a controllare i comandi che analizzano o influenzano il registro applicativo di visualizzazione. Ki suo uso non si limita però a questo. Il seguente esempio

illustra un altro possibile utilizzo.

In dipendenza del contenuto del byte MB 0, deve essere richiamata una delle 4 parti di programma a cui sono associati i bit da M 0.0 a M 0.3. Pub essere impostato solo uno di questi bit per volta.

;traslare i merker da MO.0 a M0.3 4 di bit verso sinistra ;caricare il numero della funzione

:SPA OB 110 :SPS =M000 ;salto se OS = 1 :SPO =M001 ;salto se OV = 1 :SPM =M002 ;salto se ANZO = 1 :SPP =M003 ;salto se ANZI = 1

;se nessun bit è impostato

;se MO.0 = 1

;se MO.l = 1

;se M0.2 = 1

;se M0.3 = 1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 245: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.3 OB 11 1 : Cancellazione di ACCU 1,2, 3, e 4

Funzione Richiamando il blocco organizzativo speciale OB 11 1, il contenuto dei 4 accumulatori viene cancellato: I'OB 111 sovrascrive i 4 registri con "0".

Parametro

Risultato

Possibilità di errore

nessuno

Gli accumulatori 1, 2, 3 e 4 (a 32 bit ognuno) sono cancelllati.

nessuna

6.4 OB 1 1211 13: ACCU Roll U p ed ACCU Roll Down

Funzione Gli OB 112 e OB 113 provocano la "rotazione" del contenuto degli accumulatori in una delle due direzioni:

L'OB 112 (Roll Up) trasferisce il contenuto di ACCU 1 in ACCU 2, quello di ACCU 2 in ACCU 3 e così via.

L'OB 113 (Roll Down) opera in direzione inversa: il contenuto di ACCU 1 va in ACCU 4, quello di ACCU 4 in ACCU 3 e così via.

Parametro

Risultato

Possibilità di errore

nessuno

Le figure 6-1 e 6-2 illustrano il contenuto degli ACCU prima e dopo il richiamo degli OB 112 ed 113.

Avvertenza I contenuti degli ACCU possono essere ruotati anche con i comandi STEP 5 ENT (operazione integrative) e TAK (operazione di sistema) (vedere paragrafo 3.4).

nessuna

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 246: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Traslare i l contenuto degl i accumulatori

3 1 o ACCU 4 m ACCU 3 <ACCU 3> 1

ACCU 2 <ACCU 2, 1

ACCU 1 cACCU i > 1

pr ima dopo

Figura 6-1 Effetto della funzione "Roll-Up"

Traslare i l contenuto degl i accumulatori

ACCU 4 <ACCU 4> 1

ACCU 3 <ACCU 3> 1

ACCU 2 m ACCU

prima dopo

Figura 6-2 Effetto della funzione "Roll-Down"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 247: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.5 OB 120: Abilitazione/disabilitazione della funzione "disattivazione comune degli allarmi"

Introduzione Un programma STEP 5 può essere interrotto alla fine di ogni comando o di ogni blocco da programmi con priorità maggiore. Ai livelli di elaborazione programma con alte priorità appartengono gli allarmi di processo e quelli di schedulazione (allarmi ciclici e comandati dall'orologio e l'allarme di ritardo). I1 tempo di esecuzione del programma interrotto si allunga in relazione al tempo di esecuzione dei vari programmi in esso annidati. Con l'ausilio del blocco organizzativo speciale OB 120 è possibile evitare l'interruzione e l'annidamento di livelli di elaborazione programma con più alta priorità per uno o più blocchi o comandi successivi (in relazione a quanto parametrizzato in DX O).

Funzione

Parametri

I1 blocco organizzativo speciale OB 120 influenza la reazione ad allarmi:

Abilitare la "disattivazione degli allarmi" significa che da questo momento non viene più rilevato alcun allarme e gli allarmi che sono già stati rilevati (per esempio in attesa della fine del blocco) vengono cancellati. Solo nel caso che I'OB 2 (allarme di processo) oppure un OB per l'allarme di schedulazione sia già stato iniziato, esso viene completamente elaborato.

Disabilitare la "disattivazione degli allarmi" significa che da questo momento vengono nuovamente rilevati tutti gli allarmi che si presentano. Essi verranno elaborati alla fine del blocco o del comando corrente.

1. Doppia parola di comando

Un OB 120 registra gli allarmi da disattivare in una doppia parola di comando interna al sistema.

I bit della doppia parola di comando hanno il seguente significato:

Finché un bit è impostato ad "l", il corrispondente allarme è disattivato.

N. bit parola di comando

O = '1'

l = l

2 = '1'

3 = '1'

4 ... 31

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Funzione

Tutti gli allarmi con una base di tempo fissa vengono disattivati.

L'allarme di schedulazione viene disattivato.

Tutti gli allarmi di processo vengono disattivati.

L'allarme di ritardo viene disattivato.

Riservati: questi bit devono essere "O"!

Page 248: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

2. Accumulatori

N. funzione, valori permessi: 1, 2 o 3 con:

1: I1 contenuto di ACCU 1 viene caricato nella parola di comando.

2: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati ad "1" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

3: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati a "0" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

ACCU 1

nuova parola di comando o maschera, in dipendenza della funzione desiderata

Risultato

Possibilità di errore

I1 richiamo dell'OB 120 fornisce i seguenti risultati:

Si distinguono le seguenti possibilità di errore:

N. funzione nei19ACCU-2-L

1

2

3

identificatore della funzione in ACCU-2-L non permesso

uno dei bit riservati in ACCU 1 (n. 4...31) = "1"

Contenuto de119ACCU 1

In caso di errore viene richiamato I'OB 31 (altri errori di ciclo). Se I'OB 31 non è caricato, la CPU si porta in STOP. In entrambi i casi viene depositato in ACCU-1-L l'identificatore di errore 1A47H.

prima

Parola di comando

Maschera

Maschera

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

dopo

Parola di comando

Nuova parola di comando

Nuova parola di comando

Page 249: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Avvertenze Lo stato della parola di comando può essere interrogato tramite la seguente sequenza di programma:

1. cancare l'identificatore della funzione 2 o 3 in ACCU-2-L,

2. cancare il valore "0" in ACCU 1,

3. richiamare I'OB speciale 120,

4. leggere ACCU 1.

Lo stato dell'elaborazione di allarme può essere determinato anche leggendo la parola di sistema BS 131.

- BS 131 Parola di visualizzazione "disattivazione comune degli allarmi" (OB 120)

Per l'abilitazione e disabilitazione degli allarmi di processo è possibile usare i comandi AS ed AF al posto dell'OB 120:

AS corrisponde a :L KB 2 :L Kh4 00000000 00000100 :SPA OB 120

AF corrisponde a :L KB 3 :L Kh4 00000000 00000100 :SPA OB 120

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 250: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.6 OB 121: Abilitazione/disabilitazione della funzione "disattivazione di singoli allarmi di schedulazione"

Introduzione Con l'aiuto del blocco organizzativo speciale OB 121 è possibile evitare l'interruzione e l'annidamento di certi allarmi di schedulazione (allarmi con una base di tempo fissa) per uno o più blocchi o comandi successivi. Per esempio, è possibile per una certa parte di programma stabilire che essa non venga interrotta dagli OB 18 (5 s) ed OB 17 (2 s). Al contrario tutti gli altri allarmi di schedulazione programmati vengono elaborati.

Funzione

Parametri

I1 blocco organizzativo speciale OB 121 ha effetto nella reazione agli allarmi di schedulazione:

Abilitare la "disattivazione di singoli allarmi di schedulazione" significa che da questo momento non viene più rilevato alcun allarme e gli allarmi che sono già stati rilevati (per esempio in attesa della fine del blocco) vengono cancellati. Solo nel caso che un OB di schedulazione (per l'elaborazione di un allarme con una base di tempo fissa) sia già stato iniziato, esso viene completamente elaborato.

Disabilitare la "disattivazione di singoli allarmi di schedulazione" significa che da questo momento vengono nuovamente rilevati tutti gli allarmi di schedulazione che si presentano. Essi verranno elaborati alla fine del blocco o del comando corrente (in relazione a quanto parametnzzato nel DX O).

1. Parola di comando

L'OB 121 registra gli allarmi da disattivare in una parola di comando interna al sistema:

I bit della parola di comando hanno il seguente significato:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

N. bit

O ... 2

3 = '1' 4 = '1' 5 = '1' 6 = '1' 7 = '1' 8 = '1' 9 = '1'

10 = '1' l1 = 'l'

12 ... 15

Aiiarme

Riservato: questi bit devono essere "O"!

Allarmi di schedulazione con base di tempo fissa: 10ms (OB10) 20 ms (OB 11) 50 ms (OB 12) 100 ms (OB 13) 200 ms (OB 14) 500 ms (OB 15)

l s (OB 16) 2 s (OB 17) 5 s (OB 18)

Riservato: questi bit devono essere "O"!

Page 251: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

2. Accumulatori

Possibilità di errore

Avvertenze

N. funzione, valori permessi: 1, 2 o 3 con:

1: I1 contenuto di ACCU 1 viene caricato nella parola di comando.

2: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati ad "1" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

3: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati a "0" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

ACCU1

nuova parola di comando o maschera, in dipendenza della funzione desiderata

Si distinguono le seguenti possibilità di errore:

identificatore della funzione in ACCU-2-L non permesso

uno dei bit riservati in ACCU 1 (n. 4...31) = "1"

In caso di errore viene richiamato I'OB 31 (altri errori di ciclo). Se I'OB 31 non è caricato, la CPU si porta in STOP. In entrambi i casi viene depositato in ACCU-1-L l'identificatore di errore 1A47H.

Lo stato della parola di comando può essere interrogato tramite la seguente sequenza di programma:

1. cancare l'identificatore della funzione 2 o 3 in ACCU-2-L,

2. cancare il valore "0" in ACCU 1,

3. richiamare I'OB speciale 121,

4. leggere ACCU 1.

Lo stato dell'elaborazione di allarme può essere determinato anche leggendo la parola di sistema BS 131.

- BS 135 Parola di visualizzazione "disattivazione di singoli allarmi"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 252: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.7 OB 122: Abilitazione/disabilitazione della funzione "ritardo comune degli allarmi"

Introduzione

Funzione

Parametri

Un programma STEP 5 può essere interrotto alla fine di ogni comando o di ogni blocco da programmi con priorità maggiore. Ai livelli di elaborazione programma con alte priorità appartengono gli allarmi di processo e quelli a tempo (allarmi di schedulazione ciclici e comandati dall'orologio e l'allarme di ritardo). I1 tempo di esecuzione del programma interrotto si allunga in relazione al tempo di esecuzione dei vari programmi in esso annidati.

Con l'aiuto del blocco organizzativo speciale OB 122 è possibile evitare l'interruzione e l'annidamento di livelli di elaborazione programma con più alta priorità per uno o più blocchi o comandi successivi (in relazione a quanto parametrizzato in DX O).

I1 blocco organizzativo speciale OB 122 influenza la reazione ad allarmi:

Abilitare il "ritardo degli allarmi" significa che da questo momento non viene più rilevato alcun allarme e gli allarmi che sono già stati rilevati (per esempio in attesa della fine del blocco) vengono cancellati. Solo nel caso che I'OB 2 (allarme di processo) oppure un OB a tempo sia già stato iniziato, esso viene completamente elaborato.

Disabilitare il "ritardo degli allarmi" significa che da questo momento vengono nuovamente rilevati tutti gli allarmi che si presentano. Essi verranno elaborati alla fine del blocco o del comando corrente.

Avvertenza Se nella fase di "ritardo degli allarmi" viene richiamato per la seconda volta un OB per l'allarme ciclico di schedulazione, si verifica un errore dell'allarme di schedulazione.

1. Doppia parola di comando

Un OB 122 registra gli allarmi da disattivare in una doppia parola di comando interna al sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 253: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

I bit della doppia parola di comando hanno il seguente significato:

Finché un bit è impostato ad "l", il corrispondente allarme è disattivato.

N. bit parola di comando

O = '1'

l = l

2 = '1'

3 = '1'

4 ... 31

2. Accumulatori

Funzione

Tutti gli allarmi con una base di tempo fissa vengono ntardati.

L'allarme di schedulazione viene ritardato.

Tutti gli allarmi di processo vengono ntardati.

L'allarme di ritardo viene ritardato.

Riservati: questi bit devono essere "O"!

N. funzione, valori permessi: 1, 2 o 3 con:

1: I1 contenuto di ACCU 1 viene caricato nella parola di comando.

2: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati ad "1" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

3: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati a "0" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

ACCU 1

nuova parola di comando o maschera, in dipendenza della funzione desiderata

Risultato I1 richiamo dell'OB 122 fornisce i seguenti risultati:

I 1 I Parola di comando I Parola di comando I

N. funzione nei19ACCU-2-L

I 2 I Maschera I Nuova parola di comando I I 3 I Maschera I Nuova parola di comando I

Contenuto de119ACCU 1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

prima dopo

Page 254: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Possibilità Si distinguono le seguenti possibilità di errore: di errore

identificatore della funzione in ACCU-2-L non permesso

uno dei bit riservati in ACCU 1 (n. 4...31) = "1"

In caso di errore viene richiamato I'OB 31 (altri errori di ciclo). Se I'OB 31 non è caricato, la CPU si porta in STOP. In entrambi i casi viene depositato in ACCU-1-L l'identificatore di errore 1A48H.

Avvertenze Lo stato della parola di comando può essere interrogato tramite la seguente sequenza di programma:

1. cancare l'identificatore della funzione 2 o 3 in ACCU-2-L,

2. cancare il valore "0" in ACCU 1,

3. richiamare I'OB speciale 122,

4. leggere ACCU 1.

Lo stato dell'elaborazione di allarme può essere determinato anche leggendo la parola dati di sistema BS 132.

- BS 131 Parola di visualizzazione "ritardo comune degli allarmi"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 255: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.8 OB 123: Abilitazione/disabilitazione della funzione "ritardo di singoli allarmi di schedulazione"

Introduzione Con l'aiuto del blocco organizzativo speciale OB 123 è possibile evitare l'interruzione e l'annidamento di certi allarmi di schedulazione (allarmi con una base di tempo fissa) per uno o più blocchi o comandi successivi.

Funzione

Parametri

I1 blocco organizzativo speciale OB 123 ha effetto nella reazione agli allarmi di schedulazione:

Abilitare il "ritardo di singoli allarmi di schedulazione" significa che da questo momento non viene più rilevato alcun allarme di schedulazione e gli allarmi che sono già stati rilevati (per esempio in attesa della fine del blocco) vengono cancellati. Solo nel caso che un OB di schedulazione (per l'elaborazione di un allarme di schedulazione con una base di tempo fissa) sia già stato iniziato, esso viene completamente elaborato.

Disabilitare il "ritardo di singoli allarmi di schedulazione" significa che da questo momento vengono nuovamente rilevati tutti gli allarmi di schedulazione che si presentano. Essi verranno elaborati alla fine del blocco o del comando corrente (in relazione a quanto parametnzzato nel DX O).

Avvertenza Se nella fase di "ritardo degli allarmi" viene richiamato per la seconda volta un certo OB di schedulazione, si verifica un errore dell'allarme di schedulazione.

1. Parola di comando

L'OB 123 registra gli allarmi da ritardare in una parola di comando interna al sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 256: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

I bit della parola di comando hanno il seguente significato:

2. Accumulatori

N. bit

O ... 2

3 = '1' 4 = '1' 5 = '1' 6 = '1' 7 = '1' 8 = '1' 9 = '1'

10 = '1' l1 = 'l'

12 ... 15

N. funzione, valori permessi: 1, 2 o 3 con:

Aiiarme

Riservato: questi bit devono essere "O"!

Allarmi di schedulazione con base di tempo fissa: 10ms (OB 10) 20 ms (OB 11) 50ms (OB 12) 100ms (OB 13) 200ms (OB 14) 500ms (OB 15)

l s (OB 16) 2 s (OB 17) 5 s (OB 18)

Riservato: questi bit devono essere "O"!

1: I1 contenuto di ACCU 1 viene caricato nella parola di comando.

2: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati ad "1" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

3: Tutti i bit impostati ad " 1" nella maschera in ACCU 1 vengono impostati a "0" nella parola di comando. La nuova parola di comando viene caricata in ACCU 1.

ACCU 1

nuova parola di comando o maschera, in dipendenza della funzione desiderata

Possibilità di errore

Si distinguono le seguenti possibilità di errore:

identificatore della funzione in ACCU-2-L non permesso

uno dei bit riservati in ACCU 1 (n. 4...31) = "1"

In caso di errore viene richiamato I'OB 31 (altri errori di ciclo). Se I'OB 31 non è caricato, la CPU si porta in STOP. In entrambi i casi viene depositato in ACCU-1-L l'identificatore di errore 1A4BH.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 257: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Avvertenze Lo stato della parola di comando può essere interrogato tramite la seguente sequenza di programma:

1. cancare l'identificatore della funzione 2 o 3 in ACCU-2-L,

2. cancare il valore "0" in ACCU 1,

3. richiamare I'OB speciale 121,

4. leggere ACCU 1.

Lo stato dell'elaborazione di allarme può essere determinato anche leggendo la parola di sistema BS 137.

- BS 137 Parola di visualizzazione "ritardo comune degli allarmi"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 258: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Registri di I registri di calcolo (OB 134, 135, 136) vengono così variati per operazioni calcolo aritmetiche (per operazioni con numeri in virgola fissa solo la parola LOW):

Prima: cACCU l > cACCU 2> cACCU 3> cACCU 4>

l / / / l Dopo: c~isuitato> cACCU 3> cACCU 4> cACCU 4>

*D (Moltiplica numeri in virgola fissa a 32 bit) moltiplica Accu 2 per Accu 1 e carica il risultato nell'Accu 1. Se il risultato supera il numero in virgola fissa a 32 bit massimo rappresentabile o è minore del numero in virgola fissa a 32 bit minimo rappresentabile questo viene visualizzato da OV = 1 e OS = 1. Dopo di che Accu 3 e Accu 4 vengono trasferiti a Accu 2 ed Accu 3.

Visualizzazione

OB 135: :D :D (Dividi numeri in virgola fissa a 32 bit) divide Accu 2 e Accu 2 e carica il risultato nell'Accul. Dopo di che Accu 3 3d Accu4 vengono trasferiti a Accu 2 e Accu 3.

Visualizzazione

in funzione di

Imposta

OB 136: MOD MOD (Resto della divisione di due numeri in virgola fissa a 32 bit) divide Accu 2 e Accu 1 e carica il resto della divisione come risultato nell'Accul. Dopo di che Accu 3 e Accu 4 vengono trasferiti a Accu 2 e Accu 3.

A l - x

in funzione di

Imposta

Visualizzazione

A 0

x

A l - x

OB 139: PUSH PUSH (PUSH stack Accu) spinge il contenuto dell'Accul più in profondità nella stack Accu. PUSH può essere utilizzato per registrare più volte lo stesso valore nella stack Accu.

in funzione di

Imposta

Visualizzazione

OV

x

A 0

x

A l - x

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

OS

x

OV

x

in funzione di

Imposta

A 0

x

OR

OS

x

A l -

OV

x

STA

OR

A 0

OS

x

RLC

STA

OV

/ER

OR

RLC

OS

/ER

STA

OR

RLC /ER

STA RLC /ER

Page 259: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.10 OB 150: Impostazione/lettura del tempo di sistema

Caratteristiche I1 tempo di sistema presenta le seguenti caratteristiche: del tempo di sistema La risoluzione per la lettura è 10 ms, per l'impostazione 1 S.

Vengono considerati gli anni bisestili.

Rappresentazione delle ore in 24 ore o 12 ore "am" (mattino) e "pm" (pomeriggio).

Indicazione del giorno della settimana.

Introduzioni ed emissioni in codice BCD.

L'orologio hardware integrato per il tempo di sistema viene tamponato dalla batteria nel controllore. Una volta impostato, il tempo di sistema mantiene il valore attuale anche in caso di una caduta di tensione o un RIAWIAMENTO.

Funzione

Parametri

Bit n.

1. parola

2. parola

3. parola

4. parola

Con I'OB 150 è possibile impostare o leggere la data e l'ora della CPU 928B nel programma utente. Data ed ora vengono detti "tempo di sistema".

Avvertenza Prima di poter leggere il tempo di sistema bisogna impostarlo.

1. Campo dati per i parametri di tempo

Per l'impostazione del tempo di sistema, I'OB 150 prende il tempo di sistema dal campo dati, per la lettura I'OB 150 trasferisce i dati attuali nel campo dati. Questo campo dati può essere generato in un blocco dati o in uno dei due settori merker (M o S).

I1 campo dati è composto da quattro parole.

la) Formato del campo dati per l'impostazione dell'orolo~io hardware

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

15 12 11

Secondi

Formato

O

Minuti

8

Ore

Giorno del mese Giorno del mese

Anno

O

7

Mese

4 3 O

Page 260: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

lb) Formato del campo dati per la lettura dall'orolo~io hardware

Bit n.

1. parola

15

2. parola

4. parola I Anno I Mese I

Secondi

3. parola

I parametri di tempo hanno il seguente significato, campo di valori permesso e rappresentazione:

I

12

11100 secondo

Formato

Giorno del mese I Giorno della settim. I O I

I I

l) Richiamando I'OB 150, il valore introdotto viene controllato circa la correttezza della sua data considerando gli anni bisestili.

11

I I

Ore

Parametri

Secondi 11100 secondo Minuti Ora Giorno della settimana Mese Anno

Formato

C a m ~ o dati nel settore merker

Minuti

Per poter generare il campo dati in un settore merker (M o S) bisogna far attenzione alla seguente assegnazione delle parole nel campo dati ai byte di merker: "x" è il parametro "N. della prima parola nel campo dati" che deve essere depositato nell' ACCU-1-L quando viene richiamato I'OB 150.

8

Cammpo di valori permesso

O0 ... 59 00 ... 99 O0 ... 59 00 ... 23 o 01 ... 12, secondo il formato O ... 6 con Lu = O ... Do = 6 01 ... 31 O 1 ... 12 O0 ... 09

Formato dell'ora con il seguente significato: Bit 15 = 0: formato 12 ore

(bit 14 = 0) Bit 15 = 1: formato 24 ore

(bit 14 = 0) Bit 14 = 0: "am" Bit 14 = 1: "pm"

Bit n.

1. parola del campo dati

2. parola del campo dati

3. parola del campo dati

4. parola del campo dati

Rappresen- tazione

Formato BCD

-

7

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

15 8

Byte di merker x

Byte di merker xt2

Byte di merker xt4

Byte di merker xt6

4

7 O

Byte di merker x t l

Byte di merker x t3

Byte di merker x t5

Byte di merker x t7

3 O

Page 261: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

2. Accumulatori

N. bit

L'ACCU-2-L contiene le indicazioni relative alla funzione desiderata ed al campo dati usato. Deve avere la seguente struttura.

Risultato

Possibilità di errore

15

Parametri in ACCU-2-L

N. funzione, valori permessi: 1 = impostare tempo di sistema

2 = leggere tempo di sistema

12

Tipo campo indirizz., valori permessi: 1 = blocco dati DB

2 = blocco dati DX 3 = campo merker M 4 = campo merker S

N. funzione

N. blocco dati, valori permessi: 3 ... 255

(solo per tipo 1 o 2; irrilevante per tipi 3 e 4)

11

Numero della prima parola del campo dati, valori possibili (in dipendenza dal tipo del campo di indirizzamento):

DB, DX: O ... 2044 Merker M: O ... 248

(= n. byte di merker "x") Merker S: O ... 1016

(= n. byte di merker "x")

Tipo campo indirizz.

Dopo la corretta elaborazione dell'OB 150, i bit di visualizzazione OR, ERAB e OS sono impostati a "O". Tutti gli altri bit di visualizzazione e gli accumulatori 1 e 2 non vengono modificati.

N. blocco dati

8

In caso di errore viene richiamato I'OB 19 o I'OB 31. Se I'OB 19 o I'OB 31 non è caricato, la CPU si porta in STOP. In entrambi i casi vengono depositati identificaton di errore in ACCU 1 ed ACCU 2 (vedere la seguente tabella).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

7 4 3 O

Page 262: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Tabella 6-2 Identificatori di errore dell'OB 150

Avvertenza Se vengono introdotti parametri sbagliati per la funzione "impostazione del tempo di sistema" e se prima l'ora era stata impostata correttamente almeno una volta, ciò genera gli identificatori di errore come sopra descritto; il tempo di sistema precedentemente impostato continua a scorrere.

Esempi applicativi

OB richiam.

OB 19

OB 31

ACCU-1-L

1A07H

1A4CH

I1 tempo di sistema deve essere impostato con i seguenti valori:

"Giovedì, 24.10.1993, ore 11:30:00, rappresentazione 24 ore"

I parametri di tempo vengono depositati nel blocco dati DB 10 dalla parola DW O. I1 tempo di sistema deve essere attivato con i corrispondenti valori tramite un bit di ingresso (bit di attivazione, per esempio E1.O - pulsante icino al controllore).

isogna programmare dapprima il blocco dati DB 10 con i valori di seguito lencati e quindi caricarlo nel controllore. I comandi STEP 5 per il richiamo ellrOB 150 devono essere integrati nellrOB 1 (elaborazione ciclica) in modo a essere elaborati alla ricezione del fronte del bit di attivazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

ACCU-2-L

-

0001H 0010H 0101H 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H KLOAH

Causa deii'errore

Blocco dati non caricato.

N. funzione = 0 o > 2 Tipo campo indirizzamento non permesso N. blocco dati non permesso "Numero della prima parola del campo dati" non permesso Lunghezza del blocco dati nell'intestazione < 5 parole Introduzione errata dell'anno nel campo dati Introduzione errata del mese nel campo dati Introduzione errata del giorno del mese nel campo dati Introduzione errata del giorno della settimana nel campo dati Introduzione errata dell'ora nel campo dati Introduzione errata dei minuti nel campo dati Introduzione errata dei secondi nel campo dati 11100 secondo nel campo dati z O Parola 3 del campo datilbit n. O ... 3 z O Formato ora non corrisponde all'impostazione

Page 263: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

O: K H = O O O O byte sinistro = secondi (BCD), byte destro = O

1:KH= 9 1 3 O 91 = formato (=80H) + ora (=l1 BCD) 30 = minuti (BCD)

2:KH= 2 4 3 O 24 = giorno del mese (BCD) 30 = giorno della settim.(3=giovedi) + bit 0...3 = O

3: KH = 9 3 1 O 93 = anno (BCD) 10 = mese (BCD)

Comandi STEP 5 depositati nellrOB 1 per il richiamo dellrOB 150:

Fronte di segnale dell'ingresso per l'impostazione di sistema è arrivato:

STELL:L KH 1 1 O A valori per ACCU-2-L: -n. DB = 10

tipo del campo di indirizz.= 1 per "campo dati nel D n. funzione = 1 per "impostazione"

:L KF O ACCU-1-L : n. della prima parola del campo dati = O

:SPA OB 150 Richiamo OB 150

I1 tempo di sistema attuale deve essere scritto nel blocco dati DB 10 della parola dati DW 4. Per far ciò bisogna richiamare 1'OB 150 con i seguenti

n. funzione = 2 per "lettura" :L KF 4 ACCU-1-L :

n. della prima parola del campo dati = 4 :SPA OB 150 Richiamo OB 150 :A D B 1 0 Attivazione DB 10

Analisi DB 10

Dopo il richiamo dellrOB 150, il tempo di sistema attuale è memorizzato nel blocco dati DB 10 con il seguente formato ("giovedi, 24.10.93, 11:30:20, 13/100 secondo, rappresentazione 24 ore"):

DW 4: KH = 2 O 1 3 secondi = 20 (BCD) 1/100 secondo = 13 (BCD)

DW 5: K H = 9 1 3 O formato = 24 ore (bit 14/15 = Ol), ore = 11(BCD) minuti = 30 (BCD)

ttimana = 3 = giovedi DW 7: KH = 9 3 1 O anno =

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 264: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.1 1 OB 151 : Impostazione/lettura dell'allarme di schedulazione

Funzione Tramite il richiamo dell'OB 151 è possibile

attivare in un preciso istante il livello di elaborazione programma ALLARME DALL'OROLOGIO sulla CPU 928B (allarme comandato dall'orologio, vedere OB 9 nel paragrafo 4.5): - ogni minuto - ogni ora - ogni giorno - ogni settimana - ogni mese - ogni anno - una sola volta

leggere lo stato dell'allarme attuale

annullare un allarme dall'orologio già generato

L'OB 151 può essere richiamato nei modi di funzionamento AWIAMENTO e RUN. Un allarme di schedulazione, una volta generato, rimane presente anche in caso di RIAWIAMENTO (automatico o manuale). In caso di NUOVO AWIAMENTO un eventuale allarme di schedulazione già presente viene cancellato.

Generando un nuovo allarme di schedulazione, viene cancellato quello in corso. E' quindi attivo sempre un solo allarme di schedulazione.

Parametri

Bit n.

1. parola

2. parola

3. parola

4. parola

1. Campo dati per i parametri dell'allarme

Per la generazione o l'annullamento di un allarme di schedulazione, I'OB 151 rileva i parametri necessari dal campo dati. Per la lettura dello stato dell'allarme attuale, I'OB 151 trasferisce le relative informazioni nel campo dati.

Questo campo dati può essere generato in un blocco dati o in uno dei due settori merker (M o S).

I1 campo dati è composto da quattro parole ed ha, sia in fase di generazione dell'allarme, sia per la lettura dello stato attuale, il seguente formato:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

15 12 11

Secondi

Formato

O

Minuti

8

Ore

Giorno della settimana Giorno del mese

Anno

Tipo di intervallo

7

Mese

4 3 O

Page 265: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

I parametri hanno il seguente significato, campo di valori permesso e rappresentazione:

l) Richiamando I'OB 151, il valore introdotto viene controllato circa la correttezza della sua data considerando gli anni bisestili. Significato di "am" e "pm": vedere il paragrafo precedente. I1 "formato" deve concordare con quanto definito in OB 150!

Parametri

Tipo di intervallo

Secondi 11100 scondo Minuti Ora Giorno della settimana Giorno del mese Mese Anno

Formato

Campo dati nel Per poter generare il campo dati in un settore merker bisogna far attenzione alla settore marker seguente assegnazione delle parole nel campo dati ai byte di merker: "x" è il

parametro "N. della prima parola nel campo dati" che deve essere depositato nell'ACCU-1-L quando viene richiamato I'OB 150:

Bit n.

1. parola del campo dati

2. parola del campo dati

3. parola del campo dati

4. parola del campo dati

Campo di valori permesso

O ... 7 con: 0: allarme annullato o

nessun allarme attivato 1: ogni minuto 2: ogni ora 3: ogni giorno 4: ogni settimana 5: ogni mese 6: ogni anno 7: una sola volta

O0 ... 59 00 ... 99 O0 ... 59 00 ... 23 oppure 01 ... 12, secondo il formato O ... 6 con Lu = O, ... , Do = 6

O 1 ... 31

O 1 ... 12 O0 ... 09

Formato dell'ora con il seguente significato:

Bit 15 = 0: formato 12 ore (scegliere "am" o "pm" nel bit 14)

Bit 15 = 1: formato 24 ore @it 14 = 0) Bit 14 = 0: "am" Bit 14 = 1: "pm"

Rappresen- tazione

Formato BCD

Formato BCD

-

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

15 8

Byte di merker x

Byte di merker x t 2

Byte di merker x t4

Byte di merker x t6

7 O

Byte di merker x t l

Byte di merker x t 3

Byte di merker x t 5

Byte di merker x t 7

Page 266: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

2. Accumulatori

Bit n.

L'ACCU-2-L contiene le indicazioni relative alla funzione desiderata ed al campo dati usato. Esse deve avere la seguente struttura!

Risultato

Parametri in ACCU-2-L

15

N. funzione, valori permessi: 1 = generare l'allarme

2 = leggere lo stato dell'allarme

Tipo campo indirizz., valori permessi: 1 = blocco dati DB

2 = blocco dati DX 3 = campo merker M 4 = campo merker S

12

N. blocco dati, valori permessi: 3 ... 255

(solo per tipo 1 o 2; irrilevante per tipi 3 e 4)

N. funzione

Numero della prima parola del campo dati, valori possibili (in dipendenza dal tipo del campo di indirizzamento)

11

DB, DX: O ... 2044 Merker M: O ... 248

(= n. byte di merker "x") Merker S: O ... 1016

(= n. byte di merker "x")

Tipo campo indirizz.

Dopo la corretta elaborazione dell'OB 150, i bit di visualizzazione OR, ERAB e OS sono impostati a "O". Tutti gli altri bit di visualizzazione e gli accumulatori 1 e 2 non vengono modificati.

N. blocco dati

8

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

7 4 3 O

Page 267: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Avvertenze Se leggendo lo stato dell'allarme si trova il tipo di intervallo con valore "O" e tutti gli altri parametri con valore "Fu oppure "FF" (esadecimali), allora non vi è alcun allarme attivo. Tale condizione si può verificare: - dopo un NUOVO AWIAMENTO a cui non è seguita alcuna

generazione di allarme dall'orologio, - se un allarme da eseguire una sola volta è stato già elaborato

oppure - dopo che un allarme è stato annullato.

Possibilità di In caso di errore viene richiamato 1'OB 19 o I'OB 31. Se I'OB 19 o I'OB 31 errore non è caricato, la CPU si porta in STOP.

In entrambi i casi vengono depositati identificatori di errore in ACCU 1 ed ACCU 2 (vedere la seguente tabella).

Tabella 6-3 Identificatori di errori dell'OB 151

Avvertenza Se viene introdotta un'errata parametrizzazione e prima era già stato definito un allarme valido, allora vengono generati i codici di errore sopra riportati; l'allarme precedentemente generato continua a valere.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

OB richiam.

OB 19

OB 31

ACCU-1-L I

1A07H

1A4DH

ACCU-2-L

-

0001H 0100H 0101H 0102H 0103H 0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH

Causa deii'errore

Blocco dati non caricato.

N. funzione = 0 o > 2 Tipo campo indirizzamento non permesso N. blocco dati non permesso "N. della prima parola del campo dati" non permesso Lunghezza del blocco dati nell'intestazione < 5 parole Introduzione errata dell'anno nel campo dati Introduzione errata del mese nel campo dati Introduzione errata del giorno del mese nel campo dati Introduzione errata del giorno della settimana nel campo dati Introduzione errata dell'ora nel campo dati Introduzione errata dei minuti nel campo dati Introduzione errata dei secondi nel campo dati 1/100 secondo nel campo dati z O Tipo di intervallo nel campo dati > 7 Formato ora non corrisponde all'impostazione nell'OB 150

Page 268: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Definizione dei Dipendentemente dal punto in cui l'allarme di schedulazione deve attivarsi, parametri di devono essere definite delle combinazioni dei singoli parametri temporali. Al tempo riguardo bisogna tener presente quali parametri devono essere assolutamente

dati, e quali non vengono presi in considerazione dal programma di sistema.

La seguente tabella fornisce una panoramica dei parametri da introdurre (XXX) e di quelli irrilevanti (---).

ogni minuto ogni ora ogni giorno ogni settimana ogni mese ogni anno una sola volta

Tabella 6-4 Assegnazione "Allarme dall'orologio - parametri temporali"

XXX XXX XXX XXX XXX XXX XXX

Intervallo

---

XXX XXX XXX XXX XXX XXX

--- ---

XXX XXX XXX XXX XXX

Secondi

--- --- ---

XXX --- --- ---

Minuti Giorno del mese

Particolarità Se per intervallo si introduce il tipo 6 (ogni anno) e si definisce la data "29 febbraio", I'OB 9 viene richiamato solo ogni anno bisestile.

Ora Mese

--- --- --- ---

XXX XXX XXX

Se per intervallo si introduce il tipo 5 (ogni mese) e si danno come giorno del mese i valori "29", "30" e "31", I'OB 9 viene richiamato solo nei mesi in cui ci sono questi giorni.

Giorno deiia

settim.

--- --- --- --- ---

XXX XXX

Esempi applicativi

1. "Allarme ogni minuto, con valore dei secondi 29" (12:44:29, 12:45:29 ecc.):

Deve essere dato: Intervallo - - 1 (n. funzione in ACCU-2-L = 1) Secondi = 29

2. "Allarme ogni ora, con valori xx:14:15":

Deve essere dato: Intervallo - - 2 (n. funzione in ACCU-2-L = 1)

Secondi = 15 Minuti = 14

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 269: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

3. "Allarme ogni giorno, con valori 5:32:47"

Deve essere dato: Intervallo - - 3 (n. funzione in ACCU-2-L = 1) Secondi = 47 Minuti = 32 Ore = 05

4. "Allarme ogni settimana, martedì, con valori 10:50:0OW

Deve essere dato: Intervallo - - 4 (n. funzione in ACCU-2-L = 1) Secondi = O0 Minuti = 50 Ore = 10 Giorno della settimana = O1

5. "Allarme ogni mese, il 14, con valori 7:30:15"

Deve essere dato: Intervallo - - 5 (n. funzione in ACCU-2-L = 1) Secondi = 15 Minuti = 30 Ore = 07 Giorno del mese= 14

6. "Allarme ogni anno, il 1/5, con valori 00:01:45"

Deve essere dato: Intervallo - - 6 (n. funzione in ACCU-2-L = 1) Secondi = 45 Minuti = O1 Ore = O0 Giorno del mese= 01 Mese = 05

7. "Allarme ogni una sola volta, il 31.12.1999, con valori 23:55:0OW

Deve essere dato: Intervallo - - 7 (n. funzione in ACCU-2-L = 1) Secondi = O0 Minuti = 55 Ore = 23 Giorno del mese= 31 Mese = 12 Anno = 99

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 270: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

8. "Cancellazione di un intervallo"

Deve essere dato: Intervallo - - O (n. funzione in ACCU-2-L = 1)

9. "Lettura di un intervallo"

Deve essere dato: n. funzione in ACCU-2-L = 2

Se nessun intervallo è attivo vengono emessi i seguenti risultati nel

Parola O nel campo dati: FFFF H Parola 1 nel campo dati: FFFF H Parola 2 nel campo dati: FFFO H Parola 3 nel campo dati: FFFF H

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 271: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.1 2 OB 152: Analisi statistica

Introduzione Nella CPU 928B è possibile ottenere un certo numero di dati statistici circa il tempo di ciclo. Con l'aiuto dell'OB 152 è possibile inizializzare le informazioni statistiche, leggerle nonché attivare e disattivare il rilevamento di questi dati.

Panoramica

Attivazione1 disattivazione dell'analisi statistica

I dati statistici riguardano

la durata dell'ultimo ciclo,

il tempo trascorso (nel ciclo attuale) dalla fine dell'ultimo ciclo,

i tempi di ciclo minimo e massimo dall'ultima inizializzazione delle informazioni statistiche,

il numero di cicli considerati dalla statistica a partire dall'ultima inizializzazione,

il valore medio dei tempi di ciclo: per il calcolo di questo valore vengono utilizzati al massimo i tempi degli ultimi 256 cicli considerati dalla statistica.

Avvertenza Per l'analisi statistica vengono tenuti presenti solo i cicli "normali". Quando, per esempio, il rilevamento della durata del ciclo attuale viene falsato da un RIAWIAMENTO, i dati relativi a questo ciclo non vengono considerati. I risultati dell'analisi non vengono quindi influenzati da queste eccezioni.

Tempi di ciclo che sono più lunghi di 167s conducono a risultari erronei.

Dopo un NUOVO AWIAMENTO (automatico o manuale) la funzione relativa all'analisi statistica è sempre disattivata ed i dati statistici sono riazzerati (l'analisi statistica è inizializzata). Un RIAWIAMENTO (automatico o manuale) non modifica né lo stato dell'analisi statistica, né i dati statistici.

Le funzioni statistiche possono essere attivate sia nello stato di funzionamento AWIAMENTO che RUN con l'aiuto del blocco OB 152.

Quando l'analisi statistica è attiva, ad ogni ciclo i dati statistici vengono aggiornati e possono essere letti tramite I'OB 152.

Se l'analisi statistica non è più necessaria, essa può essere disattivata sempre tramite I'OB 152, sia in funzionamento AWIAMENTO che RUN. Questo permette di ridurre il tempo di ciclo, che altrimenti viene aumentato del tempo occorrente per aggiornare i dati statistici alla fine di ogni ciclo.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 272: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

L'inizializzazione dell'analisi statistica può pure essere effettuata tramite I'OB 152 in AWIAMENTO o in RUN. Avrebbe senso, per esempio, inizializzare l'analisi statistica una volta analizzati i relativi dati.

Dati statistici I dati statistici vengono letti direttamente oppure calcolati ad ogni richiamo dell'OB 152. Essi vengono messi a disposizione in ACCU-1-L e ACCU-2-L.

Tramite un richiamo dell'OB 152 è possibile ottenere i seguenti dati:

Tabella 6-5 Dati statistici - OB 152

l) Vedere "Calcolo del valore medio"

Dato statistico

AKTZYK

LASTZYK

MINZYK

MAXZYK

MIlTEL- WERT

ZYKLUS- z&~LER

10-ms- z&~LER

- Con i numeri di funzione 1, 2 e 3, l'unità è in millesecondi e il campo di valore va da O a OWWH (nella low-word degli accumulatori),

- Con i numeri di funzione 5 ,6 e 7, l'unità è 10 ms e il campo di valore va da O a OFWm (nella high e nella low-word degli accumulatori).

Significato

Tempo già trascorso nel ciclo attuale

Durata dell'ultimo ciclo

Durata del ciclo più breve a partire dall'ultima inizializzazione

Durata del ciclo più lungo a partire dall'ultima inizializzazione

Valore medio dei tempi di ciclo degli ultimi cicli considerati (max. 256)')

Numero dei cicli considerati a partire dall'ultima inizializzazione

Contatori che girano continuamente

3, I1 CONTATORE di 10 ms viene rappresentato nella high e nella low-word dell'accumulatore 1 come valore esadecimale di 8 cifre.

Calcolo del I1 valore medio viene calcolato dall'OB 152 secondo il seguente algoritmo: valore medio

In un buffer interno, a partire da ogni inizializzazione dei dati statistici, vengono memorizzati i valori di LASTZYK. Questo buffer può contenere al massimo 256 valori, dopodichè il valore più vecchio viene perso e sostituito dall'ultimo valore. Inoltre, ad ogni aggiornamento, viene ricalcolata la somma dei valori LASTZYK contenuti nel buffer, che sono ovviamente i valori LASTZYK più recenti (con un massimo di 256).

Formato

N. escadecimale

Richiamando I'OB 152, il valore medio viene calcolato dividendo la somma sopracitata per il numero di valori contenuti nel buffer. Praticamente, ciò significa che il valore medio è sempre rappresentato dalla media dei valori LASTZYK relativi agli ultimi 256 cicli.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Unità

2)

Numero di cicli

10 ps

Campo dei valori

2)

da O a OFFFFH

3)

Page 273: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Funzioni Al momento del richiamo dell'OB 152, tramite un numero di funzione è possibile attivare una delle seguenti funzioni:

Tabella 6-6 Funzioni dell'OB 152

Parametro

Risultato

ACCU-1-L

L'ACCU-1-L contiene il numero di funzione e deve avere la seguente struttura:

Bit n.

N. funzione, valori permessi: vedere tabella 6-5

15 4

O

I bit 4...15 devono essere impostati a "O".

3 O

N. funzione

Dopo il richiamo dell'OB 152 i bit di visualizzazione OS, OR ed ERAB sono a "O", I'RLC è pure "0" ad eccezione dei casi in seguito riportati. Inoltre in ACCU-1-L ed ACCU-2-L sono contenuti i valori dei dati statistici relativi alla funzione richiesta (vedere la seguente tabella).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 274: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Tabella 6-7 Risultati delle funzioni dell'OB 152

l) A causa di un RIAVVIAMENTO

Funzione

Disattivazione statistica

Lettura AKTZYK / LASTZYK

Lettura MINZYK / MAXZYK

Lettura MllTELWERT / ZYKLUS-Z&LER

Inizializzazione statistica

io ps-ZAHLER

Attivazione statistica

Quando, leggendo il contatore dei cicli, si ha RLC=l, contemporaneamente viene cancellato, con trasmissione alla visualizzazione, un merker interno per l'ovefflow del ciclo; questo merker viene nuovamente impostato solo quando il contatore dei cicli va ancora in ovefflow.

3, Con le funzioni 1, 2 e 3 nella low-word, con le funzioni 5, 6, 7 e 9 nella high e nella low-word degli accumulatori

Risultati della funzione

Possibilità di errore

ACCU-1-L

Un errore si verifica quando in ACCU-1-L viene depositato un numero di funzione errato (sono permessi solo i numeri da O a 3 , 8 e 15).

In caso di errore viene richiamato I'OB 31 (altri errori di esecuzione). Se I'OB 31 non è caricato, la CPU si porta in STOP.

ACCU-2-L

In entrambi i casi vengono depositati gli identificatori di errore 1A4EH in ACCU 1 ed 0001H in ACCU 2 (vedere la seguente tabella).

Significato con "RLC = 1"

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

-

AKTZYK non è corretto: i dati del ciclo attuale non vengono considerati. oppure il valore del risultato è per il numero di funzione 1 troppo grande (> FFFFM); come valore sostitutivo viene fornito FFFFM.

Il valore del risultato è per il numero di funzione 2 troppo grande (> FFFFM); come valore sostitutivo viene fornito FFFFM.

Overflow di ZYKLUSZ&LER 2)

oppure il valore del risultato è per il numero di funzione 3 troppo grande (> FFFFM); come valore sostitutivo viene fornito FFFFH.

-

-

-

invariati

AKTZYK 3)

MINZYK 3)

MlTTEL WERT

3)

LASTZYK

3)

MAXZYK

3)

ZYKLUS- &LER

3)

invariati

lo-ps- &LER

-

invariati

Page 275: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Particolarità Questo paragrafo fornisce informazioni circa il comportamento dell'OB 152 in caso di NUOVO AWIAMENTO, dopo un AWIAMENTO ed al verificarsi di certi particolari eventi.

Comportamento dopo un NUOVO AVVIAMENTO

In fase di NUOVO AWIAMENTO, i dati statistici vengono inizializzati. Un richiamo dell'OB 152 nel primo ciclo dopo il NUOVO AWIAMENTO trasmette i dati di inizializzazione. La tabella di seguito riportata illustra come i dati statistici vengono

- inizializzati dopo un NUOVO AWIAMENTO

- aggiornati nei primi tre cicli.

Inizializzazione dati statistici da

Aggiornamento Aggiornamento dati statistici da dati statistici da

programma di programma di programma di OB 20 lo ciclo sistema 2' ciclo sistema sistema 3' ciclo

NUOVO AVVIAMENTO

"attivazione"

l) I1 valore per AKTZYK in fase di lettura tramite OB 152 viene preso dal timer per il controllo del tempo di ciclo. Per questo motivo esso è già disponibile dal primo ciclo

Valore di inizializzazione (= OFFFF%I ms o O F F FFFFH * 10 p )

In fase di inizializzazione dei dati statistici, oltre a quanto riportato in tabella, viene anche cancellato il buffer per il calcolo del tempo medio e resettato il merker di controllo dell'overflow del contatore dei cicli.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 276: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Richiamo de1190B 152 in un OB di avviamento

In dipendenza dal tipo di avviamento, I'OB 152 predispone per la lettura i seguenti dati statistici in ACCU-1-L ed ACCU-2-L (colonna grigia):

NUOVO AVVIAMENTO Inizializzazione dati statistici da programma di OB 20

1 "attivazione" , "letiura"

11 MITTELW.

ZYKL.-z

AKTZYK

LASTZYK

RIAVVIAMENTO nel ciclo n

OB 21/22

OB 152: "lettura"

O I LASTZYK I Tempo tic. (,-i) l O

AKTZYK O

O

o

l) Valore di inizializzazione (= OFFFF%I ms o O F F FFFFH * 10 p )

MINZYK

Inizializzazione dei dati statistici tramite richiamo de1190B 152

incl. cic.(,.l)

La tabella di seguito riportata illustra come in fase di inizializzazione dei dati statistici, questi vengono modificati da un richiamo dell'OB 152 in CICLO. Le colonne grigie contengono i valori dei dati statistici emessi in caso di lettura.

Aggiornamento

OB 152: OB 152: OB 152: OB 152: "lettura" "lettura" "inizializz." "lettura" "lettura"

I M I T ~ L W . I incl. ciclo (,z) I incl. ciclo (n-i) I incl. ciclo (n-i) I O I O I no I o I

AKTZYK

LASTZYK

MINZYK

W Y K

l) Valore di inizializzazione (= OFFFF%I ms o O F F FFFFH * 10 p )

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

AKTZYK (n-1)

Tempo ciclo (-2)

incl. ciclo (-2)

incl. ciclo (,.2)

Tempo ciclo (n-l)

incl. ciclo (n-l)

incl. ciclo (n-l)

AKTZYK (n)

Tempo ciclo (n-l)

incl. ciclo (n-l)

incl. ciclo (n-l)

---

O

l)

O

T

O

1)

O

no

no

no

AKTZYK @ti)

O

1)

O

Page 277: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

In fase di inizializzazione dei dati statistici, oltre a quanto riportato in tabella, viene anche cancellato il buffer per il calcolo del tempo medio e resettato il merker di controllo dell'overflow del contatore dei cicli.

Dopo l'inizializzazione dei dati statistici, questi vengono aggiornati dal programma di sistema tramite il richiamo dell'OB 152, solo alla fine del primo ciclo eseguito dopo l'inizializzazione.

Richiamo del190B 152 ad analisi statistica disattivata

Se l'analisi statistica viene disattivata tramite I'OB 152, rimangono memorizzati i dati statistici relativi all'ultimo aggiornamento. Se successivamente tramite OB 152 vengono letti i dati statistici, questi sono relativi all'ultimo aggiornamento prima della disattivazione.

Se invece i dati vengono letti dopo un NUOVO AWIAMENTO senza che l'analisi statistica sia stata attivata, allora I'OB 152 comunica i dati di inizializzazione.

Alterazione dei I1 verificarsi di un RIAWIAMENTO interrompe il rilevamento del tempo del dati statistici ciclo attuale e provoca un valore falsato. In questi casi i dati statistici non

vengono aggiornati.

Aggiornamento

Intermzione per:

OB 152: "lettura" "lettura" "lettura"

l) I1 valore di AKTZYK corrisponde al tempo T trascorso dal momento dell'intermzione nel ciclo attuale. Questo non è la durata dell'intero ciclo. Per evidenziare questo fatto, oltre ai valori presenti in ACCU-1-L ed ACCU-2-L si ha anche RLC="lM.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 278: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.1 3 OB 153: Impostazione/lettura dell'allarme di ritardo

Introduzione Tramite il blocco organizzativo speciale OB 153 è possibile comunicare al programma di sistema i cosiddetti "intervalli di ritardo" che provocano l'elaborazione di un "allarme di ritardo" dopo il termine del tempo di ritardo predefinito (vedere il paragrafo 4.5, OB 6).

Funzione

Parametri

Con il richiamo dell'OB 153 è possibile:

definire ed attivare un tempo di ritardo,

arrestare un tempo di ritardo già attivato (annullare l'allarme di ritardo),

leggere l'attuale tempo rimanente di un tempo di ritardo attivato.

Un intervallo di ritardo può essere attivato tramite I'OB 153 negli stati di funzionamento AWIAMENTO e RUN.

Durata di un intervallo di ritardo:

Un allarme di ritardo attivato da un intervallo di ritardo viene attivato dal programma di sistema solo in RUN (richiamo dell'OB 6). Gli allarmi da eseguire al di fuori del RUN vengono annullati senza ulteriore segnalazione. Un allarme già in corso (e non ancora da eseguire) viene annullato anche al passaggio nello STOP e in caso di MANCANZA DI TENSIONE.

Accumula tori

ACCU-2-L

Tempo di ritardo in millisecondi (max. 65535)

Valori permessi: 0001H ... FFFFH

In ACCU-2-L deve essere depositato il numero di funzione '1' ("definizione del tempo di ritardo") solo al richiamo dell'OB 153. Per le altre funzioni dell'OB 153 il contenuto di ACCU-2-L non viene analizzato.

ACCU-1-L

Numero di funzione

Valori permessi: 1 = definire ed attivare il tempo di ritardo 2 = arrestare il tempo di ritardo (= annullare l'intervallo) 3 = leggere lo stato attuale

Avvertenza Se al momento del definire un tempo di ritardo uno precedentemente definito non è ancora trascorso, allora quest'ultimo viene "dimenticato" ed il tempo di ritardo nuovo definito viene attivato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 279: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato Se I'OB 153 viene elaborato correttamente, i bit di visualizzazione OR, ERAB ed OS vengono impostati a "O".

Al richiamo dell'OB 153 con il numero funzione "2" o "3", in ACCU-1-L è contenuto il tempo rimanente in millisecondi.

Se al richiamo dell'OB 153 con il numero funzione "2" o "3", nessun allarme di ritardo è attivato, 1'ACCU-1-L contiene il valore "0".

Possibilità di errore

Durante l'elaborazione si possono verificare gli errori indicati nella seguente tabella. In caso di errore viene richiamato I'OB 31 (altri errori di esecuzione). Se questo non è caricato, la CPU va in STOP.

In entrambi i casi vengono depositati identificatori di errore in ACCU 1 ed ACCU-2-L (vedere la seguente tabella).

Tabella 6-8 Identificatori di errore dell'OB 153

Esempi applicativi

ACCU-1-L

1 ~ 4 m

Ad un RIAWIAMENTO AUTOMATICO, dopo 5 secondi deve essere eseguita una certa sequenza di comandi STEP 5. A questo scopo, il tempo di ritardo viene definito ed attivato nel blocco organizzativo di avviamento OB 22.

Comandi STEP 5 per il richiamo dellrOB 153 depositati nellrOB 22:

:L KF +5000 Valore per ACCU-2-L: 5000 ms :L KF +l Valore per ACCU-1-L: numero funzione = 1 per

"definzione ed attivazione del tempo di ritardo" :SPA OB 153 Richiamo OB 153

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

ACCU-2-L

0 0 0 1 ~ 0002H

Significato

Numero di funzione = O opp. > 3. Tempo di ritardo non permesso.

Page 280: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Comandi STEP 5 per il richiamo dellrOB 153:

:L KF +2

:SPA OB 153

Valore per ACCU-1-L: numero funzione = 2 per "arresto del tempo di ritardo" Richiamo OB 153

Comandi STEP 5 per il richiamo dellrOB 153:

:L KF +3 Valore per ACCU-1-L: numero funzione = 3 per "lettura del tempo rimanente"

:SPA OB 153 Richiamo OB 153

L'ACCU-1-L contiene il tempo rimanente dell'allarme di ritardo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 281: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.14 Da OB 160 ad OB 163: Cicli di conteggio

Introduzione Con l'aiuto di questi blocchi organizzativi speciali si possono realizzare dei cicli di conteggio con tempi molto ridotti.

Funzione I 4 blocchi organizzativi speciali da OB 160 a OB 163 rendono possibile l'annidamento di 4 cicli. E'possibile definire 4 diversi valori di conteggio nelle 4 parole dati di sistema da BS 60 a BS 63.

Ad ognuno dei 4 OB speciali è associata una ben determinata parola di sistema:

Programmazione In una di queste parole dati di sistema si deve trasferire il numero di cicli da dei cicli di effettuare. Richiamando poi il relativo OB speciale, il contatore di cicli nella programma parola dati di sistema viene decrementato di uno. I1 ciclo si ripete finché il

contatore di cicli è uguale a zero.

Avvertenza Se il contatore di cicli è uguale a zero già prima della chiamata all'OB speciale, all'atto della chiamata esso viene comunque decrementato e quindi vengono eseguiti 65 536 cicli!

Parametro

Risultato

Parola dati di sistema BS 60-63

contatore di cicli, possibili valori: O ... 65 535 (O ... FFFFH)

Contatore di cicli nella parola dati di sistema > O: RLC viene impostato (RLC = 1)

Contatore di cicli nella parola dati di sistema = O: RLC viene resettato (RLC = 0)

Le altre visualizzazioni a bit ed a parole vengono sempre resettate.

Gli accumulatori non vengono né modificati, né utilizzati. Per questo motivo essi sono ancora disponibili all'inizio del ciclo successivo e non devono essere ricarati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 282: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Possibilità di nessuna errore

Esempio

Inizializzazione del ciclo:

Contatore di cicli

Trasferimento del contatore di cicli nella parola dati di sistema

"Programma di ciclo":

:L K B O :L MW x

:SPB =M002 :T BS 62

Gestione del ciclo: :SPA OB 162 Ciclo di conteggio :SPB =M001

Continuazione:

Un altro esempio si trova nel paragrafo 9.2, "TNW e TNB: trasferimento di settori di memoria".

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 283: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.15 OB 170: Lettura del registro di blocco BSTACK

Introduzione Nel registro di blocco si trovano, a partire dall'OB 1 o FB 0, tutti i blocchi che sono stati richiamati e la cui elaborazione non è ancora stata terminata.

Funzione

Parametri

Con l'aiuto del blocco organizzativo speciale OB 170, è possibile trasferire in un blocco dati tutti gli elementi contenuti nel registro di blocco. In questo modo si può verificare quanti elementi sono presenti nel BSTACK e di conseguenza quanti sono ancora liberi e disponibili. Ogni elemento è composto d a l l ' i n d i b di ritorno (contatore indirizzo IND o SAZ), dall'indirizzo iniziale assoluto (DBA) del DB valido in questo blocco e dalla sua lunghezza in parole dati (DBL).

Avvertenza Prima del richiamo dell'OB 170 deve essere attivato un blocco dati @B o DX) di lunghezza sufficiente. Per ogni elemento del BSTACK richiesto, sono necessarie 4 parole dati.

Accumula tori

numero della parola dati (DW n), a partire dalla quale si devono memorizzare gli elementi nel DB attivato (offset)

numero degli elementi del BSTACK desiderato, possibili valori: 1 ... 62

Esempio: se I'ACCU l -L contiene il valore " l" , si riceve l'ultimo elemento, con "2" l'ultimo ed il penultimo e così via.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 284: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato Dopo un corretto richiamo dell'OB 170:

in ACCU-2-L continua ad esserci l'offset del blocco dati;

in ACCU-1-L si trova il numero di elementi effettivamente trasferiti dal registro di blocco1);

1'RLC viene cancellato;

i visualizzatori ANZO ed ANZ 1 possono essere analizzati;

tutti gli altri visualizzatori vengono cancellati.

l) possibili valori: O - 62 con elementi trasferiti 5 elementi desiderati O = "nessun elemento presente nel BSTACK" oppure "errore" (il contenuto di ACCU l-L moltiplicato per 4 determina il numero di DW scritte nel DB attivato!);

Significato dei visualizzatori RLC, ANZO ed ANZI

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

RLC

O

O

O

1

ANZ 1

O

O

1

1

ANZ O

1

O

O

1

Interrogazione tramite

SPM

SPZ

SPP

SPB

Significato

Numero di elementi presenti nel BSTACK C numero desiderato

Numero di elementi presenti nel BSTACK = numero desiderato

Numero di elementi presenti nel BSTACK > numero desiderato

Errore

Page 285: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Memorizzazione Richiamando I'OB 170, il contenuto del registro di blocco viene trasferito nel degli elementi blocco dati attivato nel seguente modo: nel BSTACK in un blocco dati A = numero di elemento del BSTACK (62 ... l ) attivato

(Emettendo l'ultimo elemento del BSTACK è facilmente calcolabile lo spazio libero: A = 17 A - 1 = 16 elementi a disposizione

B = profondità dell'elemento nel BSTACK ( l ... 62)

Intestazione del blocco F Offset + DW n *l

DW n t l 1 SAZ 1

Lunghezza

DW n t 4

Ul t ima introduzione nel BSTACK (B = 1)

DW n t 5 1 SAZ

DW n t 7 1 Lunghezza

> Penul t ima introduzione nel BSTACK (B = 2)

1 Introduzioni precedent i nel BSTACK

Figura 6-3 Memorizzazione delle introduzioni nel BSTACK in un blocco dati

Manuale di programmazione CPU 928B-3UB21 C79000-G8572-C870-01

Page 286: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Possibilità Si distinguono le seguenti possibilità di errore: di errore

Nessun blocco dati attivato

I1 blocco dati attivato non esiste o non è lungo a sufficienza per memorizzare il numero desiderato di elementi BSTACK

Parametri non permessi in ACCU 1 e ACCU 2

In caso di errore RLC, ANZO ed ANZ 1 vengono impostati ad " l" , gli altri visualizzatori a bit ed a parole vengono cancellati ed il contenuto dell'ACCU l -L diventa "0".

Esempio:

DW 16 (vedere le figure 6-4 e 6-5).

:AX DX 10 Richiamo del DX 10 :L KY 0,16 Gli elementi del BSTACK devono essere memorizzati da DW 1 :L KY 0,3 Sono richiesti gli ultime tre elementi nel BSTACK :SPA OB 170

I1 BSTACK contiene 6 blocchi:

Profondità 1 (ul t ima introduzione BSTACK)

(pr ima introduzione BSTACK)

Figura 6-4 Esempio di BSTACK

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 287: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

In tes taz ione de l b locc

Dopo il richiamo dellrOB speciale, il DX 10 è occupato come segue:

Offset + DW 1 6 Pro fond i tà 1

Pro fond i tà 2

Pro fond i tà 3

ACCU-2-L = 1 6 (offset)

ACCU-1-L = 3 (numero e lement i in DX 10)

RLC = O (nessun errore)

Figura 6-5 Esempio di DX 10 dopo il richiamo dell'OB 170

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 288: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.1 6 OB 180: Accesso a blocchi dati variabili

Funzione Con I'OB 180 l'indirizzo iniziale del blocco dati attuale viene spostato di un valore predefinito tenendo presente che la lunghezza disponibile del DB si diminuisce (i registri DBA e DBL vengono caricati in relazione a questa traslazione).

Avvertenza Prima di richiamare I'OB 180, deve essere attivato un blocco dati (DB o DX) sufficientemente lungo.

Registro DBAIDBL

Attivando un blocco dati con i comandi A DB ed AX DX, nel registro DBA (indirizzo iniziale del blocco dati) viene caricato l'indirizzo della DW O che si trova nel DB O.

Accessi a blocchi dati con comandi del tipo L DR 60 oppure B DW 240, avvengono sempre in relazione all'indirizzo iniziale del blocco dati.

Oltre al registro DBA, attivando un blocco dati viene caricato anche il registro DBL (lunghezza del blocco dati): esso contiene la lunghezza (in parole) del DB o DX attivato, senza l'intestazione.

Avvertenza Nel registro DBL può essere caricata una lunghezza massima di 4091 parole. Accessi a parole dati con normali istruzioni STEP 5 sono consentiti solo fino alla parola dati DW 255.

1 registro DBA contiene l'indirizzo della parola di emoria nel quale si trova la DW O del DB 17: DBA = 151BH.

1 registro DBL contiene il numero delle parole dati: BL = 8 (da DW O a DW 7).

ato che l'accesso a parole dati tramite comandi STEP 5 m e L DW, U D, B DW ecc., avviene sempre in modo relativo 1 DBA, per accedere p. es. alla DW 3 viene sommato 3 ll'indirizzo 151BH. All'indirizzo 151EH si trova la parola

on il registro DBL si può controllare se si è verificato n errore di trasferimento o di caricamento. Per esempio,

viene accettato, mentre T DW 8 o L DW 8

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 289: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Applicazione I1 blocco organizzativo speciale OB 180 offre la possibilità di accedere ai dati dell'OB 180 contenuti in un blocco dati attivato. Questo viene fatto con l'aiuto del registro

DBA nel quale, al posto dell'indirizzo iniziale del blocco dati ivi inserito, con l'aiuto dell'OB 180 si introduce la sua fine. Contemporaneamente alla traslazione dell'indirizzo iniziale, I'OB 180 provvede a diminuire la lunghezza del blocco inserita nel registro DBL. Ciò è importante in quanto la CPU, anche per successivi accessi al blocco dati, continua ad avere la possibilità di controllare le operazioni di caricamento/trasferimento.

Lavoro con blocchi dati con una lunghezza superiore a 261 parole (5 parole di intestazione): con l'aiuto dell'OB 180 è possibile posizionare a piacere la "finestra" di 256 parole dati lungo tutto il blocco dati.

Utilizzo con strutture di dati: un blocco dati può essere suddiviso in più set di dati, ognuno con la stessa lunghezza e la stessa disposizione dei dati contenuti. Si parla in questo caso di una strutturazione del blocco dati. Un blocco dati così strutturato può per esempio contenere i dati relativi a diverse parti dell'impianto, dove però la prima parola dati contiene una temperatura, la seconda una pressione e le altre altri valori di misura della relativa parte del processo. Con l'aiuto dell'OB 180 diventa possibile accedere ai dati di queste parti del processo con le stesse operazioni (per esempio L DD, S D, T DR), caricando nel registro DBA l'indirizzo iniziale dei vari set di dati.

Contrariamente ad altri meccanismi di sostituzione (sostituzione = parametrizzazione indicizzata) questa procedura permette di realizzare programmi STEP 5 facili e di veloce esecuzione.

Parametro

Risultato

Spostamento (numero di parole dati di cui deve essere spostato l'indirizzo iniziale del bloccco dati) valori possibili: O a contenuto ACCU-1-L e DBL

Dopo una corretta chiamata all'OB 180:

il valore del registro DBA (indirizzo della DW O) è aumentato del valore contenuto in ACCU-1-L

il valore del registro DBL (lunghezza del blocco dati) è diminuito del valore contenuto in ACCU-1-L,

1'RLC è cancellato (RLC = "O"),

tutti i visualizzatori a bit ed a parole sono cancellati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 290: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Possibilità Si distinguono le seguenti possibilità di errore: di errore

Lunghezza negativa

Nessun blocco dati attivato

Contenuto ACCU l-L 2 DBL

In caso di errore (contenuto ACCU-1-L 2 DBL) i registri DBA e DBL rimangono inalterati. I1 risultato logico combinatorio viene impostato (RLC = "1") mentre tutti gli altn visualizzaton a bit ed a parole vengono cancellati.

Se il registro DBL contiene il valore "O", I'OB 180 riconosce che nessun blocco dati è attivato. I1 RLC viene impostato (RLC = "1") e segnala così un errore.

Ripristino del Una nuova chiamata del blocco dati con le istruzioni A DB o AX DX ripristina i valore originario valori originari dei due registri. di DBA e DBL

Esempio

essere traslato di due parole dati.

:A DB 17 DB 17 attivato :L KB 2 spostamento come costante :SPA OB 180 richiamo dellrOB 180: DBA e DBL vengono aggiornati

Dopo il richiamo dellrOB 180, la parola dati memorizzata p. es. all'indirizzo 1520H non è più accessibile come DW 5, bensì come DW 3 e così via (vedere figura 6-6).

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 291: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Intestazione del blocco

D B A v e c c h i o + l 5 1 BH

DBA nuovo 1 5 1 DH

Figura 6-6 Spostamento dell'indirizzo iniziale del DB

Modificandosi contemporaneamente anche il contenuto del registro DBL, il controllo degli errori di trasferimento rimane garantito: il comando T DW 5 è permesso mentre T DW 6/L DW 6 è errato.

Con un nuovo richiamo dellrOB 180 è possibile aumentare ulteriormente il DBA (e di conseguenza ridurre ancora il DBL); il comando A DB 17 ristabilisce i valori originali (DBA = 151BH e DBL = 8). Se il DB 17 avesse una lunghezza di, per esempio, 258 parole dati, con i normali comandi STEP 5 non sarebbe possibile accedere alle parole dati DW 256 e DW 257. Incrementando il DBA di 2, queste 2 parole dati sono invece accessibili come DW 254 e DW 255.

(Per i reg i s t r i DBA/DBL vedere anche il capitolo 9 )

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 292: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.17 OB 181: Test di blocchi dati DB e DX

Introduzione Con il blocco organizzativo speciale OB 181 è possibile testare

se un certo DB o DX è presente,

sotto quale indirizzo è memorizzata la DW O del blocco dati,

quante DW contiene il blocco dati,

il tipo di memoria ed il settore.

Applicazione L'uso della funzione "test di DBJDX" ha senso prima di un comando dell'OB 181 TNBITNW, E DB/EX DX e prima del richiamo dei blocchi organizzativi speciali

OB 182, OB 254 ed OB 255.

Per esempio si può richiamare I'OB 181 prima di un trasferimento di dati per verificare se il blocco dati di destinazione è valido e lungo a sufficienza per contenere le parole dati da copiare.

Funzione

Parametri

Risultato

L'OB 181 verifica se un blocco dati predefinito è presente e quindi emette i parametri caratteristici di questo DB.

Numero di blocco, possibili valori: 1 ... 255

Identificatore di blocco, possibili valori: 1 = D B

2 = D X

I1 blocco testato è presente nella CPU:

- ACCU-1-L: contiene l'indirizzo della prima parola dati (DW O),

- ACCU-2-L: contiene la lunghezza del blocco dati in parole (senza intestazione), Esempio: in ACCU-2-L è contenuto il valore "7": il blocco dati è composto delle parole da DWOaDW6.

- RLC:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 293: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

- ANZO ed ANZI: vengono influenzati (vedere la lista seguente),

- i rimanenti visualizzatori a bit ed a parole: vengono cancellati.

I1 blocco testato non è presente oppure si è verificato un errore:

- A C C U l e 2 : non vengono modificati,

- RLC: = 1,

- ANZ 1/ANz O: = 1,

- i rimanenti visualizzatori a bit ed a parole: vengono cancellati.

RLC, ANZ 1, A seconda del risultato del test vengono impostati i seguente visualizzaton che ANZ 2 possono essere analizzati tramite le operazioni indicate sotto "interrogazione"

(vedere la seguente tabella).

Possibilità Si distinguono le seguenti possibilità di errore: di errore

Numero di blocco errato (non permesso: 0: DB O/DX O),

RLC

O

O

O

1

Identificatore di blocco errato (permesso: l=DB, 2=DX; non permessi: 0 , 3 ... 255),

Errore di memoria.

ANZ 1

O

O

1

1

Esempi vedere i capitoli 8.3,9.2 e 9.3.

ANZ O

1

O

O

1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Interro- gazione tramite

SPM

SPZ

SPP

SPB

Spiegazione

DB/DX nel modulo utente

DB/DX nella RAM per DB

DB/DX non esistente o errore

DB/DX in funzionamento EPROM (solo lettura)

DB/DX in funzionamento RAM (lettura e scrittura)

DB/DX esistente

Page 294: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.18 OB 182: Copia di settori di dati

Funzione I1 blocco organizzativo speciale copia un settore di dati di lunghezza variabile da un blocco dati in un altro. Come blocco sorgente e destinazione possono essere usati blocchi DB e DX. L'inizio del settore è libero sia per il blocco sorgente che per quello di destinazione. L'OB 182 può copiare al massimo 4091 parole dati. Esso contiene pseudo-fine di comandi.

Parametri

N. bit

1. parola

2. parola

3. parola

4. parola

5. parola

Avvertenza I blocchi sorgente e destinazione possono essere identici. I settori sorgente e destinazione possono sovrapporsi. I dati originali del settore sorgente vengono copiati nel settore destinazione senza essere modificati da un'eventuale sovrapposizione. Ii settore di sovrapposizione sulla sorgente, dopo la copiatura, risulta sovrascritto. Questa caratteristica può essere utilizzata per traslare dei settori di dati all'interno di un blocco dati.

1. Campo dati con i parametri per la copiatura

Prima di richiamare I'OB 182 bisogna predisporre un campo dati contenente i parametri necessari per effettuare la copiatura desiderata. Tale campo dati può trovarsi in un DB o DX, oppure nel settore dei merker M o S.

I1 campo dati determina i blocchi dati sorgente e destinazione, l'indirizzo iniziale dei settori nei due blocchi ed il numero di parole dati da trasferire. Esso è costituito da 5 parole:

I parametri hanno i seguenti significati e campi permessi:

15 8

Tipo DB sorgente

7 O

N. DB sorgente

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Parametro

Tipo DB (sorgente e destinazione)

N. DB (sorgente e destinazione

N. della prima DW (sorgente e destinazione)

Numero di parole dati

N. della prima DW da trasferire dal DB sorgente

Campo dei valori permesso

1 = D B 2 = DX

3 ... 255

O ... 4090

1 ... 4091

Tipo DB destinazione N. DB destinazione

N. della pnma DW da scrivere nel DB destinazione

Numero di parole dati

Page 295: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

C a m ~ o dati nel settore dei merker

Se il campo dati si trova nel settore dei merker, si deve tenere presente la seguente assegnazione delle parole del campo dati ai byte di merker. Con "x" viene identificato il parametro contenuto nella prima parola del campo dati, che deve poi essere inserito in ACCU-1-L prima del richiamo dell'OB 182.

N. bit

1. parola del campo dati

2. parola del campo dati

3. parola del campo dati

4. parola del campo dati

5. parola del campo dati

2. Accumulatori

15 8

Byte di merker x

Byte di merker xt2

Byte di merker xt4

Byte di merker xt6

Byte di merker xt8

L'ACCU-2-L contiene le indicazioni relative al campo dati usato e deve avere la seguente struttura:

7 O

Byte di merker x t l

Byte di merker xt3

Byte di merker xt5

Byte di merker xt7

Byte di merker xt9

N. bit

Parametri in ACCU-2-L

15 4

Tipo campo indirizzamento

Tipo campo indirizzamento, valori permessi: 1 = blocco dati DB

2 = blocco dati DX 3 = merker M 4 = merker S

3 O

N. blocco dati

N. blocco dati, valori permessi: 3 ... 255 (solo per tipi "1" o "2"; irrelevante per tipi "3" o "4")

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 296: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato

Numero della prima parola del campo dati, valori permessi (dipendentemente dal tipo di campo indirizzamento:

DB, DX: O ... 2043 Merker M: O ... 246 (= n. byte di merker "x") Merker S O ... 1014 (= n. byte di merker "x")

Dopo una corretta elaborazione dell'OB 182 i bit di visualizzazione OR, ERAB e OS sono reimpostati. Tutti gli altri bit di visualizzazione, ACCU 1 ed ACCU 2 rimangono inalterati.

Reazioni in caso In caso di errore viene richiamato I'OB 19 o I'OB 31. Se I'OB richiamato di errore non è programmato, la CPU si porta in STOP.

In entrambi i casi in ACCU 1 ed ACCU 2 vengono messi degli identificatori di errore (vedere la tabella seguente).

Tabella 6-9 Identificatori di errore dell'OB 182

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

ACCU-1-L

1A06H

1A34H

ACCU-2-L

-

0001H 0100H 0101H 0102H 0200H 0201H 0202H

0203H

0210H 0211H 0212H 0213H 0220H

0221H 0222H 0223H

Causa de1l'eml-e

Blocco dati non caricato

Descrizione non corretta del campo dati Tipo campo indirizzamento non permesso Numero di blocco dati non permesso "Numero della prima parola del campo dati" non perm. "Tipo DB sorgente" non permesso "N. DB sorgente" non permesso "N. della prima DW da trasfenre dal DB sorgente" non permesso Lunghezza del blocco dati sorgente nell'intestazione < 5 parole "Tipo DB destinazione" non permesso "N. DB destinazione" non permesso "N. della prima DW da trasfenre dal DB dest." non permesso Lunghezza del blocco dati dest. nell'intest. < 5 parole "Numero delle parole dati da trasfenre" non permesso

(=O oppure > 4091) Blocco dati sorgente troppo corto Blocco dati destinazione troppo corto Blocco dati destinazione protetto da sovrascnttura (funzionamento EPROM)

OB richiam.

OB 19

OB 31

Page 297: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.19 OB 185: Impostazione della protezione in scrittura

Funzione Quando si utilizza una memory card e si deve accedere a blocchi dati già all'interno dell'OB 20, è possibile annullare la protezione in scrittura richiamando I'OB 185 nell'OB 20.

Applicazione L'OB 185 analizza il bit O dell'Accu l - L ed imposta di conseguenza la protezione in scrittura. Dopo di che trasferisce il valore del bit O dell'Accu l - L nel bit O del dato BS 138. I rimanenti bit dell'Accu l -L non vengono analizzati.

L'OB 185 viene elaborato solo durante il nuovo awiamento, quindi nell'OB 20. In tutti gli altri stati di funzionamento il richiamo non produce effetti, non conduce quindi ad un errore né ad una reazione di errore.

Parametri

Risultato

Stato della protezione in scrittura

Panoramica

Inserimento/disinserimento della protezione in scrittura Valori ammessi: Bit 0=0; disinserimento della protezione in scrittura

Bit 0=1: inserimento della protezione in scrittura

L'OB 185 viene impostato a O nelle visualizzazioni di bit OR e /ERAB nonché nelle visualizzazioni di parola 0s.

Poiché I'OB 185 modifica il dato BS e questo viene interrogato di nuovo dal sistema alla fine dell'OB 20, in caso di uso "misto" da parte dell'OB e mediante una modifica diretta del dato BS, è possibile che venga modificata involontariamente la protezione in scrittura.

CPU 928B nel funzionamento RAM:

La protezione in scrittura è disattivata: Bit O di BS 138 = O

USTACK del PG: identificatore del modulo: 32 KW RAM

Configurazione memoria PG: RAM ampliata fino a 07FFEH

Memoria utente del PG indirizzo finale: 08000H

Tutti i blocchi: "Valido nella RAM" -> Possibile caricamento, cancellazione, sovrascrittura

CPU 928B nel funzionamento EPROM:

La protezione in scrittura è attivata: bit O di BS 138 = 1

USTACK del PG: identificatore del modulo: EPROM

Configurazione memoria del PG: RAM ampliata fino a 000004

Indirizzo finale memoria utente del PG è OEEEEH

Blocchi codice e blocchi dati non copiati nella RAM per DB: "Valido nell'EPROMU -> Impossibile caricamento, cancellazione, sovrascrittura

I blocchi dati copiati nella RAM per DB: "Valido nella RAM" -> Possibile caricamento, cancellazione, sovrascrittura

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 298: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.20 OB 186: Compressione della memoria

Funzione Con il blocco organizzativo OB 186 è possibile comprimere la memoria e interrogare o controllare lo stato della funzione di compressione. La funzionalità dell'OB 186 corrisponde alla funzione del PG "Compressione della memoria" (vedere capitolo 11.2).

Avvertenza Mentre la memoria viene compressa mediante I'OB 186, la funzione del PG "Compressione della memona" viene respinta. Altre funzioni del PG sono ammesse limitatamente. Mentre sono attive le funzioni del PG, viene respinto I'OB 186.

"Compressione della memoria" con I'OB 186 è una funzione duratura che viene suddivisa dal programma in diversi cicli. Non vengono emesse segnalazioni di risposta esplicite; le segnalazioni di risposta possono tuttavia essere realizzate mediante il richiamo ciclico dell'OB con il numero di funzione 2.

L'OB 186 non richiama gli OB di errore.

Parametri

Risultato

L'Accu-l-L contiene il numero di funzione, Valori ammessi: 0001H: Awiamento della compressione

0002H: Interrogazione/controllo dello stato della funzione di compressione

L'OB 186 viene impostato a O nelle visualizzazioni di bit OS e /ERAB nonché nelle visualizzazioni di parola OR.

Con il richiamo dell'OB si ottengono i seguenti risultati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

quel momento non era

a memoria

Nullo O 8001H Errore, Numero di funzione nullo

Page 299: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.21 OB 1901192: Trasferimento di merker in blocchi dati

Applicazione I blocchi organizzativi speciali OB 190 ed OB 192 trasferiscono un numero di byte di merker prefissato dall'utente, in un blocco dati previsto per questo scopo. Ciò può essere utile, per esempio, prima di un richiamo di blocco, negli OB di gestione degli errori oppure in caso di interruzione del programma ciclico dall'elaborazione di un programma su interrupt periodico o su interrupt di processo. Con l'aiuto degli OB 191 ed OB 193 si possono poi ritrasferire questi merker dal blocco dati nell'area di provenienza.

Avvertenza Per il semplice salvataggio e ripristino dei byte di merker si consiglia l'uso degli OB 190 e 191 in quanto essi sono molto più veloci. Prima della chiamata agii OB 190 e 192, deve essere attivato il relativo blocco dati (DB o DX)! Gli OB 190/192 trasferiscono dati in un blocco dati soltanto dal settore dei merker M e non dal settore dei merker S.

Funzione Dopo il richiamo dell'OB 190 o 192, i byte di merker vengono memorizzati nel blocco dati attivato a partire dalla parola dati definita. I1 settore dei merker che deve essere trasferito viene comunicato agli OB tramite 1'ACCU 2. I blocchi organizzativi speciali OB 190 ed OB 192 sono identici, eccetto il modo in cui trasferiscono i merker:

I'OB 190 trasferisce i merker a byte,

I'OB 192 trasferisce i merker a parole.

Questa distinzione è utile quando i dati trasferiti nel blocco dati devono essere ivi elaborati e quindi il blocco dati non viene utilizzato solo come memoria intermedia.

La seguente illustrazione dovrebbe chiarire la differenza:

Merker copiat i con OB 190: OB 192:

Merker Blocco dat i Blocco dat i

Figura 6-7 Trasferimento a byte (OB 190) ed a parole (OB 192)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 300: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Parametri

Risultato

Possibilità di errore

Avvertenza Nel caso venga trasmesso un numero dispari di byte di merker, allora l'ultima parola dati utilizzata nel blocco dati è riempita solo a metà. Con I'OB 190 rimane invariato il dato di sinistra, con I'OB 192 quello di destra nel DB di destinazione.

1. Definizione della sorgente dei dati:

primo byte di merker da trasferire, possibili valori: O ... 255

ultimo byte di merker da trasferire, possibili valori: O ... 255

(ultimo byte z primo byte)

2. Definizione della destinazione

numero della prima DW da utilizzare nel blocco dati attivato:

I valori permessi sono relativi alla lunghezza del blocco dati nella memoria. Sono ammessi numeri > 255.

Se la funzione dell'OB 190/192 viene correttamente eseguita, 1'RLC viene cancellato (RLC = "O") e gli accumulatori rimangono inalterati.

In caso di errore, 1'RCL viene impostato (RLC = " 1") ma gli accumulatori rimangono sempre inalterati.

Nessun DB o DX attivato

Settore di merker errato (ultimo byte di merker e primo byte di merker)

Indirizzo della parola dati non esistente

Lunghezza del blocco dati non sufficiente

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 301: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.22 OB 1911193: Trasferimento di dati nel campo dei merker

Applicazione Con l'aiuto dei blocchi organizzativi speciali OB 191 ed OB 193 è possibile trasferire dei dati da un blocco dati al campo dei merker. Ciò permette, per esempio, di ritrasferire nel campo dei merker i merker precedentemente "salvati" nel blocco dati.

Gli OB 1911193 si differenziano dagli OB 190/192 solo per l'inversione della sorgente e della destinazione:

OB 1901192: campo dei merker + blocco dati

OB 1911193: campo dei merker 4 blocco dati

Avvertenza Prima del richiamo di un OB, deve essere attivato il relativo blocco dati (DB o DX) con una lunghezza sufficiente.

Gli OB 1911193 trasferiscono dati in un blocco dati soltanto dal settore dei merker M e non dal settore dei merker S.

Funzione Dopo il richiamo dell'OB 191 o 193, le parole dati vengono lette dal blocco dati attivato a partire dalla parola dati definita e quindi trasferite nel settore dei merker.

I blocchi organizzativi speciali OB 191 ed OB 193 sono identici, eccetto il modo in cui trasferiscono i dati:

I'OB 191 trasferisce le parole dati a byte,

I'OB 193 trasferisce le parole dati a parole

La figura seguente vuole chiarire la differenza.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 302: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Blocco dat i OB 191 F Merker

DL DR

Figura 6-8 Trasferimento a byte (OB 191) ed a parole (OB 193)

Blocco dati OB 193 Merker D L DR

15 8 7 O

Parametri 1. Definizione della sorgente

(DL 0) MB O

(DR 0) MB 1

(DL 1) MB 2

(DR 1) MB 3

1

3

5

ACCU-2-L

indirizzo della prima DW da trasferire nel blocco dati attivato

O

2

4

6

2. Definizione della destinazione

primo byte di merker da utilizzare, possibili valori: O ... 255

ultimo byte di merker da utilizzare, possibili valori: O ... 255

(ultimo byte z primo byte)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 303: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato Se la funzione dell'OB 191/193 viene eseguita correttamente, 1'RLC viene cancellato (RLC = "O") e gli accumulatori rimangono inalterati.

In caso di errore, 1'RLC viene impostato (RLC = "1") ma gli accumulatori rimagnono sempre inalterati.

Possibilità di errore

Si distinguono le seguenti possibilità di errore:

Nessun DB o DX attivato

Settore di merker errato (ultimo byte di merker e primo byte di merker)

Indirizzo della parola dati non esistente

Lunghezza del blocco dati non sufficiente

Esempi

Prima del richiamo del PB 12 bisogna salvare tutti i merker (da MB O a MB 255) nel blocco dati DX 37 dall'indirizzo 100, ed alla fine ripristinarli.

:AX DX 37 Attivazione DX :LKY 0,255 Merker da MB O a MB 255 :L KB 100 Indirizzo della prima DW :SPA OB 190 Salvataggio dei merker

: SPA PB 12

(I1 blocco è già attivato) Indirizzo della prima DW Merker da MB O a MB 255

:SPA OB 191 Ripristino dei merker

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 304: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

I merker che vengono utilizzati dal programma ciclico non devono essere utilizzati anche dai programmi su interrupt periodico o su interrupt di processo. Ad ogni livello di elaborazione programma è associata una certa parte del settore dei merker.

programma ciclico: MB O ... . ... MB 99 programma su interrupt periodico: MB 100 ... . ... MB 199 programma su interrupt di processo: MB 200 ... . ... MB 255

Se però il programma ciclico utilizza tutti i 256 byte di merker e, per esempio, anche il programma su interrupt periodico necessita di tutti i merker, allora bisogna provvedere a "salvare" e ripristinare i merker al cambio del livello di elaborazione. Con l'aiuto dei blocchi organizzativi speciali OB 190 ed OB 191, i merker possono essere salvati e caricati in modo molto veloce. La figura 6-9 illustra la memorizzazione in un blocco dati DBz di un settore merker da MBx a MBy utilizzato da OB 1 ed OB 13 (allarme a tempo ogni 100 ms):

OB 190 - P MB x - Saivataggio P

OB 191 -

Programma STEP 5 nell'OB 13: :A DB 100 :L KY 0,255 :L KB O :SPA OB 190 :L KB 128 :L KY 0,255 :SPAOB 191

:A DB 100 :L KY 0,255 :L KB 128 :SPA OB 190 :L KB O :L KY 0,255 :SPAOB 191

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 305: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

- Nella CPU 928B i comandi di elaborazione di un singolo bit (U, O, UN, ON, S, R, =) che operano con merker sono molto più veloci degli stessi comandi che operano con dati di un blocco dati (confrontare, per esempio, i tempi di esecuzione dei comandi "U M" "U D" oppure "S M" - ' S DD").

Per questo motivo si può accorciare il tempo di ciclo copiando i dati nel campo dei merker, elaboransoli, e quindi ritrasferendoli nel blocco dati.

- I byte low e high di un blocco dati possono essere invertiti molto semplice- mente trasferendo le DW in merker e quindi ripristinandoli come descritto nella figura 6-10.

Blocco dat i

Figura 6-10 Inversione dei byte high e low in un DB con l'aiuto dell'OB 19310B190

- È possibile spostare dei gruppi di parole dati allrinterno di un blocco dati, se ritrasferendole dal campo dei merker si attiva lo stesso blocco dati, parametrizzando però un'altra parola dati iniziale.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 306: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.23 OB 200 ed OB da 202 a 205: Comunicazione multiprocessore

Panoramica Una descrizione dettagliata dei blocchi organizzativi speciali si trova nel capitolo 10.

I blocchi organizzativi speciali da OB 200 ad OB 205 rendono possibile il trasferimento di dati tra le singole CPU in funzionamento multiprocessore con l'uso del coordinatore KOR C.

OB 200: Inizializzazione

Questo blocco organizzativo speciale suddivide la memoria del coordinatore KOR 923C nella quale devono essere momentaneamente memorizzati i dati da trasmettere.

OB 202: Trasmissione

Questa funzione trasmette un gruppo di dati alla memoria intermedia del KOR 923C e comunica inoltre quanti dati possono ancora essere trasmessi.

OB 203: Test per trasmissione

Questo OB speciale comunica i setton di memoria ancora liberi nella memoria intermedia del coordinatore KOR 923C.

OB 204: Ricezione

Questa funzione riceve un gruppo di dati dalla memoria intermedia del KOR 923C e comunica inoltre quanti dati devono ancora essere ricevuti.

OB 205: Test per ricezione

Questo OB speciale comunica i setton di memoria ancora occupati nella memoria intermedia del coordinatore KOR 923C.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 307: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.24 Da OB 216 ad OB 218: Accesso ai kachel

Che cosa sono Per poter gestire un gran numero di memorie per la comunicazione nel campo di i kachel? indirizzamento del bus S5, è stato previsto un settore di 1024 byte (riservati sono

2048 byte) riprodotto 256 volte in memoria. Queste 256 riproduzioni vengono chiamate "kachel" e la memoria che le contiene "memoria per kachel".

In funzionamento multiprocessore, da tutte le unità presenti si può accedere in ogni momenti solo ad un kachel, mentre tutti gli altri sono inibiti tanto alla lettura quanto alla scrittura. Ciò viene realizzato così:

Per la scelta del kachel voluto esiste un "registro di indirizzamento dei kachel" presente in tutte le unità che lavorano con i kachel e con un indirizzo fisso sul bus S5. Su queste unità, tramite selettori DIL viene impostato il numero (indirizzo) dei kachel, in modo che ogni kachel sia presente una sola volta per il controllore.

La CPU prima di ogni lettura o scrittura di un kachel scrive il numero di kachel nel registro di indirizzamento dei kachel. Tutte le unità inserite sul bus S5 che operano con questa procedura ricevono contemporaneamente ("broadcast") questo numero e lo memorizzano nella propria memoria. Solo il kachel così indirizzato è ora leggibile e scrivibile sul bus S5, mentre tutti gli altri sono inibiti.

Come accedere I blocchi organizzativi speciali da OB 216 ad OB 218 ed alcune operazioni ai kachel? STEP5 (vedere capitolo 9) permettono l'accesso ai cosidetti kachel.

Questi OB svolgono le seguenti funzioni:

OB 216:

Scrittura di un byte/parola/doppia parola in un kachel

Lettura di un byte/parola/doppia parola da un kachel

OB 218: Assegnazione di un kachel tramite la CPU (serve per il coordinamento in funzionamento multiprocessore)

Queste funzioni servono per realizzare dei test o per programmare dei blocchi di trasporto o funzioni analoghe.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 308: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Indiriuamento della periferia sul bus S5

Avvertenza Con i blocchi funzionali "di trasporto" ed i blocchi organizzativi speciali per la "Comunicazione multiprocessore" (OB 220, da OB 202 ad OB 205) è normalmente possibile realizzare funzioni per le quali gli accessi ai kachel vengono gestiti "automaticamente".

Gli accessi ai kachel dovrebbero essere, per quanto possibile, programmati tramite il richiamo dei blocchi da OB 216 ad OB 218. Le operazioni STEP 5 previste per questo scopo dovrebbero invece essere utilizzate solo da chi possiede ottime conoscenze del sistema.

Bit 7 O

Capacità del kachel

1024 byte (indirizzi a byte o parole)

2048 byte (indirizzi a byte o parole)

FOOO

F 1 O0

F 2 0 0

F 3 0 0

F 4 0 0

Indirizzi occupati

F400H - WFFH

F400H - FBFFH

FCOO

Periferia P

Periferia Q

Memoria disponibile più volte Capacità: 1 0 2 4 O 2 0 4 8 byte

Settore dei kachel

Merker di accoppiamento

F E F F Registro indirizzamento kachel

FFOO

Settore di sistema (semafori)

sul coordinatore ..............

N. kachel 0

.............

Periferia decentralizzata (o libera)

....."

Figura 6-11 Posizione del settore dei kachel sul bus S5

N. kachel 2 5 5 ......"

F F F F

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

non occupato

Page 309: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Quali dei 256 kachel devono essere utilizzati, viene stabilito dalla parametrizzazione degli OB speciali 216, 217 e 218. I1 numero del kachel attuale viene automaticamente inserito nella cella con l'indirizzo OFEFFH (come nella figura 6-11). Tutti gli indirizzi fanno riferimento al kachel il cui numero è stato inserito.

Avvertenza I1 registro per l'indirizzamento dei kachel OFEFF H non è leggibile. Sul coordinatore 923C è però possibile leggere a questo indirizzo il registro degli errori sul bus (vedere manuale di sistema "Controllore 135U/155U).

Avvertenze per la Per la scrittura (OB 216) e la lettura (OB 217) di un byte/parola/doppia parola su parametrizzazione un kachel, i byte vengono indirizzati nel seguente ordine:

Ind i r izzo n l By te 1 Rappresentaz ione byte

I Rappresentaz ione paro la Indi r izzo n t l

Ind i r izzo n

Indi r izzo n Byte h igh nel la paro la h igh

By te h igh l7

Ind i r izzo n+2 Byte h igh nel la paro la low

Ind i r izzo n+3 I Byte low nel la paro la low 1 > Rappresentaz ione dopp ia paro la

Figura 6-12 Posizione dei byte per la scrittura (OB 216)Pettura (OB 217) come parola o doppia parola su un kachel

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 310: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.24.1 OB 216: Scrittura in un kachel

Funzione I1 blocco organizzativo speciale trasferisce un bytelparolaldoppia parola dall'ACCU 1 (allineato a destra) ad un certo kachel. L'indirizzamento del kachel in funzionamento monoprocessore o multiprocessore ed il trasferimento dei dati (11214 byte) costituiscono un'unità di programma che non può essere interrotta.

Parametri Accumula tori

identificatori dei dati da trasferire, possibili valori: O = byte

1 = parola 2 = doppia parola

numero di kachel attuale, possibili valori: O ... 255

indirizzo di destinazione nel kachel, possibili valori: O ... 2047

ACCU 1

dato che deve essere scritto (byte, parola, doppia parola: alineato a destra)

Occupazione dell'ACCU prima della scrittura (prima del richiamo dell'OB 216):

Parola high Parola low Byte high Byte low Byte high Byte low

ACCU 3

ACCU 2

X X

-X C Dato (8 bit) 4

Identif. lunghezza N. kachel

O: byte (8 bit) 0 . ,255 1 : parola (1 6 bit)

2: doppia parola (32 bit)

X X

ACCU 1 1- x L T . Dato (1 6 bit)

Indirizzo (relativo all'inizio kachel)

O ... 2047 per ident. lunghezza O (byte)

0 ... 2046 per ident. lunghezza 1 (parola)

O ... 2044 per ident. lunghezza 2 (doppia parola)

Dato (32 bit)

31 24' 23 16'15 8 ' 7 O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 311: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato La scrittura nel kachel è avvenuta correttamente:

- ACCU 1 ed ACCU 3: non vengono modificati,

- ACCU-2-L: contiene un valore aumentato di 11214 (secondo la quantità dei dati trasferiti),

- RLC: = 1,

- i restanti visualizzatori a bit ed a parole: vengono cancellati.

La scrittura nel kachel non è possibile:

- tutti gli accumulatori: rimangono invariatit,

- RLC: = o,

- i restanti visualizzatori a bit ed a parole: vengono cancellati.

Possibilità di errore

Si distinguono le seguenti possibilità di errore:

Identificatore di lunghezza in ACCU-3-LH errato

Indirizzo destinazione nel kachel errato o non disonibile

Numero di kachel dato non disponibile

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 312: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.24.2 OB 217: Lettura di un kachel

Funzione I1 blocco organizzativo speciale OB 217 trasferisce un bytelparolaldoppia parola da un certo kachel nell'ACCU 1 (allineato a destra). L'indirizzamento del kachel in funzionamento monoprocessore e multiprocessore ed il trasferimento dei dati (11214 byte) costituiscono un'unità di programma che non può essere interrotta.

Parametri

ACCU 4

ACCU 3

ACCU 2

ACCU I

1)

Accumula tori

identificatore dei dati da trasferire, possibili valori: O = byte

1 = parola 2 = doppia parola

numero di kachel attuale, possibili valori:

indirizzo sorgente nel kachel, possibili valori: da O a 2047

Occupazione dell'ACCU prima della lettura (prima del richiamo dell'OB 217):

~t ra ro ia nign parola iow -C Byte high Byte low

X X

X X

4 x Dato (8 bit) + 4 x Dato (1 6 bit) t

4 Dato (32 bit) t

31 2 4 23 16 '15 8 ' 7 O

Byte high Byte low

X X

Identif. lunghezza N. kachel

O byte (8 bit) O .. 255

1 parola (l 6 bit)

2 doppia parola (32 bit)

X X

) Memorizzazione dei dati dopo i l richiamo deii'08 21 7

Indirizzo (relativo all'inizio kachel)

O .. 2047 per ident. lunghezza O (byte)

O .. 2046 per ident. lunghezza 1 (parola)

O .. 2044 per ident. lunghezza 2 (doppia parola)

Manuale d i programmazione C P U 928B-3UB21

C79000-G8572-C870-01

Page 313: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato La lettura nel kachel è avvenuta correttamente,

contiene (allineato a destra) il valore letto (il resto dei 32 bit viene cancellato),

- ACCU3: non viene modificato,

- ACCU-2-L: contiene un valore aumentato di 11214 (secondo la quantità dei dati trasferiti),

- RLC: = 1,

- i rimanenti visualizzatori a bit ed a parole: vengono cancellati.

La lettura dal kachel non è possibile:

- tutti gli accumulatori: rimangono invariati,

- RLC: = o,

- i restanti visualizzatori a bit ed a parole: vengono pure cancellati.

Possibilità di errore

Si distinguono le seguenti possibilità di errore:

Identificatore di lunghezza in ACCU-3-LH errato

Indirizzo sorgente nel kachel errato o non disponibile

Numero di kachel dato non disponibile

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 314: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.24.3 OB 218: Occupazione di un kachel

Funzione Questo blocco organizzativo speciale trasferisce il numero della CPU ad un certo kachel, se il contenuto della cella indirizzata in questo kachel è uguale a zero. Finché il numero della CPU rimane inserito nella cella, questo kachel resta riservato per questa CPU e non può essere occupato da altre CPU.

L'OB 218 serve per la sincronizzazione del trasferimento di dati ed è particolarmente importante quando si deve trasferire in una sola volta molti dati non divisibili. In funzionamento multiprocessore, ad ogni accesso al bus possono essere trasferiti non più di 4 byte. Perciò ha senso un'inibizione.

L'indirizzamento del kachel, la lettura e l'eventuale scrittura dell'identificatore del posto connettore costituiscono un'unità di programma che non può essere interrotta.

Parametri

ACCU 2

Accumula tori

numero del kachel da occupare, possibili valori: da O a 255

indirizzo destinazione nel kachel, possibili valori: da O a 2047

(I1 contenuto degli accumulatori 3 e 4 è irrelevante)

Occupazione dell'ACCU prima del1 richiamo dell'OB 218:

ACCU I I

4 raroia nign L 1 r raroia iow b

Byte high Byte low Byte high Byte low

Indir izzo (relativo all ' inizio kachel) 1 O . . 2017

X X

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

X : Nr, kachel i 0 , , . 2 5 5

Page 315: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato L'occupazione del kachel è avvenuta correttamente:

- tutti gli accumulatori: rimangono invariati,

- RLC: = o,

- i restanti visualizzatori a bit ed a parole: vengono pure cancellati.

L'occupazione del kachel non è possibile:

- tutti gli accumulatori: rimangono invariati,

- RLC: = o,

- i restanti visualizzatori a bit ed a parole: vengono pure cancellati.

Possibilità di errore

Si distinguono le seguenti possibilità di errore:

Numero di kachel dato non disponibile.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 316: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.24.4 Esempio di programma

Dal DB 45 di una CPU 928B vengono trasferite le parole dati da DW 4 a DW 11 tramite il coordinatore KOR 913C nel DX 45 (parole dati da DW O a DW 7) di una seconda CPU 928B. La sincronizzazione tra trasmissione e ricezione (funzionamento multiprocessore) avviene tramite 1'OB 218.

Kachel attuale sul coordinatore:

Cella di coordinamento nel kachel (occupazione):

Campo per trasferimento dei dati nel kachel (lettura e scrittura): ind. 54-69

Operazioni STEP 5 nel TRASMETTITORE:

:L KB 255 Numero di kachel Indirizzo della cella di coordinamento

:SPA OB218 Trasferimento dell'identificatore del posto connettore in una cella nel kachel

:SPB =M001 Se RLC = 1 (trasferimento avvenuto), salto a M001, altrimenti fine del blocco

M001 :A DB 45 Attivazione DB sorgente :LKY 2,255 2 = identificatore doppia parola, numero di kachel

Indirizzo iniziale nel kachel Scrittura in ACCU 3 Parole dati 4 e 5 (= 4 byte)

:SPA OB 216 Trasferimento della 1. doppia parola Incremento dell'indirizzo di 4 (ACCU-2-L = 58) Salvataggio dell'indirizzo destinazione

:SPA OB 216 Trasferimento della 2. doppia parola

:SPA OB 216 Trasferimento della 3. doppia parola

:L DD 10 :SPA OB 216 Trasferimento della 4. doppia parola

Indirizzo con l'identificatore del posto connettore

ACCU 1 = 0 :SPA OB 216 Cancellazione dell'identificatore del posto

connettore rilascio del kachel

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 317: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Operazioni STEP 5 nel RICEVITORE:

:L KB 255 Numero di kachel Indirizzo della cella di coordinamento

:SPA OB 218 Occupazione del kachel dalla 2. CPU :SPB =M002 Se RLC = 1, salto a M002

M002 :AX DX 45 DB destinazione :L KY 2,255

Scrittura in ACCU 3 Scrittura in ACCU 2

:SPA OB 217 Lettura della la doppia parola Incremento dell'indirizzo di 4 (ACCU 2-L = 58) Trasferimento di ACCU 1 in DW O e 1

:SPA OB 217 Lettura della 2a doppia parola

:SPA OB 217 Lettura della 3a doppia parola

:SPA OB 217 Lettura della 4a doppia parola

:L KY 0,255 Indirizzo con l'identificatore del posto connettore

ACCU 1 = 0 :SPA OB 216 Cancellazione dell'identificatore del posto connettore,

abilitazione del campo per trasferimento dati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 318: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.25 OB 220: Espansione del segno

Applicazione Un'espansione del segno è necessaria per poter ampliare un numero negativo o positivo in virgola fissa a 16 bit in uno a 32 bit prima di una trasformazione in un numero in virgola mobile (a 32 bit, comando FDG).

Funzione

Parametro

Risultato

Possibilità di errore

Questo blocco organizzativo speciale "espande" il segno di un numero in virgola fissa a 16 bit nell'ACCU-1-L nella parola a valenza maggiore (ACCU-1-H):

Se il bit 215 = O (numero positivo), la parola high viene caricata con il valore KH = 0000.

Se il bit 215 = 1 (numero negativo), la parola high viene caricata con il valore KH = FFFF.

Numero in virgola fissa a 16 bit

L'ACCU-1-H viene caricato in dipendenza dal segno del numero in virgola fissa contenuto in ACCU-1-L (vedere sopra).

Nessuna

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 319: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.26 OB 221 : Definizione del tempo di ciclo

Funzione Con questo blocco organizzativo speciale è possibile modificare il tempo di controllo del ciclo e ridefinire il massimo tempo di ciclo. I1 tempo di controllo del ciclo è predisposto a 150 ms. Contemporaneamente al richiamo di questo OB, viene resettato il timer che misura il tempo di ciclo: il controllo del ciclo in cui si richiama I'OB 221 si allunga del nuovo tempo impostato a partire dal momento in cui la funzione è richiamata. I1 tempo di controllo del ciclo massimo di tutti i cicli seguenti è invece costituito dal nuovo valore impostato (cioè definito in ACCU 1).

Parametri

Risultato

Possibilità di errore

ACCU 1

Nuovo tempo di ciclo (in millisecondi), possibili valori: da 1 ms a 13000 ms,

numero positivo in virgola fissa (KF)

ACCU- 1-H deve avere il valore " 0 "

Dopo la corretta elaborazione dell'OB 221 è impostato il nuovo tempo di controllo del ciclo.

I1 tempo di ciclo impostato non è nel campo da 1 ms a 13000 ms.

La funzione non viene eseguita. I1 programma di sistema riconosce l'errore e richiama I'OB 31. La successiva reazione all'errore dipende dalla programmazione dell'OB 31 (vedere paragrafo 5.6). Se I'OB 31 non è caricato, la CPU si porta in STOP.

In entrambi i casi viene depositato l'identificatore di errore 1A3AH nell' ACCU-1-L.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 320: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.27 OB 222: Riazzeramento del tempo di ciclo

Funzione I1 blocco organizzativo speciale OB 222 riavvia il controllo del tempo di ciclo, cioè il timer per questo controllo viene riazzerato. Con il richiamo di questa funzione, il tempo di ciclo massimo viene allungato del valore definito a partire dal momento in cui I'OB viene richiamato.

Parametro

Possibilità di errore

Nessuno

Nessuna

6.28 OB 223: Confronto dei modi di awiamento

Funzione Con il richiamo del blocco organizzativo speciale OB 223 in funzionamento multiprocessore, si può testare se il modo di avviamento è uguale per tutte le CPU.

Parametro

Risultato

Possibilità di errore

Avvertenza L'OB 223 deve essere richiamato solo quando tutte le CPU hanno completato il loro avviamento. Quando la sincronizzazione dell'awiamento è attiva @X O), ciò è garantito dal richiamo dell'OB 223 in RUN. Quando invece la sincronizzazione dell'awiamento è disattivata, ciò deve essere garantito tramite altri accorgimenti (per esempio da un richiamo ritardato dell'OB 223).

Nessuno

Segnalazione dell'errore in caso di disuguaglianza dei modi di avviamento.

Se il modo di avviamento non è uguale per tutte la CPU, la CPU nella quale si è elaborato I'OB 223 rileva un errore di esecuzione e richiama I'OB 31.

Se I'OB 31 non è programmato, la CPU si porta in STOP con la segnalazione LZF. I1 relativo LED lampeggia lentamente. Le altre CPU si portano in STOP con luce fissa.

Segnalazioni L'ACCU-1-L contiene l'identificatore di errore 1A3BH quando viene richiamato I'OB 31 e se la CPU si trova nello stato di STOP.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 321: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.29 OB 224: Trasferimento a blocchi di merker di accoppiamento

Funzione I merker di accoppiamento vengono trasferiti alla fine di ogni ciclo del programma. In funzionamento monoprocessore, i merker vengono trasferiti tutti insieme in un gruppo di dati nella memoria del coordinatore (KOR) o CP e10 da questa memoria nei merker della CPU.

In funzionamento multiprocessore, le CPU possono utilizzare il bus soltanto quando assegnato dal coordinatore. Questo permette il trasferimento di un solo byte per ogni accesso al bus, dopodiché le altre CPU possono accedere al bus. Dati di un gruppo distribuiti in più byte di merker vengono così "separati".

Con la chiamata del blocco organizzativo speciale OB 224 si realizza un trasferimento in blocco di tutti i merker di accoppiamento contenuti nel DB 1 della CPU: fintantoché una CPU è occupata nel trasferimento dei merker di accoppiamento, essa non può essere interrotta da alcun'altra CPU. Dato che la CPU successiva deve attendere per effettuare la sua trasmissione, l'elaborazione ciclica ne viene di conseguenza ritardata (con effetti sul tempo di ciclo!).

L'OB 224 garantisce quindi la consistenza di tutti i merker di accoppiamento. Esso deve essere richiamato in avviamento e cioè:

in tutte le CPU interessate al trasferimento dei merker di accoppiamento

per ogni tipo di avviamento.

Parametro

Possibilità di errore

Nessuno

Nessuna

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 322: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Funzione Gli OB 226 e 227 sono contenuti come prima nel sistema operativo per ragioni di compatibilità. La funzionalità iniziale di questi OB - il calcolo di una somma di controllo da parte del programma del sistema - è nel frattempo integrata nel programma del sistema. Entrambi gli OB rispondono al loro richiamo con "0".

I programmi utente che richiamano gli OB 226 e 227 per il calcolo di una somma di controllo, possono continuare ad essere ugualmente utilizzati.

Avvertenza I1 programma del sistema esegue una somma di controllo automaticamente dopo Accensione ON e prima della cancellazione totale.

Somma di controllo

Le EPROM FW della CPU 928B contengono una somma di controllo. Dopo ACCENSIONE ON e CANCELLAZIONE TOTALE il software di sistema calcola automaticamente una somma di controllo e confronta il valore calcolato con il valore memorizzato.

Se i due valori non sono uguali, compare un errore di sistema grave (RUN e STOP sono accesi, STOP ROSSONERDE). La CPU non può funzionare.

Dopo aver disinserito e reinserito la corrente la CPU richiede una CANCELLAZIONE TOTALE (se ancora possibile). Nel dato BS EA80H è registrato il valore 1170H. La CANCELLAZIONE TOTALE conduce di nuovo ad uno STOP ROSSONERDE.

Gli OB 226 e 227 che potevano finora essere utilizzati per ricalcolare la somma di controllo danno come risultato sempre "somma di controllo corretta".

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 323: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.31 OB 228: Lettura delle informazioni di stato di un livello di elaborazione programma

Funzione Al verificarsi di un certo evento, il programma di sistema richiama il relativo livello di elaborazione che diventa di conseguenza "attivo". I1 blocco organizzativo speciale OB 228 permette di sapere se in un certo momento è attivo o meno un determinato livello di elaborazione programma. Nell'ACCU 1 va introdotto il numero relativo al livello di elaborazione di cui si vuole conoscere lo stato. Questo numero coincide a quello utilizzato nel registro di interruzione come "LIVELLO".

Al richiamo della funzione, I'OB 228 trasferisce l'informazione di stato del livello di elaborazione programma definito in ACCU 1. Analizzando questa informazione è possibile elaborare il programma utente in relazione allo stato degli altri livelli di elaborazione programma.

Parametro

Numero del livello di elaborazione programma (vedere USTACK, "LIVELLO") possibili valori (esadecimali): vedere la seguente tabella

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

N. livello in ACCU- 1-L

02 04 06 08 OA OC OE 10 12 14 16 18 1A 1C 1E 20 22 24

Nome del livello

NUOVO AVVIAMENTO CICLO ALLARMEDISCHEDUL. 5 sec ALLARMEDISCHEDUL. 2 sec ALLARMEDISCHEDUL. 1 sec ALLARME DI SCHEDUL. 500 ms ALLARME DI SCHEDUL. 200 ms ALLARME DI SCHEDUL. 100 ms ALLARMEDISCHEDUL. 50 ms ALLARMEDISCHEDUL. 20 ms ALLARMEDISCHEDUL. 10 ms ALLARME DALL'OROLOGIO non occupato ALLARME DI REGOLAZ. non occupato ALLARME DI RITARDO non occupato ALLARME DI PROCESSO

N. livello in ACCU-1-L

26 28 2A 2C 2E 30

32 34 36 38 3A 3C 3E 40 42 44 46

Nome del livello

non occupato non occupato non occupato interruzione errore di interfaccia errore per collisione di interrupt temporali errore di regolazione superamento del tempo di ciclo non occupato errore nel codice del comando errore di esecuzione errore di indirizzamento ritardo della conferma non occupato non occupato RIAWIAh4ENTO MANUALE RIAWIAh4ENTO AUTOMATICO

Page 324: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Risultato - ACCU-1-L: contiene l'informazione di stato = O += il livello di elaborazione programma

non è attivo z O += il livello di elaborazione programma

è attivo

- ACCU-2-L: contiene il vecchio contenuto di ACCU-1-L, il vecchio contenuto di ACCU-2-L va perso.

Possibilità di errore

Nessuna

Esempio

I1 ritardo della conferma deve essere ignorato durante un NUOVO AWIAMENTO, ma non negli altri livelli di elaborazione programma.

All'inizio dellrOB 23 (ritardo della conferma QVZ) si deve richiamare 1'OB 228 per vedere se il livello di elaborazione NUOVO AWIAMENTO (numero 02) è attivo o meno. La successiva elaborazione dell'errore dipenderà dall'informazione di stato ottenuta:

ACCU-1-L = O: NUOVO AWIAMENTO passivo -, QVZ non si è presentato durante un NUOVO AWIAMENTO bensì in un altro livello di elaborazione programma. I1 programma di errore deve essere

elaborato.

ACCU-1-L * O: NUOVO AWIAMENTO attivo -, QVZ si è presentato durante un NUOVO AWIAMENTO e per questo motivo deve essere ignorato.

I1 blocco organizzativo OB 228 permette di conseguenza un trattamento differenziato degli errori.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 325: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.32 Da OB 230 ad OB 237: Funzioni per blocchi funzionali standard

Introduzione I blocchi organizzativi speciali da OB 230 ad OB 237 sono riservati per le funzioni di trasporto e possono essere richiamati solo all'interno dei blocchi funzionali standard da FB 120 a FB 127.

Blocchi di Questi FB standard, detti anche blocchi di trasporto, realizzano il traffico dati via trasporto kachel sia in funzionamento monoprocessore che in funzionamento

multiprocessore: essi vengono usati per trasferire a/da processori di comunicazione informazioni di comando, dati e parametri.

Attribuzione Dalla seguente tabella risulta evidente da quali blocchi di trasporto vengono richiamati i blocchi organizzativi speciali da OB 230 ad OB 237.

Uso dei blocchi L'uso dei blocchi di trasporto disponibili come prodotto software su dischetto di trasporto viene descritto dettagliatamente nel manuale di funzionamento "Controllore

programmabile S5-135U, blocchi di trasporto per il processore R e la CPU 928/928B1' 181.

Blocchi funzionali standard

FB 120

FB 121

FB 122

FB 123

FB 124

FB 125

FB 126

FB 127

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

OB speciali

SE-OB 230

SE-OB 231

SE-OB 232

SE-OB 233

SE-OB 234

SE-OB 235

SE-OB 236

SE-OB 237

Blocchi di trasporto

SEND

RECEIVE

EETCH

CONTROL

RESET

SYNCHRON

SEND ALL

RECEIVE ALL

Page 326: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.33 Da OB 240 ad OB 242: Funzioni speciali per registri a scorrimento

Introduzione Nella seguente introduzione è descritto l'uso dei registri a scorrimento.

Applicazione I registri di scorrimento possono, per esempio, essere utilizzati per programmare il controllo del materiale in un'azienda produttiva tramite il controllore programmabile. La CPU 928B dispone di un massimo di 64 registri a scorrimento software.

E' possibile scriverepeggere dati idda un registro a scorrimento grazie ai cosiddetti "indicatori": gli indicatori sono byte di merker che contengono il contenuto dei singoli elementi del registro a scorrimento.

Struttura Un registro a scorrimento software è composto da un numero di elementi di memoria ad 8 bit compreso tra 2 e 256.

Posizione nella Gli elementi di un registro a scorrimento risiedono nella RAM per DB della RAM per DB CPU. Ad ogni registro di scorrimento è assegnato ad un certo blocco dati: tutti e

due hanno lo stesso numero (permesso: 192 ... 255). Se, per esempio, è stato generato un registro di scorrimento con il numero 210, i corrispondenti dati si trovano nel DB 210.

La RAM per DB ha una capacità di ca. 46 K byte (indirizzi da KH 8000 a KH DD7F). In questo campo si trovano i blocchi dati ricopiati con OB 254 ed OB 255 (da KH 8000 in avanti) ed i registri a scorrimento definiti dall'utente (da KH DD7F all'indietro). Se trasferendo un DB o definendo un registro a scorrimento la RAM per DB non fosse sufficiente, la CPU rileva un errore di esecuzione e richiama I'OB 31. La successiva reazione dipende dalla programmazione dell'OB 31 (vedere paragrafo 5.6).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 327: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Principio dei La seguente illustrazione mostra il principio di un registro a scorrimento registri a software con 3 indicatori e 12 elementi. scorrimento

Indicatore 1 Indicatore 2 Indicatore 3

Bi t d i merker O Bi t d i merker 1 Bi t d i merker 2 Bi t d i merker 3 Bi t d i merker 4 Bi t d i merker 5 Bi t d i merker 6 Bi t d i merker 7

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2

Figura 6-13 Principio di funzionamento di un registro a scorrimento con 3 indicatori e 12 elementi

Inizializzazione Inizializzando un registro a scorrimento (vedere paragrafo 6.34) deve essere definito il numero del byte di merker per l'indicatore 1 (indicatore base). Esso è quindi fisso nel primo elemento di memoria del registro a scorrimento. I1 numero di questo byte di merker deve essere definito dall'utente. Tutti gli altri indicatori vengono posizionati relativamente all'indicatore base, e per uno stesso registro a scorrimento possono essere usati al massimo 6 indicatori.

Spostamento Elaborando un registro a scorrimento, cosiccome per un registro a scorrimento hardware, le informazioni vengono trasferite a byte da un elemento al successivo (vedere figura 6-13). Ogni richiamo della funzione registro a scorrimento equivale allo spostamento delle informazioni esattamente di un elemento (= 1 impulso). Nel far ciò gli indicatori vengono dotati di un nuovo contenuto. L'informazione "viaggia" nel registro a scorrimento secondo il senso delle frecce in figura fino all'ultimo elemento, da dove viene poi trasferita nuovamente al primo. (Nel caso del registro raffigurato, questo avviene dopo 12 impulsi.)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 328: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Esempio

Prima del richiamo dellrOB speciale, vengono impostati determinati bit negli indicatori (merker) come contrassegni per l'informazione contenuta:

Impostazione del bit O dell'indicatore 1

Impostazione del bit 3 dell'indicatore 2

Impostazione del bit 2 dell'indicatore 3

Quindi viene richiamata la funzione registro a scorrimento :SPA OB 241

Indicatore 1 Indicatore 2 Indicatore 3

Bit di rnerker O Bit di rnerker 1

Figura 6-14 Situazione di un registro a scorrimento con 3 indicaton e 12 elementi prima del primo impulso

Dopo il richiamo dellrOB speciale, le informazioni ad 8 bit di tutti gli elementi sono spostati di un posto:

Bit d i merker O Bit d i rnerker 1 Bit d i rnerker 2 Bit d i merker 3 Bit d i merker 4 Bit d i rnerker 5 Bit d i rnerker 6 Bit d i merker 7

Figura 6-15 Situazione di un registro a scorrimento con 3 indicaton e 12 elementi dopo il primo impulso

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 329: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Le informazioni che si trovano ora negli indicatori, possono essere analizzate con

I bit di merker 0, 3 e 2 possono essere interrogati nell'indicatore base: in questo modo si possono analizzare tutte le informazioni introdotte nei vari indicatori, dall'indicatore base (nell'esempio ciò è possibile dopo

Blocchi organizzativi

Per operare con un registro a scorrimento sono a disposizione tre blocchi organizzativi speciali:

Inizializzazione di un registro a scorrimento,

OB 241:

Elaborazione di un registro a scorrimento,

0 B 242:

Cancellazione di un registro a scorrimento.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 330: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.34 OB 240: Inizializzazione di un registro a scorrimento

Applicazione Prima di poter operare con un registro a scorrimento, esso deve essere inizializzato. Per far ciò bisogna richiamare una volta, preferibilmente in avviamento, I'OB 240. I parametri necessari all'OB 240 per l'inizializzazione di un determinato registro a scorrimento, sono contenuti nel blocco dati con lo stesso numero del registro da inizializzare. I numeri possibili sono da DB 192 a DB 255.

Funzione

Parametri

Con le informazioni contenute nel blocco dati attivato viene riservato ed inizializzato un certo settore di memoria alla fine della RAM per DB.

Blocco dati attivato

possibili valori: n. DB da 192 a 255

I1 blocco dati è costruito secondo uno schema prefissato, che deve essere assolutamente osservato. Esso può essere lungo al massimo 9 parole dati: daDWOaDW8.

o D w o

l Lunghezza del registro a scorrimento (byte) L DW 1

Numero del primo byte di merker D W 2

Distanza n DW 3

l Distanza n 3 l DW 4

Distanza n DW 5

l Distanza n l DW 6

Distanza n DW 7

O DW 8 o l'ultima parola dati

Figura 6-16 Struttura del blocco dati per l'inizializzazione di un registro a scorrimento

Manuale di programmazione CPU 928B-3UB21 C79000-G8572-C870-01

Page 331: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Occupazione Le singole parole dati devono essere così occupate: delle parole dati

Parola dati 0:

Deve avere sempre contenuto "0".

Parola dati 1:

La lunghezza L del registro a scorrimento è il numero (in byte) degli elementi del registro a scorrimento. Essa deve essere compresa tra 2 a L a 256.

Parola dati 2:

I1 numero del primo byte di merker determina l'indicatore base e di conseguenza anche il gruppo di merker che viene utilizzato come indicatore. I1 gruppo di merker comprende tutti gli indicatori programmati. Per determinare ulteriori indicatori bisogna programmare le parole dati da DW 3 a max. DW 7. Viene usata una parola dati per ogni indicatore. Se, per esempio, si programmano due indicatori, vengono riservati come indicatori il byte definito nel DB ed i due successivi. Bisogna al riguardo fare attenzione che tutti i byte di merker del gruppo siano effettivamente disponibili a questo scopo.

Parola dati 3 fino a max. 7:

Gli altri indicatori vengono definiti indirettamente tramite la loro distanza (elementi registro a scorrimento = numero dei byte) dall'indicatore base.

n2 = distanza dell'indicatore 2 dall'indicatore base

n3 = distanza dell'indicatore 3 dall'indicatore base

n4 = distanza dell'indicatore 4 dall'indicatore base

ecc. (5 introduzioni al massimo)

Ultima parola dati (DW 4 fino a max. DW 8):

(DW 8 nell'esempio) deve avere sempre contenuto "0". Se per esempio vengono utilizzati solo due indicatori oltre quello base, allora DW 5 deve contenere "0".

Tutte le introduzioni devono essere numeri in virgola fissa.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 332: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Avvertenza I1 numero di indicatori (max. 6 compreso quello base) non deve essere maggiore della lunghezza del registro a scorrimento!

La distanza di un indicatore dall'indicatore base non deve essere maggiore della lunghezza del registro a scorrimento.

La parola dati DW O e quella successiva all'ultima distanza devono sempre contenere "0".

I1 blocco dati deve essere attivato prima del richiamo all'OB 240.

I1 blocco dati attivato deve avere un numero tra DB 192 e DB 255.

Occupazione Per ogni registro a scorrimento sono necessarie: di memoria

n = lunghezza del registro12 + 8 parole dati

Cioè la RAM per DB si riduce di n parole dati, dato che l'indirizzo finale della RAM per DB viene spostato all'indietro. Quando un registro a scorrimento da inizializzare è già presente, se la lunghezza del nuovo coincide con quella del vecchio viene nuovamente inizializzata la zona di memoria già occupata. Altrimenti la vecchia zona viene contrassegnata come non valida e quindi aperta una nuova zona.

Possibilità di numero di DB non permesso (e 192), errore

spazio nella RAM per DB non sufficiente,

errore nella struttura del DB,

lunghezza del registro a scorrimento non permessa,

errore di parametrizzazione degli indicatori.

In caso di errore la CPU riconosce un errore di esecuzione e richiama I'OB 31. La successiva reazione dipende dalla programmazione dell'OB 31 (vedere paragrafo 5.6). Se I'OB 31 non è programmato, la CPU si porta in STOP.

Nell'ACCU-1-L vengono messi a disposizione degli identificatori di errore che descrivono in modo più dettagliato l'errore verificatosi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 333: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.35 OB 241 : Elaborazione di un registro a scorrimento

Introduzione I1 blocco organizzativo speciale OB 241 elabora un registro a scorrimento precedentemente inizializzato con OB 240. Nella CPU 928B possono essere richiamati al massimo 64 registri a scorrimento.

Applicazione

Funzione

Parametro

Risultato

Possibilità di errore

Prima della chiamata all'OB 241 vengono solitamente impostatilresettati alcuni bit degli indicatori. Ad ogni richiamo dell'OB 241 le informazioni vengono spostate a byte da un elemento del registro al successivo. Gli indicatori di conseguenza vengono occupati con nuovi contenuti. Con ripetute chiamate all'OB 241 le informazioni possono venire trasferite, attraverso tutto il registro, fino all'ultimo elemento, e da qui essere nuovamente spostate nel primo elemento.

Ad ogni elaborazione dell'OB 241 il registro a scorrimento indirizzato tramite 1'ACCU-1-L viene spostato di una posizione verso destra.

Numero del registro a scorrimento da elaborare, possibili valori: da 192 a 255

Dopo una chiamata dell'OB 241 gli indicatori (6 al massimo per registri a scorrimento, e con l'eccezione dell'indicatore base) contengono le informazioni dell'elemento precedente. Queste informazioni possono essere analizzate.

numero del registro a scorrimento in ACCU 1 non permesso.

registro a scorrimento non inizializzato.

In caso di errore la CPU riconosce un errore di esecuzione e richiama I'OB 31. La successiva reazione dipende dalla programmazione dell'OB 31 (vedere paragrafo 5.6). Se I'OB 31 non è programmato, la CPU si porta in STOP.

Nell'ACCU-1-L vengono messi a disposizione degli identificatori di errore che spiegano in modo più dettagliato l'errore verificatosi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 334: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.36 OB 242: Cancellazione di un registro a scorrimento

Funzione I1 blocco organizzativo speciale OB 242 cancella un registro a scorrimento dalla RAM per DB: i relativi dati nella lista di indirizzi DB O vengono cancellati ed il registro a scorrimento nella RAM per DB contrassegnato come non valido. (Attenzione: anche i registri a scorrimento cancellati occupano spazio di memoria!)

Parametro

Risultato

Possibilità di errore

numero del registro a scorrimento da cancellare, possibili valori: da 192 a 255

Dopo il richiamo dell'OB 242, il registro a scorrimento è cancellato e non può più essere utilizzato. Dovendolo riutilizzare, esso deve essere nuovamente inizializzato.

Numero del registro a scorrimento in ACCU 1 non permesso

Registro a scorrimento non inizializzato

In caso di errore la CPU riconosce un errore di esecuzione e richiama I'OB 31. La successiva reazione dipende dalla programmazione dell'OB 31 (vedere paragrafo 5.6). Se I'OB 31 non è programmato la CPU si porta in STOP.

Nell'ACCU-1-L vengono messi a disposizione degli identificatori di errore che descrivono in modo più dettagliato l'errore verificatosi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 335: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.37 OB 2501251 : Regolazione/algoritmo PID

Introduzione Nella CPU 928B dell'AG 135U è possibile richiamare uno o più regolatori PID. Ogni regolatore deve essere inizializzato in un blocco organizzativo di avviamento. Per la definizione dei parametri viene usato un blocco dati.

L'algoritmo di regolazione è integrato nel programma di sistema ed è richiamabile dall'utente come blocco organizzativo. Come interfaccia tra l'algoritmo di regolazione ed il programma utente viene usato di nuovo un blocco dati.

6.37.1 Descrizione delle funzioni del regolatore PID

Z Ingresso manuale: introduzione di YH se S3 su O

I I introduzione di dYH se S3 su 1

Figura 6-17 Schema a blocchi del regolatore PID

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 336: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Indice K Lettura k-esimo

Parola di comando STEU

Selettore

S 1 STEU-BiT 1

S2 STEU-BiT O

S3 STEU-BiT 3

S4 STEU-BiT 5

Algoritmo PID

Differenziatore

Posizione

O

1

O 1

O 1

O 1

Compensazione di disturbo

Effetto

Al differenziatore viene portata la differenza di regolazione X W k . Al differenziatore può essere portato un altro segnale via XZ.

Funzionamento manuale Funzionamento automatico

Algoritmo di posizione Algoritmo di velocità

Con collegamento di una grandezza di disturbo Senza collegamento di una grandezza di disturbo

Regolazione negativa

Limitazione dell'informazione regolante

La funzione relativa alla posizione dei selettori di questo schema a blocchi viene determinata durante la parametrizzazione del regolatore PID, dai bit di comando opportunamente impostati nella parola di comando STEU. La regolazione continua è appropriata per regolazioni veloci come, per esempio, regolazioni di pressione, temperatura o portata.

Alla base del regolatore c'è l'algontmo PID. I1 suo segnale di uscita può essere emesso a scelta come grandezza regolante (algontmo di posizione) o differenziale della grandezza regolante (algontmo di velocità). I singoli componenti P, I e D sono disinseribili tramite i relativi parametri R, TI e TD, impostando questi ultimi a zero. Grazie a ciò è possibile realizzare facilmente tutte le strutture di regolazione, per esempio PI, PD o PID.

Al differenziatore può essere portata a scelta la differenza di regolazione XW oppure - tramite l'ingresso XZ - una grandezza a piacere oppure ancora il valore istantaneo invertito -x.

Nel caso che come compensazione di un disturbo si voglia usare un pre-comando dell'attuatore senza gestione del tempo, all'algontmo di regolazione può essere collegata una grandezza reperibile nel processo come misura. In funzionamento manuale in questa posizione viene considerata la grandezza regolante YN prescelta.

Se viene richiesta una regolazione negativa, bisogna definire un valore k negativo.

Quando l'informazione regolante (Y o dY) ha un valore limite, la componente I viene automaticamente disinserita per impedire un decadimento della regolazione.

I1 programma di regolazione può essere alimentato con la definizione di valori fissi oppure con una definizione dinamica dei parametri (K, R, TI, TD). L'introduzione awiene tramite gli elementi di memoria associati ai vari parametri.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 337: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.37.2 Algoritmo PID

Introduzione Un regolatore PID si basa su un algontmo di velocità secondo il quale in un determinato istante t = k ' TA il relativo incremento dYk viene calcolato secondo la seguente formula:

componente P componente I componente D

dXXXk: variazione della grandezza xxx nell'istante t

U può essere W o Z a seconda che venga portato al differenziatore XW o XZ. Conseguentemente vale:

Con XWk: Con XZ:

QWk = PWk - PWk-1 QZk = PZk - PZk-l

1 TV dDk = - (TD QUk + dDk-l) TD = -

2 TA

Se, come uscita del regolatore all'istante tk, viene richiesta la grandezza regolante Yk, essa viene calcolata secondo la seguente formula:

Nella maggior parte delle regolazioni si presume che R è uguale ad 1 per regolazioni di tipo P.

Con la grandezza R si può impostare la parte proporzionale del regolatore PID.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 338: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Blocchi dati per I dati per la regolazione vengono definiti con l'aiuto di un blocco dati di un regolatore PID parametrizzazione (per l'inizializzazione e l'elaborazione di un regolatore PID

vedere i paragrafi 6.38 e 6.39).

Questi dati devono essere definiti nel blocco dati di parametrizzazione:

K, R, TI, TD, W, STEU, YH, BGOG, BGUG

I1 blocco dati di parametrizzazione deve essere composto da 49 parole dati con i numeri da O a 48. Nella seguente tabella viene spiegata in modo più dettagliato la struttura di queste parole dati.

Struttura del blocco dati di parametrizzazione

Tabella 6-10 DB di parametrizzazione per regolatori PID

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Ind. nel DB

DWO

DD 1

DD 3

DD 5

DD7

DD9

DW11

DD12

DD14

DD 16

DW18

DW 19

Nome

-

K

R

TI

TD

Wk

STEU

YHk

BGOG

BGUG

Wk

E/A

1)

-

E

E

E

E

E

E

E

E

E

E

E

Formato numeri

2)

-

GP

GP

GP

GP

GP

BM

GP

GP

GP

LP

LP

Formato PG 3)

-

KG

KG

KG

KG

KG

KM

KG

KG

KG

KF

KF

Annotazioni

Riserva

Valore proporzionale K > 0: senso di regolazione positivo, cioè variazioni

nello stesso segno del valore di riferimento e della grandezza regolante.

K < 0: senso di regolazione negativo; campo dei numeri in virgola mobile.

Parametro R, comunemente = 1 con regolazioni con componente P

TI=TA/TN

TD=TV/TA

Introduzione del valore di riferimento se STEU-bit 6 = 1, altrimenti in DW 19 (-1 5 Wk < 1)

Parola di comando

Introduzione del valore manuale se STEU-bit 6=1, altrimenti in DW 18 (-1 5 YHk < 1) Per algoritmi di velocità bisogna qui introdurre gli incrementi del valore di regolazione

Valore limite superiore 4,

-1 5 BGOG 5 1 (YAk ma,); !! BGUG<BGOG!!

Valore limite inferiore 4)

-1 5 BGUG 5 1 (YAk mi, )

Introduzione del valore manuale se STEU-bit 6 = O (-1 5 YH < 1) Per algoritmi di velocità bisogna qui introdurre gli incrementi del valore di regolazione

Introduzione del valore di riferimento se STEU-bit 6 = O (-1 5 W k < l )

Page 339: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

l) E = ingresso, A = uscita

Ind. nel DB

GP = numero in virgola mobile, LP = numero con virgola a sinistra, BM = stringa di bit

3, Formato proposto @ossibili anche KH e KM)

Nome

4, In formato LP bisogna introdurre il valore limite superiore ed inferiore secondo le seguente formule:

DD 14 = BGOG: BGOG

valore come numero in virgola mobile = - 32767

Continuazione

DW20

DW21

DD 22

DW 24

DD 25

DD 27

DW29

DD30

DD 32

DD 34

DD 36

DD 38

DD 40

DW42

DD 44

D46

DW 48

DD 16 = BGUG:

E/A

1)

BGUG valore come numero in virgola mobile = -

32767

della tabella

MERK

Xk

Xk

Zk

Zk

Zk-l

XZk

XZk

XZk.1

PZk.1

dDk-i

XWk-i

PWk.1

-

Yk-l

YAk

YAk

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Formato numeri

2)

6-10:

-

E

E

E

E

-

E

E

-

-

-

-

-

-

-

A

A

Formato PG 3)

Annotazioni

BM

LP

GP

LP

GP

GP

LP

GP

GP

GP

GP

GP

GP

GP

GP

GP

LP

KF

KF

KG

KF

KG

KG

KF

KG

KG

KG

KG

KG

KG

KG

KG

KG

KF

Bit O = 1: superamento del limite positivo; Bit 1 = 1: superamento del limite negativo.

Introduzione del valore istantaneo per STEU-bit 7 = O (-1 5 Xk < l )

Introduzione del valore istantaneo per STEU-bit 7 = 1 (-1 5 Xk < l )

Disturbo (-1 5 Zk < l )

Introduzione del disturbo se STEU-bit 7 = 1 (-1 5 Zk < 1)

Vecchio valore del disturbo.

Valore portato al differenziatore via ingresso XZ (-1 5 XZk < 1); introduzione se STEU-bit 7 = 0.

Introduzione di XZ, se STEU-bit 7 = 1 (-1 5 XZk < 1)

Vecchio valore di XZk

XZk-l - XZk-2

Componente differenziale

Vecchio valore della differenza di regolazione.

XWk-1 - XWk-2

Riserva

Vecchio valore della grandezza di regolazione calcolata Yk-l o dYk.1 prima del limite.

Grandezza d'uscita.

Grandezza d'uscita BGUG 5 YA 5 BGOG

Page 340: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Esempio per valori limite

- Valori limite

Valore limite superiore = 0,l

Valore limite inferiore = -0,l

- Introduzioni in DB: DD 14: +l000 000 +o0

DD 16: -1000 000 +o0

- La grandezza di uscita ha il valore limite: DW 48: 13276

DD 15: 10,l

Annotazione:

Per valori limite oltre 1, la grandezza di uscita viene limitata in formato

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 341: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Occupazione della parola di comando STEU (DW 11 nel DB di parametriuazione)

Tabella 6-11 Parola di comando nel DB di parametrizzazione per regolazione PID

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

DW 11 bit n.

11.0

11.1

11.2

11.3

11.4

11.5

11.6

11.7

11.8

da 11.9

Nome

AUTO

X Z E I N

REG-AUS

GESCHW

HANDART

NO-Z

PGDG

VAR-GP

STOS

a 11.15

Significato

= 1: funzionamento automatico = 0: funzionamento manuale

= 1: al differenziatore è portata tramite l'ingresso XZ un'altra grandezza che non può essere XWk .

= O: al differenziatore viene portata XWk, L'ingresso XZ non viene preso in considerazione.

= 1: richiamando il regolatore (OB 251) tutte le grandezze (da DW 20 a DW 48) del DB di parametrizzazione vengono cancellate eccetto K, R, TI, TD, BGOG, BGUG, STEU, YHk, Wk, Zk e Zk-1. Il regolatore è inattivato. Il vecchio valore della grandezza di disturbo viene attualizzato.

= 0: regolazione

= 1: algoritmo di velocità = 0: algoritmo di posizione

= 1: se GESCHW = O (algoritmo di posizione) viene conservato l'ultimo valore emesso della grandezza di regolazione; se GESCHW = 1 (algoritmo di velocità) viene impostato l'incremento dYk = 0.

= O: se GESCHW = O dopo la commutazione su manuale il valore YA viene portato al valore manuale impostato, esponenzialmente in 4 intervalli del

. tempo di campionamento. Quindi vengono subito rilevati altri valon manuali sull'uscita del regolatore. Con GESCHW = 1 i valon manuali vengono subito commutati sull'uscita del regolatore. In funzionamento manuale i limiti hanno valore, ed inoltre vengono attualizzate le seguenti grandezze: Xk, XWk-I e PWk-i XZk, XZk.1 e PZk.1, se STEU-bit 1 = 1 Zk e Zk-1, se STEU-bit 5 = O La grandezza dDk-i viene impostata a O. L'algontmo non viene elaborato.

= 1: nessun collegamento di una grandezza di disturbo = 0: con collegamento di una grandezza di disturbo

= 1: introduzione Wk e YHk come numero in virgola mobile = 0: introduzione come numero con virgola a sinistra

= 1: le variabili Xk, XZk e Zk vengono introdotte come numeri in virgola fissa

= 0: introduzione delle variabili come numeri con virgola a sinistra

= 1: commutazione manuale/automatico non libera = 0: commutazione manuale/automatico libera

nessun significato

Page 342: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.38 OB 250: Inizializzazione dell'algoritmo PID

Funzione L'OB 250 inizializza l'algoritmo PID e viene richiamato negli OB di awiamento OB 20,21 e 22.

Parametri I parametri necessari per l'inizializzazione risiedono nel blocco dati di parametrizzazione (DB x).

Avvertenza I1 blocco dati deve essere attivato prima del richiamo dell'OB 250.

Per ogni regolatore si deve usare un diverso DB x (x a 254) per la definizione dei parametri. I1 programma di sistema copiando il DB x nella RAM per DB genera automaticamente un altro blocco dati DB x+l che il regolatore utilizza come campo di dati nel funzionamento ciclico; i relativi numeri di DB devono pertanto essere ancora liberi. I blocchi dati DB x+l fungono da interfaccia-dati tra il regolatore e l'utente o periferia.

Possibilità di errore

L'OB 250 utilizza internamente I'OB 254 o 255 (duplicazione di blocchi dati). In caso di errore la CPU rileva un errore di esecuzione e richiama I'OB 31. Se questo non è programmato, la CPU si porta in STOP. Gli identificatori di errore contenuti in ACCU 1 si riferiscono all'OB 250.

Avvertenza Se durante l'inizializzazione il DB x+l non era libero, esso viene ugualmente utilizzato dal programma di sistema senza segnalazioni come campo per i dati di regolazione se ha la stessa lunghezza del DB di regolazione (48 parole dati); nello stesso momento vengono cancellate le parole dati da DW 20 a DW 48. Altrimenti la CPU si porta in STOP.

Al posto dei blocchi dati DB possono essere utilizzati quelli DX. L'inizializzazione avviene nello stesso modo visto per i DB.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 343: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

6.39 OB 251 : Elaborazione dell'algoritmo PID

Applicazione L'OB 251 viene richiamato durante l'elaborazione del programma ciclico ed elabora l'algoritmo PID.

Richiamo Trascorso il tempo di ciclo, il regolatore deve essere richiamato. Nel far ciò deve essere rispettata la seguente successione:

1. Attivazione del blocco dati DB x t l

2. Caricamento dei dati d'ingresso Xk, XZk, Zk e YHk oppure di un loro sottoinsieme

3. Conversione nei formati corretti dei dati di ingresso e trasferimento nel DB x t l

4. Richiamo dell'OB 251 (elaborazione dell'algoritmo PID)

5. Caricamento del dato di uscita YAk dal blocco DB x t l

6. Conversione del dato e trasferimento alla periferia di processo

Formato degli L'algoritmo di regolazione PID utilizza internamente il formato a virgola mobile ingressi e delle come rappresentazione dei dati e può essere alimentato con valori in virgola uscite di mobile. I dati possono essere introdotti nell'algoritmo PID anche in formato con regolazione virgola a sinistra (vedere i bit 6 e 7 della parola di comando STEU). In questo

caso il regolatore ad ogni chiamata converte autonomamente le parole in formato a virgola mobile.

L'adattamento delle parole delle unità di ingresso e uscita al programma STEP 5 è particolarmente veloce utilizzando il formato con virgola a sinistra (vedere la tabella alla fine di questo capitolo).

Ingressi W, YH, X, Z e XZ possono essere introdotti a scelta in formato in virgola mobile o con virgola a sinistra. Nel blocco dati sono previsti per ogni grandezza diverse quantità di memoria.

Introduzione in (Per spiegazioni in questo formato vedere la tabella alla fine di questo capitolo) formato con virgola a sinistra

Avvertenza Per osservare il campo nominale degli ingressi delle unità di ingresso analogiche, bisogna fare attenzione che la rappresentazione a bit per un certo valore di ingresso è diversa che per l'uso dell'intero campo d'ingresso. Questo fatto deve essere tenuto presente particolarmente per la definizione del valore di riferimento, altrimenti può capitare che un valore di riferimento definito con il PG non possa essere raggiunto anche se il valore istantaneo è notevolmente superiore al valore voluto.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 344: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Uscita

Avvertenze generali

Se il convertitore analogico-digitale usato consegna valori negativi come valore e segno, prima di trasferirli al DB del regolatore deve essere formato il complemento a due. Infine deve essere impostato ad 1 il bit numero 15. Se il numero -O è accettato dal convertitore analogico-digitale usato con valore e segno nella forma

non può essere calcolato il complemento a due, bensì il numero deve arrivare come +O nel DB del regolatore:

L'uscita del regolatore YA risiede nel DB come numero con virgola a sinistra e numero con virgola mobile. Gli ingressi e uscite con virgola a sinistra, in relazione delle unità di ingresso e uscita usate (convertitore analogico-digitale e digitale-analogico), devono essere convertiti in formato prima e dopo la chiamata del regolatore nel programma utente in STEP 5, prima di essere trasferiti nelldal DB del regolatore.

Utilizzo del bit STOS

Se il bit STOS (STEU-bit 8) è uguale a O, la commutazione tra funzionamento manuale ed automatico è libera, cioè una differenza di regolazione qualunque, presente, viene regolata solo secondo la componente I. Se quindi viene scelto TI = TAITN =O (regolatore P o PD), la differenza di regolazione non provoca alcuna variazione della grandezza regolante per una commutazione.

Questo può essere evitato impostando il bit STOS = 1. Una differenza di regolazione, in caso di commutazione manuale-automatico, viene velocemente regolata indipendentemente che TI sia nullo o meno. La relativa variazione della grandezza regolante è relativa al valore della differenza di regolazione, e quindi il funzionamento del regolatore non è arbitrario.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 345: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Visualizzazione di MERK, bit O ed 1

I bit O e 1 di MERK, se si vuole, possono essere usati per la visualizzazione del raggiungimento del valore limite superiore o inferiore da parte della grandezza regolante (l'incremento di posizione per un algoritmo di velocità). Dato che questi bit vengono analizzati dall'algoritmo per il disinserimento della componente I, essi non devono essere sovrascritti.

Avvertenza I blocchi dati DB x+l del regolatore non possono essere ricaricati durante il funzionamento ciclico.

Regolazione in cascata

Realizzando una regolazione in cascata di due o più regolatori, bisogna fare attenzione a quanto segue:

- Se la cascata viene "aperta", o tutti i regolatori vanno contemporaneamente in funzionamento manuale (in modo che nessun regolatore possa deviare a causa della sua componente I) oppure almeno il regolatore dell'anello esterno deve lavorare in funzionamento manuale (in modo che l'ultima grandezza regolante relativa al valore di riferimento dell'anello interno possa essere mantenuta oppure portata ad un valore di sicurezza).

- Se la cascata deve essere "chiusa", entrambi gli anelli o almeno l'anello interno dovrebbero lavorare contemporaneamente in automatico, in modo che la grandezza regolante dell'anello esterno possa essere usata come valore di riferimento.

Commutazione al funzionamento manuale

Se commutando su funzionamento manuale il sistema regolato viene separato dal regolatore e viene impostato direttamente dall'attuatore, la grandezza regolante deve essere portata al regolatore tramite l'ingresso manuale. Questo provoca che, commutando da funzionamento manuale ad automatico, l'uscita del regolatore coincide con la grandezza di regolazione impostata in manuale. In caso di algoritmo di velocità si tratta della variazione della grandezza regolante.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 346: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Grandezze caratteristiche del regolatore Regolatore P

La grandezza caratteristica di un regolatore P è K. Esso è il rapporto tra grandezza in uscita ed in ingresso: K = Xa/Xe.

Regolatore P1

Le grandezze caratteristiche di un regolatore P1 sono il valore proporzionale K ed il tempo di ritardo TN. I1 valore K è il rapporto tra la grandezza di uscita e quella di ingresso e caratterizza la reazione P. I1 tempo di ritardo TN è il tempo necessario per la risposta, cioè perché l'effetto I provochi una variazione della grandezza regolante pari a quella della componente P.

Regolatore PD

Le grandezze caratteristiche di un regolatore PD sono il valore proporzionale K (vedere sopra) ed il tempo di anticipo TV. Questo tempo è il tempo che il regolatore P, per una velocità costante della variazione, impiegherebbe per ottenere la stessa variazione della grandezza in uscita che il regolatore PD ottiene immediatamente grazie al suo componente D. Per determinare il tempo di anticipo TV, non si provoca un gradino, bensì una variazione lineare della grandezza in ingresso.

Regolatore PID

Le grandezze caratteristiche di un regolatore PID sono il valore proporzionale K, il tempo di ritardo TN ed il tempo di anticipo TV. Essi si occupano rispettivamente della risposta P, I e D.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 347: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB speciali integrati

Modifiche dei I1 componente P della grandezza regolante viene determinato secondo la parametri seguente formula:

Componente P = KP ' (XWk - XWk-i)

Se KP o R vengono modificati in funzionamento automatico, si provoca solo una modifica della differenza di regolazione XWk. I1 valore momentaneo della grandezza regolante non viene influenzata dal cambiamento dei parametri. Questo comportamento permette una libera modifica dei parametri. Se però questo tipo di comportamento non è desiderato, tramite il seguente calcolo, che può essere usato solo una volta per ogni cambiamento dei parametri, è possibile evitarlo (l'esempio si riferisce ad una modifica di KP):

Se per un cambiamento dei parametri si utilizza il seguente programma, il regolatore si comporta come un regolatore analogico:

:L KPnuovo Caricare KPnuovo :L mvecchio Caricare KPvecchio : -G :L DD38 XWk-i :xG :L DD44 Yk-l :+G :T DD44 = Yk-l

Significato delle sigle nel regolatore PID

Incremento calcolato della grandezza Incremento del disturbo Rappresentazione in virgola mobile Lettura k-esimo Valore proporzionale Rappresentazione con virgola a sinistra Limite superiore Parametro R Tempo di campionamento TVITA TAlTN Istante di lettura = k ' TA Tempo di ritardo Tempo di anticipo Limite inferiore Valore di riferimento Valore istantaneo Differenza di regolazione Grandezza regolante calcolata Valore di regolazione (incremento di impostazione o grandezza regolante) Disturbo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 348: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Numeri con Per la rappresentazione di un numero con virgola a sinistra, in un blocco dati è virgola a sinistra necessaria una parola. La relazione tra i numeri decimali rappresentati con

virgola a sinistra, i numeri duali con virgola a sinistra e la rappresentazione in formato KF sul PG, è illustrata dai seguenti esempi:

Tabella 6-12 Numeri con virgola a sinistra

I numeri negativi con virgola a sinistra in rappresentazione binaria possono essere trasformati in positivi tramite il complemento a due.

I numeri con virgola a sinistra (LE) possono essere convertiti secondo la seguente relazione nei numeri rappresentati sul PG (KF).

Numero in virgola fissa

-32767

-24576

-16384

-8192

o

t 8192

t16384

t24576

t32767

Numeri con virgola a sinistra in

con -1 e LP < + l e -32767 a KF a +32767

Rappresentazione decimale

-0.999... .

-0.75

-0.5

-0.25

o

t0.25

t0.5

t0.75

t0.999 ... .

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Rappresentazione binaria

1000000000000001

1010000000000000

1100000000000000

1110000000000000

0000000000000000

0010000000000000

0100000000000000

0110000000000000

O111111111111111

Page 349: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

6.40 OB 2541255: Trasferimento/duplicazione di blocchi dati nella RAM per DB

Introduzione Con i blocchi organizzativi speciali OB 254 ed OB 255 è possibile trasferire i blocchi dati dalla memoria utente alla RAM per DB (memoria per blocchi dati DB e DX) della CPU. Gli OB 254 ed OB 255 funziona in modo identico, con l'unica differenza che I'OB 254 vale per DX mentre I'OB 255 vale per DB.

Applicazione

Funzione

Trasferimento o duplicazione di un blocco dati.

Spostamento

Spostamento di un blocco dati dalla memoria utente alla RAM per DB.

Un blocco dati nel programma utente viene spostato nella RAM per DB mantenendo il suo numero di blocco originario. I1 nuovo indirizzo iniziale del blocco dati viene introdotto nella lista di indirizzi del DB O.

Duplicazione

Un blocco dati nella memoria utente o nella RAM per DB viene trasferito nella RAM per DB dove però ha un altro numero di blocco. L'indirizzo iniziale del nuovo blocco dati viene inserito nella lista di indirizzi nel DB O. L'indirizzo iniziale del vecchio blocco rimane nel DB 0, cioè il blocco dati originario continua ad essere valido. L'inserimento dell'indirizzo iniziale nel DB O avviene solo quando il trasferimento si è concluso correttamente e tutti gli identificatori sono inseriti nell'intestazione del blocco in modo corretto. I1 blocco duplicato viene quindi contrassegnato come valido o esistente dal programma di sistema solo a completamento del trasferimento.

Avvertenza I1 DB O non può essere spostato nella RAM per DB perché è già presente. E' però possibile duplicarlo.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 350: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

OB soeciali intearati

Parametri 1. ACCU-1-L-L

Possibilità di errore

Numero del blocco dati da spostare o da duplicare, possibili valori: 0...255 (O solo per DX

o per la duplicazione di DB)

I1 valore nell'ACCU-1-H-L determina se un blocco deve essere spostato o duplicato:

ACCU-1-H-L = 0:

I1 blocco dati DB (richiamo dell'OB 255) o DX con il numero definito nell'ACCU-1-L-L viene spostato nella RAM per DB.

ACCU-1-H-L = n. per il nuovo blocco, possibili valori: 1...255

I1 blocco dati DB (richiamo dell'OB 255) o DX (richiamo dell'OB 254) con il numero definito nell'ACCU-1-L-L viene duplicato nella RAM per DB e scritto nel DB O con il numero definito nell'ACCU-1-H-L.

I valori di ACCU-1-L-H e ACCU-1-H-H non vengono considerati dall'OB 254 e dall'OB 255. Essi sono perciò irrelevanti per la parametrizzazione degli OB.

I1 blocco dati da spostare non esiste (OB 19)

I1 blocco dati è già presente nella RAM per DB (OB 31) (realizzare la funzione solo una volta, preferibilmente in avviamento)

La capacità di memoria della RAM per DB non è sufficiente (OB 31)

In caso di errore la funzione non viene eseguita. I1 programma di sistema riconosce un errore di esecuzione e richiama I'OB 19 oppure I'OB 31. La successiva reazione all'errore dipende dalla programmazione dell'OB 19 o 31 (vedere paragrafo 5.6). Se I'OB 19 o 31 non è programmato, il processore si porta in STOP. Nell'ACCU 1 vengono messi degli identificatori di errore che definiscono in modo più dettagliato l'errore.

Esempio

blocco dati DB presente nella RAM per DB è il DB O. La seguente tabella dimostra l'occupazione della memoria che risulta dopo più richiami dellrOB 255 con i parametri riportati nella tabella.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 351: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O ampliato

In questo Questo capitolo riguarda la struttura ed il campo d'applicazione del blocco dati capitolo DX O. Viene spiegato il significato dei diversi parametri del DX O ed il principio

della sua generazione e della sua parametrizzazione tramite maschera (con esempi applicativi).

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

7.1

7.2

7.3

7.4

Argomento trattato

Applicazione

Struttura del DX O

Parametri per il DX O

Esempi di parametrizzazione

Pagina

7-2

7-3

7-6

7- 10

Page 352: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

7.1 Applicazione

Introduzione L'utente ha la possibilità di adattare alle proprie particolari esigenze alcune prestazioni del programma di sistema, modificando le predisposizioni standard (contrassegnate da P nelle tabelle dei parametri) dei parametri contenuti in DX O.

Le predisposizioni standard (P) del programma di sistema vengono automaticamente impostate ad ogni NUOVO AWIAMENTO. Quindi viene analizzato il DX O. Se il DX O non viene programmato continuano a valere le predisposizioni standard, altrimenti diventa attiva la parametrizzazione dell'utente.

Si può modificare il DX O programmando i valori come per gli altri blocchi dati tramite le istruzioni STEP 5 (vedere paragrafo 7.2) oppure - con il software di sistema S5-DOS dalla versione 3.0 - introducendo i valori come parametri tramite una speciale maschera sul PG.

Avvertenza I1 DX viene analizzato solo ad ogni NUOVO AWIAMENTO. Per tutti i parametri non inseriti nel DX O vengono adottate le preimpostazioni del programma di sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 353: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

7.2 Struttura del DX O

Introduzione I1 DX O è composto da 3 parti:

l'identificatore di inizio blocco per il DX O @W O, 1 e 2),

più gruppi di diversa lunghezza (secondo il numero dei parametri)

e

l'identificatore di fine blocco EEEE.

Identificatore di Caratteri ASCII: MASKXO in DW O, 1 e 2 inizio blocco

Gruppo Un gruppo nel DX O consiste da 1 a n parole dati. Esse comprendono:

l'identificatore del gruppo,

la lunghezza del gruppo

e

i parametri del gruppo.

Identificatore del L'identificatore stabilisce il significato dei parametri che seguono. Ogni gruppo gruppo è associato ad una ben determinata parte del programma di sistema o ad una ben

determinata funzione di sistema (per esempio: identificatore di gruppo "04" += elaborazione ciclica del programma).

Lunghezza del gruppo

Parametri

La lunghezza del gruppo stabilisce quante parole dati occupano i parametri del gruppo.

I parametri possibili sono descritti nel paragrafo 7.3. I valori vengono dati in formato esadecimale (KH).

Identificatore di L'identificatore di fine blocco stabilisce la fine del DX O tramite EEEEH fine blocco nell'ultima parola dati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 354: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Struttura

N. bit 15 8 7 O

Caratteri M A ASCII: S K

XO

Parametro

Parametro

Parametro

3

Gruppo 1

Identificatore gruppo 1

Parametro

Lunghezza gruppo 1

Identificatore gruppo 2 Lunghezza gruppo 2

Parametro

Parametro

Identificatore gruppo n

Parametro

Lunghezza gruppo n

Gruppo n

Identificatore di fine blocco

Figura 7-1 Struttura del DX O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 355: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Esempio per la definizione del DX O

Identificatore di inizio blocco DW O: KH = 4D41 DW 1: KH = 534B DW 2: KH = 5830

Identificatore/lunghezza del gruppo DW 3: KH = 0101 Parametro (occupa 1 DW) DW 4: KH =l001

Identificatore/lunghezza del gruppo DW 5: KH = 0402 Parametro (occupa 2 DW) DW 6: KH = 1000

DW 7: KH = 0400

Identificatore di fine blocco DW10 : KH = EEEE

Parametrizzando il DX O bisogna tener presente quanto segue:

La successione in cui vengono introdotti i singoli gruppi è indifferente.

I gruppi non necessari possono non essere introdotti.

Se un certo gruppo è presente più volte, vale l'ultimo introdotto.

La successione in cui vengono introdotti i singoli parametri è indifferente.

I parametri non necessari possono non essere introdotti.

Se un certo parametro è presente più volte, vale l'ultimo introdotto.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 356: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

7.3 Parametri per il DX O

Significato degli parametri

Tabella 7-1 Parametri del DX O e il loro significato

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Ident./lungh. gruppo

Parametri 1' /2"arola

Significato P = predisposizione in caso di un DX O non caricato o un gruppoiparametro mancante

AVVIAMENTO e RUN

02xx l) 1000 1001

2000 2001

3000 3001

4000 4001

6000

6001

BBOO yyyq

P RIAWIAMENTO AUTOM. dopo RITORNO DI TENSIONE NUOVO AVVIAMENTO AUTOM. dopo RiTORNO DI TENSIONE

P sincronizzazione dell'AWIAMENT0 in funzionamento multiprocessore nessuna sincronizzazione dell'AWIAMENT0 in funzionamento multiprocessore

P controllo degli erron di indirizzamento nessun controllo degli errori di indirizzamento

P RIAWIAMENTO NUOVO AWIAMENTO CON MEMORIA

P calcolo con numeri in virgola mobile con una mantissa di 16 bit (La CPU calcola sempre con 24 bit) calcolo con numeri in virgola mobile con una mantissa di 24 bit

numero dei temporizzatori da aggiornare predisposizione: yyyy = 256 temporizzatori, cioè

temporizzatore 0...255 valori permessi: da O a 256 temporizzatori

Elaborazione del programma ciclico

04xx 1000 yyyy

4000

4001

lunghezza del tempo di ciclo in millisecondi; predisposizione: yyyy = 150 ms, valon permessi: 1s yyyy s 32C8 (esadecimale)

da 1 ms a 13000 ms (decimale)

P aggiornamento dell'immagine di processo e dei merker di accoppiamento senza protezione con i semafori aggiornamento dell'immagine di processo e dei merker di accoppiamento con protezione con i semafori (a blocchi, vedere paragrafo 10.1.3)

Elaborazione su allarme: Marmi a tempo

06xx 3)

2000 2001

Selezione del modo di elaborazione 3,

P Segnali di allarmi di processo, attivazione sul livello Segnali di allarmi di processo, attivazione sul fronte

Trattamento degli errori

1Oxx l) 1000 1001

Elaborazione degli errori di tempo: P STOP del sistema, se al presentarsi di questo errore I'OB 33 non è programmato,

nessuno STOP del sistema, se al presentarsi di questo errore I'OB 33 non è programmato.

Page 357: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

l) xx = lunghezza del gruppo (numero delle parole dati occupate dai parametri).

Per l'aggiornamento dei temporizzatori vedere la spiegazione sulla prossima pagina.

3, Per parametri e significato vedere la tabella riportata a pagina 7-9.

Ident./lungh. gruppo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Parametri 1' /2"arola

Significato P = predisposizione in caso di un DX O non caricato o un gruppoiparametro mancante

Continuazione

1Oxx l)

EEEE

della tabella 7-1:

1200 1201

1400

1401

1800

1801

1A00

1AO1

1C00 1CO1

1E00

1E01

2000 2001

Elaborazione degli errori di regolazione: P STOP del sistema, se al presentarsi di questo errore I'OB 34 non è programmato,

nessuno STOP del sistema, se al presentarsi di questo errore I'OB 34 non è programmato.

Elaborazione degli errori di ciclo: P STOP del sistema, se al presentarsi di questo errore I'OB 26 non è programmato,

nessuno STOP del sistema, se al presentarsi di questo errore I'OB 26 non è programmato.

Elaborazione degli errori nel codice del comando: P STOP del sistema, se al presentarsi di questo errore I'OB 27/28/29 non è

programmato, nessuno STOP del sistema, se al presentarsi di questo errore I'OB 27/28/29 non è programmato.

Elaborazione degli errori di esecuzione: P STOP del sistema, se al presentarsi di questo errore I'OB 19/31/32 non è

programmato, nessuno STOP del sistema, se al presentarsi di questo errore I'OB 19/31/32 non è programmato.

Elaborazione degli errori di indirizzamento: P STOP del sistema, se al presentarsi di questo errore I'OB 25 non è programmato,

nessuno STOP del sistema, se al presentarsi di questo errore I'OB 25 non è programmato.

Elaborazione degli errori di ritardo della conferma: STOP del sistema, se al presentarsi di questo errore I'OB 23/24 non è programmato,

P nessuno STOP del sistema, se al presentarsi di questo errore I'OB 23/24 non è programmato.

Elaborazione degli errori di interfaccia: STOP del sistema, se al presentarsi di questo errore I'OB 35 non è programmato,

P nessuno STOP del sistema, se al presentarsi di questo errore I'OB 35 non è programmato.

Identificatore di fine gruppo

Page 358: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Avvertenza I1 software PG attuale (STEP 5/ST, vers. 6 opp. STEP 5ih4T, vers. 2) per la generazione del blocco DX O tramite maschera non permette di definire i parametn per la gestione dell'emre di interfaccia (identif. gruppo lOxx, parametri 2000 e 2001) e per la possibilità "Riavviamento o nuovo avviamento con memoria" (identif. gruppo 02xx, parametn 4000 e 4001).

Questi parametri possono essere impostati, per esempio, con la funzione PG "Emissione blocco" (non dimenticarsi nel qual caso di modificare la lunghezza del blocco). Un DX O così modificato non può poi essere letto tramite la funzione "Emissione maschera" (con la versione attuale del software PG).

Aggiornamento Di standard vengono aggiornati: dei temporiuatori temporizzatori da T O a T 255.

Se il DX O viene programmato con il numero "O", non viene aggiornato alcun temporizzatore anche se sono contenuti nel programma. Non viene emessa alcuna segnalazione di errore.

Avvertenza I1 numero dei temporizzatori può essere parametrizzato anche nel blocco dati DB 1 (vedere paragrafo 10.1.6). Si consiglia però di programmare questo parametro solo in DX O. Se questo parametro è impostato sia in DX 0, sia in DB 1, allora vale il valore specificato in DB l !

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 359: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Parametri per La seguente tabella fornisce i parametri necessari per l'elaborazione dei singoli l'elaborazione di allarmi e la programmazione del DX O. allarmi Dipendentemente dal parametro scelto sono attivi (vedere i simboli) certi (o tutti)

allarmi alla fine dei blocchi, ed altri (o tutti) allarmi alla fine dei comandi:

P = preimpostazione

O Interruzione al la fine di un blocco

Interruzione alla fine di un comando

para- metri1

(vecchi)

l)

(1 OOC)

1224 (1 00A)

1220

121C (1 008)

121 6

121 4

121 2

121 o

120E

120C

120A

1208

1206

1204 (1 006)

l) I1 software PG per la generazione del DX O imposta i parametri "vecchi". Se si vuole visualizzare sul PG un DX O generato tramite STEP 5 con nuovi parametri, si provoca una segnalazione di errore.

Avvertenza Nel caso sia attiva l'elaborazione degli allarmi ad ogni comando, anche i comandi "TNB" e "TNW" possono essere interrotti. Ciò è valido anche per alcuni blocchi organizzativi speciali, blocchi funzionali standard e blocchi funzionali per la regolazione.

Allar- me

dal'-

iogio

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

A l l a r m i d i s c h e d u l a z i o n e

5 s 2 s I s 500 2 0 0 100 50 2 0 i o ms ms ms ms ms ms

1 2 2 C P 0 0 0 0 0 0 0 0 0 0 0 0 0

~~~~~~~~~~~~~ 0 0 0 0 0 0 0 0 0 0 ~ m m

0 0 0 0 0 0 0 0 0 1 ~ m m

~~~~~~~~~~~~~ 0 0 0 0 0 0 0 0 m m m m m

o o o o o o o m m m m m m

0 0 0 0 0 0 m m m m m m m

0 0 0 0 0 m m m m

o o o o m m m m m m m m m

0 0 0 m m m m m m m m m m

o o i l # # # m m m m m m m m m m

o m m m m m m m m m m m m

m m m m m m m m m m m m m

Allar- medi

regola- Zio"

Allar- me di ritar-

Allar- me di pro-

cesso

Page 360: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

7.4 Esempi di parametrizzazione

Programmazione

Esempio A: In funzionamento multiprocessore si vogliono usare 3 CPU: CPU A, B e C. Le CPU A e B cooperano in modo abbastanza stretto, si scambiano dati frequentemente ed elaborano un progranuna di avviamento di notevoli dimensioni e complessità. La CPU C elabora in modo indipendente un progranuna breve e critico da un punto di vista del tempo. Solitamente in funzionamento multiprocessore, tutte le CPU iniziano insieme la loro elaborazione ciclica del progranuna, ci05 le CPU attendono che tutte abbiano terminato l'avviamento per passare all'elaborazione del progranuna ciclico. Siccome perb la CPU C elabora il proprio progranuna indipendentemente dalle altre CPU ed inoltre il suo progranuna di avviamento 5 molto breve, non 5 per essa necessario sincronizzare l'avviamento. Tramite la parametrizzazione del DX O 5 possibile far sì che la CPU C, alla fine del suo avviamento, inizi subito l'elaborazione del progranuna ciclico senza aspettare le CPU A e B. Parametrizzazione del DX O per la CPU C: DX O Identificatore di inizio

blocco "MASKXO" DW O: KH= 4D41 DW 1: KH= 534B DW 2: KH= 5830

Identificatore/lunghezza del lo gruppo DW 3: KH= 0201 Parametro 1 DW 4: KH= 2001 Identificatore di fine blocco DW 5: KH= EEEE

Caricando ora il DX O nella memoria di programma della CPU C, diventa attivo con il prossimo NUOVO AWIAMENTO. Siccome la CPU C ha un programma di avviamento molto breve e non deve aspettare le CPU A e B, su di essa si accenderà subito il LED verde RUN. I1 segnale BASP (disabilitazione delle uscite) sarà invece resettato solo quando anche le altre CPU avranno terminato il loro avviamento. Questo significa che la CPU C non pub accedere alle periferie digitali.

te parametrizzazione del DX O si vuole: are il controllo degli errori di indirizzamento, are l'aggiornamento dei temporizzatori, e il tempo di ciclo massimo a 4 secondi.

Identificatore di inizio blocco "MASKXO" DW O: KH = 4D41

DW 1: KH = 534B DW 2: KH = 5830

Identificatore/lunghezza del lo gruppo DW 3: KH = 0203 Parametro DW 4: KH = 3001 Parametro 1) DW 5: KH = BBOO

DW 6: KH = 0000 Identificatore/lunghezza del 20 gruppo DW 7: KH = 0402 Parametro 1) DW 8: KH = 1000

DW 9: KF = +4000 Identificatore di fine blocco DW10 : KH = EEEE

Questa parametrizzazione del DX O provoca il seguente effetto: - Le parti di immagine di processo a cui non sono associate delle unità peri-

feriche possono essere utilizzate come un "campo di merker" supplementare. - I1 tempo di esecuzione del progranuna di sistema si riduce in quanto non vengono aggiornati i temporizzatori.

- Un superamento del tempo di ciclo si ha solo quando i tempi di esecuzione del progranuna utente e di sistema insieme superano i 4 secondi.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 361: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Parametrizzazione tramite maschere sul PG

Per la parametrizzazione del DX O con il software PG di sistema S5-DOS (a partire dalla versione 3), sono a disposizione delle maschere. A seconda delle predisposizioni già esistenti dei parametri e dei parametri definiti dall'utente, il software PG genera automaticamente il blocco dati DX O. Per la completa parametrizzazione servono due maschere.

Le operazioni da compiere per selezionare e riempire le maschere vengono illustrate nella descrizione del PG.

Procedura di Le maschere sul PG per la definizione del DX O sono due: riempimento delle maschere La prima maschera (figura 7-2) contiene i gruppi di parametri per il DX O

AWIAMENTO DOPO UN RITORNO DI TENSIONE, SINCRONIZZAZIONE DELL'AWIAMENTO MULTIPROCESSORE, TRASFERIMENTO A BLOCCHI DEI MERKER DI ACCOPPIAMENTO, CONTROLLO DEGLI ERRORI DI INDIRIZZAMENTO, CONTROLLO DEL TEMPO DI CICLO, NUMERO DEI TEMPORIZZATORI, PRECISIONE DEI CALCOLI IN VIRGOLA MOBILE (non rilevante, la CPU calcola sempre con 24 bit).

/ PARAMETRIZZAZIONE DXO (AG 135": CPU 928, PROCESSORE R) DX O )

AVVIAMENTO DOPO UN RITORNO DI TENSIONE:

SYNCRONIZZ. DELL' W. MULTIPROCESSORE

TRASFER. A BLOCCHI DEI MERKER DI ACCOPP.

CONTROLLO DEGLI ERR. DI INDIRIZZAMENTO

CONTROLLO DEL TEMPO DI CICLO (X 10 MS):

NUMERO DEI TEMPORIZZATORI

PRECISIONE DEL CALCOLI IN VIRGOLA MOBILE: #MANTISSA DI 24 BIT SOLO PER LA CPU 928#

1 ( l = RIAVVIAMENTO 2 = NUOVO AVVIAMENTO)

15 (PROC. R : 1 - 400 CPU 928: 1 - 600)

256 (PROC, R: 0 - 128 CPU 928: O - 256)

MANTISSA 16 BIT

Figura 7-2 Prima maschera PG per la parametrizzazione del DX O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

F7 F1 F3 SCELTA

W F2 F4 F5 M CONTINUA

Page 362: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Se, nella prima maschera, si sono introdotti i parametri necessari o se non si trovano i parametri da modificare, si può passare alla seconda maschera (figura 7-3) che contiene i seguenti parametri:

ERRORE DI INDIRIZZAMENTO, ERRORE DI CICLO, ERRORE DI CONFERMA, ERRORE DI TEMPO, ERRORE DI CODICE, ERRORE DI REGOLAZIONE, ERRORE DI ESECUZIONE, ATTIVAZIONE ALLARMI DI PROCESSO, INTERROMPIBILITÀ DEL PROGRAMMA UTENTE

TRAMITE ALLARMI.

( PARAMETRIZZAZIONE DXO (AG 135U: CPU 928, PROCESSORE R) DX O 1 STOP DI SISTEMA CAUSATO DA EVENTO O OB DI ERRORE NON PRESENTE:

ERRORE DI INDIRIZZ. (OB 25) SI ERR. DI CICLO (OB 26) SI

ERRORE DI CONFERMWB 23, 24) N O ERR. DI TEMPO (OB 33) SI

ERR, DI CODICE (OB 27, 29, 30p1 ERR. DI REGOLAZ, (OB 34) SI

ERR. DI ESECUZIONE (OB 19, 31, 32F1

AìllVAZIONE ALLARMI DI PROCESSO LIVEUO - FRONTE

INTERROMPIBILITA DEL PROGRAMMA UTENTE TRAMITE ALLARMI: MODO l 1: TUTn GLI ALLARMI ALLA FINE DI UN BLOCCO 2: TUTn GLI ALLARMI ALLA FINE DI UN COMANDO 3: SOLO ALLARMI DI PROCESSO ALLA FINE DI UN COMANDO 4: SOLO ALLARMI DI PROCESSO E DI REGOLAZIONE ALLA FINE DI UN COMANDO X: (X = 10, .. , 17) ALLARME A TEMPO DA OB 10 AD OB X ED ALLARME DI REGOLA-

ZIONE PROCESSO ALLA FINE DI UN COMANDO #POSSIBILE SOLO PER LA CPU 928#

Figura 7-3 Seconda maschera PG per la parametnzzazione del DX O

I1 seguente schema illustra come completare le maschere ed i singoli campi, come memorizzare i parametri e come caricare il DX O generato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 363: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Blocco dati DX O amoliato

Schema di riempimento delle maschere per il DX O

W

ma maschera ci sono parametri da modificare?

sì Ripetere questo passo finché sono state apportate tutte le modifiche necessarie:

- Selezione del campo d'introduzione: posizionare il cursore prima del parametro. li campo F3 nella parte inferiore dello scherno evidenzia se è possibile selezionare un'alternativa ("SCELTA") o se si deve introdurre un valore ("INTRODUZIONE").

- SCELTA: premere ripetutamente il tasto F3 finché appare l'alternativa desiderata.

- "INTRODUZIONE": premere il tasto F3 ed il cursore si posiziona all'inizio del campo. il parametro può essere impostato con il valore desiderato.

Nella seconda maschera ci sono parametri da modificare?

Premere il tasto F6 ("ALTRI"): appare la seconda maschera.

Premere il tasto di conferma: il software PG rileva tutti i parametri delle due maschere

li DX O è memorizzato sul PG. Esso può essere trasferito nella CPU con il G oppure memorizzato in un modulo EPROM.

Segue un esempio applicativo per il riempimento delle maschere:

Esempio di riempimento delle maschere per il DX O

Si vuole parametrizzare il DX O in modo che il progranuna di sistema abbia i seguenti comportamenti, diversi da quelli standard:

- In funzionamento multiprocessore la CPU per la quale si programma il DX O, in avviamento non attende che le altre CPU abbiano terminato i loro avviamenti..

- I1 controllo del tempo di ciclo deve essere di 100 ms. - Le operazioni aritmetiche devono essere svolte con numeri in virgola mobile

con mantissa a 24 bit. - In caso di errori di ciclo, la CPU non deve andare in STOP se llOB 26 non 5 programmato. - Il prograrma utente pub essere interrotto ad ogni comando da ogni allarme.

Le maschere vanno compilate nel seguente modo:

maschera DX O:

- Per il parametro "SICRONIZZAZIONE DELL'AWIAMENTO MULTIPROCESSORE" selezionare NO con il tasto F3.

- Per il parametro "CONTROLLO DEL TEMPO DI CICLO" premere prima il tasto F3 e quindi le cifre 10 (= 100 ms).

- Per il parametro "PRECISIONE DEI CALCOLI IN VIRGOLA MOBILE" selezionare "mantissa a 24 bit" con il tasto F3.

- Premere il tasto F6 (ALTRI). Appare quindi la seconda maschera. Seconda maschera DX O:

- Per il parametro "ERRORE DI CICLO" selezionare NO con il tasto F3. - Per il parametro "INTERROMPIBILIT~A DEL PROGRAMMA UTENTE TRAMITE ALLARMI" introdurre la cifra "2" (= tutti gli allarmi ad ogni comando) nel campo "MODO".

- Confermare tutte le introduzioni con il tasto di conferma. I1 blocco DX O viene ora generato dal software PG.

Trasferire quindi il DX O alla memoria della CPU oppure ad un modulo di memorizzazione EPROM.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 364: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occupazione ed organizzazione della memoria

In questo capitolo

Sommario del capitolo

Questo capitolo contiene informazioni dettagliate circa i singoli settori di memoria della CPU 928B, versione 3UB21. Inoltre vi si trovano informazioni importanti accessibili per l'utente che sono memorizzate in alcune delle parole dati di sistema.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

8.1

8.2

8.2.1

8.2.2

8.3

8.3.1

8.3.2

8.3.3

8.3.4

8.3.5

Argomento trattato

Struttura della memoria

Suddivisione del campo di indirizzamento nella CPU 928B-3UB21

Suddivisione del campo di indirizzamento della RAM di sistema

Suddivisione del campo di indirizzamento periferico

Organizzazione della memoria utente nella CPU 928B-3UB21

Intestazione dei blocchi nella memoria utente

Lista di indirizzi dei blocchi in DB O

Settore BA/BB

Settore BS/BT

Occupazione dei bit delle parole dati di sistema

Pagina

8-2

8-3

8-4

8-5

8-7

8-8

8-9

8-12

8-13

8-16

Page 365: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.1 Struttura della memoria

Panoramica La memoria della CPU 928B-3UB21 si divide in più parti:

Tabella 8-1 Struttura della memoria

Gli indirizzi esatti di questi settori risultano evidenti dallo schema nel paragrafo successivo.

Settore deiia memoria

Memoria utente per OB, FB, FX, PB, SB, DB, DX

RAM per DB: per blocchi dati e registri a scorrimento

Merker : S

Settore interfaccia: BA, BB Settore di sistema: BS, BT Contatori: Z Temporizzatori: T

Merker : M

Immagine di processo (IP) degli ingressi e delle uscite: IPI, IPU

Campo delle periferie: suddiviso in:

periferia P periferia Q AS 3 AS 4 merker di accoppiamento unità di coordinamento (KOR) kachel (CP, IP, KOR 923C) periferie decentralizzate

Avvertenza Un accesso ad una cella di memoria interna ad un settore di operandi (per esempio merker) non dovrebbe mai avvenire con un indirizzamento assoluto, bensì relativo all'indirizzo base del settore desiderato. L'indirizzo base di tutti i settori di operandi è contenuto nel settore dei dati di sistema (settore BS, vedere di seguito).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Lunghezza

max. 32x2" parole

23x2" parole

1024 byte

256 parole ognuno 256 parole ognuno

256 parole 256 parole

256 byte

128 byte ognuno

256 byte 256 byte 256 byte 256 byte 256 byte 256 byte 2048 byte 768 byte

Largh.

16 bit

16 bit

8 bit

16 bit 16 bit 16 bit 16 bit

8 bit

8 bit

8 bit

Page 366: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.2 Suddivisione del campo di indirizzamento nella CPU 928B-3UB21

N. bit 15

0000 , , Memoria utente

max, 32 x t aro le

DB-RAM

23 x 2" parole

DB O (lista degli indirizzi di blocco)

E3FF

Merker E E F F 1 1 EFOO

E 7 F F Merker S

Periferia (dig,, anal.,

I O o o FFFF

EFFF

RAM interna alla CPU (vedere anche

figura 8-2)

E800

EDFF

Settori immagini di processo

Bus S5 (vedere anche

figura 8-3) l

Dati di interfaccia (settori BA e BB), dati di sistema (settori B S e BT),

contatori, temporizzatori

Figura 8-1 Suddivisione del campo di indinzzamento nella CPU 928B-3UB2l/panoramica

15 E E O O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 367: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.2.1 Suddivisione del campo di indirizzamento della RAM di sistema

N , bit 15 8 7 O

RAM per DB

Merker S

BA: settore interfaccia - - E900

E9FF EAOO

EAFF

1 5 E E O O 1

B B : ampliamento dei settore interfaccia

B S : settore dei dati di sistema

E B O O

E B F F ECO0

ECFF E DO0

EDFF

Merker

BT: ampliamento del settore dei dati di sistema

Contatori (256)

Temporizzatori (256)

Settore i P L Figura 8-2 Suddivisione del campo di indinzzamento della RAM di sistema

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 368: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.2.2 Suddivisione del campo di indirizzamento periferico

N. bit 7, O ,

/Oo0 l Periferia digitale (con IP), 1024 ingressi11 024 uscite

F07F 0 1 Periferia P F080

l Periferia digitale o analogica (senza IP), 1024 ingressi11 024 uscite

Ampliamento della periferia 1 2048 inaressii2048 uscite 1 periferia Q

l F1 FF F200

F2FF F300

-

Merker di accoppiamento (2048 bit) (su unità di coordinamento/CP)

32 semafori (su unità di coordinamento)

F3FF F400

FDOO FCFF C

t

FBFF FCOO

l Settore AS 4 l

Settore interfaccia per DB (cosiddetti kachel)

FEOO FDFF 0

t Periferia kachel

I

Settore AS 3

Periferia decentralizzata, ampliamento degli indirizzi

A

FEFF 1 . -. . FEFF FFOO

Figura 8-3 Suddivisione del campo di indinzzamento periferico (8 bit) sul bus S5

Occupato se si utilizzano unità kachel

FFFF

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Occupato

Page 369: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Suddivisione del campo di indiriuamento periferico/ programmazione

Con i comandi STEP 5 è possibile accedere alla periferia direttamente o tramite l'immagine di processo. Bisogna al riguardo fare attenzione che l'immagine di processo esiste solo per ingressi e uscite della periferia P con indirizzi dal byte O al byte 127.

Settore (indirizzo assoluto)

Periferia P con immagine di processo

IPI (immagine di processo

E FE7F

E IPU (immagine di 1 E FEFF processo delle uscite)

Periferia P

Periferia Q

Avvertenza Tramite le interfacce AS 304, AS 307 e AS 308 è possibile accedere con il programma ai settori di indirizzamento decentralizzati. Nel far ciò si ottengono due nuovi settori di indirizzamento equivalenti al settore di periferia Q. Al confronto del settore Q, un accesso a questi settori è possibile solo con un indirizzamento assoluto oppure con il blocco funzionale FB 196 dal pacchetto software "funzioni fondamentali" (vedere catalogo ST59).

Viene interrogato con Parametro

Elaborando il comando si interagisce solo con l'immagine di processo. Solo alla fine del ciclo questa viene aggiornata con i nuovi stati delle uscite, ed avviene l'emissione alle periferie.

LEB / T E B O ... 127 L E W / T E W O ... 126 LED / T E D O ... 124 U E / U N E / O E / O N E 0.0 ... 127.7 S E / R E / = E

LAB / T A B O ... 127 L A W / T A W O ... 126 LAD / T A D O ... 124 U A / U N A I O A I O N A O . 0 .,127.7 S A / R A / = A I Gli ingressi e le uscite vengono indirizzati direttamente a byte o a parole.

L P Y / T P Y O ... 127 L P W / T P W O ... 126

L P Y / T P Y 128 ... 255 L P W / T P W 128 ... 254

Gli ingressi e le uscite vengono indirizzati direttamente a byte o a parole.

L Q B / T Q B O ... 255 L Q W I T Q W O ... 254

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 370: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.3 Organizzazione della memoria utente nella CPU 928B-3UB21

Introduzione La memoria utente comprende - in dipendenza dal modulo di memoria inserito - gli indirizzi da 0000H a 7FFFH. Caricando i singoli blocchi del programma utente essi vengono inseriti in memoria in libera successione (indirizzi crescenti).

"Caricamento In dipendenza da quanto impostato nella parola dati di sistema BS 144, il alternativo" dei caricamento dei blocchi dati DBDX awiene in modo alternato: blocchi dati Secondo la preimpostazione i blocchi dati vengono dapprima caricati nella

memoria utente. Solo quando la memoria utente è piena questi vengono messi nella RAM per DB interna (dall'indirizzo 8000H a DD7FH). Impostando il bit O in BS 144 è possibile invertire quest'ordine di caricamento ("caricamento alternato").

Informazione memoria

Gestione dei blocchi

Con la funzione online "SPAUS" (configurazione memoria), si può conoscere l'indirizzo (esadecimale) della cella di memoria che contiene il comando di fine blocco dell'ultimo blocco presente nella memoria utente e la capacità di memoria della memoria utente.

Modificando un blocco, il "vecchio" blocco in memoria viene contrassegnato come non valido e viene inserito un nuovo blocco in memoria. Allo stesso modo, cancellando un blocco non si provoca la sua reale eliminazione dalla memoria, bensì solo la sua non validità.

"Buchi" generati dalla cancellazione di blocchi non possono essere riusati (vedere "COMPRESSIONE MEMORIA").

In funzionamento EPROM non è possibile la correzione o la cancellazione di blocchi.

Compressione La funzione "COMPRESSIONE MEMORIA" sul PG fornisce spazio nella della memoria memoria per nuovi blocchi: la funzione ottimizza l'occupazione della memoria

eliminando tutti i blocchi non validi in memoria e compattando gli altri tutti insieme. Questo compattamento viene realizzato separatamente per la memoria utente e la RAM per DB (vedere paragrafo 11.2).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 371: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.3.1 Intestazione dei blocchi nella memoria utente

Struttura Ogni blocco in memoria comincia con una intestazione di 5 parole:

lvarola: identificatore di inizio blocco: 7070H

2"arola: byte high = tipo di blocco

t 01 H Blocco dati DB

02H Blocco sequenziale SB

04H Blocco di programma PB

05H Blocco funzionale FX

08H Blocco funzionale FB

OCH Blocco dati DX

1 OH Blocco organizzativo OB

O O Blocco non valido, non inserito nella lista di indirizzi DB O.

O 1 Blocco in RAM valido, inserito nella lista di indirizzi DB O.

1 1 Blocco valido e protetto da sovrascrittura ("valido in EPROM")

Byte low = numero del blocco I1 numero del blocco (da O a 255) si trova nel byte low della seconda parola dell'intestazione ed è codificato come numero binario: da O a FFH.

3"arola: byte high: identificatore per il PG; byte low : parte del numero di biblioteca

4"arola: parte rimanente del numero di biblioteca

5"arola: lunghezza del blocco (in parole) compresa l'intestazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 372: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.3.2 Lista di indirizzi dei blocchi in DB O

Introduzione I1 blocco dati DB O contiene la lista degli indirizzi iniziali di tutti i blocchi che si trovano nella memoria utente o nella RAM del processore. Questa lista di indirizzi viene generata dal programma di sistema dopo un CANCELLAZIONE TOTALE e viene automaticamente aggiornata dopo ogni introduzione o modifica del blocco con il PG.

Indirizzi iniziali Per ogni tipo di blocco nel DB O c'è una lista di indirizzi riservata, lunga 256 delle liste di parole. I blocchi non caricati o cancellati hanno il valore "0" nella lista. indirizzi

Gli indirizzi iniziali delle singole liste di indirizzi di blocco risiedono nei dati di sistema da BS 32 a BS 38:

BS 32: indirizzo iniziale della lista di indirizzi per DX

BS 33: indirizzo iniziale della lista di indirizzi per EX

BS 34: indirizzo iniziale della lista di indirizzi per DB

BS 35: indirizzo iniziale della lista di indirizzi per SB

BS 36: indirizzo iniziale della lista di indirizzi per PB

BS 37: indirizzo iniziale della lista di indirizzi per FB

BS 38: indirizzo iniziale della lista di indirizzi per OB (lunga soltanto 48 parole)

Indirizzi iniziali Gli indirizzi iniziali si riferiscono sempre alla prima parola dati dopo dei blocchi l'intestazione blocco:

per blocchi dati si riferiscono alla parola dati DW O,

per blocchi di codice si riferiscono al primo comando STEP 5 (per FB al comando "SPA" prima del nome e della lista dei parametri).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 373: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Memorizzazione degli indirizzi di blocco nel DB O

Esempio per la determinazione dell'indirizzo di un blocco

n = indirizzo iniziale della lista di indirizzi per PB

Indirizzo PB 1 (= contenuto della parola BS 36)

l Indirizzo PB 2 l

n+178 Se come indirizzo è inserito il valore "O" , il blocco dati non è

n+179 caricato.

Figura 8-4 Indirizzi dei blocchi nel DB O

Indirizzo base della lista di indirizzi dei blocchi FB + numero del blocco FB = indirizzo della cella di memoria contenente l'indirizzo iniziale del blocco FB 40 Caricamento in ACCU 1 dell'indirizzo del blocco FB 40. (Se indirizzo iniziale = 0, il blocco non è presente)

Indirizzo base della lista di indirizzi dei blocchi FB Caricamento nel registro BR dell'indirizzo base Caricamento in ACCU 1 del contenuto della cella di memoria "indirizzo base + 40"

Manuale di programmazione CPU 928B-3UB21 C79000-G8572-C870-01

Page 374: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

a) con accesso indiretto alla memoria:

Caricamento dell'indirizzo base della lista di indirizzi per DB; calcolo dell'indirizzo dell'introduzione per il

DB 50 e caricamento dell'indirizzo iniziale in ACCU 1.

Per blocchi non presenti salto all'etichetta NIVO.

:SPB =NIVO Caricamento dell'indirizzo iniziale del DB 50 in

ACCU 1 ed ACCU 3. Sottrazione di 1 dall'indirizzo iniziale e caricamento

della lunghezza del blocco in ACCU 1.

NIVO : ....... Reazione se il blocco non è presente

DB O Memoria utente

Figura 8-5 Indirizzo iniziale del DB 50

Risu1tato:ACCU-l-L: lunghezza del DB 50

ACCU-2-L: indirizzo iniziale del DB 50

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 375: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

b) con il blocco oraanizzativo sveciale OB 181 "Testare blocchi dati !DB/DXiw

L'OB 181 (vedere paragrafo 6.16) contiene la stessa funzione descritta nell'esempio a). Inoltre verifica se il blocco dati è contenuto nella memoria utente (RAM o EPROM) o nella RAM per DB.

Blocco dati DB 50 :SPA OB 181 "Testare blocchi dati (DB/DX)" :SPB =NIVO Salto se non presente :SPM =PROM Salto se in modulo EPROM :SPZ =ANWE Salto se in modulo RAM :SPP =DBRA Salto se in RAM per DB :SPA =FEHL Salto ad elaborazione di errore

Blocco dati non presente

Blocco dati contenuto nella memoria utente / protetto da sovrascrittura / "funzionamento EPROM"

Blocco dati contenuto nella memoria utente / non protetto da sovrascrittura / "funzionamento RAM"

Blocco contenuto nella RAM per DB

Elaborazione errore

Risu1tato:ACCU-l-L: lunghezza del DB 50 ACCU-2-L: indirizzo iniziale del DB 50

8.3.3 Settore BAIBB

Panoramica I1 settore BA è lungo 256 parole ed è contenuto nella RAM di sistema della CPU. Esso occupa gli indirizzi da E800H a E8FFH.

I1 settore BB è lungo 256 parole ed è contenuto nella RAM di sistema della CPU. Esso occupa gli indirizzi da E900H a E9FFH.

L'intero settore BA (da BA O a BA 255) e l'intero settore BB (da BB O a BB 255) possono essere liberamente utilizzati dall'utente.

I1 settore BAIBB viene inizializzato solo tramite una CANCELLAZIONE TOTALE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 376: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.3.4 Settore BS/BT

Settore BS I1 settore BS contiene sia informazioni sulla programmazione del sistema che dati interni al sistema.

I1 settore BS è lungo 256 parole ed è contenuto nella RAM di sistema della CPU. Esso occupa gli indirizzi da EAOOH a EAFFH.

Settore BT

Pericolo Possono essere scritte solo le parole dati di sistema BS 1, da BS 60 a BS 63, BS 133, BS 140 e BS 144: - BS 60 a BS 63 sono a disposizione a proprio uso. - BS 1 e BS 133 hanno un significato preciso e influenzano

l'elaborazione del programma. Essi possono essere definiti solo con identificatori validi!

Tutti gli altri dati di sistema possono solo essere Una sovrascrittura di questi dati di sistema può avere ripercussioni sulla funzionalità del controllore e dei PG collegati: può causare gravi disturbi che potranno mettere in pericolo l'operatore e l'apparecchiatura.

Le informazioni dei singoli dati di sistema (circa la struttura interna del processore, la versione del software, l'identificatore della CPU ecc.) possono essere ricavate anche dalla funzione online "PARAMETRI DI SISTEMA" sul PG.

Di seguito viene inoltre riportata l'occupazione dei singoli bit dei dati di sistema. Essi possono essere analizzati con comandi STEP 5 o tramite PG (per le abbreviazioni vedere il paragrafo 5.3).

I1 settore BS viene cancellato solo tramite una CANCELLAZIONE TOTALE.

I1 settore BT è lungo 256 parole ed è contenuto nella RAM di sistema della CPU. Esso occupa gli indirizzi da EBOOH a EBFFH.

L'intero settore BT (da BT O a BT 255) può essere liberamente utilizzato dall'utente.

I1 settore BT viene cancellato solo tramite una CANCELLAZIONE TOTALE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 377: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Occupazione dei dati di sistema del settore BS

: riservato

Visualizzazione delle interruzioni di un avviamento

Figura 8-6 Occupazione del settore BS, prima parte

2 7

2 8

29

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

EAI B

EAI C

EA1 D

Lunghezza della lista di indirizzi per DX

Lunghezza del DB O (lista di indirizzi)

Identificatore posto-connettore Identificatore 2 della CPU (tipo)

Page 378: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

.?n I Lunghezza dei dati nella intestazione blocco I EAI E

- . I I

32 1 Indirizzo base della lista wer DX I EA20

- - - i

3 1 1 Identificatore 1 della CPU

1 55 1 Contatore wer 1 ora [fino a 3599 sec. HEXA) I EA37

Versione SW interfaccia PG I EAI F

33

34

35

36

37

38

Riservato per i blocchi di trasporto

' 60 1 1 EA3C Riservato per l'utente

: 63 1 EA3F

1 64 1 Riservato per il programma di sistema

1 EA40 : 79 :

I i EA4E

80 1 Identificatore di errore suwwlementare se il bit FE-5 è imwostato in BS.8 1 EA50

Indirizzo base della lista per FX

Indirizzo base della lista per DB Indirizzo base della lista per SB

Indirizzo base della lista per PB Indirizzo base della lista per FB

Indirizzo base della lista wer OB

. . 1 81 1 1 EA51 Riservato per il programma di sistema

, 127 , EA7F

EA2 1

EA22

EA23

EA24

EA25

EA26

1 130 1 Identificatore "reaolazione" 1 EA82 l l

1 3 1 1 Parola di visualizzazione "disattivazione comune degli allarmi" 1 EA83

1 132 1 Parola di visualizzazione "ritardo comune deali allarmi" 1 EA84

1 133 1 Identificatore "aaaiornamento dell'immaaine di ~ rocesso" 1 EA85

135 Parola di visualizzazione 'disattivazione di singoli allarmi di schedulazione' EA87

136 EA88

139 Protezione del software EA8 B

140 1 Parola di visualizzazione "scrittura e cancellazione di blocchi" 1 EA8C

137

1144 1 Caricamento alternativo di blocchi dati 1 EA90

Parola di visualizzazione "ritardo di singoli allarmi di schedulazione" I EA89

' 1 4 5 EA91

255 EAFF

138 Protezione da sovrascrittura per la memoria utente in funzionamento EPROM EA8A

Figura 8-7 Occupazione del settore BS, seconda parte

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 379: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

8.3.5 Occupazione dei bit delle parole dati di sistema

Parola di visualizzazione delle interruzioni (dato di sistema BS O ) :

Indirizzo EAOOH

Tabella 8-2 Occupazione BS O (parola di visualizzazione delle interruzioni)

La parola dati di sistema BS O corrisponde alle "CAUSE DI STOP" nel registro di interruzione (USTACK). Se, per esempio, si verifica un errore di esecuzione durante l'elaborazione del programma, viene impostato il bit n. 5. Se il livello di elaborazione programma LZF viene correttamente eseguito, il bit n. 5 viene resettato.

1

O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

WECK

DOPP

Page 380: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

BS 1 Parola di cancellazione della visualizzazione delle interruzioni UALW

Indirizzo: EAOOH

BS 1: interfaccia attiva, utilizzabile dall'utente.

Impostando il bit 9 o 10 di questa parola, si ottiene che il prossimo errore A D E o, rispettivamente, QVZ viene ignorato e quindi l'elaborazione del programma non viene influenzata. Al verificarsi di A D E o QVZ, il programma di sistema resetta automaticamente il relativo bit.

Tabella 8-3 Occupazione BS 1 (parola di cancellazione della visualizzazione delle interruzioni)

Ogni livello di elaborazione programma ha il suo UALW

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 381: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occupazione ed organizzazione della memoria

Esempio per UALW

inserito un certo indirizzo periferico ed in caso negativo, sempre tramite BS 1, si maschera l'errore di indirizzamento e si elabora un apposito programma.

:SPA FB 10 NOME : PERITEST Test, se un'unità è presente sotto l'indirizzo 128 PADR : PB 128 MASK : KM 00000100 00000000

:SPN =M001 Questa parte di programma viene elaborata se l'unità non è presente

:SPA FB 10 NOME : PERITEST Test, se nel DB 1 è inserita un'unità PADR : AB 4 sotto l'indirizzo 4 MASK : KM 00000010 00000000

: SPN =M002 Questa parte di programma viene elaborata se l'indirizzo non è inserito

NOME : PERITEST SIG : PADRE/A/D/B/T/Z : E BI/BY/W/D: SIG :MASKE/A/D/B/T/Z : D KM/KH/KY/KC/KF/KT/KZ/KG: KM

Caricare e memorizzare la parola UALW

:LW =MASK Impostare il bit QVZ o ADF

Riscrivere la parola UALW :L =PADR Accesso alla periferia o all'immagine

di processo

:LW =MASK Mascherare il bit QVZ o ADF

Ricaricare la vecchia parola UALW, per riconoscere un nuovo errore QVZ o ADF

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 382: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Parola globale di visualizzazione delle interruzioni UAMK

Indirizzo: EA02H

I 16 bit di questa parola corrispondono alle cause di errore visualizzate nel registro di interruzione come CAUSA DI STOP.

Al verificarsi di un certo errore, il relativo bit viene impostato.

Tabella 8-4 Occupazione BS 2 (parola globale di visualizzazione delle interruzioni)

La parola dati di sistema BS 2 (UAMK nell'USTACK) può essere solo letta.

1

O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

WECK

DOPP

Page 383: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occupazione ed organizzazione della memoria

Esempio per UAMK

Se la CPU si porta in STOP a causa di un errore di indirizzamento ADF, viene impostato il bit 9 della parola UAMK. Se durante l'elaborazione dell'errore ADF si verifica un errore di codice BCF, nella parola UAMK viene impostato anche il bit 7.

Contenuto della parola UAMK (binario): O0000010 10000000

Rappresentazione nel registro di interruzioni (HEXA):

Mentre nel registro di interruzione viene contrassegnata da una crocetta solo l'ultima causa di errore verificatasi, nella parola UAMK sono contenute tutte le cause di errore (profondità 5 nel registro d'interruzione: 5 bit impostati nella parola UAMK). Trasformando da codice esadecimale in codice binario il contenuto di questa parola, esso può essere facilmente analizzato. In questo modo è possibile accertare quali errori si sono verificati ed hanno provocato lo STOP.

I singoli bit vengono resettati appena il relativo livello di elaborazione programma è stato correttamente elaborato e, di conseguenza, abbandonato.

Visualizzazioni di errori a cui non è stato assegnato alcun livello di elaborazione programma (per esempio NAU, PEU, STUEB) vengono cancellate in fase di AWIAMENTO.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 384: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Identificatori di STOP e di AVVIAMENTO

Indirizzo: EAOSH

Gli identificatori corrispondono ai bit di comando nelle righe 1 e 2 dell' USTACK.

Tabella 8-5 Occupazione BS 5 (identificaton di STOP e di AWIAMENTO)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

1

O

NEU-ZUL

MWA-ZUL

Page 385: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Identificatori di CICLO e di modulo/MPL

Indirizzo: EAO6H

Gli identificatori corrispondono ai bit di comando nelle righe 3 e 4 dell' USTACK.

Tabella 8-6 Occupazione BS 6 (identificaton di CICLO e di modulo/MPL)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

1

O

DIG-EIN

DIG-AUS

Page 386: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Identificatori di RIPRISTINO e di errore di inizializzazione

Indirizzo: EA07H

Gli identificatori corrispondono ai bit di comando nelle righe 5 e 6 dell' USTACK.

Tabella 8-7 Occupazione BS 7 (identificaton di CANCELLAZIONE e di errore di inizializzazione)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

1

O

DB2-FE

KOR-FE

Page 387: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Identificatori di errori hardwarelsoftware

Indirizzo: EAOSH

Gli identificatori corrispondono ai bit di comando nelle righe 7 e 8 dell' USTACK.

Tabella 8-8 Occupazione BS 8 (identificaton di errori HWISW)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

1

O

REG-FE

DOPP-FE

Page 388: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

BS 29 Identificatori del posto connettoreldel tipo di controllore/CPU

Indirizzo: EAlDH

Tabella 8-9 Occupazione BS 29 (identificaton del posto connettore/del tipo di controllore/CPU)

BS 29 (high)

BS 29 (low)

Interfaccia attiva che viene utilizzata dai blocchi di trasporto, in funzionamento multiprocessore, dall'OB 218 e dai comandi SES e SEF.

Tipo di CPU: 1 0 1 1 CPU 928B

Tipo di controllore: O 1 1 1 S5-135U

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 389: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Indirizzo: EASOH (high e low)

Qui viene memorizzato un identificatore di errore supplementare se il bit n. 5 è impostato nel BS 8 dal sistema, cioè se il bit di comando FE-5 è contrassegnato nell' USTACK:

Indirizzo: EA82H (low)

Identificatore in BS 80

2460H

I1 dato di sistema BS 130 emette i seguenti stati del livello di elaborazione programma "Regolazione" :

Causa deii'errore

Segnale ready permanente sul bus S5

Bit n. O = 0: livello di elaborazione programma "regolazione" attivato.

Bit n. O = 1: livello di elaborazione programma "regolazione" mascherato.

Prima del richiamo di un blocco organizzativo di awiamento (OB 20,21 o 22), il programma di sistema analizza il blocco dati DB 2 (se presente). Secondo il risultato di questa analisi, il BS 130 viene impostato o resettato dal programma di sistema. Dopodiché viene richiamato I'OB di awiamento. Se il BS 130 (LOW) è resettato, l'elaborazione della regolazione viene realizzata nel funzionamento ciclico secondo quanto contenuto nella lista di regolazione DB 2.

Parola di visualizzazione "disattivazione comune degli allarmi": vedere OB 120 (paragrafo 6.5) Indirizzo: EA83H (low)

I1 dato di sistema BS 131 emette i seguenti stati del livello di elaborazione programma "Elaborazione allarmi":

Tabella 8-10 Occupazione BS 131 (disattivazione comune degli allarmi)

Bit = "1" significa che l'allarme è disattivato (o gli allarmi sono disattivati)

N. bit

7

6

5

4

3

2

1

O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte low: disattivazione comune degli allarmi

o O

o o Allarme di ritardo

Allarme di processo

Allarme dall'orologio

Allarmi a tempo con base di tempo fissa

Page 390: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

BS 132 Parola di visualizzazione "ritardo comune degli allarmi": vedere OB 122 (paragrafo 6.7) Indirizzo: EA84H (low)

I1 dato di sistema BS 132 emette i seguenti stati del livello di elaborazione programma "Elaborazione allarmi".

Tabella 8-11 Occupazione BS 132 (ritardo comune degli allarmi)

Bit = 1 significa che l'allarme è ritardato (o gli allarmi sono ritardati)

N. bit

7

6

5

4

3

2

1

O

Aggiornamento dell'immagine di processo

Indirizzo: EA85H (low)

Byte low: ritardo comune degli allarmi

o O

o o Allarme di ritardo

Allarme di processo

Allarme dall'orologio

Allarmi di schedulazione con base di tempo fissa

Tabella 8-12 Occupazione BS 133 (aggiornamento dell'immagine)

Bit = 1 significa che ogni bit, se impostato, disattiva l'aggiornamento dell'immagine di processo relativa una sola volta, dopo di che viene resettato a " O " dal programma di sistema.

N. bit

7

6

5

4

3

2

1

O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte low: aggiornamento dell'imrnagine di processo

non occupati

KM-AUS

KM-EIN

DIGH-EIN

DIG-AUS

Page 391: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Parola di visualizzazione "disattivazione di singoli allarmi di schedulazione": vedere OB 121 (paragrafo 6.6) Indirizzi: EA87H

I1 dato di sistema BS 135 emette i seguenti stati del livello di elaborazione programma "Elaborazione allarmi di schedulazione".

Tabella 8-13 Occupazione BS 135 (disattivazione di singoli allarmi di schedulazione)

Bit = "1" significa che questo allarme di schedulazione è disattivato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 392: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Parola di visualizzazione "ritardo di singoli allarmi di schedulazione" : vedere OB 123 (paragrafo 6.8). Indirizzo: EA89H

I1 dato di sistema BS 137 emette i seguenti stati del livello di elaborazione programma "Elaborazione allarmi di schedulazione".

Tabella 8-14 Occupazione BS 137 (ritardo di singoli allarmi di schedulazione)

Bit = " 1" significa che questo allarme di schedulazione è ritardato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 393: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Protezione da scrittura per la memoria utente nel funzionamento EPROM

Indirizzo EASAH

La memoria utente è protetta in scrittura dopo la copiatura dei blocchi da una memory card (funzionamento EPROM).

Cancellando o impostando l'identificatore della protezione in scrittura bit O in BS 138 mediante il PG e effettuando un NUOVO AWIAMENTO, la protezione può essere volutamente disinsenta o reinsenta (i bit n. 1 - 15 del BS 138 sono irrilevanti).

Come procedere per l'inserimento/disinserimento dell'identificatore della protezione in scrittura

1. Fare visualizzare sul PG il contenuto dell'indirizzo EA8AH.

2. Impostare o cancellare il bit O di BS 138 sovrascrivendo il contenuto dell'indirizzo EA8AH con la stringa di bit 000xH (x=l per "Impostazione", x = O per "Cancellazione" dell'identificatore della protezione in scrittura).

3. Eseguire un NUOVO AWIAMENTO. Dopo l'elaborazione dell'OB 20, il bit O viene analizzato nella parola dati di sistema BS 138 e viene attivato o disattivato a seconda della protezione in scrittura.

BS 138 può essere impostato non solo con il PG (1) ma anche con I'OB 20.

Lo stato dell'identificatore della protezione in scrittura rimane invariato fino alla prossima CANCELLAZIONE TOTALE della CPU.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 394: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Password

Impostazione della passwordl attivazione della protezione del software

Cancellazione della passwordl disattivazione della protezione del software

Come impostare o cancellare la password

Protezione del software

I1 dato di sistema BS 139 comanda la funzione di sistema "Protezione del software". Con questa funzione è possibile impedire, mediante password, la lettura, sovrascrittura e cancellazione di blocchi da parte del dispositivo di programmazione (p.e. da parte di personale non autorizzato).

La funzione "Protezione del software" è combinata ad una password che viene comunicata al programma del sistema tramite BS 139.

Con l'impostazione di una password nel BS 139 viene attivata automaticamente la protezione del software.

La password può essere impostata (di nuovo) solo se è stata prima cancellata.

Con la cancellazione della password viene disattivata automaticamente la protezione del software.

Nel cancellare una password ciò deve essere comunicato al programma del sistema mediante BS 139.

Max. 5 tentativi di cancellazione:

Introduzioni errate della password per la cancellazione della password vengono respinte e contate dal programma del sistema. Dopo max. 5 tentativi falliti il programma del sistema interrompe l'elaborazione della password. Dopo di che la password può essere nuovamente cancellata solo dopo un NUOVO AWIAMENTO.

I1 "contatore di errori" viene cancellato nuovamente dopo che è stata cancellata la password ed in caso di NUOVO AWIAMENTO.

La password viene impostata/cancellata (e viene attivataldisattivata la protezione del software ) scrivendo il dato di sistema BS 139 con una determinata stringa di bit (vedere "Assegnazione nella scrittura").

il programma STEP 5

oppure

un job del PG (uscita indirizzo)

Avvertenza La CPU viene fornita con password cancellata e protezione del software disinsenta. Lo stesso avviene anche dopo la CANCELLAZIONE TOTALE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 395: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occupazione ed organizzazione della memoria

Come attivare o L'impostazione di una password è possibile in qualsiasi momento. Dopo aver disattivare la impostato la password la protezione del software viene tuttavia attivata solo in protezione del determinati momenti: software

nello stato di funzionamento STOP: normalmente sul punto di controllo del sistema "Stop",

* nello stato di funzionamento AWIAMENTO: una volta dopo il richiamo degli OB di avviamento (OB 20, OB 21, OB 22),

nello stato di funzionamento RUN: ciclicamente prima del richiamo dell'OB 1.

Occupazione del Per richiamare la funzione di protezione del software, scrivere il dato di sistema dato di sistema BS 139 con una stringa di bit a seconda della funzione da eseguire. Dalla tabella durante la seguente desumere come debba essere realizzata la stringa di bit. scrittura

Indirizzo: EASBH

Tabella 8-15 Occupazione BS 139 (protezione del software) durante la scrittura

N. bit 8 - 13 di una password a 14 bit

N. bit O - 7 di una password a 14 bit

o

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 396: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occupazione ed organizzazione della memoria

Lettura del dato Leggendo il dato di sistema BS 139 è possibile constatare se è stato eseguito un di sistema BS 139 "job" mediante la scrittura del dato di sistema. I1 programma del sistema

memorizza lì una segnalazione di risposta.

Occupazione del dato di sistema durante la lettura:

Dopo il richiamo della funzione di protezione del software è possibile ricevere informazioni sul successo del job analizzando la segnalazione di risposta.

Indirizzo: EASBH

Tabella 8-16 Occupazione BS 139 (protezione del software) durante la lettura

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Contatore binario

O 1 = overflow del contatore tentativi

Page 397: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Segnalazioni di risposta valide

Momento La protezione del software dovrebbe essere attivata mediante il PG subito dopo dell'attivazione la cancellazione totale. I1 momento prima possibile per un'attivazione da parte della protezione del programma utente è I'OB 20. del software

Visualizzazione

0000H

4xOlH

4xO2H

4xO4H

4x08H

4xlOH

Reazioni in caso Se è stata attivata la protezione del software, il programma del sistema reagisce di violazione alle violazioni della protezione da parte di job del PG. Dalla tabella seguente è della protezione possibile desumere la reazione ai job del PG diversi. del software

Spiegazione

Nessun errore

I1 contatore dei tentativi di cancellazione è in overflow. Per resettare il contatore è necessario un NUOVO AWIAMENTO.

Password non ammessa (000H oppure 3FFFH)

Con protezione del software attiva si è cercato di impostare una nuova password (x=numero dei tentativi di cancellazione).

Si è cercato di cancellare la password esistente usando una password errata (si è tentato di disattivare la protezione del software). il contatore dei tentativi di cancellazione è stato incrementato. Lo stato del contatore "x" viene trasmesso con la segnalazione di risposta (numero binario nel bit n. 8 fino al bit n. 10).

Si è tentato di cancellare una password inesistente.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Funzione del PG

Cancellazione del blocco

Lettura del blocco

Sovrascrittura del blocco (il blocco non esiste ancora)

Sovrascrittura del blocco (il blocco esiste già)

Visualizzazione sul PG

Messaggio emesso: Tipo e numero di blocco non ammessi"

Uscita di un blocco dummy: FBPX:

numero FB NOME :DUMMY

:BE

DBPX: DWO 6500 OP/PB/SB:

:BE

il blocco viene registrato

Messaggio emesso:"Blocco esistente", dopo conferma con tasto di Invio viene emesso il messaggio "Tipo e numero di blocco errati".

Page 398: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Esempi di scrittura e lettura del BS 139

(L'attivazione della protezione del software da parte del programma dovrebbe essere opportunamente eseguita in uno degli OB di avviamento - OB 20, OB 21,

:L KH COAF KH = stringa di bit "Impostazione della password" (password = OOAFH

:T BS139

Con le operazioni STEP 5 seguenti nellrOB 1 è possibile reagire ad un errore durante l'impostazione della password analizzando la segnalazione di

Tenere presente che la segnalazione di risposta può essere analizzata solo dopo determinate azioni da parte del programma del sistema.

:L BS 139 :L K B O

:SPB yyy Richiamare il blocco funzionale per le elaborazioni di errori NOME :ERRORE PW

INDIRIZZO:

Stato iniziale: la CPU si trova nello stato di funzionamento RUN o STOP.

Eseguire le operazioni seguenti :

1. Fare visualizzare il contenuto dell'indirizzo EA8BH.

2. Cancellare la vecchia password sovrascrivendo il contenuto con il numero esadecimale 80AFH ("OOAFH" = vecchia password).

3.Attendere almeno la durata del tempo ciclo dellrOB1.

4. Fare visualizzare di nuovo il contenuto dell'indirizzo EA8BH.

5. Introdurre la nuova password "1234HW sovrascrivendo il contenuto con il numero esadecimale D234H.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 399: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

Parola di visualizzazione "scrittura e lettura di blocchi"

Indirizzo: EASCH

I1 dato di sistema BS 140 indica se dall'ultima CANCELLAZIONE TOTALE della CPU o dall'ultima cancellazione del dato di sistema BS 140 sono stati sovrascritti, ricaricati o cancellati dei blocchi. Per ogni blocco vengono aggiunti i bit per modifica e tipo di blocco. Prima di un nuovo controllo, il dato di sistema BS 140 deve essere cancellato. I1 BS 140 viene cancellato anche in fase di una CANCELLAZIONE TOTALE.

Tabella 8-17 Occupazione BS 140 (identificaton letturalscrittura)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 400: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Occu~azione ed oraanizzazione della memoria

"Caricamento alternativo di blocchi dati nella RAM per DB"

Indirizzo EA90H

Di standard, nella CPU 928B tutti i blocchi vengono dapprima caricati dal PG nella memoria utente. Solo quando la memoria utente è piena, i blocchi dati (DBJDX) e soltanto questi vengono messi nella RAM per DB.

Tramite il bit n. O della parola dati di sistema BS 144 è possibile influenzare l'ordine durante il caricamento dei blocchi dati:

Bit O = 0: Preimpostazione "comportamento standard": I blocchi dati vengono dapprima caricati nel modulo utente. Solo quando la memoria utente è piena questi vengono caricati nella RAM per DB.

Bit O = 1: I blocchi dati vengono dapprima caricati nella RAM per DB. Solo quando la RAM per DB è piena questi vengono caricati nella memoria utente.

Gli altri bit di BS 144 non sono occupati.

Avvertenza Blocchi in codice, indipendentemente dall'impostazione in BS 144, vengono solo caricati nella memoria utente.

L'impostazione in BS 144 non ha influsso sulle operazioni e sui blocchi organizzativi speciali per la generazione ed il ricaricamento di blocchi. Allo stesso modo, l'impostazione non ha alcun influsso sulla ricopiatura di blocchi dalla memory card.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 401: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

In questo capitolo

Questo capitolo descrive come accedere con indirizzamento assoluto ai dati contenuti in certi settori della memoria servendosi dei comandi STEP 5 e di speciali registri STEP 5.

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

9.1

9.2

9.2.1

9.2.2

9.3

9.3.1

9.4

9.4.1

9.4.2

9.4.3

9.4.4

Argomento trattato

Introduzione

Accesso alla memoria tramite indirizzo in ACCU 1

LIRITIR: Caricamento/trasferimento indiretto dei registri a 16 bit

Esempi per l'applicazione dei registri

Trasferimento di settori di memoria

Esempio per il trasferimento di un settore di memoria

Operazioni con il registro di indirizzo base BR

Operazioni di trasferimento tra registri

Accesso alla memoria locale

Accesso alla memoria globale

Accesso alla memoria a kachel

Pagina

9-2

9-6

9-7

9-14

9-16

9-19

9-24

9-25

9-27

9-28

9-31

Page 402: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.1 Introduzione

Presentazione I1 linguaggio di programmazione STEP 5 comprende operazioni di sistema con le quali sono possibili accessi a tutta la memoria. Queste operazioni appartengono alle "operazioni di sistema".

Pericolo Un uso non corretto di questi comandi può sovrascrivere blocchi STEP 5 e dati di sistema. Questo può avere degli effetti non desiderati sul funzionamento. Le operazioni di sistema che lavorano con indirizzi assoluti devono pertanto essere utilizzate solo da utenti con ottime conoscenze del sistema.

Memoria locale Con memoria locale viene identificato un settore di memoria presente su ogni CPU (memoria utente, RAM per DB, settori BA, BB, BS, BT, contatori, temporizzatori, merker, immagini di processo).

Memoria globale La memoria globale è unica per tutte le CPU e viene indirizzata tramite il bus S5.

Organizzazione I settori della memoria sono organizzati a byte ed a parola. della memoria

Organizzazione a byte: ogni indirizzo indirizza 1 byte.

Organizzazione a parola: ogni indirizzo indirizza 1 parola a 16 bit (= 2 byte).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 403: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

in terna, loca le , presente p iù vo l te (secondo i l numero de l le CPU inseri te)

es terna, g loba le , presente una vo l ta , v i a bus S5 (per ogn i

0000H

EDFFH EEOOH

EFFFH

Regis t ro d i ind i r izz i de i kachel (Registro Select)

Figura 9-1 Memoria globale e locale

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 404: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Accessi alla I seguenti comandi rendono possibile l'accesso ai settori di memoria locale o memoria globale tramite indirizzamento assoluto (vedere anche figura 9-2).

Accessi al È possibile l'accesso al settore locale e al settore globale: settore locale e globale a settori locali (indirizzi da 0000H ad EFFFH) ed a parti organizzate a byte

del settore globale (indirizzi da FOOOH a F3FFH, da FCOOH a FFFFH) con le operazioni:

LIR, TIR, TNB, TNW,

alle parti del settore locale organizzate a parole (indirizzi da 0000H ad E3FFH e da E800H a EDFFH) con le operazioni:

LRW, TRW, LRD, TRD.

Accessi solo al È possibile l'accesso alle seguenti parti del settore globale: settore globale

alle parti del settore globale organizzate a byte (indirizzi da 0000H ad EFFFH) con le operazioni:

LB GB, LB GW, LB GD, TI3 GB, TB GW, TB GD, TSG,

alle parti del settore globale organizzate a parole (indirizzi da 0000H ad EFFFH) con le operazioni:

LW GW, LW GD, TW GW, TW GD, TSG.

Accessi al È possibile l'accesso alle seguenti parti del settore dei kachel: settore dei kachel

alle parti del settore globale organizzate a byte (indirizzi da F400H a FBFFH = settore dei kachel) con le operazioni:

LB CB, LB CW, LB CD, TB CB, TB CW, TB CD, TSC

alle parti del settore globale organizzate a parole (indirizzi da F400H a FBFFH = settore dei kachel) con le operazioni:

LW CW, LW CD, TW CW, TW CD, TSC

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 405: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

0 accesso non possibi le D accesso possibi le

a) LIR, TIR, TNB, TNW

de-

C) LB GB, LB GW, LB GD TB GB, TB GW, TB GD, (TSG)

u

e) LB CB, LB CW, LB CD TB CB, TB CW, TB CD, (TSC)

b) LRW, TRW, LRD, TRD

d) LW GW, LW GD TW GW, TW GD, (TSG)

f) LW CW, LW CD, TW CW, TW CD, (TSC)

Figura 9-2 Accesso ai settori di memoria locale o globale tramite indirizzamento assoluto (vedere anche figura 9-1)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 406: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.2 Accesso alla memoria tramite indirizzo in ACCU 1

Applicazione I registri servono alla CPU per l'elaborazione del programma STEP 5. Ogni registro è composto da 16 bit. Con le funzioni di sistema LIR (caricamento indiretto del registro) e TIR (trasferimento indiretto del registro) è possibile lavorare con il contenuto dei registri.

Operazioni

Tabella 9-1 Operazioni di accesso indiretto alla memoria tramite registri

La cella di memona si trova o nel settore locale (0000H ... EFFFH) o nella parte organizzata a byte del settore globale (EOOOH ... F3FFH, FCOOH ... FFFFH).

Operazione

LIR

TIR

Nelle pagine seguenti sono riportati i registri che si possono utilizzare con le operazioni LIR e TIR.

Vengono quindi dati degli esempi che spiegano l'utilizzo di queste operazioni.

Operando

Registro n. O ... 15

Registro n. O ... 15

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Funzione

Caricamento del registro indicato con il contenuto della cella di memoria il cui indirizzo si trova in ACCU-1.

Trasferimento del contenuto del registro indicato nella cella di memona il cui indirizzo si trova in ACCU-1-L.

Page 407: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.2.1 LIR/TIR: Caricamento/trasferimento indiretto dei registri a 16 bit

La seguente tabella riporta i numeri dei registri che si possono utilizzare nella CPU 928B con le operazioni LIR e TIR e loro occupazione.

Tabella 9-2 Registri a 16 bit per LIR/TIR

l) Caricando il contenuto della cella di memoria indirizzata tramite ACCU-1-L nel registro "l", l'indirizzo depositato in ACCU-1-L viene sovrascritto.

I registri 4, 5, 7, 13 e 14 non sono disponibili sulla CPU 928B. Comandi LIR e TIR con tali numeri di registro vengono trattati come istruzioni nulle (NOP).

LIR e TIR nel I comandi LIR e TIR non sono adatti all'accesso al settore dei kachel settore dei kachel (F400H ... FBFFH) nel controllore multiprocessore S5-135U. Al riguardo sono da

utilizzare i comandi illustrati nel paragrafo 9.4.4 ("accesso alla memoria a kachel") o i blocchi funzionali speciali descritti nel paragrafo 6.21 ("accesso ai kachel").

LIR/TIR nei Accedendo con LIR e TIR a settori di memoria con una larghezza di 8 bit (da settori di E400H ad E7FFH e per indirizzi z EEOOH), bisogna fare attenzione che memoria ad 8 bit

con il comando TIR viene trasferito solo il byte low del registro (il byte high va perso),

con il comando LIR il byte high del registro viene impostato a FFH.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 408: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Le figure 9-3 e 9-4 illustrano la differenza degli accessi con LIRITIR ai settori di memoria organizzati a byte ed a parole:

ACCU 1 L I R n

15 O Cel la indir izzata

Figura 9-3 LIR e TIR per setton di memoria a 16 bit (organizzati a parole)

C,-\

15 O Cel la indir izzata '

ACCU 1

15 O

Registro n

T--.-

15 O Cel la indir izzata C

ACCU 1

Figura 9-4 LIR e TIR per setton di memoria a 8 bit (organizzati a byte)

15 O

Registro n .

15 O

Registro n

LIR n

15 O

ACCU 1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

% p-

15 O

Registro n

TIR n

Page 409: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Registri da O a 3 Gli accumulatori vengono utilizzati dalla CPU come memoria temporanea e d a 9 a 1 2 : nell'elaborazione dei programmi. Con i comandi TIR e LIR è possibile trasferire accumulatori il contenuto dell'accumulatore nella cella di memoria indirizzata in modo 1 , 2 , 3 e 4 assoluto, o rispettivamente caricare nell'accumulatore il contenuto della cella di

memoria indirizzata in modo assoluto. L'indirizzo assoluto della cella di memoria desiderato si trova sempre in ACCU-1-L.

Esempi

:L KHA000 Caricare in ACCU 1 lrindirizzoAOOO dellacella dimemoria Caricare nel registro 1 (cioè ACCU-1-L il contenuto della cella di memoria indirizzata da ACCU 1

:T MW 100 Trasferire in MW 100 il contenuto dell'indirizzo A000

:L MW 200 Caricare MW 200 in ACCU 1 :L KH A000 Caricare l'indirizzo A000 in ACCU 1

(MW 200 va in ACCU 2) Trasferire il contenuto del registro 3 (cioè ACCU-2-L) nella cella di memoria indirizzata da ACCU 1

Registro 6: DBA Attivando un blocco dati con i comandi A DB ed AX DX, nel registro 6 viene (indirizzo iniziale caricato l'indirizzo di DW O del blocco dati attivato (questo indirizzo è contenuto del blocco dati) nella lista di indirizzi DB O). I1 registro DBA viene resettato prima di ogni

richiamo dell'OB l o FB O.

I1 registro DBA rimane invariato quando

l'elaborazione del programma continua in un altro blocco a causa di un'istruzione di salto (SPAJSPB),

oppure

viene annidato un altro livello di elaborazione programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 410: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Esso viene invece modificato quando

viene attivato un altro blocco dati

oppure

avviene un salto di ritorno al blocco sovraordinato, se nel blocco richiamato è stato attivato un nuovo blocco dati (vedere anche paragrafo 2.4.2).

Avvertenza Nel registro d'intemzione l'indirizzo contenuto nel registro DBA può essere letto sotto "IND-DB".

Normalmente gli accessi alle parole dati vengono realizzati tramite i comandi STEP 5 L/T DW, L/T DR, L/T DL, L/T DD, U/O/UN/ON/=/S/R Dx.y. Questi comandi permettono però di operare fino alla parola dati DW 255. Grazie al registro DBA è invece possibile lavorare anche con parole dati oltre 255. Questo è possibile anche tramite la funzione speciale OB 180 (vedere il paragrafo 6.15).

Esempi

Intestazione del blocco

(5 parole)

KH = 0000

KH = 0001

Indirizzi DX 17

1516H

151 7H

1518H

1519H

151AH

DBA- 151BH DW O

DW 1

151 DH DW 2

Figura 9-5 Utilizzo del registro DBA

Richiamando il DX 17, viene memorizzato nel registro DBA l'indirizzo della cella di memoria in cui è contenuta la parola DW 0, nell'esempio: DBA = 151BH.

Avvertenza: Nel registro di interruzione USTACK l'indirizzo contenuto nel registro DBA può essere letto sotto "IND-DB".

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 411: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

MW 100 modificando il registro 6.

NOME : LIR/TIR6

:L BS 34 Sommando 100 all'indirizzo iniziale del DB di :ADD KF+100 indirizzamento si determina la registrazione del DB 100

nella lista di indirizzamento Caricamento in ACCU 1 dell'indirizzo iniziale

di DB 100 (cioè DW O) :ADD KF+200 Trasferimento in BS 62 dell'indirizzo di

DW 200 in DB 100 Caricamento indirizzo base

:ADD KF+62 Caricamento in ACCU 1 dell'indirizzo di BS 62 Caricamento del contenuto di BS 62 nel

registro DBA, cioè l'indirizzo iniziale del DB è su DW 200

:LDW 100 Caricamento della DW 300 (100 + 200) Trasferimento della DW 300 in MW 100

NOME :OB18O

:A DB 100 Caricare i registri DBA e DBL con i valori del :L KF 200 DB 100, quindi tramite 1'OB 180 aumentare il :SPA OB 180 DBA di 200 e diminuire il DBL di 200

:SPB =FEHL Situazione di errore, quando il DB 100 contiene meno di 200 parole dati

:L DW 100 Caricare DW 300 e :T MW 100 trasferirla in MW 100

Programma per la gestione dell'errore

Avvertenza Impostando il registro DBA come illustrato esempio 2, il registro DBL non viene variato. Con ciò non è più garantito il controllo sugli errori di trasferimento! Utilizzando il blocco organizzativo speciale OB 180 "Accesso a blocchi dati variabili" è possibile traslare il registro DBA di un certo numero di parole dati, ma siccome I'OB 180 modifica contemporaneamente anche il registro DBL, gli errori di trasferimento continuano ad essere controllati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 412: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Registro 8: DBL (lunghezza del blocco dati)

Ad ogni richiamo di un blocco dati, assieme al registro DBA viene caricato anche il registro DBL. Quest'ultimo contiene la lunghezza (in parole) del blocco dati attivato, senza intestazione. I1 registro DBL viene resettato prima di ogni richiamo dell'OB l o FB O.

I1 registro DBL rimane invariato quando

l'elaborazione del programma continua in un altro blocco a causa di un'istruzione di salto (SPAJSPB)

oppure

viene annidato un altro livello di elaborazione programma.

Esso viene invece modificato quando

viene attivato un altro blocco dati

oppure

avviene un salto di ritorno al blocco sovraordinato, se nel blocco richiamato è stato attivato un nuovo blocco dati (vedere anche paragrafo 2.4.2).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 413: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Esempio

I n tes taz ione d e l b locco

(5 paro le)

a a a a

bbbb

C C C C

dddd

e e e e

ffff

9999

hhhh

DX17 Ind i r i zz i

1 5 1 6 H

1 5 1 7 H

1 5 1 8 H

1 5 1 9 H

1 5 1 A H

DBA- 1 5 1 B H

1 5 1 C H

1 5 1 D H

1 5 1 E H

1 5 1 F H

1 5 2 0 H

1 5 2 1 H

1 5 2 2 H

Figura 9-6 Utilizzo del registro DBL

All'atto del richiamo del DX 17, nel registro DBL viene introdotto il numero delle parole dati presenti, nell'esempio: DBL = 8 (da DW O a DW 7).

Avvertenza: Nel registro di interruzione, il numero inserito nel registro

Registro 15: IND Durante l'elaborazione del programma STEP 5 nel registro 15 viene inserito (contatore l'indirizzo assoluto del comando inserito nella memoria di programma che sarà indirizzi) elaborato come prossima istruzione.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 414: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.2.2 Esempi per l'applicazione dei registri

una costante.

I1 programma sotto riportato imposta tutte le parole dati del DB 50 con la costante KH = A5A5. Modificando i comandi STEP 5 scritti in neretto, può essere utilizzato per scrivere altri blocchi dati (DB o DX) con valori a piacere. Blocchi dati non disponibili o vuoti vengono riconosciuti e provocano il salto all'etichetta NIVO. L'indirizzo iniziale (DBA) e la lunghezza (DBL) del blocco dati vengono ottenuti tramite il blocco organizzativo speciale OB 181 "Test di blocchi dati

I1 programma utilizza tutti i 4 accumulatori. Nella figura si vede l'occupazione degli accumulatori durante lo svolgimento del programma fino all'etichetta SCHL. All'interno del ciclo il contenuto degli accumulatori non cambia. L'ACCU 1 contiene dapprima l'indirizzo dell'ultima parola dati (DBA + DBL - 1) e viene ridotto di uno ad ogni ciclo. L'ACCU 2 contiene l'indirizzo della prima parola dati (DBA). I1 ciclo viene interrotto non appena il contenuto di ACCU 1 è minore del contenuto di ACCU 2.

Per l'impostazione delle parole dati viene usato il comando TIR 10 che memorizza il contenuto di ACCU-3-L (la costante) all'indirizzo contenuto in ACCU-1-L.

:L KHA5A5 Costante con cui impostare le parole dati

:L KY 1,50 Tipo e numero del blocco dati

:SPA OB 181 OB speciale "Test blocco dati" :SPB =NIVO Interruzione se DB 50 non è presente

ACCU 1 := indirizzo dell'ultimo DW + 1 ACCU 2 := indirizzo della prima DW ACCU 3 := costante Interruzione se DB 50 contiene

:SPB =NIVO zero parole dati

SCHL :ADD BF-1 Tutte le DW, a partire dall'ultima, vengono impostate con la costante contenuta in ACCU-3-L

Interrogazione se la prima parola dati è stata raggiunta

:SPB =SCHL Ritorno nel ciclo se la prima parola dati non è stata raggiunta

Continuazione del programma ...

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 415: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

... dopo aver impostato tutte le DW

... se il DB 50 non è presente o se contiene zero parole dati.

Direzione del ciclo

SPA OB181 SPB =NIVO

:L KB O Costante con cui i byte di merker devono essere impostati

:L BS 14 Indirizzo base del settore dei merker (indirizzo del primo byte di merker MB)

:L KF +256 + Lunghezza del settore dei merker = (indirizzo dell'ultimo byte di merker MB 255) +l

SCHL :ADD BF -1 Sovrascrivere tutti i 255 byte di merker, a partire da MB 255, con la costante contenuta in ACCU-3-LL

:SPB =SCHL

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 416: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.3 Trasferimento di settori di memoria

Applicazione Con le operazioni di sistema TNB e TNW è possibile trasferire interi settori di memoria (max. 255 byte con TNB, max. 255 parole con TNW). Con i comandi TNB e TNW è possibile accedere sia al settore locale di memoria sia alla parte del settore globale di memoria organizzata a byte (FOOOH ... F3FFH, FCOOH.. .FFFFH).

Operazioni

Parametri

Settori di memoria permessi

Tabella 9-3 Operazioni di trasferimento di settori

Lunghezza del blocco

Operando = numero dei byte (TNB) o numero delle parole (TNW)

Operazione

TNB

TNW

Indirizzo finale del settore sorgente

ACCU-2-L = indirizzo finale del settore sorgente

Indirizzo finale del settore destinazione

ACCU-1-L = Indirizzo finale del settore destinazione

Operando

O ... 255

O ... 255

I settori sorgente e destinazione devono essere completamente presenti in uno dei settori di memoria riportati in tabella 9-4 e non devono interrompersi.

Funzione

Trasferimento di un settore di memoria (O ... 255 byte)

Trasferimento di un settore di memoria (O ... 255 parole)

Tabella 9-4 Settori di memona permessi con TNB e TNW

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Indirizzi

0000H ... 1FFFH 0000H ... 3FFFH 0000H ... 7FFFH

8000H ... DD7FH DD80H ... E3FFH E400H ... E7FFH E800H ... EDFFH

EEOOH ... EFFFH FOOOH ... FFFFH

Settore di memoria

Memoria utente: Modulo utente (16 bit) 8Kparole Modulo utente (16 bit) 16Kparole Modulo utente (16 bit) 32Kparole

RAM di sistema: RAM per DB (16 bit) DBO(16bit) Merker S (8 bit) Dati di sistema (16 bit: BA, BB, BS, BT,

temporizzatori e contatori) RAM (8 bit: merker, immagine di processo) Periferia (8 bit)/S5-Bus

Page 417: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Procedimento I1 trasferimento nella CPU 928B avviene "decrementando", cioè essa inizia il trasferimento dall'indirizzo maggiore del settore sorgente e lo termina con il minore.

Applicazione I comandi TNB e TNW non sono adatti all'accesso al settore dei kachel relativa al settore (F400H ... FBFFH) nel S5-135U. Al riguardo sono da utilizzare i comandi kachel illustrati nel par. 9.4.4 ("accesso alla memoria a kachel") o i blocchi funzionali

speciali descritti nel cap. 6.24 ("accesso ai kachel").

Particolarità

Pseudo-fine di comandi con TNW e TNB

I comandi TNB e TNW sono comandi STEP 5 con un lungo tempo di esecuzione, che contengono cosiddette "istruzioni di pseudo-fine di comandi": il trasferimento dei dati dal settore sorgente a quello destinazione avviene in più parti di diversa lunghezza. Se durante il trasferimento di una di queste singole parti si verifica un errore (p. es. ZYK) o un'interruzione (p. es. un allarme di schedulazione o di processo), allora il relativo blocco organizzativo può essere attivato alla successiva pseudo-fine di comando, cioè alla fine della parte di settore in trasferimento. Condizione necessaria per il richiamo di un OB di allarme di processo o di schedulazione ad una pseudo-fine di comando è che in DX O sia predisposto il parametro "Interruzione alla fine di un comando".

Se durante il trasferimento si verifica un errore di ritardo della conferma QVZ e10 di indirizzamento ADE, viene prima completato il trasferimento dell'intero settore di dati e quindi richiamato il relativo blocco organizzativo (in caso di QVZ e ADE contemporanei, viene attivato solo I'OB per QVZ). Come indirizzo di errore viene indicato l'indirizzo in cui si è verificato il primo errore. Poiché TNB e TNW lavorano in modo decrescente, in caso di più indirizzi di errore vale quello superiore nel settore in cui si è verificato il primo errore.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 418: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

TNB e TNW tra settori di memoria a 8 e 16 bit

Indir izz i crescenti

Indir izzo sorgente l

dest inazione

Indir izz i crescent i

Byte 5 1 4 Byte 4 Byte 3

Indir izzo 1 so rgente l dest inazione

Trasferimento dei byte da 1 a 5: : L c indir izzo sorgente> : L c indir izzo dest inazione> :TNB 5

Trasferimento dei byte da 1 a 4: : L <indirizzo sorgente> : L c indir izzo dest inazione> :TNW 2

Figura 9-8 Trasferimento di settori di memoria

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 419: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.3.1 Esempio per il trasferimento di un settore di memoria

-. QTNR

- QOFF

DB destinazione Z°FF

KF (lunghezza) - LAEN

Figura 9-9 Blocco funzionale per il trasferimento di gruppi di dati

O = nessun errore 1 = DB sorgente = DB destinazione 2 = Offset o lunghezza > 4095 3 = DB sorgente non presente o non permesso 4 = DB sorgente troppo corto 5 = DB destinazione non presente o non permesso 6 = DB destinazione in memoria o sola lettura (modulo EPROM) 7 = Destinazione troppo corto

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 420: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

b) Struttura del programma:

I1 blocco FB 10 si divide in 5 segmenti con i seguenti compiti:

- Parametri di ingresso:

a) Testare se i blocchi sorgente e destinazione coincidono. b) Testare se i parametri "Offset sorgente", "Offset destinazione" e

"Lunghezza" sono minori di 4096.

- DB sorgente:

a)Testare se il DB sorgente è presente e lungo a sufficienza. b) Calcolare l'indirizzo assoluto dell'ultima DW del settore sorgente.

- DB destinazione:

a)Testare se il DB destinazione è presente, lungo a sufficienza e se risiede nella memoria per la scrittura/lettura (modulo RAM o RAM per DB).

b) Calcolare l'indirizzo assoluto dell'ultima DW del settore destinazione.

- Trasferimento :

Realizzare il trasferimento con l'aiuto del comando TNW. Settori con più di 255 parole vengono trasferiti suddivisi in parti ognuno di 128 parole (TNW 128). Un eventuale resto viene trasferito con un ulteriore comando TNW.

- Segnalazioni:

Fornire il parametro di uscita "Stato" con i risultati dei test

C ) Celle di memoria utilizzate:

MW 242 indirizzo finale dei dati destinazione MW 244 indirizzo finale dei dati sorgente MW 246 lunghezza del settore

MW 248 offset nel DB destinazione MW 250 tipo e numero del DB destinazione

MW 252 offset nel DB sorgente MW 254 tipo e numero del DB sorgente

BS 60 contatore delle parti di settore

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 421: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

b) Programmazione di FB 10:

Avvertenza: Se i d a t i devono e s sere c o p i a t i d a l l a DW 0, non servono l e i s t r u z i o n i s c r i t t e i n cors ivo s t i l e ne l seguente programma. Non e s i s t e i n questo caso il valore d i o f f s e t .

SEGMENTO 1 NOME : DB-DB-TR TRASFERIMENTO BLOCCO DATI A BLOCCO DATI SIG :QTNRE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KY

: Q O i T E / A / D / B / T / Z : D I(M/KH/KY/KC/KF/KT/KZ/KG: KF SIG :ZTNRE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KY

: Z O F F E / A / D / B / T / Z : D I(M/KH/KY/KC/KF/KT/KZ/KG: KF SIG :LAENE/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KF SIG : STAT E/A/D/B/T/Z : A BI/BY/W/D: BY

INIZIO PARAMETRI DI INGRESSO :LW =QTNR TIPO (DB/DX) E NUMERO DEL :T W 2 5 4 DB SORGENTE :LW =ZTNR TIPO (DB/DX) E NUMERO DEL :T W 2 5 0 DB DESTINAZIONE

DB SORGENTE = DB DESTINAZIONE ? :SPB =F001 SE sÌ, SALTO

:LW = QOFF OFFSET NEL : T MW 252 DB SORGENTE :LW = ZOFF OFFSET NEL : T M W 248 DB DESTINAZIONE

:LW =LAEN LUNGHEZZA (NUMERO DELLE PAROLE DATI) :T MW 246 DEL SETTORE DA TRASFERIRE

(LUNGHEZZA DEL SETTORE) O (OFFSET SORGENTE/OFFSET DESTINAZIONE)

:L KH F000 LUNGHEZZA >= 4096 ? SE sÌ, SALTO

:SPP =F002 FINE PARAMETRI DI INGRESSO

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 422: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

INIZIO DB SORGENTE :L W 2 5 4 TIPO E NUMERO DEL DB SORGENTE :SPA OB 181 TESTARE BLOCCO DATI :SPB =F003 SALTO SE TEST DI BLOCCO NEGATIVO

Al : NUMERO D E L L E DW, A2: I N D I R I Z Z O A3: INDIRIZZO

: L MW 252 OFFSET NEL DB SORGENTE A 3 : NUMERO DELLE DW, A 4 : I N D I R I Z Z O

:L W 2 4 6 LUNGHEZZA DEL SETTORE OFFSET + LUNGHEZZA DEL SETTORE NUMERO DW < OFFSET + LUNGHEZZA DEL SETTORE?

:SPB =F004 SE sÌ, SALTO :L K B 1 A2: OFFSET + LUNGH. DEL SETTORE, A3: INDIRIZZO

OFFSET + LUNGHEZZA DEL SETTORE - 1 OFFSET + LUNGHEZZA DEL SETTORE - 1 + INDIRIZZO

:T W 2 4 4 INDIRIZZO FINALE DEI DATI SORGENTE FINE DB SORGENTE

INIZIO DB DESTINAZIONEE :L W 2 5 0 TIPO E NUMERO DEL DB DESTINAZIONE :SPA OB 181 TESTARE BLOCCO DATI :SPB =F005 SALTO SE TEST DEL DB NEGATIVO :SPM =F006 SALTO SE BLOCCO NELL' EPROM

Al: NUMERO DELLE DW, A2: INDIRIZZO A3: INDIRIZZO

: L M 2 4 8 OFFSET NEL DB DESTINAZIONE A 3 : NUMERO DELLE DW, A 4 : N D I R I Z Z O

:L W 2 4 6 LUNGHEZZA DEL SETTORE OFFSET + LUNGHEZZA DEL SETTORE NO. DELLE DW < OFFSET + LUNGHEZZA DEL SETTORE?

:SPB =F007 SE sÌ, SALTO :L K B 1 A2: OFFSET + LUNGH. DEL SETTORE, A3: INDIRIZZO

OFFSET + LUNGHEZZA DEL SETTORE - 1 OFFSET + LUNGHEZZA DEL SETTORE - 1 + INDIRIZZO

:T W 2 4 2 INDIRIZZO FINALE DEI DATI DESTINAZIONE FINE BLOCCO DESTINAZIONE

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 423: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

INIZIO TRASFERIMENTO :L K B O VALORE DI CONFRONTO :L MB 246 LUNGHEZZA DEL SETTORE, BYTE HIGH

LUNGHEZZA DEL SETTORE >= 256 PAROLE? MOLTIPLICAZIONE PER 2, NUMERO DEI

:T BS 60 SETTORI DI 128 PAROLE :L MW244 INDIRIZZO FINALE DEI DATI SORGENTE :L MW242 INDIRIZZO FINALE DEI DATI DESTINAZIONE :SPB =REST SALTO SE LUNGHEZZA DEL SETTORE C256 PAROLE

SCHL :TNW 128 TRASFERIMENTO DI UN SETTORE DI 128 PAROLE :ADD KF -128 SOTTRARRE DALL'INDIRIZZO FINALE DELLA SORGENTE

LA LUNGHEZZA DEL SETTORE DI 128 PAROLE :ADD KF -128 SOTTRARRE DALL'INDIRIZZO FINALE DELLA DESTINAZIONE

LA LUNGHEZZA DEL SETTORE DI 128 PAROLE :SPA OB 160 C I CL0 :SPB =SCHL SALTO SE NON TUTTI I SETTORI DI 128 PAROLE

SONO STATI TRASFERITI REST :B MW 246 LUNGHEZZA DEL SETTORE, BYTE LOW

TRASFERIRE RESTO DEL SETTORE FINE TRASFERIMENTO

INIZIO VISUALIZZAZIONE :L K B O IDENTIFICATORE 00 (HEXA): NESSUN ERRORE

ENDE :T =STAT PARAMETRO DI USCITA PER STATO/ERRORI

F001 :L KB 129 IDENTIFICATORE DI ERRORE 81 (HEXA): :SPA =ENDE DB SORGENTE = DB DESTINAZIONE

F002 :L KB 130 IDENTIFICATORE DI ERRORE 82 (HEXA): :SPA =ENDE OFFSET O LUNGHEZZA >= 4096

F003 :L KB 131 IDENTIFICATORE DI ERRORE 83 (HEXA.): :SPA =ENDE DB SORGENTE NON PERMESSO

F004 :L KB 132 IDENTIFICATORE DI ERRORE 84 (HEXA.): :SPA =ENDE DB SORGENTE TROPPO CORTO

F005 :L KB 133 IDENTIFICATORE DI ERRORE 85 (HEXA.): :SPA =ENDE DB DESTINAZIONE NON PERMESSO

F006 :L KB 134 IDENTIFICATORE DI ERRORE 86 (HEXA.): :SPA =ENDE DB DESTINAZIONE NELLA MEMORIA A SOLA LETTURA

F007 :L KB 135 IDENTIFICATORE DI ERRORE 87 (HEXA.): :SPA =ENDE DB DESTINAZIONE TROPPO CORTO

FINE VISUALIZZAZIONE

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 424: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.4 Operazioni con il registro di indirizzo base BR

Applicazione I1 registro BR (32 bit) viene utilizzato dai comandi di caricamento/trasferimento di seguito descritti per l'indirizzamento della memoria. Si accede alla cella di memoria il cui indirizzo assoluto risulta dalla somma del contenuto del registro BR con una costante:

indirizzo assoluto = contenuto del registro BR + costante.

Operazioni

Modifica del registro BR

Tabella 9-5 Operazioni di cancamento/calcolo con il registro BR

l) I bit da 2" a 231 del registro vengono impostati a "O".

Operazione

MBR

ABR

MBR O ... FFFFF ABR - 3 2 7 6 7 ... t 3 2 7 6 7

Costante a 20 bit 3 1 O

Operando

Costante (OH ... F FFFFH)

Costante (-32 768 ... +32 767)

[ l ,;i ; O . . . . . . . . .o

Descrizione

Caricamento del registro BR con una costante a 20 bit

Somma di una costante a 16 bit al contenuto del registro BR

Costante a 16 bit (n. in virgola fissa)

Figura 9-10 Cancamento del registro BR

I1 registro BR rimane invariato quando l'elaborazione del programma continua in un altro blocco dello stesso livello di elaborazione programma a causa di un'istruzione di salto ("SP FB"/"SPB FB").

Dopo l'annidamento di un altro livello di elaborazione programma, il programma di sistema carica il registro BR con lo stesso valore che esso aveva prima dell'annidamento.

I1 registro BR viene resettato se il programma di sistema richiama un'altro livello di elaborazione programma.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 425: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.4.1 Operazioni di trasferimento tra registri

Applicazione Con le operazioni riportate in questo paragrafo è possibile scambiare velocemente dei valori tra i registri ACCU 1, contatore indirizzi (IND) e registro BR.

Operazioni Tabella 9-6 Operazioni di trasferimento tra registri

l) I bit da 2'' a 231 vengono impostati a "0"

I1 modo in cui i registri vengono modificati durante queste operazioni è illustrato nella seguente figura.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 426: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

ACCU 1

Figura 9-11 Operazioni di trasferimento tra registri

I MSA, MSB

ACCU l , BR o . . . . . . . . . . . . . . o o

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 427: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.4.2 Accesso alla memoria locale

Applicazione Con i seguenti comandi è possibile accedere alla memoria locale indirizzata a parole tramite un indirizzamento assoluto. L'indirizzo assoluto è la somma del contenuto del registro BR e della costante a 16 bit contenuta nel comando (tra -32768 e +32767).

Operazioni Tabella 9-7 Operazioni di accesso alla memoria locale

l) A C C U 2 nuovo = A C C U lvecchio

Operazione

LRW

LRD

TRW

TRD

Area di L'indirizzo assoluto deve essere compreso indiriuamento permessa perLRW,TRW

tra O ed E3FFH oppure E800H ed EDFFH

per LRD, TRD tra O ed E3FEH oppure E800H ed EDFEH

Operando

Costante (-32768 ... t32767)

Costante (-32768 ... t32767)

Costante (-32768 ... t32767)

Costante (-32768 ... t32767)

Reazione ad errore

Descrizione

Caricamento in ACCU-1-L della parola indirizzata dal registro BR + costante

Caricamento in ACCU 1 della doppia arola indirizzata dal registro BR + costante 8 Trasferimento del contenuto dell'ACCU-1-L nella parola indirizzata dal registro BR t costante

Trasferimento del contenuto dell'ACCU 1 nella doppia parola indirizzata dal registro BR t costante

Se l'indirizzo calcolato della cella di memoria non si trova nell'area di indirizzamento permessa, la CPU riconosce un errore di esecuzione e richiama I'OB 31 se è caricato. Se I'OB 31 non è caricato, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 428: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.4.3 Accesso alla memoria globale

Applicazione Con i seguenti comandi è possibile accedere a indirizzi assoluti della memoria globale organizzata a byte o a parola. L'indirizzo assoluto è la somma del contenuto del registro BR e della costante contenuta nel comando (da -32768 a 32767).

Test e set di L'accesso per le singole CPU al settore di memoria comune può essere una cella di comandato da una cella di occupazione. Ad ogni settore di memoria comune occupazione viene associata una cella di occupazione che deve essere testata da tutte le CPU nella memoria prima di ogni accesso. La cella di occupazione contiene o il valore "0" oppure globale l'identificatore del posto-connettore della CPU che utilizza momentaneamente il

settore di memoria e che deve nuovamente renderlo disponibile resettando a "O" la cella di occupazione (osservare anche le spiegazioni relative alle operazioni "Impostazione di semafori/SESU e "Abilitazione di semafori/SESU nel paragrafo 3.5.5).

I1 comando TSG elabora il test e l'impostazione di una cella di occupazione.

Procedimento Come cella di occupazione viene utilizzato il byte low della parola indirizzata dal registro BR + costante. Se il contenuto del byte low è "O", il comando TSG scrive l'identificatore del posto-connettore (dal BS 29) nella cella di occupazione.

Operazione

TSG

I1 test (=lettura) e l'eventuale occupazione (=scrittura) costituiscono un'unità di programmazione che non può essere interrotta.

Risultato

Operando

-32768 ... t32767

I1 risultato del test è analizzabile tramite i visualizzatori ANZ O ed ANZ 1.

Descrizione

Test e impostazione della cella di occupazione indirizzata tramite il registro BR t la costante

Avvertenza I1 comando TSG deve essere usato da tutte le CPU che devono accedere in modo sincronizzato ad un settore di memoria globale comune.

ANZI

O

1

O

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

ANZO

O

O

1

Significato

il contenuto della cella di occupazione è "O"; la CPU inserisce il proprio identificatore di posto-connettore.

il proprio identificatore di posto-connettore è già inserito nella cella di occupazione.

La cella di occupazione contiene un altro identificatore di posto-connettore.

Page 429: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Area di L'indirizzo assoluto deve essere compreso tra 0000H e EFFFH. indirizzamento permessa

Reazione ad errore

Se l'indirizzo calcolato della cella di memoria non si trova nell'area di indirizzamento permessa, la CPU riconosce un errore di esecuzione e richiama I'OB 31 se è caricato. Se I'OB 31 non è caricato, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Operazioni di caricamento e trasferimento per la memoria globale Tabella 9-8 Operazioni di accesso alla memoria globale organizzata a byte graanizzata a b-yte

l) ACCU-1-LH ed ACCU-1-H vengono impostati a "O".

ACCU-1-H viene impostato a "O".

3, ACCU 2 nuovo : = ACCU lvecchio

Area di Gli indirizzi assoluti devono essere compresi indirizzamento permessa tra 0000H e EFFFH (con LB GB, TB GB),

tra 0000H e EFFEH (con LB GW, TB GW),

tra 0000H e EFFCH (con LB GD, TB GD).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 430: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Reazione Se l'indirizzo calcolato della cella di memoria non si trova nell'area di ad errore indirizzamento permessa, la CPU riconosce un errore di esecuzione e richiama

I'OB 31 se è caricato. Se I'OB 31 non è caricato, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Operazioni di caricamento e trasferimento per la memoria globale graanizzata u2amk Tabella 9-9 Operazioni di accesso alla memoria globale organizzata a parola

l) ACCU-1-H viene impostato a "0"

ACCU 2 nuovo : = ACCU lvecchio

Operazione

LW GW

LW GD

TW GW

TW GD

Area di L'indirizzo assoluto deve essere compreso indiriuamento permessa tra 0000H e EFFFH (per LW GW, TW GW)

tra 0000H e EFFEH (per LW GD, TW GD).

Operando

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

Reazione ad errore

Descrizione

Cancamento in ACCU-1-L della parola indirizzata dal registro BR + costante

Cancamento in ACCU 1 della doppia parola indirizzata dal registro BR + costante

Trasfenmento del contenuto di ACCU-1-L nella parola indirizzata dal registro BR t costante

Trasfenmento del contenuto di ACCU 1 nella doppia parola indirizzata dal registro BR t costante

Se l'indirizzo calcolato della cella di memoria non si trova nell'area di indirizzamento permessa, la CPU riconosce un errore di esecuzione e richiama I'OB 31 se è caricato. Se I'OB 31 non è caricato, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 431: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

9.4.4 Accesso alla memoria a kachel

Applicazione Con i comandi di seguito riportati, è possibile accedere tramite indirizzi assoluti di memoria ai kachel organizzati a byte o a parole. L'indirizzo assoluto è costituito dalla somma del contenuto del registro BR con la costante contenuta nel comando (-32768 ...+ 32767).

Principio dell'accesso ai kachel

Cambiamento del registro kachel

La memoria globale tra gli indirizzi F400H e FBFFH, contiene una "finestra" in cui è possibile gestire un numero massimo di 256 settori di memoria detti kachel. Un kachel occupa al massimo 2 K indirizzi e può essere organizzato sia a byte che a parole. Prima di un accesso ad un settore kachel viene selezionato nel registro di selezione il numero di kachel di uno dei 256 kachel. La "definizione del registro di selezione ed il conseguente accesso al settore di kachel" non è interrompibile.

Prima di ogni accesso (caricamento, trasferimento) ad un settore kachel, si deve attivare uno dei 256 kachel. A tale scopo bisogna scrivere il numero del kachel da attivare in ACCU-1-L; questo numero viene inserito nel registro di kachel interno alla CPU con il comando ACR. Tutte le operazioni riguardandi i kachel, prima di accedere al settore kachel, trasferiscono il contenuto del registro kachel nel registro di selezione della relativa unità sul bus S5.

I1 registro kachel rimane invariato quando viene richiamato un altro blocco dello stesso livello di elaborazione programma.

Quando il registro kachel viene modificato in un blocco, il suo valore per- mane se alla fine del blocco si ritorna nel blocco richiamante.

Dopo l'annidamento di un altro livello di elaborazione programma, il programma di sistema carica il registro kachel con lo stesso valore che esso aveva prima dell'annidamento.

I1 registro kachel viene resettato se il programma di sistema richiama un'altro livello di elaborazione programma.

Attivazione di un kachel

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione

ACR

Parametro Descrizione

Attivazione del kachel il cui numero si trova in ACCU-1-LL, valori permessi: O ... 255

Page 432: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Reazione I1 numero di kachel deve essere compreso tra O e 255. Se ciò non si verifica, la ad errore CPU riconosce un errore di esecuzione e richiama I'OB 31. Se I'OB 31 non è

presente, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Test e set di L'accesso per le singole CPU al settore di memoria comune può essere una cella di comandato da una cella di occupazione. Ad ogni settore di memoria comune occupazione nel viene associata una cella di occupazione che deve essere testata da tutte le CPU settore di kachel prima di ogni accesso. La cella di occupazione contiene o il valore "0" oppure

l'identificatore del posto-connettore della CPU che utilizza momentaneamente il settore di memoria e che deve nuovamente rendere disponibile il settore di memoria resettando a " O " la cella di occupazione (fare attenzione anche a quanto detto per i comandi SES e SEF, "Impostazione/abilitazione di semafori: paragrafo 3.5.5).

I1 comando TSC supporta il test e l'impostazione di una cella di occupazione sul kachel attivato.

Procedimento Come cella di occupazione viene utilizzato il byte low della parola indirizzata dal registro BR + costante. Se il contenuto del byte low è "O", il comando TSC scrive l'identificatore del posto-connettore nella cella di occupazione.

Operazione

TSC

I1 test (= lettura) e l'eventuale occupazione (= scrittura) costituiscono un'unità di programmazione che non può essere interrotta.

Risultato

Operando

-32 768 ... t32 767

I1 risultato del test è analizzabile tramite i visualizzatori ANZ O ed ANZ 1.

Descrizione

Test e impostazione della cella di occupazione sul kachel attivato indirizzata tramite il registro BR t la costante

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

ANZI

O

1

O

ANZO

O

O

1

Significato

il contenuto della cella di occupazione è "O"; la CPU inserisce il proprio identificatore di posto-connettore.

il proprio identificatore di posto-connettore è già inserito nella cella di occupazione.

La cella di occupazione contiene un altro identificatore di posto-connettore.

Page 433: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso alla memoria con indiriuamento assoluto

Reazione ad errore

Avvertenza I1 comando TSC deve essere usato da tutte le CPU che devono accedere in modo sincronizzato ad un settore di memoria globale comune (settore kachel).

La cella di occupazione si deve trovare sulla relativa unità e nel kachel comune tra gli indirizzi F400H e FBFFH. Se ciò non si verifica, la CPU riconosce un errore di esecuzione e richiama I'OB 31. Se I'OB 31 non è presente, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Operazioni di caricamento e trasferimento per kachel organizzati a b-yte Tabella 9-10 Operazioni di accesso ai kachel organizzati a byte

l) ACCU-1-LH ed ACCU-1-H vengono impostati a "O".

ACCU-1-H viene impostato a "O".

3, ACCU 2 nuovo : = ACCU lvecchio

Operazione

LB CB

LB CW

LB CD

TE3 CB

TB CW

TE3 CD

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operando

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

Descrizione

Cancamento in ACCU-1-LL del byte del kachel attivato indirizzato tramite il registro BR t costante 3,

Cancamento in ACCU-1-L della parola del kachel attivato indirizzata tramite il registro BR t costante 3,

Cancamento in ACCU 1 della doppia parola del kachel attivato indirizzata tramite il registro BR t costante3)

Trasferimento del contenuto di ACCU- 1-LL nel byte del kachel attivato indirizzato tramite il registro BR + costante

Trasferimento del contenuto di ACCU-l-L nella parola del kachel attivato indirizzata tramite il registro BR + costante

Trasferimento del contenuto di ACCU 1 nella doppia parola del kachel attivato indirizzata tramite il registro BR + costante

Page 434: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accesso dla memoria con indiriuamento assoluto

Area di Gli indirizzi assoluti devono essere compresi indirizzamento permessa tra F400H e FBFFH (con LB CB, TB CB),

tra F400H e FBFEH (con LB CW, TB CW),

tra F400H e FBFCH (con LB CD, TB CD).

Reazione ad errore

Operazioni di caricamento e trasferimento per kachel organizzati aBm!e

Se l'indirizzo calcolato della cella di memoria non si trova nell'area di indirizzamento permessa, la CPU riconosce un errore di esecuzione e richiama I'OB 31 se è caricato. Se I'OB 31 non è caricato, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Tabella 9-11 Operazioni di accesso ai kachel organizzati a parole

l) ACCU-1-H viene impostato a "0"

ACCU 2 nuovo : = ACCU lvecchio

Operazione

LW CW

LW CD

TW CW

TW CD

Area di L'indirizzo assoluto deve essere compreso indirizzamento permessa tra F400H e FBFFH (per LW CW, TW CW)

tra F400H e FBFEH (per LW CD, TW CD).

Operando

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

-32768 ... t32767

Reazione Se l'indirizzo calcolato della cella di memoria non si trova nell'area di ad errore indirizzamento permessa, la CPU riconosce un errore di esecuzione e richiama

I'OB 31 se è caricato. Se I'OB 31 non è caricato, la CPU si porta in STOP. Nell'ACCU-1-L si trovano identificatori di errore che descrivono l'errore verificatosi più dettagliatamente (vedere paragrafo 5.7.2).

Descrizione

Cancamento in ACCU-1-L della parola del kachel attivato indirizzata tramite il registro BR t costante

Cancamento in ACCU 1 della doppia parola del kachel attivato indirizzata tramite il registro BR t costante

Trasferimento del contenuto di ACCU-l-L nella parola del kachel attivato indirizzata tramite il registro BR + costante

Trasferimento del contenuto di ACCU 1 nella doppia parola del kachel attivato indirizzata tramite il registro BR + costante

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 435: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

In questo capitolo

Questo capitolo descrive quando è permesso il funzionamento multiprocessore, ed il modo in cui avviene lo scambio dati tra le CPU. Inoltre fa riferimento alle condizioni da osservare durante la programmazione in funzionamento multiprocessore (paragrafo 10.1). Esso dà istruzioni dettagliate (anche con esempi applicativi) riguardanti lo scambio di dati complessi in funzionamento multiprocessore (comunicazione multiprocessore - paragrafi da 10.2 a 10.9).

Sommario del capitolo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

10.1

10.1.1

10.1.2

10.1.3

10.2

10.2.1

10.2.2

10.2.3

10.2.4

10.2.5

10.2.6

10.2.7

10.3

10.4

10.4.1

10.4.2

10.4.3

10.4.4

10.5

Argomento trattato

Funzionamento multiprocessore

Scambio di dati tramite merker di accoppiamento

Assegnazione di periferia e merker di accoppiamento in funzionamento multiprocessore (DB 1)

Generazione del blocco dati DB 1

Comunicazione multiprocessore

Identificazione delle CPU in trasmissione/ricezione

Memonzzazione intermedia dei dati

Funzionamento e gestione della memoria intermedia

Awiamento del sistema

Richiamo degli OB di comunicazione

Parametrizzazione degli OB di comunicazione

Analisi dei parametri di uscita

Tempo di esecuzione degli OB di comunicazione

Funzione INIZIALIZZAZIONE (OB 200)

Funzione

Parametri di richiamo

Parametri di ingresso

Parametri di uscita

Funzione TRASMISSIONE (OB 202)

Pagina

10-3

10-4

10-8

10-9

10-13

10-15

10-16

10-17

10-20

10-21

10-22

10-24

10-29

10-30

10-30

10-32

10-33

10-36

10-38

Page 436: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Capitolo

10.5.1

10.5.2

10.5.3

10.5.4

10.6

10.6.1

10.6.2

10.6.3

10.6.4

10.7

10.7.1

10.7.2

10.7.3

10.7.4

10.8

10.8.1

10.8.2

10.8.3

10.8.4

10.9

10.9.1

10.9.2

10.9.3

Argomento trattato

Funzione

Parametri di richiamo

Parametri di ingresso

Parametri di uscita

Funzione TEST-TRASMISSIONE (OB 203)

Funzione

Parametri di richiamo

Parametri di ingresso

Parametri di uscita

Funzione RICEZIONE (OB 204)

Funzione

Parametri di richiamo

Parametri di ingresso

Parametri di uscita

Funzione TEST-RICEZIONE (OB 205)

Funzione

Parametri di richiamo

Parametri di ingresso

Parametri di uscita

Applicazioni

Richiamo degli OB speciali tramite blocchi funzionali

Trasmissione di blocchi dati

Ampliamento del settore dei merker di accoppiamento

Pagina

10-38

10-38

10-39

10-41

10-43

10-43

10-43

10-43

10-44

10-45

10-45

10-45

10-45

10-46

10-48

10-48

10-48

10-48

10-49

10-50

10-50

10-58

10-64

Page 437: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.1 Funzionamento multiprocessore

Definizione del Ci si trova in funzionamento multiprocessore non appena si inserisce concetto nell'apparecchiatura centrale un coordinatore, indipendentemente dal fatto che si

utilizzi una o più CPU.

Quando Se il programma utente è troppo grande per una sola CPU e la memoria è utilizzare il troppo limitata, allora è possibile suddividere il programma su più CPU. funzionamento multiprocessore? Se una certa parte dell'impianto deve essere velocemente elaborata, allora è

consigliabile separare la parte di programma in questione dal programma ge- nerale e far elaborare questa parte da una CPU veloce.

Se l'impianto è composto da più parti, che sono separabili tra di loro e quindi singolarmente comandabili e regolabili, allora la parte 1 può essere elaborata dalla CPU 1, la parte 2 dalla CPU 2 e così via.

In funzionamento multiprocessore bisogna fare attenzione alle relative informazioni contenute nel manuale di sistema. Esse sono di aiuto nel determinare le CPU da utilizzare per risolvere nel modo migliore i problemi specifici.

Quali Per lo scambio ciclico di dati binari tra le CPU (o tra le CPU ed i processori meccanismi di di comunicazione) sono a disposizione i " merker di accoppiamento " . comunicazione ci sono? Nello scambio di una notevole quantità di dati (p. es. un intero blocco dati)

tra CPU 948, CPU 9461947, CPU 928B, CPU 928 e CPU 922, possono for- nire un valido aiuto i "blocchi organizzativi per la comunicazione multi- processare" da OB 200 ad OB 205 (per ulteriori informazioni a riguardo vedere i paragrafi da 10.2 in poi).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 438: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.1.1 Scambio di dati tramite merker di accoppiamento

Introduzione Per lo scambio ciclico di dati binari, sono a disposizione i "merker di accoppiamento". Questi servono in primo luogo per il trasferimento a byte di informazioni.

Questo trasferimento di dati può avvenire tra

CPU CPU

CPU processoreli di comunicazione

I1 programma di sistema trasferisce i merker di accoppiamento una volta per ciclo. Trasferendo i dati tra le CPU, i merker di accoppiamento vengono fisicamente memorizzati sul coordinatore.

I merker di accoppiamento sono byte di merker che vengono trasferiti. Essi vengono definiti per ogni CPU nel DB 1 come merker di accoppiamento di ingresso o di uscita. Se, per esempio, il byte di merker 50 è definito sulla CPU 1 come merker di accoppiamento di uscita, allora il suo stato viene ciclicamente trasferito, via coordinatore, alla CPU in cui il byte di merker 50 è definito come merker di accoppiamento di ingresso (vedere paragrafo 10.1.5).

Avvertenza Non viene segnalato alcun errore se il byte di merker di accoppiamento è fisicamente presente ma viene programmato da una parte senza essere mai letto dall'altra o viceversa.

Settore di La memoria per i merker di accoppiamento sul coordinatore o sui processori di memoria comunicazione comprende gli indirizzi da F200H a F2FFH. Per ogni

CPUIprocessore di comunicazione sono a disposizione 256 byte di merker di accoppiamento.

Impostazione Onde evitare doppi utilizzi si deve provvedere ad una assegnazione tramite dei ponticelli ponticelli sulle varie unità (KOR o CP). E' possibile abilitare o disabilitare tali

merker in blocchi da 32 byte (vedere al riguardo il manuale di sistema dell'unità utilizzata).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 439: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio

Coordinatore

Merker d i acc. d i uscita: Scri t tura da MB 96 a MB 119 t

Merker d i acc. d i ingresso: Lettura Settor i abi l i tat i da MB 120 a MB 125 tramite ponticel l i :

byte d i merker di accoppiamento da MB 96 a MB 127

Merker di acc. di uscita: da MB120 a MB 125 Scri t tura t

Merker di acc. di ingresso: 4 da MB 96 a MB 119 Lettura

Figura 10-1 Trasferimento dei merker di accoppiamento in funzionamento multiprocessore

Avvertenza - Come merker di accoppiamento possono essere usati solo i byte di merker

che sono abilitati sul coordinatore o illi corrispondenteli CP.

- Se su una o più CPU si è definito un certo byte di merker come merker di accoppiamento di ingresso, lo stesso deve essere definito come merker di accoppiamento di uscita su un'altra CPU o su un'altro CP. Ancora: un byte di merker può essere contrassegnato come merker di accoppiamento di uscita solo su una CPU; lo stesso può invece essere utilizzato come merker di accoppiamento di ingresso, p. es su altre tre CPU.

- I byte di merker non definiti come merker di accoppiamento su una CPU possono essere usati come "normali" merker!

I Non è possibile usare merker S come merker di accoppiamento!

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 440: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Scambio di dati Dovendo trasferire dei dati tra una CPU ed un processore di comunicazione, deve tra CPU e essere abilitato sul processore di comunicazione un numero sufficiente di merker processori di di accoppiamento. Anche qui sono a disposizione 256 byte che possono essere comunicazione suddivisi in settori a 32 byte.

Dovendo invece trasferire dei dati da una CPU a più processori di comunicazione, bisogna fare attenzione a non superare i settori abilitati sui processori di comunicazione e sul coordinatore, al fine di non provocare un doppio indirizzamento.

Dovendo utilizzare contemporaneamente i merker di accoppiamento nel coordinatore e su uno o più processon di comunicazione, bisogna allo stesso modo evitare un doppio indirizzamento: suddividere i merker di accoppiamento sul coordinatore e sui CP in settori di 32 byte ognuno; i byte di merker di accoppiamento che vengono utilizzati sul processore di comunicazione devono essere disabilitati sul coordinatore estraendo i relativi ponticelli (vedere il manuale di sistema).

Anche qui vale la regola che un certo byte di merker può essere definito come merker di accoppiamento di uscita solo su una CPU. Al contrario un byte di merker può essere contrassegnato come merker di accoppiamento di ingresso su più CPU.

Esempio

Settori abi l i tat i : Merker di accoppiamento

CP 2: da MB 201 a MB 205 da MB 96 a MB 127

Merker di accoppiamento

CP 2: da MB 195 a MB 200 4

Figura 10-2 Esempio di settori di merker di accoppiamento su CP

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 441: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Trasferimento I merker di accoppiamento definiti in DB 1 vengono trasferiti alla fine di ogni dei merker di ciclo di programma insieme all'aggiornamento dell'immagine di processo, dopo accoppiamento che la CPU ha ricevuto dal coordinatore il segnale di libero accesso al bus in funzionamento periferico. multiprocessore

I1 coordinatore suddivide l'accesso al bus e lo assegna in successione. In questo modo, una CPU può trasmettere solo un byte per volta. Con questo tipo di trasmissione può succedere che merker di accoppiamento in qualche modo connessi, vengano trasferiti in momenti diversi dando origine a delle elaborazioni errate.

Dovendo trasferire delle informazioni composte da più di un byte, conviene programmare il blocco dati DX O per il trasferimento a gruppi di tutti i merker di accoppiamento specificati nel DB 1 (vedere capitolo 7). Finché la CPU è occupata nel trasferimento dei merker di accoppiamento, non può essere interrotta da alcun'altra CPU. Dato che la CPU successiva deve attendere per poter effettuare il suo trasferimento, l'elaborazione del programma ciclico viene di conseguenza ritardata.

Comunicazione Per la trasmissione di blocchi dati, cioè di gruppi di dati da max. 64 byte multiprocessore (= 32 parole dati), sono a disposizione i seguenti blocchi organizzativi speciali

(integrati nella CPU):

INIZIALIZZAZIONE (OB 200): predisposizione

TRASMISSIONE (OB 202): trasmissione di un gruppo di dati

TEST-TRASMISSIONE (OB 203): test delle possibilità di trasmissione

RICEZIONE (OB 204): ricezione di un gruppo di dati

TEST-RICEZIONE (OB 205): test delle possibilità di ricezione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 442: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.1.2 Assegnazione di periferia e merker di accoppiamento in funzionamento multipro- cessore (DB 1)

Introduzione I1 campo delle periferie del controllore programmabile è presente sul bus S5 una sola volta. Esso comprende gli indirizzi tra FOOOH e FFFFH.

In funzionamento multiprocessore tutte le CPU nel controllore programmabile accedono contemporaneamente al campo delle periferie. Onde evitare una sovrascrittura dei dati, il campo delle periferie va suddiviso ed assegnato alle singole CPU.

A questo scopo si deve programmare il DB 1 di ogni CPU. Facendo questo si determina con quali ingressi ed uscite (indirizzi byte da O a 127) e con quali merker di accoppiamento di ingresso e di uscita deve lavorare la CPU in oggetto.

In funzionamento multiprocessore, anche nel caso che la CPU non utilizzi alcuna periferia o merker di accoppiamento, è necessario che sia presente un DB 1 (vuoto).

Avvertenza Nell'aggiornamento delle immagini di processo vengono considerati solo gli ingressi e le uscite definiti nel DB 1.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 443: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.1.3 Generazione del blocco dati DB 1

Introduzione/ Introduzione/modifica con il PG tramite maschera DB 1 modifica del DB 1

oppure

editando il DB 1 come blocco dati sul PG e quindi trasferendolo nella CPU.

Avvertenza I1 DB 1 introdotto o modificato viene analizzato solo tramite un NUOVO AVVIAMENTO della CPU!

Generazione del 1. Selezionare sul PG l'editor per la maschera DB 1 (vedere figura 10-3). DB 1 tramite maschera DB 1 2. Introdurre i valori desiderati per "ingressi digitali" ecc. con numeri decimali.

3. Inserire i valori introdotti premendo il tasto di conferma sul PG. I1 PG genera quindi il DB 1.

4. Trasferire il DB 1 nella CPU opp. caricarlo in un modulo EPROM.

Avvertenza La lunghezza dei temporizzatori può essere introdotta nella maschera DX O e/o nella maschera DB 1. Si consiglia però di specificare questo parametro solo nella maschera DX O (vedere capitolo 7).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 444: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio per la maschera DB 1

Assegnazione di periferia:

0 ! 1 , 2 , 3 , 7 , 1 0 , , > ! , > > > > >

0 , 2 , 4 , 1 2 , ! , , ! > > , > > , ,

Merker di accoppiamento di ingresso: , 50, 51, 60, , , , , , , , , , ,

Merker di accoppiamento di uscita: 7 0 , 7 2 , 1 0 0 , , , , , , , , , ) , ,

Lunghezza di temporizzatori: ) l

Figura 10-3 Maschera PG per la generazione del DB 1

Editare il DB 1 1. Le parole dati DW O, 1 e 2 devono contenere l'identificatore di inizio DB 1. come blocco dati Esse devono quindi essere programmate con:

DW O: KH = 4D41 ('MnA') DW 1: KH = 534B ('SnK') DW 2: KH = 3031 ('O' 'l ')

2. Dalla parola dati DW 3 vengono introdotti i singoli campi di operandi. Per ogni campo di operandi si deve introdurre un certo identificatore. I valori possibili sono:

Identificatore per ingressi digitali KH = DEOO Identificatore per uscite digitali KH = DA00 Identificatore per merker di accoppiamento di ingresso KH = CE00 Identificatore per merker di accoppiamento di uscita KH = CAOO

Dopo ogni identificatore vanno elencati i numeri degli ingressi ed uscite in formato in virgola fissa.

3. Come identificatore di fine DB 1, l'ultima parola dati deve contenere il valore "KH = EEEE". Trasferire il DB 1 nella CPU

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 445: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Avvertenza La successione delle introduzioni è libera. Fare comunque attenzione che l'aggiornamento delle immagini di processo degli ingressi e delle uscite venga fatta esattamente in successione inversa dell'introduzione degli indirizzi nel DB 1 (cioè l'ultima impostazione viene aggiornata per prima). Sono possibili introduzioni ripetute dello stesso byte, per esempio a scopo di test. Anche qui va tenuto presente che l'immagine di processo di byte contenuti più volte, viene aggiornata più volte.

Esempio per I'editazione del DB 1

identificatore di inizio

Identificatore per ingressi digitali KF = +00000; Byte di ingresso O KF = +00001; Byte di ingresso 1 KF = +00002; Byte di ingresso 2 KF = +00003; Byte di ingresso 3 KF = +00007; KF = +00010; Byte di ingresso 10

Identificatore per uscite digitali KF = +00000; Byte di uscita O KF = +00002; Byte di uscita 2 KF = +00004; KF = +00012; Byte di uscita 12

Identificatore per merker di accopp. di ingr. KF = +00050; Byte di merker 50 KF = +00051; KF = +00060; Byte di merker 60

Identificatore per merker di accopp. di uscita KF = +00070; Byte di merker 70 KF = +00072; KF = +00100; Byte di merker 100 KH = EEEE; Identificatore di fine

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 446: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Trasferimento I1 DB 1 viene considerato dal programma di sistema con un NUOVO dal DB 1 AWIAMENTO. Nel far ciò viene testato se le unità a cui si riferiscono gli

ingressi, le uscite ed i merker di accoppiamento danno la "conferma". Se ciò non avviene, la CPU si porta in STOP segnalando un errore del DB 1 e con il lampeggi0 lento del LED STOP. I1 programma utente non viene elaborato.

Quando un DB 1 è stato programmato ed è diventato attivo sulla CPU grazie ad un NUOVO AWIAMENTO, valgono le seguenti regole:

Accessi via immagine di processo alle unità periferiche sono permessi solo per gli ingressi e le uscite definite in DB 1 (comandi L.../T... ... EB, ... EW, ... ED, ... AB, ... AW, ... AD e combinazioni con ingressi e uscite). Accessi ad indirizzi dell'immagine di processo non definiti nel DB 1 causano un errore di indirizzamento.

I1 caricamento diretto di byte di periferia senza passare dall'immagine di processo, con comandi L PY, L PW, L QB, L QW, è possibile con tutte le unità di ingresso che danno conferma, indipendentemente e dal fatto che siano definite o meno in DB 1.

I1 trasferimento diretto (T PY, T PW) ai byte da O a 127 è invece permesso solo con uscite definite in DB 1, dato che con operazioni di questo tipo viene modificata anche l'immagine di processo. Accessi in scrittura ad indirizzi non contenuti nel DB 1 causano un errore di indirizzamento.

Trasferimento senza immagine di processo: I1 trasferimento diretto agli indirizzi di byte >l27 è possibile indipendentemente dalla programmazione del DB 1. Anche il trasferimento diretto agli indirizzi di byte del settore di periferia ampliato (T QB, T QW) è possibile indipendentemente dalla programmazione del DB 1.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 447: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2 Comunicazione multiprocessore

Definizione del Comunicazione multiprocessore significa lo scambio di una notevole quantità di concetto dati (blocchi dati) tra le singole CPU che lavorano in funzionamento

multiprocessore. Per la comunicazione multiprocessore si necessita del coordinatore KOR 923C.

Introduzione

Conoscenze necessarie

Principio

Unità di trasmissione

Per la trasmissione di blocchi dati: per gruppi di dati con una lunghezza massima di 32 parole (cioè 64 byte) sono a disposizione le seguenti funzioni integrate nella CPU:

INIZIALIZZAZIONE (OB 200): predisposizione

TRASMISSIONE (OB 202): trasmissione di un gruppo di dati

TEST-TRASMISSIONE(0B 203): test delle possibilità di trasmissione

RICEZIONE (OB 204): ricezione di un gruppo di dati

TEST-RICEZIONE (OB 205): test delle possibilità di ricezione

I sopraindicati blocchi organizzativi speciali vengono di seguito detti "OB di comunicazione".

Per l'uso di queste funzioni è sufficiente avere una conoscenza di base del linguaggio di programmazione STEP 5 e sul funzionamento dei controllori programmabili SIMATIC S5. Queste conoscenze di base possono essere acquisite consultando i manuali di funzionamento e di programmazione delle varie apparecchiature (vedere la bibliografia).

Per trasmettere dati bisogna attivare la funzione TRASMISSIONE sulla CPU in trasmissione, e la funzione RICEZIONE sulla CPU in ricezione. Facendo ciò, le parole dati di un blocco dati (DB o DX) della CPU in trasmissione, tramite il coordinatore 923C, vengono trasmesse alla CPU in ricezione e qui vengono scritte nel blocco dati (DB o DX) con lo stesso numero ed allo stesso indirizzo; cioè viene realizzata una copia " 1:l".

Normalmente la quantità di dati che può essere trasmessa tramite le funzioni TRASMISSIONE/RICEZIONE è di 32 parole. Nel caso in cui la lunghezza del blocco (senza intestazione) non è un multiplo di 32 parole, l'ultimo gruppo di dati trasmesso ha una lunghezza minore di 32 parole.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 448: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

I1 blocco dati nella CPU in ricezione può essere più lungo o più corto del blocco dati sulla CPU in trasmissione. Se però le parole dati trasmesse dalla funzione TRASMISSIONE non esistono nel blocco dati del ricevitore, la funzione RICEZIONE segnala un errore.

Esempio:

trasmissione: ricezione:

DW 32 . . . DW 63 DW 32 . . . DW 63

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 449: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.1 Identificazione delle CPU in trasmissione/ricezione

Tutti i blocchi dati che vengono scambiati tra le CPU vengono contrassegnati con un numero sia della CPU in trasmissione che di quella in ricezione. Le CPU vengono numerate in modo che la CPU più a sinistra abbia il numero 1 e le altre che seguono verso destra, i numeri successivi.

Esempio

Controllore S5-135U/155U:

K C C C C C O P P P P P E E E R U U U

C 1 2 3

Figura 10-4 Identificazione delle CPU in trasmissione/ricezione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 450: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.2 Memorizzazione intermedia dei dati

Solitamente si utilizza il funzionamento multiprocessore per assegnare i vari problemi da elaborare a più CPU. Dato che questi problemi non sono identici ed inoltre le prestazioni delle appartenenti CPU possono essere diverse, l'elaborazione di programma in funzionamento multiprocessore sulle singole CPU si esegue sempre in modo asincrono. Ciò significa che i dati di una CPU in trasmissione non possono venire subito ricevuti dalla CPU in ricezione.

Per questo motivo i dati da trasmettere vengono memorizzati temporaneamente nel coordinatore 923 C. I1 numero della "propria" CPU ed il numero della CPU in ricezione durante la trasmissione rispettivamente il numero della CPU in trasmissione durante la ricezione determinano sorgente e destinazione di un blocco dati.

Esempio

K C C C C C O P P P P P E E E R U U U

C 1 2 3

La CPU 3 memorizza i suoi dati nella memoria intermedia del coordinatore.

Secondo passo:

R I C E Z I O N E , p a r a m e t r o " C P U i n r i c e z i o n e " = 3

K C C C C C O P P P P P E E E R U U U

C 1 2 3

del coordinatore nel blocco dati di destinazione. Quando la CPU 2 è pronta a ricevere copia i dati dalla memoria intermedia

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 451: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.3 Funzionamento e gestione della memoria intermedia

Funzionamento La memorizzazione intermedia funziona secondo il principio FIFO (First In - First Out, cioè il principio delle code di attesa). Con ciò la sequenza delle ricezioni coincide con quella delle trasmissioni. Questo vale per ogni singola via di comunicazione (determinata dalle CPU di trasmissione e ricezione) ed è indipendente dalle altre vie di comunicazione.

Salvataggio dei dati

Gestione

La memoria intermedia è tamponata dalla batteria che permette un riavviamento automatico senza limitazioni in caso di caduta di tensione. Una caduta di tensione durante un trasferimento di dati, viene supportata dal controllore programmabile senza perdita di dati.

La capacità di memoria del coordinatore 923C è di 48 settori, ognuno con una lunghezza fissa di 32 parole. La funzione INIZIALIZZAZIONE attribuisce questi settori alle vane vie di comunicazione. Ogni settore di memoria può contenere esattamente un gruppo di dati (con una lunghezza variabile da 1 a 32 parole dati). Un gruppo di dati viene scritto in un settore di memoria da una funzione TRASMISSIONE e viene quindi prelevato da una funzione RICEZIONE. I1 numero di settori di memoria assegnato ad ogni singola via di comunicazione dipende direttamente dalla "capacità di trasmissione" (funzioni TRASMISSIONE e TEST-TRASMISSIONE) e dalla "capacità di ricezione" (funzioni RICEZIONE e TEST-RICEZIONE).

La capacità di trasmissione indica quanti settori di memona riservati ad una via di comunicazione sono liben ad un determinato punto.

La capacità di ricezione indica quanti settori di memona riservati ad una via di comunicazione sono occupati ad un determinato punto.

La somma della capacità di trasmissione e ricezione è in ogni momento uguale al numero di settori associati ad una via di comunicazione.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 452: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio

La via di comunicazione "dalla CPU 3 alla CPU 2" viene inizializzata. Nel far cib, ad essa vengono associati sette settori di memoria nella memoria intermedia del coordinatore. In seguito a cib potrebbe essere eseguita, per esempio, una trasmissione di dati uguale a quella qui illustrata:

c- Trasmissione Trasmissione

Ricezione Ricezione Ricezione

Trasmissione/ricezione di n gruppi di dati significa che la relativa funzione viene richiamata n volte consecutivamente.

Per una facile illustrazione, in questo esempio vengono dapprima o trasmessi o ricevuti dei dati. La trasmissione (CPU 3) e ricezione (CPU 2) contemporanee sono comunque possibili e opportune (vedere il capitolo "Elaborazione parallela in funzionamento multiprocessore"). Nell'esempio, durante la trasmissione dei gruppi di dati K e L avviene anche la ricezione dei gruppi di dati H e I.

Ricevitore: CPU 2 1

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 453: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Riassunto La memoria intermedia del coordinatore KOR 923C ha il compito di compensare l'elaborazione asincrona delle CPU in trasmissione/ricezione e la loro differente velocità di lavoro.

Siccome la capacità della memoria intermedia è limitata, la CPU in ricezione dovrebbe verificare "spesso" e "regolarmente" se ci sono dei dati memorizzati (funzione TEST-RICEZIONE, capacità di ricezione > 0) oppure cercare di prelevare i dati (funzione RICEZIONE). È opportuno richiamare ripetutamente la funzione RICEZIONE finchè la capacità di ricezione è nulla. Un tale procedimento garantisce che i dati trasmessi non rimangano a lungo nella memoria intermedia, ma siano a disposizione della CPU in ricezione sempre attuali. Inoltre si lasciano sempre dei settori di memoria liberi (la capacità di trasmissione cresce), evitando così il blocco delle trasmissioni (che accade quando la capacità di trasmissione è nulla).

Avvertenza Quindi mentre una capacità di ricezione nulla rappresenta la situazione ideale (tutti i dati trasmessi sono stati ricevuti), una capacità di trasmissione nulla può significare un errore in fase di programmazione:

- la funzione TRASMISSIONE viene attivata troppo spesso,

- la funzione RICEZIONE viene attivata troppo raramente,

oppure

- alla via di comunicazione sono stati associati troppo pochi settori di memoria. La capacità della memoria intermedia non basta a compensare un'elevata differenza di frequenza tra le funzioni TRASMISSIONE e RICEZIONE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 454: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.4 Avviamento del sistema

La comunicazione multiprocessore richiede che tutte le CPU interessate vengano avviate in modo uguale, cioè o tutte con un NUOVO AWIAMENTO o tutte con un RIAWIAMENTO.

Tramite

il servizio (commutatori frontali, dispositivi di programmazione),

la parametrizzazione (DXO)

la programmazione (con il blocco organizzativo speciale OB 223 "Stop per avviamento non omogeneo in funzionamento multiprocessore"),

ci si deve assicurare che, almeno per le CPU interessate alla comunicazione, l'avviamento sia uguale (vedere paragrafo 10.1.7).

NUOVO Nel relativo blocco di awiamento OB 20 (NUOVO AWIAMENTO) bisogna AWIAMENTO inizializzare la memoria intermedia nel KOR 923C con un richiamo della

funzione INIZIALIZZAZIONE in una CPU. Facendo ciò si perdono eventuali dati ancora presenti. Quindi, anche in fase di AWIAMENTO, possono essere richiamate dalle singole CPU le funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE. Tramite una corretta programmazione, bisogna garantire che ciò awenga solo quando l'inizializzazione della memoria intermedia del KOR C sia correttamente avvenuta. Completato I'AWIAMENTO, quindi in RUN, il programma utente viene elaborato dall'inizio, cioè dal primo comando dell'OB l o dell'FB O.

RIAWIAMENTO Nei relativi blocchi di avviamento OB 21 (RIAWIAMENTO MANUALE) ed OB 22 (RIAVVIAMENTO AUTOMATICO) la funzione INIZIALIZZAZIONE non può essere richiamata. L'attivazione delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE può provocare delle difficoltà; in questo caso bisogna fare attenzione alle avvertenze riportate nei paragrafi successivi.

Completato il RIAWIAMENTO, quindi in RUN, il programma utente non riprende dall'inizio, bensì dal punto in cui si era interrotto. I1 punto di interruzione si può trovare, per esempio, anche all'interno di una funzione TRASMISSIONE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 455: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.5 Richiamo degli OB di comunicazione

Procedere nel modo seguente:

1. Richiamo della funzione INIZIALIZZAZIONE solo nel blocco per il nuovo avviamento OB 20 in una CPU.

2. Richiamo delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE o solo nel programma ciclico, o solo nel programma su interrupt periodico.

Doppio richiamo In dipendenza della parametrizzazione del DX O ("interruzione alla fine dei comandi") e del tipo di elaborazione (RIAWIAMENTO, gestione dell'interruzione, per esempio OB 26 per errore del tempo di ciclo) è possibile che una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE venga interrotta. Se nella interfaccia utente annidata nel punto di interruzione vi è a sua volta la chiamata ad una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE, essa viene rilevata come richiamo non ammesso (doppio richiamo) e quindi segnalata come errore (errore n. 67, paragrafo 10.2.8).

Elaborazione parallela

Quando la predisposizione della memoria intermedia è terminata (funzione INIZIALIZZAZIONE) le funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE possono essere parametrizzate a piacere e richiamate in combinazione libera, anche contemporaneamente da tutte le CPU e quindi parallelamente elaborate.

Se c'è una sola via di comunicazione (p. es. dalla CPU 2 alla CPU 3), allora è possibile l'elaborazione contemporanea della funzione TRASMISSIONE (sulla CPU 2) e della funzione RICEZIONE (sulla CPU 3): mentre la CPU 2 trasmette altri blocchi al coordinatore, la CPU 3 può ricevere gruppi di dati già memorizzati nella memoria intermedia del coordinatore.

Settori occupati I blocchi organizzativi di comunicazione non necessitano di alcuna memoria di lavoro (p. es. per la memorizzazione intermedia di variabili) e non richiamano alcun blocco dati. Essi naturalmente accedono a dei settori di memoria che contengono i parametri, dove solo quelli contrassegnati come parametri di uscita possono essere modificati.

Visualizzazione I blocchi organizzativi di comunicazione influiscono sulle visualizzazioni dei del risultato risultati (ANZ l/ANZ O, RLC ecc.). Informazioni ulteriori al riguardo si trovano

nel paragrafo 10.2.8.

Modifica degli accumulatori

CPU 922, CPU 928, CPU 928B: I1 contenuto degli accumulatori 1, 2, 3 e 4 ed il contenuto

dei registri non viene modificato da queste funzioni speciali per la comunicazione multiprocessore.

CPU 9461947, CPU 948: I1 contenuto di tutti i registri e gli accumulatori 1, 2 e 3

viene conservato, il contenuto di ACCU 4 invece viene modificato.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 456: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.6 Parametrizzazione degli OB di comunicazione

I parametri degli OB di comunicazione sono i seguenti:

parametri di ingresso,

parametri di uscita

parametri di richiamo.

I parametri si trovano nel settore dei merker M in un campo lungo al max. 10 byte. I1 campo dei parametri si suddivide in un settore per parametri di ingresso ed in uno per parametri di uscita.

Parametri di ingresso

Parametri di uscita

Parametri di richiamo

I parametri di ingresso determinano il modo in cui una funzione deve essere eseguita. Essi vengono interamente o parzialmente letti ed analizzati dagli OB di comunicazione. Accessi in scrittura non sono possibili.

I parametri di uscita comunicano al programma richiamante tutte le informazioni necessarie sul risultato del job emesso. Essi vengono interamente o parzialmente scritti dagli OB di comunicazione. Accessi in lettura non sono possibili.

Avvertenza È possibile predisporre un campo con 10 byte di merker per tutte le funzioni di comunicazione. Le singole funzioni necessitano però un numero di byte diverso. I1 numero necessario è riportato per le singole funzioni nei paragrafi da 10.4 in poi).

Per tutti i blocchi organizzativi di comunicazione, il numero del primo byte di merker nel campo dei parametri (= puntatore al campo dei dati) deve essere caricato nell'ACCU-1-L come parametro di richiamo. Valori permessi: da O a 246.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 457: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio

MB x + O: CPU in trasmissione Parametro di ingresso MB x + 1: - Non occupato

MB x + 2: Byte di visualizzazione Parametro di uscita MB x + 3: Capacita ricezione Parametro di uscita

MB x + 4: Identificatore blocco Parametro di uscita MB x + 5: Numero blocco Parametro di uscita

MB x + 6: Indirizzo della prima Parametro di uscita MB x + 7: parola dati ricevuta Parametro di uscita

MB x + 8: Indirizzo dell'ultima Parametro di uscita MB x + 9: parola dati ricevuta Parametro di uscita

Questo esempio illustra che il numero del primo byte di merker M nel campo dei parametri non deve essere maggiore di (MB) 246, altrimenti il settore dei parametri, la cui lunghezza è di 10 byte, supera il limite del campo dei merker (MB 255).

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 458: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.2.7 Analisi dei parametri di uscita

I parametri danno informazioni se una funzione può essere elaborata; in caso negativo, essi permettono di capire il motivo dell'interruzione della funzione.

Visualizzazione Le funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-TRASMISSIONE, del risultato RICEZIONE, TEST-RICEZIONE influiscono sulla visualizzazione dei risultati

(vedere anche i manuali di programmazione delle CPU, "Avvertenze generali per le operazioni STEP 5"):

I bit OV e OS (visualizzazione a parola) vengono sempre cancellati.

I bit OR, STA e ERAB (visualizzazione a bit) vengono sempre cancellati.

RLC, ANZ O ed ANZ 1 danno informazioni se una funzione è stata completamente e correttamente elaborata.

Tabella 10-1 Visualizzazioni degli OB di comunicazione

Nei capitoli successivi si suppone che il puntatore al campo dei parametri contenga un valore corretto. Nel primo byte dei parametri di uscita è codificato in modo dettagliato il motivo dell'interruzione.

Byte di visualizzazione

N. bit.

W = l : segnalazione

7

W

E = l : errore

I = l : conflitto di inizializzazione

6

F

Numero: - di una segnalazione - di un errore - di un conflitto di inizializzazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

5

I

4

O

3

Numero

2 1 O

Page 459: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

I1 primo byte nel campo dei parametri di uscita (byte di visualizzazione) segnala se una funzione è stata elaborata in modo corretto e completo. I1 motivo di un'interruzione della funzione viene rappresentato in modo più dettagliato che nella visualizzazione del risultato. Alle condizioni sopra riportate, che cioè almeno il puntatore al campo dei parametri contiene un valore corretto, questo byte è sempre significativo.

Se la funzione è stata correttamente e completamente eseguita, tutti i bit sono resettati (cioè = O), e tutti gli altri parametri di uscita sono significativi.

Se la funzione è stata interrotta con una segnalazione (bit n. 7 = l) , allora è significativa solo la capacità di trasmissione/ricezione, gli altri parametri di uscita (se presenti) non sono stati modificati.

Se la funzione è stata interrotta con un errore (bit n. 6 = 1) o con un conflitto di inizializzazione (bit n. 5 = l) , tutti gli altri parametri di uscita sono immutati.

Analisi del byte Gli indicatori 'W', 'E' ed 'I' permettono di dare un significato all'informazione di visualizzazione "numero".

Accanto a questa analisi a bit, è possibile interpretare l'intero byte come un numero in virgola fissa senza segn. Per l'interpretazione a byte del byte di visualizzazione risultano i gruppi di numeri con il seguente significato:

Tabella 10-2 Byte di visualizzazione degli OB di comunicazione /gruppi di numeri

Gli errori vengono riconosciuti e segnalati secondo l'ordine successiva dei numeri di errore. Ciò significa che anche se viene segnalato un solo errore (momentaneamente) possono esserci pertanto ulteriori errori. Questi ulteriori errori saranno segnalati poi alle chiamate successive.

Gruppo di numeri

O

33 ... 42

65 ... 73

129 ... 130

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Significato

Funzione eseguita in modo corretto e completo

Funzione interrotta per un conflitto di inizializzazione

Funzione interrotta per un errore

Funzione interrotta per una segnalazione

Page 460: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio seguita. Se successivamente vengono eseguite odifiche al programma e/o ai parametri e la funzione RASMISSIONE segnala di nuovo un errore con un numero aggiore di prima, questo significa che uno degli errori stato eliminato.

Conflitto di Un conflitto di inizializzazione può verificarsi solo durante la funzione inizializzazione INIZIALIZZAZIONE. I1 suo verificarsi richiede una diversa programmazione o

parametrizzazione.

Numeri di conflitto di inizializzazione (analisi a byte del byte di visualizzazione):

Tabella 10-3 Byte di visualizzazione: nn. di conflitto di inizializzazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte di visualizz.

33

34

35

36

37

38

39

Significato

I kachel necessan per la comunicazione multiprocessore (dal 252 al 255) non sono disponibili in tutto o in parte.

I kachel necessan per la comunicazione multiprocessore (dal 252 al 255) sono difettosi.

I l parametro "automatico/manuale" è errato. Sono da distinguere i seguenti casi:

- l'identificatore "automatico/manuale" è minore di 1 - l'identificatore "automatico/manuale" è maggiore di 2

Il parametro "numero delle CPU" è errato. Sono da distinguere i seguenti casi:

- il numero delle CPU è minore di 2 - il numero delle CPU è maggiore di 4

Il parametro "identificatore di blocco" è errato. Sono da distinguere i seguenti casi:

- l'identificatore di blocco è minore di 1 - l'identificatore di blocco è maggiore di 2

Il parametro "numero di blocco" è errato, dato che si tratta di un blocco dati con significato speciale. Sono da distinguere i seguenti casi:

- se l'identificatore di blocco = 1 : DB O, DB 1, DB 2 - se l'identificatore di blocco = 2 : DX O, DX 1, DX 2

Il parametro "numero di blocco" è errato, dato che il blocco dati parametnzzato non esiste.

Il parametro "indirizzo iniziale della lista di attribuzione" è troppo grande oppure il blocco dati è troppo corto.

La lista di attnbuzione nel blocco dati non è correttamente definita.

La somma dei settori di memoria assegnati è maggiore di 48.

Page 461: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Errori I1 verificarsi di un errore richiede una diversa programmazione o parametrizzazione.

Numeri di errore (analisi a byte del byte di visualizzazione):

Tabella 10-4 Byte di visualizzazione: numeri di errore

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte di visualizz.

65

66

67

68

69

70

71

Significato

Il parametro "CPU in ricezione" (TRASMISSIONE, TEST-TRASMISSIONE) è errato. Sono da distinguere i seguenti casi:

- il numero della "CPU in ricezione" è maggiore di 4. - il numero della "CPU in ricezione" è minore di 1. - il numero della "CPU in ricezione" è uguale al "propno" numero.

Il parametro "CPU in trasmissione" (RICEZIONE, TEST-RICEZIONE) è errato. Sono da distinguere i seguenti casi:

- il numero della "CPU in trasmissione" è maggiore di 4. - il numero della "CPU in trasmissione" è minore di 1. - il numero della "CPU in trasmissione" è uguale al "propno" numero.

Il richiamo del blocco organizzativo speciale è errato (TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE). Sono da distinguere i seguenti casi:

- La funzione INIZIALIZZAZIONE non è stata richiamata oppure è terminata con un conflitto di inizializzazione.

- Doppia chiamata: il richiamo di una delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE non è permesso in quanto in questa CPU ad un altro livello di elaborazione (per esempio elaborazione ciclica del programma) è già stata richiamata una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE

- I1 numero "propno" della CPU è errato (dati di sistema persi); dopo un RITORNO DI TENSIONE il numero della CPU viene nuovamente generato dal programma di sistema.

I dati di gestione (gestione della coda di attesa) delle vie di comunicazione scelte sono errati; bisogna nuovamente definire la memoria intermedia del coordinatore 923C con l'aiuto della funzione INIZIALIZZAZIONE (TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE).

Il parametro "identificatore di blocco" (TRASMISSIONE) o quello comunicato dal trasmettitore (RICEZIONE) è errato. Sono da distinguere i seguenti casi:

- l'identificatore di blocco è minore di 1. - l'identificatore di blocco è maggiore di 2.

I1 parametro "numero di blocco" (TRASMISSIONE) o quello comunicato dal trasmettitore (RICEZIONE) è errato, dato che si tratta di un blocco dati con significato speciale. Sono da distinguere i seguenti casi:

- se l'identificatore di blocco = 1 : DB O, DB 1, DB 2 - se l'identificatore di blocco = 2 : DX O, DX 1, DX 2

Il parametro "numero di blocco" (TRASMISSIONE) o quello comunicato dal trasmettitore (RICEZIONE) è errato, dato che il blocco dati parametnzzato non esiste.

Page 462: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Segnalazioni

Byte di visuaiizz.

Non è stato possibile eseguire la funzione; la chiamata alla funzione deve essere ripetuta, per esempio nel prossimo ciclo.

Significato

Numeri di segnalazione (analisi a byte del byte di visualizzazione):

Tabella 10-5 Byte di visualizzazione: numeri di segnalazione

Continuazione della tabella 10-4:

72

73

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Il parametro "numero di gruppo" (TRASMISSIONE) è errato. Il blocco dati è troppo corto, oppure il numero di gruppo troppo grande.

Il blocco dati è troppo piccolo per poter contenere il gruppo di dati (RICEZIONE) inviato dal trasmettitore.

Byte di visuaiizz.

129

130

Significato

La funzione TRASMISSIONE non può inviare alcun dato, dato che la capacità di trasmissione era nulla al momento del richiamo della funzione.

La funzione RICEZIONE non può ricevere alcun dato, dato che la capacità di ricezione era nulla al momento del richiamo della funzione.

Page 463: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.3 Tempo di esecuzione degli OB di comunicazione

I1 "tempo di esecuzione" è il tempo di elaborazione dei blocchi organizzativi speciali.

Tabella 10-6 Tempi di esecuzione degli OB di comunicazione

I1 tempo tra la chiamata di un blocco e la fine della sua elaborazione può diventare notevolmente maggiore se esso viene interrotto da attività con priorità maggiori (per esempio attualizzazione dei temporizzatori ecc.).

OB speciali

I tempi di esecuzione riportati in tabella 10-6 sono validi a condizione che dalle 4 possibili CPU inserite, acceda al bus interno S5 solo quella su cui si deve misurare il tempo. Nel caso in cui altre CPU accedano frequentemente al bus S5, questi tempi sono destinati ad aumentare, in particolare per le funzioni di ricezione/trasmissione.

Nome del blocco

OB 2001 Inizializzazione

OB 2021 Trasmissione

OB 2031 Test trasmiss.

OB 2041 Ricezione

OB 2051 Test-ricezione

Tempo di trasmissione

Un'importante caratteristica di una via di comunicazione (p. es. dalla CPU 1 alla CPU 2) è il tempo totale di trasmissione dei dati. Esso è la somma delle 3 seguenti componenti:

CPU 928

104 ms

533 p3

(200 ps tempo base t 10,5 pslparola);

92 ps per segnalazione

40 ys

528 p3

(195 ps tempo base t 10,5 pslparola);

79 ps per segnalazione

39 ys

durata della trasmissione (vedere il tempo di esecuzione)

durata della memorizzazione intermedia (nel coordinatore KOR 923C)

CPU 928B

104 ms

533 p (200 ps tempo base t 10,5 pslparola);

92 ps per segnalazione

40 ps

528 P (195 ps tempo base t 10,5 pslparola);

79 ps per segnalazione

39 ps

durata della ricezione (vedere il tempo di esecuzione)

CPU 948

90 ms

542 p (220 p tempo base

t 19 psldoppia parola); 110 ps per segnalazione

115 ps

506 p (218 ps tempo base t 18 pldoppia parola);

132 ps per segnalazione

120 ps

Quanto a lungo i dati da trasmettere rimangono "per strada" dipende essenzialmente dalla durata della memorizzazione intermedia che a sua volta viene determinata dalla struttura del programma utente (vedere anche "Memorizzazione intermedia dei dati").

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 464: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.4 Funzione INIZIALIZZAZIONE (OB 200)

10.4.1 Funzione

Per poter trasferire dei dati da una CPU ad un'altra, i parametri devono essere memorizzati temporaneamente. La funzione INIZIALIZZAZIONE definisce a questo scopo una memoria intermedia nel coordinatore KOR 923C. La capacità di memoria viene impostata (inizializzata) con settori di memoria con una lunghezza fissa di 32 parole.

Ogni settore di memoria contiene sempre un gruppo di dati (con una lunghezza da 1 a 32 parole). Un gruppo di dati viene scritto in un settore di memoria con una funzione TRASMISSIONE e quindi estromesso con una funzione RICEZIONE.

Con due CPU inserite, è possibile avere due vie di comunicazione (cioè direzioni di trasferimento o "canali"):

Con tre CPU inserite, è possibile avere sei vie di comunicazione:

CPU 1 CPU 2

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

C P U 1 CPU 2

A A

CPU 3

Page 465: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Con quattro CPU inserite, è possibile avere dodici vie di comunicazione:

Con la funzione INIZIALIZZAZIONE vengono associati i 48 settori di memoria a disposizione alle 12 (al massimo) vie di comunicazione. Cioè: per ogni possibile via di comunicazione, caratterizzata dai parametri "CPU in trasmissione" e "CPU in ricezione", è a disposizione una determinata capacità di memoria.

CPU 1

Avvertenza Prima che le funzioni TRASMISSIONE / TEST-TRASMISSIONE / RICEZIONE / TEST-RICEZIONE possano essere richiamate dalle varie CPU, bisogna che la funzione INIZIALIZZAZIONE sia richiamata ed eseguita correttamente e completamente da una CPU.

CPU 2

Nel caso in cui la funzione INIZIALIZZAZIONE venga richiamata più volte, vale l'ultima parametrizzazione eseguita. Durante l'esecuzione della funzione INIZIALIZZAZIONE su una CPU, sulle altre CPU non può essere richiamata alcuna altra funzione di comunicazione multiprocessore, nemmeno la funzione INIZIALIZZAZIONE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

A A

Y

A A

CPU 4 CPU 3 b

Page 466: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.4.2 Parametri di richiamo

Struttura del Prima di richiamare I'OB 200 bisogna mettere a disposizione i parametri di campo dati dei ingresso nel campo dati. L'OB 200 necessita di 8 byte di merker M nel campo parametri dati per i parametri di ingresso e di uscita.

M B x + O : Modo di funzionamento (automatico/manuale) Parametro di ingresso

M B x + l : Numero delle CPU Parametro di ingresso MB x + 2: Identificatore di blocco Parametro di ingresso M B x + 3 : Numero di blocco Parametro di ingresso

Indirizzo iniziale della Parametro di ingresso M B x + 5 : M + 4 H lista di attribuzione Parametro di ingresso

MB x + 6: Byte di visualizzazione Parametro di uscita M B x + 7 : Capacità totale Parametro di uscita

Richiamando I'OB 200, mettere in ACCU-1-L il numero del byte di merker con cui comincia il campo dati dei parametri:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 467: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.4.3 Parametri di ingresso

Modo di Modo di funzionamento = 1: automatico funzionamento Modo di funzionamento = 2: manuale (automaticol Modo di funzionamento = O oppure 3...255: non permesso, provoca un conflitto manuale) di inizializzazione

Numero delle Questo parametro è significativo solo se è attivato il modo di funzionamento CPU "automatico". Con l'impostazione "automatico", i settori di memoria a

disposizione vengono ripartiti in modo uguale tra le CPU inserite:

Identificatore e I parametri sono significativi solo se è attivato il modo di funzionamento numero di "manuale". In questo caso, l'utente deve definire in un blocco dati una lista di blocco, indirizzo attribuzione con la quale si attribuisce ad ognuna delle 12 vie di comunicazione iniziale della lista (al massimo) una parte dei 48 settori di memoria. Questa funzione ha di attribuzione particolarmente senso qualora non tutte le CPU debbano trasmettere la stessa

quantità di dati.

Numero deiie CPU

2

3

4

O; 1; 5 ... 255

Alle CPU che non partecipano alla comunicazione multiprocessore non occorre (e non si dovrebbero) associare dei settori di memoria. I parametri

identificatore di blocco,

Numero deiie vie di comunicazione

2

6

12

numero di blocco

Settori di memoria per via di comunicazione

24

8

4

indirizzo iniziale della lista di attribuzione

Non permesso, provoca un conflitto di inizializzazione

determinano dove si trova la lista di attribuzione.

Identificatore di Identificatore = 1: blocco dati DB blocco Identificatore = 2: blocco dati DX

Identificatore = O oppure 3...255: non permesso, provoca un conflitto di inizializzazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 468: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Numero di blocco Come numero di blocco bisogna introdurre il numero del blocco dati DB o DX in cui si trova la lista di attribuzione.

Indirizzo iniziale I1 numero di blocco, insieme all'identificatore ed il numero di blocco, determina della lista di il settore (o meglio l'indirizzo iniziale del settore) nel blocco dati in cui la lista di attribuzione attribuzione risiede.

Definire come indirizzo iniziale della lista di attribuzione nei byte di merker MB x+4 @yte high) e MB x+5 @yte low) il numero della parola dati con cui comincia la lista di attribuzione.

Lista di attribuzione

La lista di attribuzione determina quanti dei 48 settori di memoria disponibili devono essere associati alle singole vie di comunicazione.

Questa lista non viene modificata dal programma di sistema. Essa è strutturata come segue:

Tabella 10-7 Lista di attribuzione per OB 200 (inizializzazione)

Invece delle lettere minuscole da a ad m (stampate in neretto) bisogna inserire numeri da O a 48 secondo l'assegnazione dei settori di memoria; la loro somma non deve essere maggiore di 48.

Parola dati

DW n t O DW n + 1 DW n t 2 DW n t 3

DW n t 4 DW n t 5 DW n t 6 DW n t 7

DW n t 8 DW n t 9 DW n t 10 DW n t l1

DW n t 12 DW n t 13 DW n t 14 DW n t 15

Avvertenza La struttura indicata nella tabella 10-7 deve essere mantenuta anche quando si usano meno di quattro CPU.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Formato

KC KY KY KY

KC KY KY KY

KC KY KY KY

KC KY KY KY

Valore

S 1 2 , a 3 , b 4 , c

S2 l , d 3 , e 4 , f

S3

2 , h 4 , i

S4 l , k 2 , 1 3 , m

Significato

CPU in trasm. = CPU 1 CPU in ricez. = CPU 2 CPU in ricez. = CPU 3 CPU in ricez. = CPU 4

CPU in trasm. = CPU 2 CPU in ricez. = CPU 1 CPU in ricez. = CPU 3 CPU in ricez. = CPU 4

CPU in trasm. = CPU 3 CPU in ricez. = CPU 1 CPU in ricez. = CPU 2 CPU in ricez. = CPU 4

CPU in trasm. = CPU 4 CPU in ricez. = CPU 1 CPU in ricez. = CPU 2 CPU in ricez. = CPU 3

Page 469: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio

conferme. Tra la CPU 1 e la CPU 3 non avviene alcun scambio di dati.

La lista di attribuzione viene memorizzata nel blocco dati DB 40 dalla parola dati DW O e contiene i seguenti parametri:

DB40 FD: CPU928ST. S5D

in trasm. : CPU 1 in ricez. : CPU 2/2 gruppi in ricez. CPU 3/nessun gruppo in ricez. CPU 4 (non presente)/nessun gruppo in trasm. CPU 2 in ricez. CPU 1/22 gruppi in ricez. CPU 3/22 gruppi in ricez. : CPU 4 (non presente)/nessun gruppo in trasm. : CPU 3 in ricez. : CPU l/nessun gruppo in ricez. : CPU 2/2 gruppi in ricez. : CPU 4 (non presente)/nessun gruppo in trasm. : CPU 4 (non presente) in ricez. CPU l/nessun gruppo in ricez. CPU 2/nessun gruppo in ricez. CPU 3/nessun gruppo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 470: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.4.4 Parametri di uscita

Byte di Questo byte segnala se la funzione INIZIALIZZAZIONE è stata eseguita visualizzazione correttamente e completamente.

Conflitto di I conflitti di inizializzazione vengono riconosciuti e visualizzati secondo il loro inizializzazione numero crescente.

Un conflitto di inizializzazione verificatosi richiede una modifica della programmazione o della parametrizzazione.

Nel byte di visualizzazione possono apparire tutti i numeri indicati nella tabella seguente.

Tabella 10-7 Byte di visualizzazione: numeri di segnalazione

Errore

Byte di visualizz.

33

34

35

36

37

38

39

40

41

42

Con la funzione INIZIALIZZAZIONE non si può verificare alcuna segnalazione del gruppo di numeri "errore".

Significato

I kachel necessari per la comunicazione multiprocessore (dal 252 al 255) non sono disponibili in tutto o in parte.

I kachel necessari per la comunicazione multiprocessore (dal 252 al 255) sono difettosi.

Il parametro "automatico/manuale" è errato. Sono da distinguere i seguenti casi:

- l'identificatore "automatico/manuale" è minore di 1 - l'identificatore "automatico/manuale" è maggiore di 2

Il parametro "numero delle CPU" è errato. Sono da distinguere i seguenti casi:

- il numero delle CPU è minore di 2 - il numero delle CPU è maggiore di 4

Il parametro "identificatore di blocco" è errato. Sono da distinguere i seguenti casi:

- l'identificatore di blocco è minore di 1 - l'identificatore di blocco è maggiore di 2

Il parametro "numero di blocco" è errato, dato che si tratta di un blocco dati con significato speciale. Sono da distinguere i seguenti casi:

- se l'identificatore di blocco = 1 : DB O, DB 1, DB 2 - se l'identificatore di blocco = 2 : DX O, DX 1, DX 2

Il parametro "numero di blocco" è errato, dato che il blocco dati parametrizzato non esiste.

Il parametro "indirizzo iniziale della lista di attribuzione" è troppo grande oppure il blocco dati è troppo corto.

La lista di attribuzione nel blocco dati non è correttamente definita.

La somma dei settori di memoria assegnati è maggiore di 48.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 471: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Segnalazione Con la funzione INIZIALIZZAZIONE non si può verificare alcuna segnalazione del gruppo di numeri "segnalazione".

Capacità totale Questo parametro stabilisce quanti settori di memoria (dei 48 a disposizione) sono associati alle varie vie di comunicazione. Nel modo di funzionamento "automatico", questo parametro è sempre uguale a 48. Nel modo di funzionamento "manuale", il valore può essere minore di 48. Questo significherebbe che la capacità di memoria non viene utilizzata del tutto.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 472: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.5 Funzione TRASMISSIONE (OB 202)

10.5.1 Funzione

La funzione TRASMISSIONE trasmette un gruppo di dati alla memoria intermedia del coordinatore KOR 923C e indica quanti gruppi di dati possono ancora essere trasmessi e memorizzati.

10.5.2 Parametri di richiamo

Struttura del Prima di richiamare I'OB 202 bisogna mettere a disposizione i parametri di ingresso campo dati nel campo dati. L'OB 202 necessita di 6 byte di merker M nel campo dati per i dei parametri parametri di ingresso e di uscita.

M B x + O : CPU in ricezione parametro di ingresso M B x + l : Identificatore di blocco parametro di ingresso MB x + 2: Numero di blocco parametro di ingresso M B x + 3 : Numero di gruppo parametro di ingresso

M B x + 4 : Byte di visualizzazione parametro di uscita M B x + 5 : Capacità di trasmissione parametro di uscita

Richiamando I'OB 202, mettere in ACCU-1-L il numero del byte di merker con cui comincia il campo dati dei parametri:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 473: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.5.3 Parametri di ingresso

CPU in ricezione I dati da trasmettere sono destinati alla CPU in ricezione (destinazione); il valore ammesso è da 1 a 4. Non è permesso il numero della CPU stessa.

Identificatore Identificatore = 1 : blocco dati DB di blocco Identificatore = 2 : blocco dati DX

Identificatore = O oppure 3 ... 255: non permesso, provoca una segnalazione di errore.

Numero di blocco I1 numero di blocco assieme all'identificatore di blocco ed al numero di gruppo identifica il settore da cui devono essere prelevati i dati da trasmettere (e nel quale devono essere depositati sulla CPU in ricezione).

Con ciò bisogna fare attenzione che certi blocchi dati hanno significati speciali e cioè i DB O, DB 1, DB 2 e DX O (vedere il manuale di programmazione della relativa CPU). Essi quindi non possono essere usati per il trasferimento di dati qui descritto! L'utilizzo di questo numero di blocco causa l'interruzione della funzione con una segnalazione di errore.

Numero di gruppo

I1 numero di gruppo identifica il settore dei dati da trasmettere.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Numero di gmPP0

O 1

2 3

4 5

6 7

8 9

Campo dei dati

Prima parola dati

DW O DW 32

DW 64 DW 96

DW 128 DW 160

DW 192 DW 224

DW 256 DW 288

Ultima parola dati

DW 31 DW 63

DW 95 DW 127

DW 159 DW 191

DW 223 DW 255

DW 287 DW 319

Page 474: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Esempio

Sono da distinguere i seguenti casi:

I1 DB è più lungo del settore di sorgente: Se il blocco dati è sufficientemente lungo, ne risulta un settore di 32 parole per gruppo secondo la tabella sopra riportata.

I1 DB è troppo corto: Se la fine del blocco è all'interno del gruppo parametrizzato, viene trasmesso un settore con una lunghezza tra 1 e 31 parole nel ultimo blocco.

I1 gruppo si trova al di fuori del DB: Se l'indirizzo della prima parola dati comunicata è già oltre la lunghezza del blocco dati, la funzione TRASMISSIONE riconosce l'errore e lo visualizza.

Prima DW: Ultima DW:

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 475: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.5.4 Parametri di uscita

Byte di Questo byte segnala se la funzione TRASMISSIONE è stata eseguita in modo visualizzazione corretto e completo.

Conflitto di Con la funzione TRASMISSIONE non si può verificare alcuna segnalazione del inizializzazione gruppo di numeri "conflitto di inizializzazione".

Errore Al richiamo della funzione TRASMISSIONE possono presentarsi i seguenti numeri di errore (analisi a byte del byte di visualizzazione):

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte di visualizz.

65

67

68

69

70

71

72

Significato

Il parametro "CPU in ricezione" è errato. Sono da distinguere i seguenti casi:

- il numero della CPU in ricezione è maggiore di 4. - il numero della CPU in ricezione è minore di 1. - il numero della CPU in ricezione è uguale al "proprio" numero.

Il richiamo del blocco organizzativo speciale è errato. Sono da distinguere i seguenti casi:

- La funzione INIZIALIZZAZIONE non è stata richiamata oppure è terminata con un conflitto di inizializzazione

- Doppia chiamata: il richiamo di una delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE non è permesso in quanto in questa CPU ad un altro livello di elaborazione @. es. elaborazione ciclica del programma) è già stata richiamata una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-

TRASMISSIONE, RICEZIONE, TEST- RICEZIONE - Il numero "proprio" della CPU è errato (dati di sistema persi); dopo un RITORNO DI TENSIONE il numero della CPU viene nuovamente generato dal programma di sistema.

I dati di gestione (gestione della coda di attesa) delle vie di comunicazione scelte sono errati; bisogna nuovamente definire la memoria intermedia del coordinatore 923C con l'aiuto della funzione INIZIALIZZAZIONE.

Il parametro "identificatore di blocco" è errato. Sono da distinguere i seguenti casi:

- l'identificatore di blocco è minore di 1. - l'identificatore di blocco è maggiore di 2.

Il parametro "numero di blocco" è errato, dato che si tratta di un blocco dati con significato speciale. Sono da distinguere i seguenti casi:

- se l'identificatore di blocco = 1: DB O, DB 1, DB 2 - se l'identificatore di blocco = 2: DX O, DX 1, DX 2

Il parametro "numero di blocco" è errato, dato che il blocco dati parametrizzato non esiste.

Il parametro "numero di gruppo" è errato. Il blocco dati è troppo corto, oppure il numero di gruppo troppo grande.

Page 476: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Segnalazione Non è stato possibile eseguire la funzione; la chiamata alla funzione deve essere ripetuta, p. es. nel prossimo ciclo.

Può apparire il seguente numero di segnalazione (analisi a byte del byte di visualizzazione):

Capacità di I1 parametro "capacità di trasmissione" evidenzia quanti gruppi di dati possono trasmissione ancora essere trasmessi e scritti nella memoria intermedia.

Byte di visualizz.

129

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Significato

La funzione TRASMISSIONE non può inviare alcun dato, dal momento che la capacità di trasmissione (vedere sotto) era nulla al momento del richiamo della funzione.

Page 477: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.6 Funzione TEST-TRASMISSIONE (OB 203)

10.6.1 Funzione

La funzione TEST-TRASMISSIONE evidenzia il numero dei settori di memoria liberi sul coordinatore KOR 923 C. Riguardo questo numero m, la funzione TRASMISSIONE può essere richiamata m volte al fine di trasmettere m gruppi di dati.

10.6.2 Parametri di richiamo

Struttura del Prima di richiamare I'OB 203 bisogna mettere a disposizione i parametri di campo dati ingresso nel campo dati. L'OB 203 necessita di 4 byte di merker M nel campo dei parametri dati per i parametri di ingresso e di uscita.

M B x + O : CPU in ricezione Parametro di ingresso M B x + l : - Non occupato

MB x + 2: Byte di visualizzazione Parametro di uscita M B x + 3 : Capacità di trasmissione Parametro di uscita

Richiamando I'OB 203, mettere in ACCU-1-L il numero del byte di merker con cui comincia il campo dati dei parametri:

10.6.3 Parametri di ingresso

CPU in ricezione I1 numero della CPU stessa, assieme al numero della CPU in ricezione, contrassegna la via di comunicazione per la quale viene richiesta la capacità di trasmissione.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 478: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.6.4 Parametri di uscita

Byte di Questo byte segnala se la funzione TEST-TRASMISSIONE è stata eseguita in visualizzazione modo corretto e completo.

Conflitto di Con la funzione TEST-TRASMISSIONE non si può verificare alcuna inizializzazione segnalazione del gruppo di numeri "conflitto di inizializzazione".

Errore Al richiamo della funzione TEST-TRASMISSIONE possono verificarsi i seguenti numeri di errore (analisi a byte del byte di visualizzazione):

Segnalazione Con la funzione TEST-TRASMISSIONE non può verificarsi alcuna segnalazione del gruppo di numeri "segnalazione".

Byte di visualizz.

65

67

68

Capacità di I1 parametro "capacità di trasmissione" evidenzia quanti gruppi di dati possono trasmissione ancora essere trasmessi e scritti nella memoria intermedia.

Significato

Il parametro "CPU in ricezione" è errato. Sono da distinguere i seguenti casi:

- il numero della CPU in ricezione è maggiore di 4. - il numero della CPU in ricezione è minore di 1. - il numero della CPU in ricezione è uguale al "proprio" numero.

Il richiamo del blocco organizzativo speciale è errato. Sono da distinguere i seguenti casi:

- La funzione INIZIALIZZAZIONE non è stata richiamata oppure è terminata con un conflitto di inizializzazione

- Doppia chiamata: il richiamo di una delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE non è permesso in quanto in questa CPU ad un altro livello di elaborazione @. es. elaborazione ciclica del programma) è già stata richiamata una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-

TRASMISSIONE, RICEZIONE, TEST- RICEZIONE - Il numero "proprio" della CPU è errato (dati di sistema persi); dopo un RITORNO DI TENSIONE il numero della CPU viene nuovamente generato dal programma di sistema.

I dati di gestione (gestione della coda di attesa) delle vie di comunicazione scelte sono errati; bisogna nuovamente definire la memoria intermedia del coordinatore 923C con l'aiuto della funzione INIZIALIZZAZIONE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 479: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.7 Funzione RICEZIONE (OB 204)

10.7.1 Funzione

La funzione RICEZIONE prende un gruppo di dati dalla memoria intermedia del coordinatore KOR 923C e visualizza quanti gruppi di dati sono ancora memorizzati e possono quindi essere ricevuti. La funzione RICEZIONE dovrebbe essere richiamata in un loop finchè tutti i gruppi di dati memorizzati sono ricevuti.

10.7.2 Parametri di richiamo

Struttura del Prima di richiamare I'OB 204 bisogna mettere a disposizione i parametri di campo dati ingresso nel campo dati. L'OB 204 necessita di 10 byte di merker M nel campo dei parametri dati per i parametri di ingresso e di uscita.

M B x + O : CPU in trasmissione M B x + l : -

Byte di visualizzazione Capacità di ricezione Identificatore di blocco Numero di blocco Indirizzo della prima parola dati ricevuta Indirizzo dell'ultima parola dati ricevuta

Parametro di ingresso Non occupato

Parametro di uscita Parametro di uscita Parametro di uscita Parametro di uscita Parametro di uscita Parametro di uscita Parametro di uscita Parametro di uscita

Richiamando I'OB 204, mettere in ACCU-1-L il numero del byte di merker con cui comincia il campo dati dei parametri:

10.7.3 Parametri di ingresso

CPU in La funzione RICEZIONE riceve dati trasmessi dalla CPU in trasmissione. trasmissione Bisogna indicare il numero della CPU in trasmissione. Il valore permesso è

compreso tra 1 e 4, ma non deve essere il numero della CPU stessa.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 480: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.7.4 Parametri di uscita

Byte di Questo byte segnala se la funzione RICEZIONE è stata eseguita in modo corretto visualizzazione e completo.

Conflitto di Con la funzione RICEZIONE non si può verificare alcuna segnalazione del gruppo inizializzazione di numeri "conflitto di inizializzazione".

Errore Al richiamo della funzione RICEZIONE possono verificarsi i seguenti numeri di errore (analisi a byte del byte di visualizzazione):

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Byte di visualizz.

66

67

68

69

70

71

73

Significato

Il parametro "CPU in trasmissione" è errato. Sono da distinguere i seguenti casi:

- il numero della CPU in ricezione è maggiore di 4. - il numero della CPU in ricezione è minore di 1. - il numero della CPU in ricezione è uguale al

"proprio" numero.

Il richiamo del blocco organizzativo speciale è errato. Sono da distinguere i seguenti casi:

- La funzione INIZIALIZZAZIONE non è stata richiamata oppure è terminata con un conflitto di inizializzazione

- Doppia chiamata: il richiamo di una delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE non è permesso in quanto in questa CPU ad un altro livello di elaborazione @. es. elaborazione ciclica del programma) è già stata richiamata una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-

TRASMISSIONE, RICEZIONE, TEST- RICEZIONE - Il numero "proprio" della CPU è errato (dati di sistema persi); dopo un RITORNO DI TENSIONE il numero della CPU viene nuovamente generato dal programma di sistema.

I dati di gestione (gestione della coda di attesa) delle vie di comunicazione scelte sono errati; bisogna nuovamente definire la memoria intermedia del coordinatore 923C con l'aiuto della funzione INIZIALIZZAZIONE.

Il parametro "identificatore di blocco" è errato. Sono da distinguere i seguenti casi:

- l'identificatore di blocco è minore di 1. - l'identificatore di blocco è maggiore di 2.

Il parametro "numero di blocco" è errato, dato che si tratta di un blocco dati con significato speciale. Sono da distinguere i seguenti casi:

- se l'identificatore di blocco = 1: DB O, DB 1, DB 2 - se l'identificatore di blocco = 2: DX O, DX 1, DX 2

Il parametro "numero di blocco" comunicato dal trasmettitore è errato, dato che il blocco dati parametrizzato non esiste.

Il blocco dati è troppo piccolo per poter contenere il gruppo di dati inviato dal trasmettitore.

Page 481: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

Segnalazione Non è stato possibile eseguire la funzione; la chiamata alla funzione deve essere ripetuta, per esempio nel prossimo ciclo.

Può essere emesso il seguente numero di segnalazione (analisi a byte del byte di visualizzazione):

Capacità di I1 parametro "capacità di ricezione" evidenzia quanti gruppi di dati sono ancora ricezione contenuti nella memoria intermedia e possono quindi essere ricevuti.

Byte di visualizz.

130

Identificatore di Identificatore = 1 : blocco dati DB blocco Identificatore = 2 : blocco dati DX

Identificatore = O oppure 3 ... 255: non permesso, provoca una segnalazione di errore.

Significato

La funzione RICEZIONE non può ricevere alcun dato, dal momento che la capacità di ricezione era nulla al momento del richiamo della funzione.

Numero di blocco Numero di blocco del DB/DX in cui i dati sono stati ricevuti e memorizzati (e da cui sono stati prelevati dalla funzione TRASMISSIONE sulla CPU in trasmissione).

Con ciò bisogna fare attenzione che il blocco dati per la ricezione si trovi in una memoria a scrittura/lettura (RAM); l'uso di una memoria a solo lettura (EPROM) ha senso solo per un blocco dati di trasmissione.

Indirizzo della Numero di parola dati all'interno del DB/DX in cui è stata memorizzata la prima prima parola dati parola dati trasmessa/ricevuta. ricevuta

Indirizzo Numero di parola dati all'interno del DB/DX in cui è stata memorizzata l'ultima dell'ultima parola parola dati trasmessa/ricevuta. dati ricevuta

Avvertenza La differenza tra gli indirizzi della prima e dell'ultima parola dati trasmessa può essere al massimo 31, dato che ad ogni richiamo di funzione vengono trasmesse al massimo 32 parole.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 482: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.8 Funzione TEST-RICEZIONE (OB 205)

10.8.1 Funzione

La funzione TEST-RICEZIONE evidenza il numero dei settori di memoria occupati sul coordinatore KOR 923 C. Riguardo questo numero m, la funzione RICEZIONE può essere richiamata m volte per ricevere m gruppi di dati.

10.8.2 Parametri di richiamo

Struttura del Prima di richiamare I'OB 205 bisogna mettere a disposizione i parametri di campo dati ingresso nel campo dati. L'OB 205 necessita di 4 byte di merker M nel campo dei parametri dati per i parametri di ingresso e di uscita.

M B x + O : CPU in trasmissione Parametro di ingresso M B x + l : - Non occupato

MB x + 2: Byte di visualizzazione Parametro di uscita M B x + 3 : Capacità di ricezione Parametro di uscita

Richiamando I'OB 205, mettere in ACCU-1-L il numero del byte di merker con cui comincia il campo dati dei parametri:

10.8.3 Parametri di ingresso

CPU in I1 numero della CPU stessa, assieme al numero della CPU in trasmissione, trasmissione contrassegna la via di comunicazione per la quale viene richiesta la capacità di

ricezione.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 483: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.8.4 Parametri di uscita

Byte di Questo byte segnala se la funzione TEST-RICEZIONE è stata eseguita in modo visualizzazione corretto e completo.

Conflitto di Con la funzione TEST-RICEZIONE non si può verificare alcuna segnalazione del inizializzazione gruppo di numeri "conflitto di inizializzazione".

Errore

Segnalazione

Capacità di ricezione

Al richiamo della funzione TEST-RICEZIONE possono verificarsi i seguenti numeri di errore (analisi a byte del byte di visualizzazione):

Con la funzione TEST-RICEZIONE non si può verificare alcuna segnalazione del gruppo di numeri "segnalazione".

Byte di visualizz.

66

67

68

I1 parametro "capacità di ricezione" evidenzia quanti gruppi di dati sono ancora contenuti nella memoria intermedia e possono quindi essere ricevuti.

Significato

Il parametro "CPU in trasmissione" è errato. Sono da distinguere i seguenti casi:

- il numero della CPU in ricezione è maggiore di 4. - il numero della CPU in ricezione è minore di 1. - il numero della CPU in ricezione è uguale al "proprio" numero.

Il richiamo del blocco organizzativo speciale è errato. Sono da distinguere i seguenti casi:

- La funzione INIZIALIZZAZIONE non è stata richiamata oppure è terminata con un conflitto di inizializzazione

- Doppia chiamata: il richiamo di una delle funzioni TRASMISSIONE, TEST-TRASMISSIONE, RICEZIONE, TEST-RICEZIONE non è permesso in quanto in questa CPU ad un altro livello di elaborazione @. es. elaborazione ciclica del programma) è già stata richiamata una delle funzioni INIZIALIZZAZIONE, TRASMISSIONE, TEST-

TRASMISSIONE, RICEZIONE, TEST- RICEZIONE - Il numero "proprio" della CPU è errato (dati di sistema persi); dopo un RITORNO DI TENSIONE il numero della CPU viene nuovamente generato dal programma di sistema.

I dati di gestione (gestione della coda di attesa) delle vie di comunicazione scelte sono errati; bisogna nuovamente definire la memoria intermedia del coordinatore KOR 923C con l'aiuto della funzione INIZIALIZZAZIONE.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 484: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multi~rocessore

10.9 Applicazioni

In questo paragrafo saranno dati alcuni esempi di programmazione della comunicazione multiprocessore.

Avvertenza Utilizzando uno dei blocchi funzionali di seguito riportati o uno dei blocchi di allarme (per esempio OB 2), bisogna fare attenzione che all'inizio dell'elaborazione di un'interruzione i merker S vengano salvati e ripristinati alla sua fine. Questo vale anche per l'impostazione "interruzione alla fine dei blocchi" poiché il richiamo della funzione speciale rappresenta una fine blocco.

10.9.1 Richiamo degli OB speciali tramite blocchi funzionali

I cinque seguenti blocchi funzionali (FB 200 e da FB 202 a FB 205) danno un esempio di come possano essere gestiti i blocchi organizzativi speciali per la comunicazione multiprocessore (OB 200 e da OB 202 ad OB 205). I numeri dei blocchi funzionali sono liberi e possono essere definiti a piacere. I parametri degli OB speciali vengono definiti come parametri attuali al momento della chiamata del relativo blocco funzionale. La chiamata diretta dei blocchi organizzativi speciali è ottimale come tempo di esecuzione, ma è difficilmente leggibile a causa della mancanza di operandi formali.

I1 campo dei merker da MB 246 a MB 255 (al massimo) viene utilizzato dai blocchi funzionali come campo dei parametri degli OB speciali.

Numero FB

FB 200

FB 202

FB 203

FB 204

FB 205

I1 preciso significato dei parametri di ingresso e di uscita è da ricercare nella descrizione dell'OB speciale richiamato dal blocco funzionale.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Nome FB

INIZIALIZZ.

TRASMISS.

TST-TRASM.

RICEZIONE

TEST-RICEZ.

Funzione

Predisposizione

Trasmissione di un gruppo di dati

Test delle possibilità di trasmissione

Ricezione di un gruppo di dati

Test delle possibilità di ricezione

Page 485: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Avvertenza I seguenti esempi sono applicazioni pronte per l'uso che possono essere programmate introducendole così come sono.

Programmazione dei blocchi funzionali

FB 200

INIZIALIZZ.

(l) -- AUMA INIK p

(2) P ANZC GKAP p

(4) ANFZ

Automatico/manuale

Numero delle CPU

Tipo (H-byte) e numero (L-byte) del blocco dati contenente la lista di attribuzione

Indirizzo iniziale della lista di attribuzione

Conflitto di inizializzazione

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 486: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

SEGMENTO 1 N0ME:INIZIALIZZ. SIG :AUMA E/A/D/B/T/Z: E BI/BY/W/D: BY SIG :ANZC E/A/D/B/T/Z: E BI/BY/W/D: BY SIG :TNZU E/A/D/B/T/Z: E BI/BY/W/D: W SIG :ANFZ E/A/D/B/T/Z: E BI/BY/W/D: W SIG :INIK E/A/D/B/T/Z: A BI/BY/W/D: BY SIG :GKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

Automatico/manuale

Numero delle CPU

Tipo di DB, numero di DB

Indirizzo iniziale della lista di attribuzione

OB speciale: :SPA OB 200 "Inizializzazione"

Conflitto di inizializzazione

Capacità totale

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 487: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

FB 202

TRASMI SS . (l) - ECPU FEWA

p

( 2 ) P- TNDB SKAP p

( 3 ) P- BLNR

CPU in ricezione

Tipo (H-byte) e numero (L-byte) del blocco dati sorgente

Numero di gruppo

Errore/segnalazione

Capacità di trasmissione

LUN=40

SEGMENTO 1 NOME :TRASMISS . SIG :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY SIG :TNDB E/A/D/B/T/Z: E BI/BY/W/D: W SIG :BLNR E/A/D/B/T/Z: E BI/BY/W/D: BY SIG :FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY SIG :SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

CPU in ricezione

Tipo di DB, numero di DB

Numero di gruppo

OB speciale: :SPA OB 202 "Trasmissione di un blocco dati"

Errore/segnalazione

Capacita di trasmissione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 488: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

FB 2 0 3

TST-TRASM.

( l ) ECPU FEHL p

SKAP ( 3 )

CPU in ricezione

Capacità di trasmissione

LUN=30

SEGMENTO 1 NOME : TST-TRASM. SIG :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY SIG :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY SIG :SKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

CPU in ricezione

OB speciale: :SPA OB 2 0 3 "Test delle possibilita di

trasmissione"

Errore

Capacita di trasmissione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 489: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

FB 204

RICEZIONE

(l) P SCPU FEWA

EKAP (3)

TNDB -

ANFA

ENDA

Genere Tipo

CPU in trasmissione

Errore/segnalazione

Capacità di ricezione

Tipo (H-byte) e numero (L-byte) del blocco dati destinazione

Indirizzo della prima parola dati ricevuta (indirizzo iniziale)

Indirizzo dell'ultima parola dati ncevuta (indirizzo finale)

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 490: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

SEGMENTO 1 NOME :RICEZIONE SIG :SCPU E/A/D/B/T/Z: E BI/BY/W/D: BY SIG :FEWA E/A/D/B/T/Z: A BI/BY/W/D: BY SIG :EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY SIG :TNDB E/A/D/B/T/Z: A BI/BY/W/D: W SIG :ANFA E/A/D/B/T/Z: A BI/BY/W/D: W SIG :ENDA E/A/D/B/T/Z: A BI/BY/W/D: W

CPU in trasmissione

OB speciale: :SPA OB 204 "Ricezione di un gruppo di dati"

Errore/segnalazione

Capacità di ricezione

Tipo di DB, numero di DB

Indirizzo iniziale

Indirizzo finale

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 491: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

FB 2 0 5

TST-RICEZ.

( l ) P SCPU FEHL

EKAP ( 3 )

Genere Tipo

CPU in trasmissione

Capacità di ricezione

LUN=30

SEGMENTO 1 NOME :TST-RICEZ . S I G :SCPU E/A/D/B/T/Z: E BI/BY/W/D: BY S I G :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY S I G :EKAP E/A/D/B/T/Z: A BI/BY/W/D: BY

CPU i n t r a s m i s s i o n e

OB speciale: : S P A OB 205 " T e s t d e l l e poss ib i l i tà d i

r i c e z i o n e "

E r r o r e

C a p a c i t a d i r icezione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 492: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

10.9.2 Trasmissione di blocchi dati

Nel nostro esempio, il blocco funzionale UEBT-DAT (FB 110) trasmette un numero parametrizzabile di gruppi di dati da un blocco dati di una CPU al blocco dati dello stesso tipo e con lo stesso numero di un'altra CPU. I1 numero di FB (FB 110) è stato scelto a caso e può quindi essere modificato.

Per prima cosa sarà descritta la programmazione dell'FB 110 e quindi il suo utilizzo.

Programmazione dell'FB 110

I1 settore dei dati da trasmettere viene fissato dai parametri d'ingresso ERSB (= numero del primo gruppo di dati da trasmettere) e ANZB (= numero dei gruppi dati da trasmettere). Un gruppo di dati è composto normalmente da 32 parole dati. In dipendenza dalla lunghezza del blocco dati, l'ultimo gruppo di dati pub essere trasmesso con meno di 32 parole dati.

La trasmissione viene attivata con un fronte positivo sull'ingresso di attivazione STAR. Se il parametro di uscita REST è uguale a zero, allora la funzione UEBT-DAT pub trasmettere tutti i gruppi di dati (secondo il valore del parametro ANZB).

Se invece il parametro di uscita REST contiene un valore maggiore di zero, la chiamata della funzione deve essere rifatta successivamente (p. es. nel prossimo ciclo). In questo caso l'intero set dei parametri (cioè il valore di tutti i parametri) pub essere modificato dallrutente solo quando dal richiamo della funzione risulta, tramite REST uguale a zero, che il precedente trasferimento dei dati è terminato.

Un richiamo ripetuto del blocco funzionale UEBT-DAT ogni volta con diversi set di parametri è possibile. Facendo cib, vengono trasferiti diversi settori di dati contemporaneamente ("concatenati"). Inoltre possono essere direttamente usati i blocchi organizzativi speciali per la comunicazione multiprocessore (da OB 202 ad OB 205). Questa possibilita verra di seguito illustrata nell'esempio applicativo.

Nel caso in cui nel blocco funzionale UEBT-DAT non venga correttamente eseguita la funzione TRASMISSIONE (OB 202), viene emesso nel parametro di uscita FEHL il relativo numero di errore e quindi viene impostato RLC=1 ed il parametro di uscita RESTIO.

I1 blocco funzionale UEBT-DAT utilizza i byte di merker da MB 246 a MB 251 come merker S. A tutte le altre variabili, i cui valori hanno un significato finchè il parametro REST non è uguale a zero, rimane associata la memoria attribuita dal meccanismo dei parametri formali e attuali.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 493: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

UEBT-DAT

(l) - STAR FEHL -

(2) - ECPU REST -

( 3 ) - TNDB AKBN -

FLAM - ( 9 )

(5 ) - ERSB

Significato

Avviamento (START) della trasmissione del blocco dati dopo fronte E

CPU in ricezione

Tipo (H-byte) e numero (L-byte) del blocco dati da trasmettere

Numero dei gruppi di dati da trasmettere

Numero del primo gruppo di dati da trasmettere

Resto dei gruppi di dati da trasmettere

AKBN ') Numero del gruppo attuale

FLAM ') Merker di fronte

l) Merker di appoggio, non usati per l'analisi.

SEGMENTO 1 NOME : UEBT-DAT S I G :STAR E/A/D/B/T/Z: E BI/BY/W/D: B I S I G :ECPU E/A/D/B/T/Z: E BI/BY/W/D: BY S I G :TNDB E/A/D/B/T/Z: E BI/BY/W/D: W S I G :ANZB E/A/D/B/T/Z: E BI/BY/W/D: BY S I G :ERSB E/A/D/B/T/Z: E BI/BY/W/D: BY S I G :FEHL E/A/D/B/T/Z: A BI/BY/W/D: BY S I G :REST E/A/D/B/T/Z: A BI/BY/W/D: BY S I G :AKBN E/A/D/B/T/Z: A BI/BY/W/D: BY S I G :FLAM E/A/D/B/T/Z: A BI/BY/W/D: B I

P r e d i s p o s i z i o n e de l c a m p o p a r a m e t r i per 1 'OB speciale 202

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 494: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Trasmissione dei blocchi ancora memorizzati

:SPB =UEBT

:UN =STAR Fronte positivo :RB =FLAM sull'ingresso di attivazione? :ON =STAR

:SPB =GUT

Inizializzazione dei merker globali dopo un fronte positivo sull'ingresso di attivazione

Trasmissione continua 0038 SCHL:L di gruppi di dati

finché il resto è ><O :SPB =GUT

003B UEBT:L =AKBN

OB speciale: :SPA OB 202 "Trasmissione di un gruppo di dati"

:SPM =FEHL Interruzione per errore :SPP =GUT Interruzione se cap. di trasm. = O

Incremento del numero di gruppo

Decremento del numero dei blocchi rimanenti

:SPA =SCHL

004A GUT :U Fine regolare del programma : :UN M 0.0

RLC = O, FEHL = O

0050 FEHL :T =FEHL Fine in caso di errore :

RLC = 1, FEHL contiene il numero di errore

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 495: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Applicazione dell'FB 110

La CPU 1 nel programma ciclico deve trasmettere i blocchi dati DB 3 (i gruppi di dati da 2 a 5) e DB 4 (i gruppi di dati da 1 a 3) alla CPU 2. Nella CPU 2, la funzione RICEZIONE (OB 204) deve essere richiamata nel programma ciclico.

Realizzazione

Nome del parametro CPU 1

richiamata in: richiamata in:

Inizializzazione (OB 200) OB 20

Organizzazione trasm. (FB 1)

Organizzazione ncez. (FB 2) -

DB per trasmissione DB 3; DB 4

I1 progranuna utente richiama, nel blocco FB 1 della C W 1, due volte il blocco funzionale UEBT-DAT, ogni volta con parametri diversi. Dopo un fronte positivo sull'ingresso E 2.0, inizia la trasmissione del primo blocco dati DB 3. Un fronte positivo sull'ingresso E 2.1 attiva invece la trasmissione del blocco dati DB 4.

SEGMENTO 1 NOME : S-ORO

Trasmissione alla CPU 2 .. .. dal blocco dati DB 3 .. quattro gruppi di dati .. cominciando dal gruppo 2

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 496: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

:SPA FB 110 000A NOME :UEBT-DAT 000B STAR : E 2.0 000C ECPU : 000D TNDB : 000E ANZB : 000F ERSB : 0010 FEHL : 0011 REST : 0012 AKBN : 0013 FLAM : M 8.0

:SPB =HALT Interruzione in caso di errore

trasmissione alla CPU 2 .. .. dal blocco dati DB 4 .. tre gruppi di dati .. cominciando dal gruppo 1

:SPA FB 110 0023 NOME :UEBT-DAT 0024 STAR : E 2.1 0025 ECPU : MB 10 0026 TNDB : MW 11 0027 ANZB : MB 13 0028 ERSB : MB 14 0029 FEHL : 002A REST : 002B AKBN : 002C FLAM : M 8.1

:SPB =HALT Interruzione in caso di errore

0032 HALT : A questo punto viene gestito l'errore (p. es. tramite stop, emissione di messaggio su una stampante, . . . )

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 497: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Nella CPU 2, la funzione RICEZIONE (OB 204) richiamata nel blocco FB 2 trasferisce i gruppi di dati ricevuti nei relativi blocchi dati. La completa ricezione di un blocco dati può suddividersi in più cicli.

SEGMENTO 1 NOME : E-ORO

Ricezione dei dati dalla CPU 1

0003 SCHL :L KB 246 OB speciale: :SPA OB 204 "Ricezione" :SPM =FEHL Interruzione in caso di errore

La funzione "ricezione" viene continuamente richiamata finché la memoria intermedia non contiene

:SPB =SCHL più ulteriori gruppi di dati, cioè la capacità di ricezione = 0.

000C FEHL : A questo punto viene gestito l'errore (per esempio stop, emissione di messaggio su una stampante, . . . )

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 498: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

10.9.3 Ampliamento del settore dei merker di accoppiamento

Problema Nel controllore programmabile S5-135U/155U, ognuno dei 256 byte di merker di ogni CPU può essere definito come merker di accoppiamento di ingresso o di uscita tramite la parametrizzazione del DB 1. Questo provoca evidentemente la diminuzione del numero dei merker utilizzabili per compiti "normali". Inoltre per la trasmissione di un insieme di dati (molti byte) sono necessarie altre precauzioni (semafori oppure la parametrizzazione del DX 0) per evitare che la CPU in ricezione analizzi un set di dati solo parzialmente trasmesso.

Soluzione Possono essere definite come "parole dati di accoppiamento" le parole dati di un blocco dati DB o DX, a partire dalla DW O una di seguito all'altra. Ad ogni via di comunicazione viene associato il proprio blocco dati ed esse diventa assolutamente indipendente dalle altre vie di comunicazione.

All'inizio del blocco ciclico vengono ricevute le parole dati di accoppiamento con l'aiuto dei blocchi organizzativi speciali per la comunicazione multiprocessore. Dopo viene elaborato il programma ciclico normale che provvede ad analizzare i dati ricevuti ed a predisporre quelli da trasmettere. Essi vengono poi alla fine del ciclo trasmessi, sempre grazie agli OB speciali, in modo che possano essere ricevuti dalle altre CPU all'inizio dei loro cicli.

Per ognuna delle 12 (al massimo) possibili vie di comunicazione, ed indipendentemente dalle altre, vale quanto segue:

la CPU in trasmissione si attiva solo quando la CPU in ricezione ha prelevato correttamente i "vecchi" dati dalla memoria intermedia del coordinatore KOR 923C;

la CPU in ricezione si attiva solo quando la CPU in trasmissione ha deposto correttamente i "nuovi" dati nella memoria intermedia del coordinatore KOR 923C.

Da ciò si può capire che per la CPU in ricezione o è a disposizione un set completo di dati nuovi, oppure il vecchio set rimane invariato: non è possibile la mescolanza di "nuovi" con "vecchi " dati!

Struttura dei dati Quali parole dati (di seguito "settore di parole dati") sono da trasmettere da quale CPU a quale altra, viene specificato nella lista di comunicazione (vedere la tabella nella pagina successiva). Essa si trova in un'apposito blocco dati che deve essere presente in tutte le CPU interessate.

I settori delle parole dati devono sempre iniziare dalla parola dati DW O, e la loro lunghezza viene data in gruppi. Nel far ciò bisogna prestare attenzione a quanto segue:

Un gruppo completo è composto da 32 parole dati.

Se l'ultimo gruppo di un blocco dati da trasmettere è incompleto, cioè è composto da un numero tra 1 e 31 parole dati, allora vengono trasferite solo le parole dati presenti.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 499: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Se un blocco dati da trasmettere è più lungo di quanto definito nella lista di comunicazione (numero di blocchi), allora le parole dati in eccedenza possono essere usate internamente alla CPU.

Se il blocco dati predisposto per la ricezione è maggiore del settore di parole dati ricevuto, allora le parole dati in eccedenza possono essere usate internamente alla CPU.

Struttura della lista di comunicazione

Tabella 10-8 Lista di comunicazione per l'ampliamento del settore dei merker di accoppiamento

I I LISTA PARTE 1 I LISTA PARTE 2 I

alla ... I Dal1a CPU l DWO I Vie di

comunicazione

dalla CPU 2 alla ... l DW4 I

Tipo di DB

... CPU 2

... CPU 3

... CPU 4

dalla CPU 3 alla ... l DW8 I

Numero di DB

DW1

DW2

DW3

... CPU 1

... CPU 3

... CPU 4

Numero di ~ W P P ~

...

...

...

DW5

DW6

DW7

... CPU 1

... CPU 2

... CPU 4

1 2''

l) Vedere l'esempio sulla prossima pagina

dalla CPU 4 alla ...

... CPU 1

... CPU 2

... CPU 3

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

...

...

...

...

1 l)

...

DW9

DW 10

DW 11

DW 12

DW 13

DW 14

DW 15

DW 17

DW 18

DW 19

...

10 l)

...

...

...

...

2

3

4

DW 21

DW 22

DW 23

...

...

...

S 4

...

...

...

DW 28

DW 29

DW 30

DW 31

...

...

...

1

3

4

DW 25

DW 26

DW 27

...

...

...

...

2 l)

...

S 4

1

2

4

1

2

3

...

...

...

...

...

...

Page 500: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

La lista di comunicazione è formata da due parti simili, ognuna di 16 parole dati. Per ognuna delle 4 CPU in trasmissione (TI, T2, T3, T4) bisogna specificare, per ognuna delle vie di comunicazione, tre dati:

Numero di gruppi

I1 numero di gruppi stabilisce la dimensione (cioè il numero delle parole dati) del settore di parole dati da trasmettere. (Vie di comunicazione non disponibili o non utilizzate vanno contrassegnate con numero di gruppi, tipo e numero di DB, tutti = 0).

Tipo di DB

Tipo del blocco dati che contiene il settore di parole dati da trasmettere.

Numero del blocco dati che contiene il settore di parole dati da trasmettere.

Questi parametri possono essere letti e scritti secondo la rappresentazione precedentemente illustrata. Per trasmettere, per esempio, i primi due gruppi di dati del blocco dati DB 10 dalla CPU 2 (T2) alla CPU 3, si deve introdurre quanto segue:

CPU 2 (T2) trasmette ...

..alla CPU 3 2 gruppi dal blocco dati DB 10

La parte 2 della lista è identica alla lista di attribuzione (funzionamento "manuale") necessaria per la funzione INIZIALIZZAZIONE (OB 200). All'interno del blocco dati la parte 1 deve occupare gli indirizzi da O a 15, la parte 2 gli indirizzi da 16 a 31. I parametri rappresentati in neretto nella lista non devono essere modificati.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 501: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Struttura del Tramite la funzione INIZIALIZZAZIONE (OB 200) richiamata da una CPU programma durante l'avviamento, si attribuisce ad ogni via di comunicazione un numero di

settori di memoria sul coordinatore esattamente uguale al numero di gruppi di dati da trasmettere sulla relativa via di comunicazione.

Per la trasmissione e ricezione di settori di parole dati, su ogni CPU si utilizzano due blocchi funzionali:

I numeri dei blocchi funzionali sono scelti a caso e possono quindi essere modificati.

N. FB

FB 100

FB 101

I blocchi funzionali SEND-DAT e EMPF-DAT rilevano dalla lista di comunicazione quali settori di parole dati sono da trasmettere o ricevere e da quale blocco dati viene sempre trasmesso o ricevuto l'intero settore di parole dati. Nel caso in cui ciò non sia possibile a causa di una insufficiente capacità di trasmissione o di ricezione, l'intera trasmissione o ricezione non viene eseguita.

Avvertenza Questo esempio (ampliamento del settore dei merker di accoppiamento con l'ausilio dei blocchi funzionali SEND-DAT ed EMPF-DAT) può essere correttamente eseguito solo se nessuna delle CPU richiama i blocchi organizzativi speciali per la comunicazione multiprocessore da OB 202 ad OB 205.

Nome

SEND-DAT

EMPF-DAT

I blocchi funzionali SEND-DAT e EMPF-DAT comprendono i blocchi organizzativi speciali per la comunicazione multiprocessore da OB 202 ad OB 205. Ulteriori chiamate di questi OB al difuori di SEND-DAT e EMPF-DAT non sono permesse!

Funzione

Trasmissione di settori di parole dati alle altre CPU

Ricezione di settori di parole dati dalle altre CPU

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 502: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

OB per il nuovo avviamento per la predisposizione della memoria inter- media sul coordinatore KOR 923C

Programma utente ciclico ampliato per il richiamo ai blocchi funzionali EMPF-DAT e SEND-DAT

Blocco funzionale SEND-DAT per la trasmissione di blocchi dati

Blocco funzionale EMPF-DAT per la rizecione di blocchi dati

Blocco dati contenente la lista di comunicazione

Blocchi dati: al massimo 3 in ingressi e 3 in uscite

SPA OB 200

BE

l ) L'OB 220 deve essere richiamato in una sola CPU

DB xxx

DB YYY e10 DX zzz

Figura 10-6 Panoramica dei blocchi necessari in ogni CPU

viene LI analizzato da ...

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 503: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Programmazione dei blocchi funzionali

Prima del richiamo del blocco FB 100 deve essere attivato il blocco dati contenente la lista di cmunicazione. I1 blocco funzionale SEND-DATI per poter analizzare le informazioni contenute nella lista di comunicazione, necessita del numero della CPU da cui è stato richiamato. Nel caso che nel blocco funzionale non sia stata correttamente elaborata la funzione TRASMISSIONE (OB 202), il relativo numero di errore o di segnalazione viene emesso nel parametro di uscita FEWA, mentre 1'RLC viene impostato ad 1. Inoltre il parametro FEWA contiene il valore 16 (bit n. 4 = 1) nel caso in cui il parametro di ingresso CPUN (n. della CPU) sia errato. I1 blocco SEND-DAT utilizza i byte di merker da MB 239 a MB 251 come merker S.

FB 100

SEND-DAT

Significato Genere Tipo

Numero della CPU su cui viene chiamato FB100. Sono permessi i numeri da 1 a 4.

FEWA Errore/segnalazione (vedere funzione TRASMISSIONE (OB202))

LUN=90

SEGMENTO 1 NOME : SEND-DAT SIG : CPUN E/A/D/B/T/Z : D KM/KH/KY/KC/KF/KT/KZ/KG:KF SIG : FEWA E/A/D/B/T/Z : A BI/BY/W/D:

:LW =CPUN CPUN = CPUN - 1 Errore se:

:SPM =FEWA Numero CPU <l

:SPB =FEWA Numero CPU >4

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 504: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

CPUN = CPUN * 4 Indirizzo base

Contatore di cmunicazione

001A SCHL :L MB 245 Indirizzo base + Contatore

:ADD BF+16 + Offset

Numero dei gruppi riservati = O ?

:SPB =LEER

Numero della CPU in ricezione

OB speciale: :SPA OB 203 "Test delle possibilith di trasmiss."

Interruzione in caso di errore :SPB =OBFE

Capacita di trasmissione >< numero dei blocchi riservati?

:SPB =LEER

Contatore dei gruppi

Tipo e numero del DB sorgente

003C UEBT :L KB 246 OB speciale: :SPA OB 202 Trasmissione di un gruppo di dati

Interruz. in caso di errore/segnalaz. :SPB =OBFE

N. di gruppo = N. di settore + 1

Tutti i gruppi trasmessi?

:SPB =UEBT

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 505: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

0048 LEER :L ME 244 Incremento contatore di comunicazione

Tutte le vie di comunicazione elaborate ?

:SPM =SCHL Fine regolare del programma: RLC = O, FEWA = O

0052 FEWA :L Fine del programma con errore: 0053 OBFE :T =FEWA RLC = 1, FEWA contiene

il numero di errore/segnalazione

Prima del richiamo del blocco FB 101 deve essere attivato il blocco dati contenente la lista di comunicazione. I1 blocco funzionale EMPF-DATI per poter analizzare le informazioni contenute nella lista di comunicazione, necessita del numero della CPU da cui è stato richiamato.

Nel caso che nel blocco funzionale non sia stata correttamente elaborata la funzione RICEZIONE (OB 204), il relativo numero di errore o di segnalazione viene emesso nel parametro di uscita FEWA, mentre 1'RLC viene impostato ad 1. Inoltre il parametro FEWA contiene il valore 16 (bit n. 4 = 1) nel caso in cui il parametro di ingresso CPUN sia errato.

I1 blocco EMPF-DAT utilizza i byte di merker da ME 242 a MB 255 come merker S.

FB 101

EMPF-DAT

Significato Genere Tipo

Numero della CPU su cui viene chiamato FB 101. Sono permessi i numeri da 1 a 4.

FEWA Errore/segnalazione (vedere funzione RICEZIONE (OB204))

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 506: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

LUN=88

SEGMENTO 1 N0ME:EMPF-DAT SIG :CPUN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG:KF SIG :FEWA E/A/D/B/T/Z: A BI/BY/W/D:

:LW =CPUN Errore se:

:SPB =FEWA Numero CPU. <l :LW =CPUN

:SPB =FEWA Numero CPU >4

Contatore di comunicazione

Puntatore alla parte 2 della lista

001A SUCH :L MW 244 Ricerca nella parte 2 della lista finché viene trovata la prossima informazione per la CPU in ricezione con il numero "CPUN".

:LW =CPUN

:SPB =SUCH

Numero dei settori di memoria riservati = O ?

:SPB =LEER

Determinazione del numero della KM 00000000 00001100 CPU in trasmissione dal puntatore

sulla parte 2 della lista.

OB speciale: :SPA OB 205 "Test delle possibilita di

ricezione" :SPB = OBFE Interruzione in caso di errore

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 507: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Capacita di trasmissione = numero dei settori di memoria riservati ?

:SPB =LEER

003C EMPF :L KB 246 OB speciale: :SPA OB 204 "Ricezione di un gruppo di dati

:SPM =OBFE Interruzione in caso di errore/ segnalazione, se capacita di ricezione = 0, elaborazione della prossima via di cmunicazione

:SPB =EMPF

0045 LEER :L MB 242 Incremento del contatore di comunicazione

Tutte le vie di cmunicazione elaborate ?

:SPM= SUCH Fine regolare del programma: RLC = O, FEWA = O

004F FEWA :L KB 16 Fine del programma con errore: 0050 OBFE :T =FEWA RLC= 1, FEWA contiene

il numero di errore/segnalazione

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 508: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Esempio applicativo

Tra tre CPU devono essere scambiati dei dati:

- dalla CPU 1 alla CPU 2: blocco dati DB 3, da DW O a DW 127 (= 4 gruppi)

- dalla CPU 1 alla CPU 3: blocco dati DX 4, da DW O a DW 63 (= 2 gruppi)

- dalla CPU 2 alle CPU 1 e 3: blocco dati DB 5, da DW O a DW 95 (= 3 gruppi)

DX 4, 2 g rupp i

DB 5 , 3 g rupp i CPU 3

Figura 10-7 Scambio dati tra 3 CPU

Su tutte le tre CPU la gestione ciclica del programma utente viene realizzata tramite il blocco FB 1. La CPU 1 deve richiamare la funzione INIZIALIZZAZIONE (OB 200) in caso di NUOVO AWIAMENTO. La lista di comunicazione risiede nel blocco dati DB 100.

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 509: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

1 . Caricamento di blocchi

Oltre allrOB 1 , i seguenti blocchi devono essere caricati nelle singole CPU:

FB: EMPF-DAT Lista di comunicazione

DB 5; DX 4

2 . Definizione della lista di comunicazione

La lista di comunicazione viene definita e trasferita nel DB 100:

LUN=3 7 PAGINA 1

Lista parte 1 - -

KC = ' S I r ; La CPU 1 trasmette .. KY = 001,003; .. alla CPU 2 il DB 3 KY = 002,004; .. alla CPU 3 il DX 4 KY = 000,000; K C = S 2 ; La CPU 2 trasmette . . KY = 001,005; .. alla CPU 1 il DB 5 KY = 001,005; .. alla CPU 3 il DB 5 KY = 000,000; KC = '53'; KY = 000,000; KY = 000,000; KY = 000,000; KC = '54'; KY = 000,000; KY = 000,000; KY = 000,000;

C o n t i n u a z i o n e s u l l a pross ima pagina

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 510: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

Lista parte 1 - -

KC = 'SIr; La CPU 1 trasmette .. KY = 002,004; KY = 003,002; ..alla CPU 3 due gruppi di dati KY = 004,000;

La CPU 2 trasmette . . . alla CPU 1 tre gruppi di dati KY = 003,003; . alla CPU 3 tre gruppi di dati KY = 004,000; KC = '53'; KY = 001,000; KY = 002,000; KY = 004,000; KC = '54'; KY = 001,000; KY = 002,000; KY = 003,000;

Le parole dati da DW 16 a DW 31 contengono la lista di attribuzione necessaria per la funzione INIZIALIZZAZIONE manuale (OB 200).

L'OB 200 viene richiamato dal blocco OB 20 della CPU 1 durante l'avviamento:

LUN=y yABS

SEGMENTO 1 Inizializzazione manuale dei kachel

I1 DB 100 contiene la lista di attribuzione a partire dalla DW 16

OB speciale: :SPA OB 200 "Inizializzazione"

:UN M252.5 Fine blocco se non esiste alcun conflitto di inizializzazione

A questo punto viene gestito l'errore in caso di un conflitto di inizializzazione (per esempio stop, emissione messaggio sulla stampante . . . )

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 511: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento e comunicazione multiprocessore

4. Programmazione dei richiami ai blocchi funzionali nel FB 1 delle CPU.

Su ogni CPU il programma utente viene ampliato del richiamo alle funzioni EMPF-DAT e SEND-DAT. La funzione riportata di seguito (FB 1) è quella della CPU 1. Per poter funzionare anche sulle altre CPU, deve essere modificato solo il parametro CPUN (numero della CPU).

SEGMENTO 1 NOME : EM- SE

Lista di comunicazione DB 100 :SPA FB101 Ricezione dei blocchi dati

di ingresso 0003 NOME :EMPF-DAT 0004 CPUN : 0005 FEWA :

:SPB =FEWA Interruzione in caso di errore/segnalazione

A questo punto viene inserito il programma utente che legge i dati dai blocchi dati di ingresso e scrive dati nei blocchi dati di uscita.

Lista di comunicazione DB 100 :SPA FB100 Trasmissione dei blocchi dati

di uscita 0012 NOME :SEND-DAT 0013 CPUN : 0014 FEWA :

:SPB =FEWA Interruzione in caso di errore/segnalazione

0018 FEWA : Elaborazione errore in caso di un errore o una segnalazione (a quest punto viene inserita la gestione dellrerrore (per esempio stop, emissione sulla stampante o sul monitor ...)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 512: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Interfacce PG e funzioni PG

In questo Questo capitolo fornisce informazioni circa l'accoppiamento PG - CPU 928B e capitolo circa il sostegno per il test del programma STEP 5 offerto dal software PG.

Se viene utilizzata solo l'interfaccia PG standard (prima interfaccia seriale per PG), non occorre leggere il paragrafo 11.4. Questo paragrafo dà informazioni su come accoppiare un dispositivo di programmazione alla CPU tramite altre interfacce e sulle condizioni per l'utilizzo delle funzioni PG su entrambe le interfacce.

Sommario del capitolo

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Capitolo

11.1

11.2

11.2.1

11.2.2

11.2.3

11.3

11.4

11.5

11.5.1

11.5.2

11.5.3

Argomento trattato

Panoramica

Funzioni PG

Informazione

Funzioni di memonzzazione e di trasferimento

Test di programma

Attività nei punti di controllo

Accoppiamento senale PG - controllore tramite pnma o seconda interfaccia senale

Funzionamento parallelo di due interfacce senali PG

Messa in servizio

Funzionamento

Esecuzione con determinati tipi di funzionamento

Pagina

11-2

11-3

11-5

11-5

11-7

11-15

11-16

11-17

11-19

11-19

11-21

Page 513: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Panoramica

11 .l Panoramica

Accoppiamento I1 caricamento ed il test del programma applicativo avviene con l'ausilio delle PG funzioni online del software STEP 5.

Allo scopo bisogna accoppiare la CPU con il PG. Per fare ciò si hanno a disposizione le seguenti interfacce:

accoppiamento tramite l'interfaccia seriale standard "PG-controllore",

accoppiamento tramite la 2a interfaccia seriale della CPU 928B,

Sulle due interfacce seriali le funzioni PG si eseguono parallelamente.

Panoramica delle Le funzioni PG servono di aiuto per la messa in servizio ed il test del programma funzioni PG STEP 5 come segue:

I Informazione I

Tabella 11-1 Supporti per messa in servizio e test

Supporto Paragrafo

Indirizzi più alto del modulo RAM ed ultimo indirizzo occupato del modulo di memoria

Lista dei blocchi caricati

I Cancellazione com~leta della memoria I "Cancellazione totale" I

"Configurazione memoria"

"Lista di blocchi"

Visualizzazione delle parolebyte di memoria e dei byte di periferia

"Emissione indirizzi"

I Gestione dei blocchi I "Caricam.1cancell. dei blocchi" I

Gestione deiia memoria

Compressione dello spazio libero in memoria

I Test del programma I

"Compressione memoria"

Avv./interruzione della CPU

Test della sequenza di comandi in un blocco

"Start/stopU

"Stato"

Test di singoli passi del programma

Visualizzazione dello stato di segnale di variabili di Drocesso

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

"Controllo elaborazione"

"Stato variabili"

Emissione in STOP dei segnali di uscita

Visualizzazione/modifica della variabile di Drocesso

"Forzamento"

"Forzamento variabili"

Page 514: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

11.2 Funzioni PG

Avvertenze sui È possibile che i concetti utilizzati in questo paragrafo per la denominazione concetti utilizzati delle funzioni PG non corrispondino a quelli utilizzati dal software PG.

Richiamo ed utilizzo

Realizzazione

Per il richiamo e l'utilizzo delle singole funzioni PG consultare il manuale del PG.

Avvertenza Durante la compressione della memoria per mezzo dell'OB 186, la funzione del PG "Compressione memoria" viene respinta. Altre funzioni del PG sono permesse solo in modo limitato. Mentre sono attive funzioni del PG, I'OB 186 viene respinto.

Nel controllore programmabile, le funzioni online vengono considerate in ben determinati punti. Questi punti possono trovarsi nel programma di sistema (= punti di controllo di sistema) o possono essere costituiti da istruzioni del programma utente (= punti di controllo utente).

Punti di controllo In stato di funzionamento STOP, esiste il punto di controllo di sistema "Stop" di sistema che viene periodicamente richiamato.

In stato di funzionamento RUN, il punto di controllo di sistema "Ciclo" viene richiamato alla fine del livello di elaborazione programma CICLO, prima dell'aggiomamento delle immagini di processo.

Se la CPU si trova nello stato di ATTESA, viene periodicamente richiamato il punto di controllo di sistema "Attesa".

Inoltre esiste un punto di controllo di sistema "Asincrono" che viene attivato a tempo. Esso viene annidato in modo non sincronizzato durante l'elaborazione del programma.

Punti di controllo Per la realizzazione delle funzioni di test "stato" e "controllo elaborazione" viene utente utilizzato un punto di controllo utente. Questo viene attivato quando si esegue il

comando contrassegnato dal PG.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 515: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Stato di Finora sono stati illustrati solo gli stati di funzionamento STOP, funzionamento AWIAMENTO e RUN. In caso di attivazione delle funzioni online "Controllo ATTESA elaborazione", la CPU si porta in un altro stato di funzionamento: stato di

ATTESA. Quando la CPU si trova in questo stato, possono essere attivate altre funzioni online.

Caratteristiche In ATTESA non viene elaborato alcun programma utente.

I LED della CPU hanno questo stato: LED RUN: spento LED STOP: spento LED BASP: acceso

Tutti i temporizzatori sono "congelati", cioè non vengono aggiornati. Allo stesso modo sono fermi tutti i timer di sistema, come, per esempio, quelli per la regolazione e su interrupt periodico. Abbandonando lo stato ATTESA, i timer riprendono a funzionare.

In ATTESA, cause di STOP come, per esempio, PEU, NAU, MP-STP o STP-SCH vengono registrate, ma non provocano alcuna reazione.

Interruzioni Se in ATTESA si sono registrate delle interruzioni, i relativi livelli di elaborazione vengono attivati alla fine dello stato di ATTESA.

Se si verifica un errore NAU, lo stato di ATTESA viene abbandonato e la funzione CONTROLLO ELABORAZIONE interrotta. Al RITORNO DELLA TENSIONE, il bit di comando BARBEND è contrassegnato da una crocetta. Lo stato di STOP può essere lasciato solo con un NUOVO AWIAMENTO.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 516: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

11.2.1 Informazione

Configurazione La funzione "Configurazione memoria" visualizza sul PG l'indirizzo utilizzabile memoria nel modulo RAM (con un modulo EPROM viene visualizzato "O") e l'utlimo

indirizzo del modulo di memoria occupato da un blocco del programma utente.

Emissione Con la funzione PG "Emissione indirizzi" è possibile visualizzare sul PG il indirizzi contenuto degli indirizzi di memoria e periferici, a parole, in formato

esadecimale. E' possibile accedere a tutti gli indirizzi. Nel settore dell'immagine di processo non viene attivato il segnale ADF, mentre in quello periferico non si verifica alcun errore QVZ.

Nel settore indirizzato a byte (merker, immagine di processo) il byte high viene impostato a 'FF'.

Nel settore periferico i byte high degli indirizzi che danno conferma vengono emessi come "00". Se invece l'indirizzo non conferma, viene visualizzato il byte high come "FF".

11.2.2 Funzioni di memorizzazione e di trasferimento

Cancellazione Tramite il PG, è possibile effettuare una cancellazione totale di una CPU totale (= cancellare tutti i blocchi"). In questo modo la cancellazione totale viene

comunque realizzato (vedere paragr. 4.3.2).

Se all'atto dell'attivazione di "Cancellare tutti i blocchi" la CPU si trova in AWIAMENTO o in RUN, dapprima avviene il passaggio nello stato di STOP. Nel far ciò, se caricato, viene prima richiamato I'OB 28.

Avvertenza "Cancellazione totale" non è attivabile fintantoché il "controllo elaborazione" è attivo!

Compressione Questa funzione ottimizza l'occupazione della memoria da parte dei blocchi: lo memoria spazio occupato dai blocchi contrassegnati come non validi viene sovrascritto dai

blocchi presenti e validi del programma utente (un blocco viene traslato in un altro posto nella memoria) in modo che essi siano situati uno dopo l'altro. Ciò viene realizzato separatamente per il modulo RAM e per la RAM per DB e può essere fatto nei punti di controllo di sistema "Ciclo" e "Stop".

In STOP, la CPU 928B permette la funzione "Compressione memoria" in qualsiasi momento, anche se il registro BSTACK non è vuoto.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 517: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Precauzione Dopo la funzione "Compressione memoria" in STOP deve essere realizzato un NUOVO AVVIAMENTO. I registri USTACK e BSTACK non vengono aggiornati.

Caduta di Se durante la compressione cade la tensione, non viene spostato alcun altro tensione durante blocco. Con il ritorno della tensione ed un nuovo richiamo della funzione la compressione "Compressione memoria", la compressione viene continuata.

Errori nella La funzione "COMPRESSIONE MEMORIA" riconosce i seguenti errori nella memoria blocchi memoria blocchi:

lunghezza di blocco errata,

identificatore "7070" errato nell'intestazione di un blocco,

tipo di blocco non valido (numero di blocco non valido per OB).

La funzione viene interrotta e sul PG viene emessa una segnalazione. È necessario un "Ripristino generale", dopo di che la memoria sarà vuota.

Avvertenza La funzione "Compressione memoria" non può essere attivata durante il "Controllo elaborazione".

Trasferimento di Con questa funzione vengono trasferiti nella memoria utente o nella RAM per blocchi DB della CPU blocchi di codice e di dati nuovi o già presenti.

Quando un blocco è già presente nella memoria utente o nella RAM per DB della CPU, esso viene contrassegnato come non valido e quello nuovo viene contrassegnato come valido. Un blocco viene contrassegnato come non valido solo quando momentaneamente, non viene elaborato.

Cancellazione Con questa funzione i blocchi di codice e di dati nella memoria utente della CPU di blocchi vengono contrassegnati come non validi. Un blocco viene contrassegnato come

non valido solo quando momentaneamente, non viene elaborato.

Lo spazio che era occupato da questi blocchi viene reso libero dalla funzione "Compressione memoria" e può essere riutilizzato per altri blocchi.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 518: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

11.2.3 Test di programma

StartIStop Queste funzioni PG richiedono l'intervento manuale.

Attivando la funzione STOP nello stato di funzionamento o RUN, è possibile mettere il controllore programmabile nello stato di STOP.

Sulla CPU a cui il PG è collegato, si presenta la seguente situazione:

LED STOP: acceso

LED BASP: acceso

Nei bit di comando, "PG-STP" è contrassegnato da una crocetta. In funzionamento multiprocessore nelle altre CPU è contrassegnato il bit di comando "MP-STP".

Su una CPU è possibile effettuare un NUOVO AWIAMENTO o un RIAWIAMENTO. In funzionamento monoprocessore la CPU abbandona lo stato di STOP. In funzionamento multiprocessore dapprima viene registrato il tipo di avviamento (viene impostato il bit di comando "NEUST" o "M W A"), ma la CPU rimane in STOP. Con l'operazione successiva "Start sistema" è possibile avviare il controllore programmabile. Ciò viene fatto con il selettore del coordinatore (commutatore su RUN).

La funzione online START offre un'ulteriore possibilità in funzionamento multiprocessore: è possibile scegliere il tipo di avviamento di tutte le CPU, e quindi avviare il controllore assieme all'ultima CPU.

Funzione PG NUOVO AWIAMENTO: Viene realizzato un NUOVO AWIAMENTO MANUALE della CPU.

Funzione PG RIAWIAMENTO: In relazione a quanto impostato in DX O viene realizzato o un RIAWIAMENTO MANUALE oppure un NUOVO AWIAMENTO MANUALE CON MEMORIA.

Stato Blocco Grazie alla funzione online "Stato", è possibile testare un gruppo di istruzioni di un blocco STEP 5 in un punto a piacere del programma utente. Ad ogni comando eseguito del blocco viene emesso sul PG lo stato degli operandi, il contenuto degli accumulatori, 1'RLC ecc. In questo modo può anche essere testata la parametrizzazione dei blocchi funzionali: vengono visualizzati gli stati degli operandi attuali.

Richiamo della Richiamando la funzione "Stato" sul PG e dando il tipo ed il numero del blocco funzione e da testare (eventualmente con il livello di annidamento e con ricerca), si definizione del definisce il cosiddetto "punto di arresto". punto di arresto

Richiamando la funzione durante l'elaborazione del programma in RUN, l'elaborazione in corso viene continuata finché il comando contrassegnato dal punto di arresto predefinito non viene raggiunto nel giusto livello di annidamento. Quindi vengono eseguiti i comandi da controllare ed i relativi risultati vengono emessi sul PG.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 519: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Richiamo in La funzione "Stato" può essere richiamata anche in STOP. Dopodiché è possibile STOP sia un NUOVO AWIAMENTO che un RIAWIAMENTO MANUALE. La

CPU elabora il programma utente fino al punto di arresto predefinito e quindi vengono emessi i dati ed i comandi desiderati. Grazie a ciò, questa funzione è anche adatta a testare il programma utente in avviamento e nel primo ciclo.

Avvertenza I risultati dell'elaborazione dei comandi non vengono emessi ad ogni ciclo del programma.

Annidamento ed Un gruppo di comandi contrassegnati da un punto di arresto viene eseguito anche interruzioni quando un altro livello di elaborazione programma (per esempio un OB di errore

o un allarme di processo o a tempo) viene annidato ed eseguito al suo intern. Se in un livello di elaborazione annidato si presenta un'interruzione che provoca lo STOP della CPU, allora nello stato di STOP vengono emessi i dati fino al comando ultimo elaborato prima dell'inserimento del nuovo programma. I dati dei comandi rimanenti vengono riempiti con "0" (anche IND = 0).

Se la CPU cambia il proprio stato di funzionamento (per esempio RUN +=

STOP += RIAWIAMENTO MANUALE), la funzione rimane attivata. La funzione "Stato" termina premendo il tasto di interruzione sul PG.

Controllo Con la funzione "Controllo elaborazione" è possibile testare il programma utente elaborazione istruzione per istruzione, a partire da un punto a piacere. Con ciò l'elaborazione

del programma viene arrestata e la CPU esegue solo un comando per volta. Ad ogni comando eseguito viene emesso sul PG lo stato degli operandi, il contenuto degli accumulatori, 1'RLC ecc.

Richiamo della Per richiamare la funzione "Controllo elaborazione" si deve dare il tipo ed il funzione e numero del blocco da testare (eventualmente con il livello di annidamento) e definizione del contrassegnare sul PG il primo comando di cui si devono emettere i dati. primo punto Facendo ciò si definisce il primo punto di arresto. di arresto Nei bit di comando, BARB viene contrassegnato con una crocetta. Il segnale di

disabilitazione delle uscite si attiva (LED BASP = acceso).

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 520: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Precauzione Se sul coordinatore viene attivato il funzionamento TEST, l'emissione dei comandi non viene disabilitata (LED BASP = OFF). Se vengono elaborati comandi che modificano la periferia digitale, oppure la CPU aggiorna l'immagine di processo, le uscite cambiano di conseguenza.

Richiamo in Definendo il primo punto di arresto durante l'elaborazione del programma in AWIAMENTO e AWIAMENTO o in RUN, la CPU effettua l'elaborazione del programma fino in RUN al raggiungimento del comando contrassegnato da quel punto. I1 comando viene

completamente eseguito (con B MW e B DW vengono eseguiti anche i comandi in sostituzione) e quindi la CPU si mette in ATTESA. I dati relativi al comando elaborato vengono visualizzati.

Richiamo in STOP

Anche in STOP si può richiamare la funzione CONTROLLO ELABORAZIONE e definire il primo punto di arresto. La CPU continua a stare in stato di STOP, ed è possibile fare sia un NUOVO AWIAMENTO che un RIAWIAMENTO MANUALE. La CPU elabora il programma fino al punto definito e quindi procede come precedentemente descritto.

Proseguimento Punto di partenza: della funzione e definizione di la CPU si trova in stato di ATTESA. nuovi punti di arresto Per proseguire la funzione "Controllo elaborazione" esistono due possibilità:

1. Definizione di un successivo punto di arresto:

I1 precedente punto di arresto viene spostato di un comando. La CPU abbandona lo stato di ATTESA e prosegue l'elaborazione del programma di un comando. Eseguito completamente il comando, la CPU si rimette in ATTESA e visualizza i nuovi dati.

Se il comando successivo provoca il passaggio ad un altro livello di elaborazione programma, la CPU prosegue l'elaborazione del programma. I1 punto di arresto successivo rimane fisso.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 521: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Avvertenza In stato di STOP si può definire soltanto un primo punto di arresto ma nessuno successivo!

2. Definizione di un nuovo punto di arresto:

Con il PG si stabilisce un nuovo comando dello stesso o di un altro blocco. La CPU prosegue quindi l'elaborazione fino al raggiungimento del nuovo punto di arresto. I1 comando viene completamente eseguito, quindi la CPU si rimette in ATTESA ed emette i nuovi dati.

In "Controllo elaborazione" è possibile anche far eseguire alla CPU un ciclo completo. Per far ciò è sufficente definire, in stato di ATTESA, il punto di arresto sullo stesso comando. Il comando non deve però trovarsi all'interno di un loop, altrimenti questo viene elaborato una volta e quindi ci si ferma senza che il ciclo sia stato completato.

Avvertenza Nello stato di ATTESA si possono richiamare altre funzioni come "Elenco contenuto", "stato variabili" o" forzamento variabili". Appena l'elaborazione del programma riprende, iniziano a scorrere nuovamente i tempi ed i timer di sistema fino al raggiungimento del nuovo punto di arresto.

Annullamento di Se un punto di arresto definito non è ancora stato raggiunto, esiste la possibilità un punto di di annullarlo premendo il tasto di interruzione sul PG. La CPU si porta arresto comunque nello stato di ATTESA e quindi può essere definito un nuovo punto di

arresto oppure essere richiamata la funzione "Fine controllo elaborazione".

Interruzione della Richiamando "Fine controllo elaborazione" è possibile interrompere la funzione funzione durante l'elaborazione del programma, in stato di ATTESA o di STOP. La CPU

si porta in STOP (o rimane in STOP). I1 LED STOP lampeggia lentamente ed il bit di comando "BARBEND" viene contrassegnato da una crocetta. Infine è necessario un NUOVO AWIAMENTO. Se durante l'esecuzione della funzione "Controllo elaborazione" si verifica un errore di interfaccia (interruzione del cavo PG), la funzione si interrompe come sopra descritto.

Annidamento Richiamando la funzione "Controllo elaborazione" è possibile attivare altri livelli di elaborazione programma uscendo dallo stato di ATTESA.

Quando il comando nel punto di arresto viene eseguito ed in questo punto viene richiamato un altro livello di elaborazione programma (per esempio, un OB di errore, un allarme di processo o a tempo), allora esso viene attivato e completamente elaborato soltanto uscendo dallo stato di ATTESA.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 522: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Avvertenza I dati vengono letti ed emessi alla fine di ogni comando. Tutti i programmi annidati non sono ancora stati elaborati.

I1 principio dell'esecuzione della funzione "Controllo elaborazione" è illustrato nella figura 11-1.

arresto de l comando e lettura dei

l 1 dati 1

~ Stato d i ATTESA (emissione de i dati)

~ u c c e s s i v o + m< Allarme di processo o punto di arresto Esecuzione a tempo, OB d i errore

de l comando

l e let tura dei

~ Stato di ATTESA (emissione dei dati)

+ l

Al larme di processo o l < I

a tempo, OB d i errore

Figura 11-1 Esecuzione del test con "Controllo elaborazione"

Se in stato di ATTESA si sono presentate delle richieste tipo PEU, MP-STP, STP-SCH ecc., esse vengono solo registrate. Non appena lo stato di ATTESA viene abbandonato, esse possono diventare attive: un livello di elaborazione programma può essere attivato, o un'interruzione può provocare lo STOP. Vale la sequenza degli eventi. Richieste simultanee vengono priorizzate.

Avvertenza Se la CPU si trova in stato di ATTESA e viene richiesto un annidamento, esiste la possibilità di definire un punto di arresto su un comando del programma da annidare. E' così possibile, per esempio, con un comando che provoca un errore QVZ, controllare direttamente I'OB di errore QVZ che ne consegue.

Manua le d i programmazione CPU 928B

C79000-G8572-C870-01

Page 523: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Interruzioni Elaborazione del programma (AWIAMENTODXUN) += stato di STOP:

Se durante l'elaborazione del programma si presentano delle cause di interruzione (p. es. MP-STP, PEU, commutatore di STOP, OB di errore non programmati) ed il punto di arresto non è stato raggiunto, la CPU si porta subito in STOP. Attuando ora un avviamento (NUOVO AWIAMENTO o RIAWIAMENTO MANUALE), la funzione "Controllo elaborazione" rimane ancora attiva ed il punto di arresto è ancora impostato.

Elaborazione di un comando nel punto di arresto (AWIAMENTODXUN) += stato di STOP:

Se durante l'elaborazione di un comando nel punto di arresto (o in uno suc- cessivo) si presenta una condizione di STOP (p. es. commutatore di STOP, comando STP STEP 5, OB di errore non programmati), la CPU si porta in STOP subito dopo aver elaborato il comando. Se in STOP non viene definito alcun altro punto di arresto, dopo un A W I A - MENTO la CPU si mette in ATTESA. La funzione "Controllo elaborazione" rimane attiva.

Stato di ATTESA += stato di STOP:

Le cause di interruzione che si presentano in ATTESA (p. es. MP-STP, PEU o commutatore di STOP) o si verificano durante l'elaborazione del precedente comando (errore che causa lo STOP) vengono registrate, ma la CPU resta nello stato di ATTESA. Solo dopo aver definito un nuovo punto di arresto e lasciando lo stato di ATTESA, le varie cause di errore provocano lo STOP della CPU. I1 punto di arresto definito non viene raggiunto. Se viene realizzato un AWIAMENTO (NUOVO AWIAMENTO o RIAWIAMENTO MANUALE) il punto di arresto rimane impostato.

Avvertenza Se in stato di ATTESA si posiziona il commutatore dei modi di funzionamento su STOP, la CPU si porta in STOP solo dopo aver lasciato lo stato di ATTESA.

Se durante il "Controllo elaborazione" delle cause di interruzione provocano lo STOP della CPU, dopo un AWIAMENTO la funzione "Controllo elaborazione" (eventualmente con il punto di arresto definito) rimane attiva.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 524: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Stato variabili

Esecuzione della funzione durante l'elaborazione di un programma

Esecuzione della funzione in stato di STOP

Esecuzione della funzione in stato di AiTESA

Cambio dello stato di funzionamento1 abbandono della funzione

Con questa funzione è possibile leggere lo stato attuale di certi operandi (variabili di processo).

La funzione attiva i punti di controllo di sistema in stato CICLO, STOP o ATTESA.

Raggiunto il punto di controllo di sistema, viene emesso lo stato del segnale presente all'istante, per tutte le variabili desiderate. È possibile indicare tutte le variabili di processo (ingressi, uscite, merker, temporizzatori, contatori e parole dati). Nel settore delle immagini di processo, non viene attivato alcun errore ADE per accessi ad indirizzi per cui non esiste alcuna periferia.

Se la funzione è attiva negli stati di funzionamento AWIAMENTO o RUN, l'elaborazione del programma continua fino al raggiungimento del punto di controllo di sistema "ciclo". Quindi vengono interrogati ed emessi gli stati delle variabili desiderate. Gli ingressi vengono letti dall'immagine di processo. Finché la funzione non viene interrotta, gli stati dei segnali vengono ciclicamente aggiornati. Gli stati non vengono però aggiornati ad ogni punto di controllo di sistema. Se il punto di controllo di sistema "ciclo" non viene raggiunto, non avviene alcuna emissione di stato (p. es. durante un ciclo infinito nel programma utente)!

Quando la funzione "Stato variabili" è attiva in STOP, vengono emessi gli stati degli operandi presenti nel punto di controllo di sistema "stop". Al riguardo, è importante notare che gli ingressi vengono direttamente letti dall'unità periferica e quindi emessi. Grazie a ciò è possibile, per esempio, testare se il segnale di ingresso è effettivamente arrivato alla CPU. In funzionamento multiprocessore è possibile testare tutti gli ingressi indipendentemente dalla programmazione in DB 1. Tutte le uscite vengono lette dall'immagine di processo.

La funzione "Stato variabili" può essere richiamata anche quando la CPU si trova in ATTESA essendo attivo il "Controllo elaborazione". Nel punto di controllo di sistema "Attesa" vengono interrogati ed emessi gli stati degli operandi desiderati. Come in STOP, gli ingressi vengono letti direttamente, le uscite dall'immagine di processo.

Se la CPU passa da uno stato di funzionamento ad un altro (p. es. RUN += STOP += RIAWIAMENTO MANUALE), la funzione rimane attiva. La funzione "Stato variabili" viene abbandonata azionando il tasto di interruzione sul PG.

Avvertenza Le variabili non vengono emesse ad ogni ciclo.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 525: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzioni PG

Forzamento Con l'aiuto della funzione "Forzamento" è possibile impostare i byte di uscita del controllore programmabile direttamente (senza aggiornamento dell'immagine di processo) allo stato desiderato o riconoscere segnali non confermati (periferia digitale 0...127, messaggio emesso al PG). Esiste la possibilità di attivare e testare direttamente le apparecchiature di processo (motori, valvole) collegate alle uscite.

Avvertenza La funzione "Forzamento" è permessa solo in STOP.

Esecuzione della Richiamando la funzione in STOP, viene disattivato il segnale di disabilitazione funzione delle uscite (BASP = OFF). L'intera periferia digitale (da FOOOH a F07FH)

viene cancellata e tutti gli indirizzi vengono sovrascritti con il valore "0". Durante la cancellazione della periferia la funzione non è interrompibile. Le uscite vengono forzate a byte, direttamente e senza influenzare l'immagine di processo delle uscite! In funzionamento multiprocessore è possibile forzare tutte le uscite (indipendentemente dalla suddivisione nel DB 1).

Quando la funzione è attiva (segnalazione "Forzamento finito" sul PG) è possibile realizzare un NUOVO AWIAMENTO o un RIAWIAMENTO MANUALE. Dopo un nuovo passaggio in STOP, è possibile realizzare un nuovo forzamento. In questo caso le uscite non vengono cancellate.

Abbandono della La funzione si abbandona premendo il tasto di interruzione sul PG. I1 segnale di funzione disabilitazione delle uscite viene nuovamente emesso (BASP = ON).

Forzamento variabili

Con la funzione PG "Forzamento variabili" è possibile modificare una volta il valore degli operandi (variabili di processo). Ciò è permesso in ogni stato di funzionamento della CPU. E' possibile operare con tutte le variabili di processo. Nel settore dell'immagine di processo non viene attivato alcun ADF per l'accesso ad un indirizzo a cui non corrisponde alcuna unità periferica. La modifica diventa attiva nei punti di controllo di sistema in modo "asincrono", cioè solo alla fine del ciclo. Bisogna fare attenzione che i valori forzati possono essere successivamente sovrascritti (per esempio tramite l'aggiornamento dell'immagine di processo o dal programma utente).

Avvertenza I1 PG può forzare variabili di processo E, A, M a byte, nonché DW, T, Z a parole.

Forzando più operandi, i byte modificati (parole per DW, T e Z) vengono aggiornati successivamente nella memoria della CPU tramite più richiami della funzione.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 526: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Attività nei ounti di controllo

11.3 Attività nei punti di controllo

Panoramica La seguente tabella riporta le attività che si eseguono con le funzioni PG nei punti di controllo.

Tabella 11-2 Attività nei punti di controllo

l) Attività che possono essere suddivise in più punti di controllo

Per ogni punto di controllo di sistema al massimo un blocco

3, Dopo "Compressione in STOP" bisogna realizzare un NUOVO AVVIAMENTO

Attività con funzioni online

Introduzione dell'indirizzo: scrittura dati ')

Introduzione blocchi: dichiarazione blocchi validi

Cancellazione blocchi

Compressione memoria: spostamento blocco ') ')

STARTISTOP

CANCELLAZIONE TOTALE

STATO: lettura ed emissione dati

STATO VAR: lettura ed emissione dati

CONTROLLO ELABORAZIONE: definizione punti arresto lettura ed emissione dati

FORZAMENTO (segnali)')

FORZAMENTO VARIABILI')

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Punto di controllo

utente "Stop"

* 3)

Punto di controllo

"Ciclo"

di sistema

"Stato di attesa"

"Asin- crono"

Page 527: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Accoooiamento seriale PG - controllore tramite orima o seconda interfaccia seriale

11.4 Accoppiamento seriale PG - controllore tramite prima o seconda interfaccia seriale

Possibilità di Per l'accoppiamento seriale di un dispositivo di programmazione ed un accoppiamento controllore programmabile si hanno le seguenti possibilità:

collegamento diretto con la CPU - tramite il cavo di collegamento standard,

collegamento al PG tramite il coordinatore KOR C. Questo collegamento si realizza connettendo il PG con il coordinatore tramite il cavo di collegamento. Con ciò la prima interfaccia seriale non può più essere utilizzata,

collegamento al PG tramite un PG-Multiplexer 757. I relativi connettori amessi sono riportati nel manuale di sistema S5-135Ul155U 121,

collegamento al PG tramite SINEC HllL2IL1 e "ponte"; con questo collegamento è possibile interconnettere anche il coordinatore KOR C o il PG-Multiplexer.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 528: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due interfacce seriali PG

11.5 Funzionamento parallelo di due interfacce seriali PG

Introduzione La seconda interfaccia della CPU 928B (SI 2) può essere usata come interfaccia PG in modo identico alla prima.

Per poter accoppiare il dispositivo di programmazione tramite questa interfaccia, bisogna anche ordinare il modulo di interfaccia PG (il relativo numero di ordinazione si trova nel manuale di sistema S5-135U/155U 120.

~ 1 ' S I I

Modulo d i interfaccia

Figura 11-2 Utilizzo della seconda interfaccia come interfaccia PG

Tutte le funzioni PG già disponibili per la prima interfaccia possono essere usate anche con la seconda interfaccia. Nel presente capitolo vengono riportate solo le informazioni necessarie per operare con PG ed OP collegati contemporaneamente sulle due interfacce della CPU.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 529: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due intertacce seriali PG

Esempi di configurazione

- SI1 PG collegato via SINEC H1 e KOR C

SI2 PG collegato direttamente

Figura 11-3 Primo esempio di configurazione

SS 2 PG collegato direttamente (per programmazione)

Figura 11-4 Secondo esempio di configurazione

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 530: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due intertacce seriali PG

11.5.1 Messa in servizio

Procedimento Per mettere in servizio la seconda interfaccia della CPU 928B come interfaccia PG bisogna procedere nel seguente modo:

1. Inserire il modulo PG nella CPU 928B.

2. Collegare il PG all'interfaccia seriale SI 2.

11.5.2 Funzionamento

Funzioni Utilizzando la seconda interfaccia seriale come interfaccia PG, innanzitutto si ha disponibili a disposizione su ogni interfaccia l'intero set di funzioni che si hanno

normalmente a disposizione sull'interfaccia PG standard. Ciò vale finchè le singole funzioni non si influenzano a vicenda, nel qual caso vengono elaborate sequenzialmente una dopo l'altra.

Per meglio comprendere queste eccezioni, conviene suddividere le funzioni PG in tre gruppi:

Precauzione Quando si opera con le funzioni lunghe e quelle cicliche, non si possono utilizzare i due PG senza precauzioni. I1 richiamo di queste funzioni deve essere coordinato.

G ~ P P ~

Funzioni brevi

Funzioni lunghe

Funzioni cicliche

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Caratteristiche

Funzioni che realizzano un determinato compito e quindi finiscono @. e. "trasferimento", "cancellazione" ecc.).

Funzioni che elaborano un certo numero di compiti: - "forzamento", - "controllo elaborazione".

Le funzioni cicliche ripetono un determinato compito finchè non vengono interrotte dall'operatore:

- "stato blocco", - "stato variabili" , - "forzamento variabili" .

Page 531: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due interfacce seriali PG

Funzioni che non Nella seguente tabella sono elencate le coppie di funzioni che non possono possono essere essere utilizzate in parallelo. utilizzate in parallelo

Tabella 11-3 Funzioni che non possono essere utilizzate in parallelo

Sul primo PG è attiva la funzione:

I una funzione di "stato" I "controllo elaborazione" I

Questa funzione non può essere richiamata sul secondo PG:

"Forzamento"

"Controllo elaborazione"

una funzione di "stato"

I una funzione di "stato" I "cancellazione totale" I

qualunque funzione

qualunque funzione

"forzamento"

Se ciò non viene osservato, il secondo PG segnala un errore, per esempio: "Funzione AS inibita: funzione attiva ".

"Stato" in un blocco non elaborato o in un blocco di funzione lunga

La stessa segnalazione di errore oppure "Overflow nello scambio dati con il controllore" appare se la CPU 928B sta elaborando funzioni dell'altro PG, fatto che impedisce l'accesso del PG entro il tempo consentito. La richiesta viene quindi rifiutata e va ripetuta dopo che le funzioni dell'altro PG sono terminate.

qualunque funzione

Avvertenza A causa delle diverse potenzialità e funzionalità, il controllo dei tempi e la gestione delle segnalazioni non sono uguali per tutti i PG ed OP.

Attivando contemporaneamente la funzione "configurazione memoria" su entrambi PG, è possibile l'emissione di visualizzazioni sbagliate.

Precauzione Introducendo, correggendo o cancellando blocchi software online da entrambi i PG bisogna prestare la massima attenzione al fatto che, prima dell'accesso dell'altro PG, i blocchi non sono protetti.

"Stato" in un blocco non richiamato o "stato" in STOP disabilita l'altra delle due interfacce per tutte le funzioni.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 532: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due interfacce seriali PG

11.5.3 Esecuzione con determinati tipi di funzionamento

Funzionamento Lavorando con dispositivi di programmazione contemporaneamente sulle due parallelo con interfacce, entrambi i PG cercano di eseguire le proprie funzioni funzioni brevi indipendentemente l'uno dall'altro. Se i job vengono trasmessi al controllore non

simultaneamente, essi vengono elaborati secondo l'ordine con cui sono arrivati.

Può però succedere che la CPU 928B riceva due job contemporaneamente oppure riceva un job dal secondo PG mentre sta ancora elaborando un job del primo PG. Dato che l'elaborazione parallela non è possibile, questi due job vengono elaborati l'uno dopo l'altro; tra l'altro il tempo di attesa per il secondo job è così limitato che l'operatore non riesce a rilevarlo.

Job contemporanei vengono così elaborati:

Operatore s u l PG 1 CPU 9288 Operatore s u l PG 2

Richiesta t rami te tas t ie ra del PG 1

Preparazione del job 1 nel PG 1

Trasmissione del job 1 a l la CPU

E laboraz ione del job 1 ne l la CPU

Trasmissione del r isul tato 1 a l PG 1

I Ti Preparazione del r isul tato 1 sul PG 1 I Emissione del r isul tato 1 sul PG 1 4 Li

Richiesta t rami te tas t ie ra del PG 2

Preparazione del job 2 nel PG 2

* qui i l PG 2 deve at tendere che la CPU abbia elaborato

* i l job l

Trasmissione del job 2 a l la CPU

Elaborazione del job 2 ne l la CPU

Trasmissione del r isul tato 2 al PG 2

L Preparazione del r isul tato 2 sul PG 2

Emissione del r isul tato 2 sul PG 2

Figura 11-5 Diagramma temporale per job contemporanei

Da questo diagramma si può rilevare che i due PG possono sì operare in modo indipendente uno dall'altro, ma che tuttavia esistono influssi reciproci. Può anche capitare che entrambi i PG elaborino contemporaneamente lo stesso blocco oppure che un PG cancelli proprio il blocco che l'altro PG sta elaborando. Per ogni elaborazione va quindi considerato fino a che punto essa influenza il lavoro dell'altro PG.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 533: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due intertacce seriali PG

Funzionamento Le funzioni "forzamento" e "controllo elaborazione" non possono interrompere parallelo con alcuna altra funzione e nemmeno possono essere interrotte da altre funzioni. Esse funzioni lunghe non possono quindi neanche essere eseguite in parallelo, cioè vengono

considerate come job standard in un unico blocco.

Funzionamento Le funzioni cicliche possono essere eseguite in parallelo sia alle funzioni brevi, parallelo con sia ad altre funzioni cicliche. Come esempio, viene di seguito riportata funzioni cicliche l'esecuzione standard della funzione "stato variabili".

Operatore sul PG 1 CPU 928B Operatore sul PG 2

I l PG 1 in forma la CPU qual i var iabi l i devono essere emesse

PG 1 r ichiede i dati attual i

PG 1 r ichiede i dati attual i i PG 2 definisce un job

PG 1 r ichiede i dati attual i

PG 2 deve attendere che la CPU s ia l ibera

l1 I l job del PG 2 viene elaborato

PG 1 deve attendere che la CPU s ia l ibera

I l job del PG 2 è f ini to

PG 1 r ichiede i dati attual i

Figura 11-6 Tipico diagramma temporale di una funzione ciclica con una funzione breve parallela

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 534: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due intertacce seriali PG

Per poter permettere al secondo PG di trasmettere un proprio job al controllore, la funzione "STATO" viene interrotta tra due richieste e ripresa dopo la fine dell'elaborazione del job inserito. Dato che la funzione che interrompe necessita per la propria elaborazione della CPU, la potenzialità totale della CPU deve essere suddivisa tra le due funzioni, e ciò provoca per esempio, che i dati da emettere per la funzione "stato variabili" vengono aggiornati più lentamente.

Operando contemporaneamente sui due PG si ha la situazione riportata nella figura 11.7.

Questo vale anche nel caso che sui due PG siano attive funzioni cicliche; i due PG si scambiano l'accesso alla CPU.

Operatore s u l PG 1 CPU 928B Operatore s u l PG 2

PG 1 informa la CPU quali variabil i devono essere emesse -L

PG 1 richiede i dati attuali (i l PG segnala: elaborazione stato in corso)

PG 1 richiede i dati attuali

PG 1 richiede i dati attuali

PG 1 deve attendere che la CPU sia libera

PG 2 definisce un job l

1 PG 2 deve attendere cha la CPU sia libera

Il job del PG 2 viene elaborato

( i l PG segnala: elaborazione stato in corso)

(i l PG segnala: istruzione non elaborata)

PG 2 interrompe "Stato" ; la CPU elabora la richiesta di interruzioni

k - Il job del PG 2 è finito

PG 1 riceve nuovi dati i Figura 11-7 Diagramma temporale di due funzioni cicliche parallele

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 535: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Funzionamento oarallelo di due intertacce seriali PG

Particolarità con Se la funzione di interruzione blocca la CPU 928B ("Stato" di un blocco che non funzioni cicliche viene eseguito), allora anche la funzione interrotta viene bloccata. Essa viene su entrambi i PG ripresa solo quando la funzione di interruzione è finita.

Per l'esecuzione contemporanea sui due PG si ha la seguente situazione:

Operatore sul PG 1 CPU 928B Operatore sul PG 2

PG 1 informa la CPU qual i var iab i l i devono essere emesse

d PG 1 r ichiede i dat i attual i (i l PG segnala: elaborazione stato in corso)

PG 1 r ichiede i dat i a t tua l i

PG 1 r ichiede i dat i a t tua l i

PG 1 deve attendere che la CPU s ia l ibera

PG 1 r iceve nuovi dat i

r PG 2 definisce un job (p. es. Stato PB 9")

PG 2 deve attendere cha la CPU s ia l ibera

I l job del PG 2 v iene elaborato

(i l PG segnala: elaborazione stato in corso)

( i l PG segnala: istruzione non elaborata)

PG 2 interrompe "Stato" ; l a CPU elabora l a r ichiesta di interruzioni

l Il job del PG 2 è f ini to

Figura 11-8 Diagramma temporale nel caso di una funzione che blocca la CPU 928B

Avvertenze Se su un'interfaccia viene emesso "stato variabili", "forzamento variabili" generali (durante la visualizzazione dello stato) oppure "Stato" e sull'altra interfaccia

"compressione memoria", "cancellazione di blocchi" o "trasformazione di blocchi", si può verificare una visualizzazione dello stato non corretta.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 536: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Appendice

Questa appendice

Questa appendice fornisce ulteriori informazioni su alcune CPU dei controllori programmabili S5-135U e S5-155U, come ad es. il confronto dei tempi di ciclo.

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Im Kapitel

A. 1

A.2

A.3

A.4

A.5

finden Sie

Confronto dei tempi di ciclo delle CPU 928-3UA21, 928B-3UB21 e CPU 948

auf Seite

A-2

A-5

A-13

A-14

A-15

Page 537: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

A.l Confronto dei tempi di ciclo delle CPU 928-3UA21,928B-3UB21 e CPU 948

Spiegazione dei termini

Tempo base

I1 tempo base è la parte del tempo di ciclo del sistema che scorre senza aggiornamento dell'immagine di processo, trasferimento dei merker di accoppiamento ed interruzioni causate da allarmi o errori.

Tempo di reazione

I1 tempo di reazione è il tempo necessario dall'attivazione del livello di elaborazione programma ALLARME DI PROCESSO all'elaborazione del primo comando nell'OB 2, presupponendo che I'OB 2 venga richiamato subito dopo il riconoscimento di un allarme di processo. Se, invece, deve essere attesa la fine di un comando o blocco, questo tempo di reazione si allunga corrispondentemente.

Confronto dei tempi di ciclo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione / elaborazione CPU 928-3UA21

Tempi tipici per l'elaborazione di comandi a bit:

CPU 928-3UB21

con M, E, A D operando formale

CPU 948

0 9 Ys 23 ys 22 ys

Tempi tipici per l'elaborazione di comandi a parole:

0,57 ys

3,4 ys 2,4 YS

- Operazioni di caricamento L (We) L MW (parola) L MD (doppia parola)

- Calcoli con numeri in virgola fissa - Calcoli con numeri in virgola mobile

0,18 ys

0,7 P 0,91 ys

11 ys 11 ys 11 ys

11 ... 23 ys 25 ys

Elaborazione ciclica del programma (funzionamento monoprocessore):

0,81 ys

0 9 ys 1,6 YS

0,9 ... 10,4 ys 9, l ... 15,6 ys

Tempo base per il rich. dell'OB 1/FB O:

Tempo da sommare per l'aggiornamento dell'immagine di processo in dipendenza dal numero n dei byte di ingresso/uscita

con O < n 5128

Tempo da sommare per il trasferimento dei merker di accoppiamento in dipendenza dal numero n dei merker di accoppiamento

con O < n s 256

0,18 ys

0,5 ys 0,71 ys

0,55 ... 3,8 ys 3,3 ... 6,3 ys

1041106 ys

E: 14 ys t n * 1,1 ys A: 5 y s t n * 4 , 1 ys

E: 14 ys t n * 1,4 ys A: 5 ys t n * 4,3 ys

651 -

n a 64: 64 ys t n * 2,3 ps

n > 64: 92 ys t n * 2,3 ps

n a 64: 64 ys t n * 2,l ps

n > 64: 92 ys t n * 2,l ps

Page 538: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione / elaborazione

Tempo da sommare per l'elaborazione dei temporizzatori in dipendenza dalla lunghezza del gruppo di temporizzatori (ZBL)

ZBL =O ZBL #O n = numero dei temporizzatori attivati (tempo base: 10 ms)

CPU 928-3UA21

Elaborazione di programma su interrupt di processo

CPU 928-3UB21

Prolungamento del tempo di ciclo a causa dell'annidamento di un OB 2 vuoto (senza istruzioni STEP 5) alla fine di un blocco

Tempo di reazione

CPU 948

ogni 10 ms 10 ys

16 ys + Zì3L * 0,2 ys (nessuna differenza tra temporizzatori

attivati e non attivati)

ogni 10 ms 11,6 ys 16 ys +

ZBL * 0,2 ys

300 ys

270 ys

Elaborazione di

Prolungamento del tempo di ciclo a causa dell'annidamento di un OB 13 vuoto (senza istruzioni STEP 5) alla fine di un comando

Intervallo per il richiamo di un programma su interrupt periodico (Allarmi di schedulazione da OB 10 ad OB 18)

Tempo di risoluzione per l'allarme di schedulazione comandato dall'orologio (OB 9)

Tempi di risoluzione per l'allarme di ritardo

(0'3 6)

Controllo

300 ys

270 ys

262 ys

175 ys

programma su interrupt

310 ys per il primo OB di allarme di schedulazione;

170 ys per ogni altro OB di allarme di

schedulazione attivato

contemporanea- mente

10,20,50,100, 200,500 ms,

1 ,2 ,5 s

-

-

del tempo di ciclo

Preimpostazione

Regolabile tra

Attivabile

periodico

310 ys per il primo OB di allarme di schedulazione;

170 ys per ogni altro OB di allarme di

schedulazione attivato

contemporanea- mente

10,20,50,100, 200,500 ms,

1 ,2 ,5 s

ogni minuto, ogni ora,

ogni giorno, ogni settimana,

ogni mese, ogni anno,

una sola volta

1 ms

287 ys

clock variabile da 1 a 255 ms; dato

riferito a 10 ms: 10, 20, 50, 100, 200, 500 ms, 1 , 2 , 5 s

oppure 10,20,40, 80, 160, 320,640;

1,28,2,56 s

ogni minuto, ogni ora,

ogni giorno, ogni settimana,

ogni mese, ogni anno,

una sola volta

1 ms

150 ms

1 ... 13000 ms

si

150 ms

1 ... 13000 ms

si

200 ms

1 ... 2550 ms

si

Page 539: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Operazione / elaborazione CPU 928-3UA21

Capacità della memoria

CPU 928-3UB21

Capacità della memoria utente (in K byte) per ogni modulo

Capacità della memoria per blocchi dati (RAM per DB, in Kbyte)

CPU 948

64

ca. 46,6

Temporizzatori, contatori, merker

64

ca. 46,6

Numero dei temporizzatori e contatori

Numero dei merker

640 oppure 1664

-

256 per tipo

2048 merker

256 per tipo

2048 merker t 8192 merker S

256 per tipo

2048 merker t 32768 merker S

Page 540: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

A.2 Identificatori di errori

Identificatori di errori nei dati di sistema BS 3 e BS 4

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

BS 3 BS 4 Spiegazione

Struttura deile liste di indirizzamento dei blocchi (analisi del DB O)

8001H

8002H

8003H

8004H

8005H

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

Lunghezza del blocco non corretta yyyy = indirizzo del blocco con la lunghezza non corretta

Calcolo dell'indirizzo finale del blocco nella memona non corretto yyyy = indirizzo del blocco

Identificatore del blocco non valido yyyy = indirizzo del blocco con l'identificatore non valido

Numero di blocco organizzativo troppo grande (permesso: OB l...OB 39) yyyy = indirizzo del blocco con il numero non permesso

Numero di blocco dati O (permesso: DB l...DB 255) yyyy = indirizzo del blocco con il numero non permesso

Struttura

0410H

0411H

0412H

0413H

0414H

0415H

0419H

041AH

041BH

041CH

deile liste

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

yyyyH

di indirizzamento per l'aggiornamento deil'immagine di processo (analisi del DB 1)

Identificatore non permesso: - identif. dell'intestaz. mancante o non corretto (con.: KC MASKO1) - identif. non permesso (perm.: KH DEOO, DAOO, CEOO, CAOO, BBOO) - identificatore finale mancante o non corretto (corretto: KH EEEE) yyyy = identificatore non permesso

"Ingressi digitali", numero indirizzi non permesso (permesso: O ... 128) yyyy = numero indirizzi non permesso

"Uscite digitali", numero indirizzi non permesso (permesso: O ... 128) yyyy = numero indirizzi non permesso

"Merker di accopp. di ingr.", numero indir. non permesso (perm.: O ... 256) yyyy = numero indirizzi non permesso

"Merker di accopp. di uscita", numero indir. non perm. (perm.: O ... 256) yyyy = numero indirizzi non permesso

Numero temporizzatori non valido (permesso: 256) yyyy = numero temporizzatori non permesso

Ritardo della conferma per gli ingressi digitali yyyy = indirizzo del byte di ingresso non confermato

Ritardo della conferma per le uscite digitali yyyy = indirizzo del byte di uscita non confermato

Ritardo della conferma per i merker di accoppiamento di ingresso yyyy = indirizzo del byte di merker di accoppiamento non confermato

Ritardo della conferma per i merker di accoppiamento di uscita yyyy = indirizzo del byte di merker di accoppiamento non confermato

Analisi del DB 2

0421H

0422H

0423H

0424H

0425H

0426H

DByyH

FByyH

FByyH

FByyH

DByyH

-

Blocco dati non cancato yy = numero del blocco dati non caricato

Blocco funzionale non caricato yy = numero del blocco funzionale non cancato

Blocco funzionale non riconosciuto yy = numero del blocco funzionale non riconosciuto

Blocco funzionale cancato con un software PG non corretto yy = numero del blocco funzionale

Lunghezza del blocco dati di regolazione non corretta yy = numero del blocco dati

La memoria nella RAM per DB non è sufficiente per il trasferimento dei DB di regolazione dall'EPROM utente nella RAM di DB

Page 541: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

BS 3 BS 4 Spiegazione

Analisi del DX O

0431H

0432H

0434H

0435H

yyyyH

yyyyH

yyyyH

yyyyH

Identificatore non permesso -identif. dell'intestaz. assente non corretto (corr.: KC MASKXO) -identificatore del gruppo non permesso -identificatore finale assente o non corretto (corretto: KH EEEE) yyyy = identificatore non permesso

Parametro non permesso yyyy = parametro non permesso

Numero temporizzatori non permesso (permesso: 0...256) yyyy = numero temporizzatori non corretto

Tempo di ciclo non permesso (permesso: 1 ms ... 13000 ms) yyyy = grandezza di tempo non corretta

0451H 0452H

0453H

0454H

0455H

0456H

0457H

0458H

0459H

0045AH

045BH

045CH

045DH

045EH

045FH

0460H

0461H

- yyyyH

yyyyH

xxOOH

xxyyH

xxyyH

yyyyH

xxOOH

xxyyH

xxOOH

xxyyH

xxOOH

xxyyH

xxOOH

xxyyH

xxyyH

yyyyH

Analisi del DX 2

Lunghezza del DX 2 (senza intestazione) < 4 parole non è permessa Lungh. del DX 2 (senza intestazione) troppo corta per il tipo di accoppiam.

yyyy = lunghezza DX 2 Tipo di accoppiamento non permesso

yyyy = tipo di acoppiamento Identif. dati per il set di param. statici non valido (non uguale a 44H, 58H)

xx = identificatore dati Blocco per il set di parametn statici non permesso

xx = identificatoreiyy = numero DB Set di parametri statici non presente

xx = identificatoreiyy = numero DB Set di parametri statici troppo corto

yyyy = numero della parola dati non presente Identif. dati per il set di par. dinamici non val. (non uguale a 44H, 58H, OOH)

xx = identificatore dati Blocco per il set di parametn dinamici non permesso

xx = identificatoreiyy = numero DB Identificatore dati per trasmissione/funzione non valido

(non uguale a 44H, 58H, OOH) xx = identificatore dati

Blocco per trasmissione/funzione non permesso xx = identificatoreiyy = numero DB

Identificat. dati per la trasmissione non valido (non uguale a 44H, 58H, OOH) xx = identificatore dati

Blocco per la trasmissione non permesso xx = identificatoreiyy = numero DB

Identif. dati per i byte di coordin. non valido (non uguale a 44H, 58H, 4DH) xx = identificatore

Blocco per i byte di coordinamento non permesso xx = identificatoreiyy = numero DB

Blocco per i byte di coordinamento non presente xx = identificatoreiyy = numero DB

Parola dati per i byte di coordinamento non presente yyyy = numero della parola dati non presente

Page 542: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Identificatori di errori in ACCU l ed ACCU 2

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

ACCU- l -L

ACCU- 2-L

REG-FE (errore di regolazione)

Spiegazione

0801H

0802H

0803H

0804H

0805H

0806H

0880H

OB richiamato

DByyH

DByyH

FByyH

FByyH

FByyH

DByyH

OOyyH

WECK-FE (errore deil'allarme di schedulazione)

Errore del tempo di campionamento yy = numero del relativo blocco dati per la regolazione

Blocco dati per la regolazione non caricato yy = numero del blocco dati non caricato

Blocco funzionale per la regolazione non caricato yy = numero del blocco funzionale non caricato

Blocco funzionale per la regolazione non riconosciuto yy = numero del blocco funzionale non riconosciuto

Blocco funz. per la reg. caric. con un software PG non corr. yy = numero del blocco funzionale

Lunghezza del blocco dati per la regolazione non corretta yy = numero del blocco dati

Ritardo della conferma (QVZ) durante l'elabor. del regolatore yy = numero del byte EIA che ha causato il QVZ

1001H

OB 34

0016H 0014H 0012H 0010H 000EH 000CH 000AH 0008H 0006H

BCF (errore nel codice del comando)/errore di sostituzione

Errore dell'allarme di schedulazione per I'OB 10 (10 ms) Errore dell'allarme di schedulazione per I'OB 11 (20 ms) Errore dell'allarme di schedulazione per I'OB 12 (50 ms) Errore dell'allarme di schedulazione per I'OB 13 (100 ms) Errore dell'allarme di schedulazione per I'OB 14 (200 ms) Errore dell'allarme di schedulazione per I'OB 16 ( l s) Errore dell'allarme di schedulazione per I'OB 17 P s) Errore dell'allarme di schedulazione per I'OB 18 (5 s)

1801H 1802H 1803H 1804H 1805H

1806H

OB 33

- - - - -

-

t

OB 29

Errore di sostituzione per il comando BBS Errore di sostituzione per BDW, BMW Errore di sostituzione per i comandi B=, BI= Errore di sostituzione per i comandi L=, =T Errore di sostituzione per i comandi U=, UN=, O=, ON=,

S= ed RB= Errore di sostituzione per i comandi RD=, LC=, FR=, SAR=,

SE=, SI=, SSV= ed SVZ=

BCF (errore nel codice del comando)/errore del codice di operazione

OB 27

1811H 1812H

1813H

1814H

1815H

- -

-

-

-

Comando con un codice di operazione non permesso Codice di operazione non permesso con un comando che

contiene 68H nel byte high della pnma parola Codice di operazione non permesso con un comando che

contiene 78H nel byte high della pnma parola Codice di operazione non permesso con un comando che

contiene 70H nel byte high della pnma parola Codice di operazione non permesso con un comando che

contiene 60H nel byte high della pnma parola

Page 543: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

ACCU- l-L

ACCU- 2-L

BCF (errore nel codice del comando)/errore del parametro

Spiegazione

1821H 182BH 182CH 182DH 182EH 182FH 1830H 1831H 1832H 1833H 1834H 1835H

1836H 1837H 1838H 1839H 183AH 183BH 183CH

OB richiamato

- - - - - - - - - - - -

- - - - - - -

LZF (errore di esecuzione)/blocco non caricato

Parametro non permesso con:

ADB O, 1 , 2 SPA(B) OB O SPA(B) OB >39: funzione speciale non presente A X D X O , A X D X l e d A X D X 2 LMW/rMW/LPW/rPW/LQW/TQW/LDD/TDD/BMW: 255 L EW/T EW/L AW/T AW 127 L MD / T MD 253,254,255 L ED/T EDIL AD/T AD 125, 126, 127 RLDIRRDISVDISLD 33-255 SLW/SRW/LIR/TIR 16-255 SESISEF 32-255 U=/UN=/O=/ON=/S=/RB=/==/RD=IFR=/SI=/SE=/ SVZ=/SSV=/SAR=/L=/LC=/LW=/T= O, 127-255

B=/LD= 0, 126-255 U S/O S/S S/= S/UN SION S/R S numero byte > 1023 U S/O S/S S/= S/UN S/ON S/R S numero bit > 7 L SY/T SY parametro > 1023 L SW/T SW parametro > 1022 L SD/T SD parametro >l020 E DBIEX DX parametro 0, 1 o 2 (DBIDX O, 1, 2 non generabile)

1AOlH 1A02H 1A03H 1A04H 1A05H 1A06H 1A07H

OB 30

- - - - - - -

LZF (errore di esecuzione)/errore di caricamento o trasferimento

Blocco dati non caricato per A DB Blocco dati non caricato per AX DX Blocco dati non caricato per SPA(B) FB, OB 1 ... OB 39, PB, SB Blocco dati non caricato per BA(B) EX Blocco dati non caricato per OB 2541255 Blocco dati non caricato per OB 182 Blocco dati non caricato per OB 150/OB 151

1A11H

1A12H 1A13H 1A14H 1A15H 1A16H 1A17H 1A18H 1A19H

OB 19

-

- - - - - - - -

Accesso con U/UN D, O/ON D, S/R D, =D ad una parola dati non definita

Errore di trasferimento con TDR ad una parola dati non definita Errore di trasferimento con TDL ad una parola dati non definita Errore di trasferimento con TDW ad una parola dati non definita Errore di trasferimento con TDD ad una parola dati non definita Errore di cancamento con LDR ad una parola dati non definita Errore di cancamento con LDL ad una parola dati non definita Errore di cancamento con LDW ad una parola dati non definita Errore di cancamento con LDD ad una parola dati non definita

OB 32

Page 544: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

ACCU- l -L

ACCU- 2-L

1A21H 1A22H

1A23H 1A25H 1A29H 1A2AH

1A2BH 1A2CH 1A3 1H

1A32H

1A33H

1A34H 1A34H 1A34H 1A34H 1A34H 1A34H 1A34H

1A34H

1A34H 1A34H 1A34H

1A34H

Spiegazione OB

richiamato

- -

- - - -

- - -

-

-

0001H 0100H 0101H 0102H 0200H 0201H 0202H

0203H

0210H 0211H 0212H

0213H

LZF (errore di esecuzione)/altri errori di esecuzione

Segnalazione di ... /tramite ... : E DB, EX DX: blocco dati già esistente E DB, EX DX: numero di parole dati non permesso,

(< 1 o > 4091) E DB, EX DX: memoria nella RAM non sufficiente BI: parametro nell'ACCU 1 non permesso (< 1 o > 125) Superamento del livello di parentesi dopo W(', 'O(, ')' A DB, AX DX: lunghezza del blocco nell'intestazione del blocco

dati troppo piccola (lunghezza < 5 parole) Blocco funzionale caricato con un sofiware PG non corretto ACR: numero di kachel nell'ACCU-1-L non permesso (> 255) OB 25410B 255 (traslare) oppure OB 250:

blocco dati di destinazione già presente nella RAM per DB OB 25410B 255 (duplicare):

blocco dati di destinazione già presente nella RAM per DB OB 25410B 255 oppure OB 250:

memoria nella RAM per DB non sufficiente OB 182: scrittura del campo dati non permesso OB 182: tipo di campo di indirizzamento non permesso OB 182: numero del blocco dati non permesso OB 182: "numero della prima parola del parametro" non permesso OB 182: "tipo del blocco dati sorgente" non permesso OB 182: "numero del blocco dati sorgente" non permesso OB 182: "numero della prima parola dati sorgente da trasferire"

non permesso OB 182: l'intestazione del blocco contiene un valore <5 parole

come lunghezza del blocco dati sorgente OB 182: "tipo del blocco dati destinazione" non permesso OB 182: "numero del blocco dati destinazione" non permesso OB 182: "numero della prima parola dati destinazione da

trasferire" non permesso OB 182: l'intestazione del blocco contiene un valore <5 parole

come lunghezza del blocco dati destinazione

OB 31

Page 545: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

ACCU- l -L

ACCU- 2-L

1A34H

1A34H 1A34H 1A34H 1A35H 1A36H 1A3AH

1A3BH

1A41H

1A42H 1A43H 1A44H 1A45H

1A46H

1A47H 1A48H 1A49H 1A4AH 1A4BH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH

1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4CH 1A4DH 1A4DH 1A4DH

Spiegazione OB

richiamato

0220H

0221H 0222H 0223H - - -

-

-

- - - -

-

- - - - -

0001H 0100H 0101H 0102H 0103H

0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH 0001H 0100H 0101H

LZF (errore di esecuzione)/altri errori di esecuzione (continuazione)

Segnalazione di ... /tramite ... : OB 182: "numero delle parole dati da trasferire" non permesso

(= O oppure > 4091) OB 182: blocco dati sorgente troppo corto OB 182: blocco dati destinazione troppo corto OB 182: blocco dati sorgente memorizzato nell'EPROM OB 250: numero del blocco dati trasmettitore non permesso OB 250: lunghezza diversa di DB x e DB x + 1/DX x e DX x + 1 OB 221: valore per il nuovo tempo di ciclo non permesso

(< 1 ms oppure > 13 000 ms) OB 223: tipi di avviamento diversi per le CPU in funzionamento

multiprocessore OB 240, OB 241 o OB 242:

numero del registro a scornmento o del blocco dati non permesso (e 192 oppure > 255)

OB 241: registro a scorrimento non inizializzato OB 240: memoria nella RAM per DB non sufficiente OB 240: la parola dati DW O del blocco dati non ha il contenuto "0" OB 240: lunghezza del registro a scorrimento nella DW 1

non permesso (non tra 2 e 256) OB 240: posizione del puntatore non permesso o numero dei

puntatore > 5 OB 120: valori non permessi nell'ACCU 1 o ACCU-2-L OB 122: valori non permessi nell'ACCU 1 OB 110: valori non permessi nell'ACCU 1 o ACCU-2-L OB 121: valori non permessi nell'ACCU 1 o ACCU-2-L OB 123: valori non permessi nell' ACCU 1 OB 150: numero di funzione non permesso (= O oppure > 2) OB 150: tipo di campo di indirizzamento non permesso OB 150: numero del blocco dati non permesso OB 150: "n. della prima parola nel campo dati" non permesso OB 150: l'intestazione del blocco contiene un valore < 5 parole

come lunghezza del blocco dati OB 150: indicazione dell'anno nel campo dati non permessa OB 150: indicazione del mese nel campo dati non permessa OB 150: indicaz. del giorno del mese nel campo dati non permessa OB 150: indicaz. del giorno della settim. nel campo dati non permessa OB 150: indicazione dell'ora nel campo dati non permessa OB 150: indicazione dei minuti nel campo dati non permessa OB 150: indicazione dei secondi nel campo dati non permessa OB 150: 11100 secondo nel campo dati non è uguale a O OB 150: parola 3 nel campo datiibit 0...3 O O OB 150: formato dell'ora non uguale all'impostazione nell'OB 151 OB 151: numero di funzione non permesso (= O oppure > 2) OB 151: tipo del campo di indirizzamento non permesso OB 151: numero del blocco dati non permesso

OB 31

Page 546: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

ACCU- l -L

ACCU- 2-L

1A4DH 1A4DH

1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH 1A4DH

1A4EH

1A4FH 1A4FH

1A50H

1A51H

1A52H

1A53H

1A54H

1A55H

1A56H

1A57H

Spiegazione OB

richiamato

0102H 0103H

0201H 0202H 0203H 0204H 0205H 0206H 0207H 0208H 0209H 020AH

0001H

0001H 0002H

-

-

-

-

-

-

-

-

LZF (errore di esecuzione)/altri errori di esecuzione (continuazione)

Segnalazione di ... /tramite ... : OB 151: "numero della prima parola nel campo dati" non perm. OB 151: l'intestazione del blocco contiene un valore < 5 parole

come lunghezza del blocco dati OB 151: indicazione dell'anno nel campo dati non permessa OB 151: indicazione del mese nel campo dati non permessa OB 151: indicaz. del giorno del mese nel campo dati non permessa OB 151: indicaz. del giorno della settim. nel campo dati non permessa OB 151: indicazione dell'ora nel campo dati non permessa OB 151: indicazione dei minuti nel campo dati non permessa OB 151: indicazione dei secondi nel campo dati non permessa OB 151: 11100 secondo nel campo dati non è uguale a O OB 151: tipo di intervallo nel campo dati non permesso (> 7) OB 151: formato dell'ora non uguale all'impostazione nell'OB 150

OB 152: numero di funzione non permesso (solo da * O a z 3 o z 8 o z 15)

OB 153: numero di funzione non permesso (= O opp. < 0) OB 153: tempo di ritardo non permesso

LRW, TRW: l'indirizzo di memoria calcolato < BR t costante > non si trova nel campo "O ... EDFFH" (vedere capitolo 9)

LRD, TRD: l'indirizzo di memoria calcolato < BR t costante > non si trova nel campo "O ... EDFEH" (vedere capitolo 9)

TSG, LB GB, LW GW, TB GB, TW GW: l'indirizzo lineare calcolato < BR t costante > non si trova nel campo "O ... EFFFH"

LB GW, LW GD, TB GW, TW GD: l'indirizzo lineare calcolato < BR t costante > non si trova nel campo "O ... EFFEH"

LB GD, TB GD: l'indirizzo lineare calcolato < BR t costante > non si trova nel campo "O ... EFFCH"

TSC, LB CB, LW CD, TB CW, TW CD: l'indirizzo di kachel calcolato < BR t costante > non si trova nel campo "F400H ... FBFFH"

LB CW, LW CD, TE3 CW, TW CD: l'indirizzo di kachel calcolato < BR t costante > non si trova nel campo "F400H ... FFFEH"

LB CD, TE3 CD: l'indirizzo di kachel calcolato < BR t costante > non si trova nel campo "F400H ... FBFCH"

OB 31

Page 547: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

ACCU- l -L

ACCU- 2-L

LZF (errore di esecuzione)/altri errori di esecuzione (continuazione)

Spiegazione

1A58H

1A59H

OB richiamato

-

-

QVZ (ritardo deila conferma)

Segnalazione di ... /tramite ... : TNWITNB: il blocco sorgente non si trova completamente in uno

di questi settori: 0000 .. 7FFF Memoria utente (vedere capitolo 9) 8000 .. DD7F RAM per blocchi dati DD80.. E3FF DB O E400 .. E7FF Merker S E800 .. EDFF Dati di sistema (BA,BB,BS,BT,Z,T) EEOO .. EFFF Merker, immagine di processo FOOO .. FFFF Periferia

TNW/TNB: il blocco destinazione non si trova completamente in uno di questi settori: O000 .. 7FFF Memoria utente (vedere capitolo 9) 8000 .. DD7F RAM per blocchi dati DD80.. E3FF DB O E400 .. E7FF Merker S E800 .. EDFF Dati di sistema (BA,BB,BS,BT,Z,T) EEOO .. EFFF Merker, immagine di processo FOOO .. FFFF Periferia

1E23H

1E25H

1E26H

1E27H

1E28H

OB 31

yyyyH

YYYYH

y y y y ~

yyyyH

YYYYH

ADF (errore di indirizzamento)

Ritardo deila conferma (QVZ) nel programma utente per l'accesso alla periferia

yyyy = indirizzo QVZ

Ritardo della conferma con l'emissione dell'immagine di processo delle uscite digitali yyyy = indirizzo del byte di uscita non confermato

Ritardo della conferma con l'aggiornamento dell'immagine di processo degli ingressi digitali yyyy = indirizzo del byte di ingresso non confermato

Ritardo della conferma con l'aggiornamento dei merker di accoppiamento delle uscite yyyy = indirizzo del byte di merker di accopp. non confermato

Ritardo della conferma con l'aggiornamento dei merker di accoppiamento degli ingressi yyyy = indirizzo del byte di merker di accopp. non confermato

1E4OH

OB 23

OB 24

yyyyH Errore di indirizzamento (ADE) nel programma utente yyyy = indirizzo ADE

OB 25

Page 548: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Appendice

A.3 Istruzioni STEP 5 non contenute nella CPU 928B

Le seguenti istruzioni STEP 5 della CPU 9461947 e della CPU 948 non possono essere utilizzate nella CPU 928B:

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Istnizione

BAS

BAF

P E, A, M, Z, T, D, BA, BB, BS, BT

PN E, A, M, Z, T, D, BA, BB, BS, BT

SU E, A, M, Z, T, D, BA, BB, BS, BT

RU E, A, M, Z, T, D, BA, BB, BS, BT

LIM

SIM

UBE

STW

AFS

AFF

AAF

AAS

Funzione

Inibizione dell'emissione dei comandi

Abilitazione dell'emissione dei comandi

Test di un bit su stato "1"

Test di un bit su stato "0"

Impostazione assoluta di un bit

Resettaggio assoluto di un bit

Caricamento della maschera di interrupt

Impostazione della maschera di interrupt

Fine del blocco interruzioni

Comando di STOP per l'elaborazione di un allarme di schedulazione

Inibizione interrupt per errori di indirizzamento

Abilitazione interrupt per errori di indirizzamento

Abilitazione dell'elaborazione di allarmi

Inibizione dell'elaborazione di allarmi

Page 549: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Appendice

A.4 Identificatori dei livelli di elaborazione programma

Gli identificatori corrispondono a quelli riportati sotto LIVELLO (in codice esadecimale) nell'USTACK.

Liveiio l 0002H 0004H 0006H 0008H 000 AH 000CH OOOEH

Nuovo awiamento Ciclo Allarme di schedulazione 5 s Allarme di schedulazione 2 s Allarme di schedulazione 1 s Allarme di schedulazione 500 ms Allarme di schedulazione 200 ms

Allarme di schedulazione 100 ms Allarme di schedulazione 50 ms Allarme di schedulazione 20 ms Allarme di schedulazione 10 ms Allarme dall'orologio Libero Regolazione Libero

Allarme di ritardo Libero Allarme di processo

Libero Nuovo awiamento manuale con memoria Nuovo awiamento automatico con memoria Interruzione Errore di interfaccia

Errore per collisione di interrupt temporali Errore di regolazione Errore di ciclo Libero Errore nel codice del comando Errore di esecuzione Errore di indirizzamento Ritardo della conferma

Libero Libero Riavviamento manuale Riavviamento automatico

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 550: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

A.5 Esempio di "analisi dell'USTACK"

Questo esempio molto semplificato illustra una possibilità di analisi dell' USTACK.

Bisogna anche fare attenzione a quanto riportato nel paragrafo 5.3 "Bit di comando e registro di interruzione"!

Punto di partenza La CPU ha interrotto l'elaborazione ciclica del programma e si è portata nello stato di STOP.

Analisi dell'errore Per scoprire la causa bisogna selezionare la funzione online "Emissione USTACK" sul dispositivo di programmazione.

Vengono per prima emessi sul PG i bit di comando:

B I T D I C O M A N D O

>>STP<< STP-6 FE-STP BARBEND PG-STP STP-SCH STP-BEF MP-STP X X

>>ANL<< ANL-6 NEUSTA M W A A W A ANL-2 NEUZU MWA-ZUL X X X

>>RUN<< RUN-6 EINPROZ BARB OBIGEL FBOGEL OBPROZA OBWECKA X X

32WRAM 16WRAM 8KWRAM EPROM KM-AUS KM-EIN DIG-EIN DIG-AUS X X X

URGELOE URL-IA STP-VER ANL-ABB UA-PG UA-SYS UA-PRFE UA-SCH

DXO-FE FE-22 MOF-FE RAM-FE DBO-FE DBI-FE DB2-FE KOR-FE

N A U P E U B A U STUE-FE Z Y K Q V Z A D F WECK-FE

B C F FE-6 FE-5 FE-4 FE-3 L Z F REG-FE DOPP-FE

\ X

I bit di comando danno lo stato attuale di funzionamento della CPU (>>STP<<). Sono inoltre contrassegnate determinate caratteristiche della CPU (per esempio OB 1 caricato, funzionamento monoprocessore, memoria utente da 16 KW). Nella riga superiore è contrassegnato STP-BEF come causa per lo stato di STOP. Supponendo che non è stato programmato alcun comando STP nel programma utente STEP 5, si deduce che deve essere stato il programma di sistema a dare tale comando di STOP a causa di un OB di errore non caricato. Nella riga inferiore è contrassegnato l'identificatore LZF.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 551: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

E' possibile che al verificarsi di un errore di esecuzione, il programma di sistema abbia scoperto che il corrispondente blocco organizzativo di errore non fosse stato programmato. Poiché però esistono diversi tipi di errori di esecuzione, le informazioni date dai bit di comando non sono sufficienti.

Bisogna perciò guardare 1'USTACK:

REGISTRO DI INTERRUZIONE (o USTACK)

PROFONDITA: 01

REG-COM: 0000 IND: 0000 IND-DB: 0000 IND.BA: O000 BLC.STP: 0001 IND-NR.: 226 DB.NR.: -NR.:

IND-REL: 0006 DBL.REG.: 0000 LIVELLO: 003A UAMK: 0120 UALW: O000

VISUAL. RISULTATO: ANZI ANZO OVFL OVFLS ODER ERAB l l STATO RLC l l CAUSA D STOP: NAU PEU BAU MPSTP ZYK QVZ l

ADF STP BCF S-6 LZF REG X

STUEB STUEU WECK DOPP

L'USTACK con profondità 01 rappresenta il livello di elaborazione programma che è stato attivato da ultimo prima del passaggio allo stato di STOP. L'identificatore 003A (dopo LIVELLO) dimostra che questo è 1'USTACK del livello di elaborazione programma ERRORE DI ESECUZIONE. Nell'ACCU 1 si trova l'identificatore di errore 00001A01. E' chiaro allora che l'errore di esecuzione si è verificato perché al comando "A DB" è stato richiamato un blocco dati non caricato. Poiché il relativo OB di errore 19 non è presente in questo programma utente, il programma di sistema ha interrotto l'elaborazione di programma (STP). La parola di mascheramento delle visualizzazioni di interruzione UAMK memorizza le cause per le interruzioni: l'identificatore 0120 corrisponde alla matrice di bit "0000 0001 0010 0000". Sono impostati i bit 25 (LZF) e 28 (STP).

Resta da scoprire in quale blocco e da quale comando è stato causato l'errore di esecuzione.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 552: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bisogna adesso guardare I'USTACK del livello 02:

/ REGISTRO DI INTERRUZIONE \ PROFONDITA: 02

BEF-REG: 2006 IND: 0037 IND-DB: 0000 IND.BA: O000 BST.STP: 0001 OENR.: 1 DB.NR.: -NR.:

IND-REL: 0004 DBL4EG.: 0000 LIVELLO: 0004 UAMK: 0020 UALW: O000

VISUAL. RISULTATO: ANZI ANZO OVFL OVFLS OR ERAB

STATO RLC

CAUSA DI STOP: NAU PEU BAU MPSTP ZYK QVZ

ADF STP BCF S-6 LZF REG X

STUEB STUEU WECK DOPP

L'identificatore 0004 (dopo LIVELLO) dimostra che si tratta dell'USTACK del livello di elaborazione programma CICLO interrotto. I1 contatore di indirizzo IND punta sull'indirizzo 0037H. Questo indirizzo assoluto nella memoria utente contiene il comando che ha causato l'errore ed ha il codice 2006 (BEF-REG). Nella "lista del codice macchina" nella tabella delle operazioni, questo numero corrisponde all'operazione STEPS "A DB 6".

L'interruzione si è verificata nel blocco organizzativo OB 1. Nell'OB 1 il comando che ha causato l'errore si trova all'indirizzo relativo 0004 (IND-REL). Come abbiamo visto, questo comando causa un errore di esecuzione (vedere UAMK, bit 25, e CAUSA DI STOP).

Usando adesso la funzione online "Emissione blocco/RICERCA" del dispositivo di programmazione si può far emettere il comando errato. Per far ciò bisogna introdurre il relativo blocco (OB l ) e l'indirizzo relativo del comando.

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 553: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

F1 F2 F3 F4 F5 F6 F7 F8

VIS.SIMB. ! BIB.NR.

EMISSIONE: AG BLOCCO: OB1 RICERCA: 4H

1 IND-REL

Dopo la ricerca, il PG emette il comando "A DB 6" responsabile dell'interruzione, dato che il blocco dati con il numero 6 non esiste nella memoria utente.

OB 1

SEGMENTO 1 0000 0004 :A DB 6 Comando che ha causato l'errore 0005 0006 0007 0008 : BE

Manuale di programmazione CPU 928B

C79000-G8572-C870-01

Page 554: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Bibliografia

/l/ s5-135u/155u CPU 922/CPU 928/CPU 928B/CPU 948 Lista delle operazioni

N. di ordinazione 6ES5 997-3UA52

121 Manuale di sistema S5-135U1155U

N. di ordinazione 6ES5 998-OSH53

131 Manuale STEP 5

N. di ordinazione C79000-G8572-C140

141 GRAPH 5: Ablaufsteuerungen graphisch programmieren unter dem Betriebssystem S5-DOS SIMATIC S5

(GRAPH 5: Programmazione grafica di controlli sequenziali con il sistema operativo S5-DOS per SIMATIC S5)

(non disponibile in lingua italiana)

N. di ordinazione 6ES5 998-1SA01 (versione tedesca, inglese e francese)

151 Blocchi funzionali standard Blocchi di trasporto CPU 922, CPU 922, CPU 928B Controllore programmabile S5-135U, S5-155U (non disponibile in lingua italiana)

N. di ordinazione C79000-G8563-C572 (versione tedesca, inglese e francese)

/6/ SINEC Handbuch CP 143 mit COM 143

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 555: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Biblioarafia

(SINEC Manuale CP 143 con COM 143) (disponibile solo in lingua tedesca)

N. di ordinazione 6GK1970-1AB43-OAAO

171 Hans Berger: Automatisieren mit SIMATIC S5-155U (Automazione con SIMATIC S5-155U)

SIEMENS AG ISBN 3-8009-1538-3 (versione tedesca) SIEMENS AG ISBN 3-8009-1561-8 (versione inglese)

181 Speicherprogrammierbare Steuerungen Grundbegriffe (Controllori a memoria liberamente programmabile Terminologia di base) (non disponibile in lingua italiana)

SIEMENS AG N. di ordinazione E80850-C293-X-A2 (versione tedesca) N. di ordinazione E80850-C293-X-Al-7600 (versione inglese)

191 Catalogo ST 59: Dispositivi di programmazione SIMATIC S5

1101 Catalogo ST 54.1: Controllori programmabili S5-135U, S5-155U e S5-155H

1111 Catalogo ST 57: Blocchi funzionali standard e driver software per i controllori programmabili SIMATIC S5 della serie U

1121 Manuale SCL (non disponibile in lingua italiana)

N. di ordinazione C79000-G8500-C162 (versione tedesca) N. di ordinazione C79000-G8576-C162 (versione inglese)

1131 Struttura di regolazione R64

1141 S5-135U Communicazione CPU 928B

N. di ordinazione 6ES5 998-OCN51 (versione tedesca)

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 556: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Abbreviazioni

(Per la spiegazione relativa alle abbreviazioni dell'USTACK vedere il paragrafo 5.4)

ACCU-1 (2, 3, 4)-H ACCU-1 (2, 3, 4)-L ACCU-1 (2,3, 4)-LH ACCU-1 (2,3, 4)-LL ADE AG ANZ 1, ANZ o AWL ANZW

BASP BCD BR BSTACK

CP CPU

DB DBA DBL DX

EG EPROM

ERAB

EB EUP EX

IM IND IP IP IPI IPU

parole HIGH nell'accumuatore 1 (2, 3, 4), 16 bit parole LOW nell'accumulatore 1 (2, 3,4), 16 bit byte HIGH della parola LOW nell' ACCU 1 (2,3,4), 8 bit byte LOW della parola LOW nell'ACCU 1 (2, 3, 4), 8 bit errore di indirizzamento controllore programmabile visualizzazioni in parole, codificate lista istruzioni parole di visualizzazione

disabilitazione delle uscite (segnale al bus S5) codice BCD - numero decimale con codice binario registro di indirizzi base registro blocco

processore di comunicazione centra1 processing unit, unità centrale

blocco dati indirizzo iniziale del blocco dati (nel registro 6) lunghezza del blocco dati (nel registro 8) blocco dati (ampliamento)

unità di ampliamento erasable progammable read only memory (memoria a sola lettura, programmabile, cancellabile tramite raggi ultravioletti) prima interrogazione (visualizzazione in bit)

blocco funzionale schema logico blocco funzionale (ampliamento)

Interface Modul (modulo interfaccia) contatore indirizzi STEP unità periferica intelligente immagine di processo immagine di processo degli ingressi immagine di processo degli uscite

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 557: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Abbreviazioni

KOP KOR

LED

NAU

PAFE PARE PB PEU PG

QVZ

RAM RLC

SB SPU STA STP SUE STUEB STUEU

TLAF

USTACK

ZG ZYK

schema a contatti coordinatore

light-emitting diode (elemento per la visualizzazione)

mancanza tensione

blocco organizzativo OR (visualizzazione in bit) eccedenza (overflow) memorizzante (visualizzazione in parole) eccedenza (overflow) (visualizzazione in parole)

byte di errore di parametrizzazione errore di parità blocco di programma fuori servizio della tensione di alimentazione dell'apparecchiatura di ampliamento dispositivo di programmazione

ritardo della conferma

random-access memory (memoria in lettura/scrittura) risultato logico combinatorio

blocco sequenziale processore di sistema operativo stato (visualizzazione in bit) istruzione STOP errore di sostituzione overflow BSTACK overflow USTACK

errore di caricamento o trasferimento

registro di interruzione

apparecchiatura centrale errore di ciclo

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 558: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice analitico

Accesso alla memoria generalità 9-2 tramite il registro BR 9-24

Accoppiamento seriale PG - controllore 11-16 Accumulatori 3-13,6-9 ADE (errore di indirizzamento) 5-22,5-45 Allarme

disattivazione 6-11 ritardo 6-16

Allarme dall'orologio 4-6, 4-8,4-25, 4-29,6-28 interruzioni 4-30 particolarità 4-31

Allarme di processo 4-6, 4-8,4-25 abilitazione 3-66 con controllo del fronte 4-38 con controllo del livello 4-37 disabilitazione 3-66 elaborazione 4-36 inibizione 3-66,4-38 punti di interruzione 4-36

Allarme di regolazione 4-6,4-8, 4-25,4-35 Allarme di ritardo 4-6, 4-8,4-25, 4-28,6-42

interruzioni 4-29 particolarità 4-29

Allarme di schedulazione 4-6, 4-8,4-25 ad intervalli fissi 4-25 dall'orologio 4-25 punti di interruzione 4-32

Analisi statistica 6-35 Annidamento di livelli

di elaborazione programma 4-7 ANZledANZO

Vedere: visualizzazione dei risultati AWIAMENTO

errori in AWIAMENTO 5-25,5-32 generalità 3-10,4-2,4-15 interruzioni 4-22 modi di avviamento 6-84

AWL (lista istruzioni) 2-2

BCF (errore nel codice del comando) errore del parametro 5-22,5-33,5-36 errore di sostituzione 5-22,5-33 - 5-34 errore nel codice dell'operazione 5-22,5-33,5-35

Bit di comando 5-3,5-7 - 5-8 Blocchi funzionali standard

Vedere: blocco funzionale Blocco

annidamento di blocchi 3-3,3-6 attivazione di un blocco 3-30 blocco di intestazione accessorio 2-11,2-33 cancellazione 2-13 corpo del blocco 2-11, 2-22,2-34 correzione 2-13 descrizione generale 2-4 generalità 2-4 gestione di blocchi 6-52 identificatore di blocco 2-34 intestazione 2-11,2-22 intestazione accessorio 2-11,2-33 intestazione del blocco 2-11, 2-22,8-8 lista di indirizzi di blocco 3-6 lista di indirizzo di blocco 8-9 numero 2-10,2-25, 2-34,3-31 parametro di blocco 2-25 richiamo di un blocco 2-14,3-6,3-31 salto ad un blocco 3-30 tipo di blocco 2-10,2-24

Blocco dati (DBJDX) accesso 6-52 attivazione 2-36 blocco dati attuale 1-12 generalità 1-11, 2-11,2-33 generazione 3-31 programmazione 2-35 struttura 2-33 test 6-56

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 559: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice analitico

validità 2-36 Blocco dati DB O 2-39,3-6,5-26 Blocco dati DB 1 2-39,5-26,lO-9 Blocco dati DB 2 2-39,5-28 Blocco dati DB2 2-39 Blocco dati DX O 2-39, 7-2 - 7-3 Blocco dati DX 1 2-39 Blocco dati DX 2 5-29 Blocco dati DX2 2-39 Blocco di programma (PB) 2-10,2-14 Blocco di trasporto 6-89 Blocco funzionale (FB/FX)

blocchi funzionali speciali 2-31 blocchi funzionali standard 2-21,2-31,6-89 FB O 2-32 generalità 2-10,2-21 programmare 2-23 richiamare e parametrizzare 2-23,2-26 struttura 2-22

Blocco organizzativo (OB) descrizione generale 2-10,2-14 generalità 2-10,2-14 OB speciali 2-19,6-28 per errori 2-18 per interfacce utenti 2-16

Blocco organizzativo di comunicazione 10-21 byte di visualizzazione 10-24 parametri 10-22 tempo di esecuzione 10-29

Blocco sequenziale (SB) 2-10,2-14 BSTACK (registro di blocco) 5-3

analisi 5-5 emissione 5-5 lettura 6-47

Campo P Vedere: Periferia

Campo Q Vedere: Periferia

CICLO 3-10,4-26 elaborazione ciclica del programma 1-3, 1-14,3-2,3-10,4-26 interfaccia utente OB1 4-27 livello di elaborazione programma 4-7 - 4-8,4-25 punti di interruzione 4-27

Codice operazione 2-5

Combinazioni 3-47 binarie 3-17 digitali 3-48

COMPRESSIONE MEMORIA 2-13 Comunicazione multiprocessore

applicazioni 10-50 esecuzione 10-13 identificazione delle CPU in trasm./ricezione 10-15 inizializzazione 10-30 lista di attribuzione 10-34 memorizzazione intermedia dei dati 10-16 modi di funzionamento 10-33 quantità che può essere trasmessa 10-13 ricezione di dati 10-45 trasmissione di dati 10-38

Contatori Z 1-11 Controllo del tempo di ciclo 3-11 Correggere un blocco 2-13 CPU 948

prestazioni 1-2

Dati 6-23 Dati di sistema BS 3 e BS 4 5-4,5-26 DBA (indirizzo iniziale del blocco dati) 9-9 DBL (lunghezza del blocco dati) 9-12 Decremento 3-60 Definizione della 9"raccia 4-19

Elaborazione ciclica del programma 1-3, 1-14,3-2,3-10 Elaborazione parallela 10-21 Elaborazione programma su interrupt di processo 1-4 Elaborazione programma su interrupt periodico 1-4,4-28

ad intervalli fissi 4-25 allarme di ritardo 4-28 dall'orologio 4-25 generalità 4-28

ERAB (Prima interrogazione) Vedere: Visualizzazione dei risultati

Errori evitare 5-2

Esponente Vedere: Numero in virgola mobile

Eventi di interruzione 3-12

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 560: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice analitico

FE-3 (errore di comunicazione) 5-22,5-53 Funzionamento parallelo di interfacce

seriali PG 11-17 funzioni brevi 11-19, 11-21 funzioni cicliche 11-19, 11-22 funzioni lunghe 11-19, 11-22

Funzionamento di una CPU 1-3 Funzionamento multiprocessore

accesso ai kachel 6-71 assegnazione della periferia 10-8 comunicazione multiprocessore 6-70,

10-13 meccanismi di comunicazione 10-3 modi di avviamento 6-84 scambio di dati tra CPU e CP 10-6

Funzione ciclica 11-24

Funzioni PG errori durante l'elaborazione di OB speciali 6-5 generalità 11-2 interfacce di programmazione 6-4

FUP (schema funzionale) 2-2

Gestione degli errori tramite OB 5-22 GRAPH 5 2-3

Identificatore di errore 5-5 Immagine di processo

degli ingressi (IPI) 1-3 generalità 1-9,3-12 degli ingressi (IPI) 1-9 delle uscite (IPU) 1-3, 1-9

Incremento 3-60 Informazioni di errore 5-3 Interfaccia

al programma di sistema 1-6, 1-8,2-16 seconda interfaccia seriale 5-29

Interfaccia utente dall'orologio 4-30 di processo 4-36 di regolazione 4-35 di ritardo 4-28 per allarmi di schedulazione 4-31 per l'avviamento 4-19

per l'elaborazione ciclica del programma 4-27

Interruzione possibilità 3-12

Istruzione di creazione d'immagine 3-31 Istruzione di STOP 3-31

Kachel accesso ai kachel accesso alla memoria a kachel generalità lettura di un kachel occupazione di un kachel principio dell'accesso ai kachel scrittura in un kachel

KOP (schema a contatti)

LED BASP 4-3 - 4-4 LED RUN 4-3 LED STOP 4-3 Linguaggio di programmazione

GRAPH 5 1-16 SCL 1-16 STEP 5 1-16,2-2

LIRRIR (caricamento/trasferimento) 9-7 Lista di attribuzione 2-5,2-22 Livelli base 4-7 - 4-8 Livelli di elaborazione programma

generalità 6-11,6-16 Livelli di errore 4-7 - 4-8 LZF (errore di esecuzione) 5-37,5-39

Maschera PG per la generazione del DB 1 10-9

Memoria a kachel 9-31 Memoria globale

accesso 9-28 generalità 9-2

Memoria intermedia 10-17 Memoria locale

accesso 9-27 generalità 9-2

Memoria utente 1-10 Merker di accoppiamento

generalità 3-12,lO-4

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 561: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice analitico

impostazione dei ponticelli 10-4 scambio di dati tramite merker di accoppiamento 10-4 trasferimento dei merker di accoppiamento 10-7

Merker M 1-10,lO-22 Merker S 1-10,lO-50 Modulo PG 11-17

NAU (caduta della tensione) 4-16 - 4-17 Numeri binari 2-6 Numeri decimali 2-6 Numeri in virgola fissa 2-7 Numeri in virgola mobile 2-7 Numero

in codice BCD 2-9 rappresentazione 2-6

Numero di biblioteca 2-34 NUOVO AWIAMENTO 4-16

realizzare 4-16 NUOVO AWIAMENTO automatico1

manuale 4-22 Vedere: NUOVO AWIAMENTO 4-6

Occupazione della memoria 8-2,8-4 Operandi attuali

di blocchi funzionali2-23,2-27, 3-48,3-51 Operandi formali

di blocchi funzionali 2-23 di blocchi funzionali 3-48

Operazione STEP 5 3-13 Operazioni aritmetiche 3-29,3-52,6-22 Operazioni con semafori 3-67 Operazioni di caricamento 3-19,3-51 Operazioni di confronto 3-30 Operazioni di conversione 3-58 Operazioni di creazione d'immagini 3-31 Operazioni di elaborazione 3-61 Operazioni di memorizzazione 3-18,3-48 Operazioni di salto 3-54 Operazioni di scorrimento 3-56 Operazioni di sistema 2-2,3-54 Operazioni di STOP 3-31 Operazioni di temporizzazione e di conteggio 3-24,3-49

Operazioni di trasferimento 3-19,9-19 Operazioni fondamentali 2-2,3-17 Operazioni integrative 2-2,3-47 Operazioni nulle 3-31 Operazioni organizzative 3-54 OR (Oppure)

Vedere: Visualizzazione dei risultati OS (overflow con memoria)

Vedere: Visualizzazione dei risultati OV (Overflow)

Vedere: Visualizzazione dei risultati

Parametrizzazione del blocco dati DX O 1-6,4-27, 7-5 Parametro 2-5 Parola dati 1-11,2-33 - 2-34,2-37

occupazione bit 8-16 Parola di visualizzazione delle interruzioni 8-16 Parte operando 2-5 Parte operazione 2-5 Periferia

campo P 1-9 campo Q 1-9 suddivisione del campo di indirizzamento 8-5 unità 1-9

Preimpostazione del programma di sistema 1-6

Priorità 1-4, 4-8 Processori di comunicazione (CP) 6-89,lO-6 Profondità di annidamento 3-7 Programma

memorizzazione del programma 1-8,3-6 organizzazione del programma 3-3

Programma applicativo 1-5, 1-8 compiti 1-8 elaborazione 3-2,3-10

Programma di sistema 1-5 Programmazione

procedere 1-13 Programmazione strutturata 2-4 Programmi su interrupt di processo 1-4 Programmi su interrupt periodico 1-4 Pseudo-fine di comando 6-6 Punto di controllo di sistema 11-3 Punto di controllo utente 11-3

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01

Page 562: SIEMENS€¦ · orientarsi nel testo Sottoparagrafi abbastanza estesi (ad es. 4.3) vengono evidenziati in neretto, all'inizio della pagina e compaiono nel Contenuto in cui sono elencati

Indice analitico

QVZ (ritardo della conferma) 5-22,5-46

RAM di sistema 8-4 RAM per DB (DB-RAM) 3-8,6-90 Rappresentazione dei numeri 2-6 Reazione

con OB di errore non caricati 5-23 Reazioni

ad allarmi 3-11 ad errori 2-18,3-11

REG-FE (errore di regolazione) 5-22,5-50 Registro a scorrimento 6-90 Regolatore PID 6-99 Regolazione

elaborazione di allarmi per la regolazione 4-35 punti di interruzione nell'elaborazione 4-35

Repertorio di comandi 2-2 RIAWIAMENTO automatico1 manuale 4-6,4-22 RIPRISTINO GENERALE 4-14 Risultato logico combinatorio

RLC 2-5 RLC (Risultato logico combinatorio)

Vedere: Visualizzazione dei risultati RUN

generalità 4-2,4-25

Segnale di allarme di processo Semafori Settore BSIBT Settore dei kachel Settori operandi Sostituzione degli operandi STA (Stato)

Vedere: Visualizzazione dei risultati Statistica del ciclo Stato di funzionamento Stato di funzionamento ATTESA STOP Strumenti di programmazione Struttura di regolazione R64

Tempo di ciclo 3-11 controllo 3-11

Tempo di esecuzione 4-27 Tempo di reazione 4-38,4-40 Temporizzatori T 1-11 TRAF (errore di caricamento/trasferimento

di blocchi dati) 5-38 Trasferimento

di settori di memoria 9-16

USTACK (registro di interruzione) contenuto 5-13 informazione di errore 5-3 informazioni nell'USTACK 5-14 visualizzazioni 5-14

Validità di un blocco dati attivato

Valore di conteggio Valore di tempo Visualizzazione dei risultati

ERAB ANZledANZO generalità OR 0s ov RLC STA

WECK-FE (errore per collisione di interrupt temporali) 5-18, 5-22,5-49

ZYK (superamento del tempo di ciclo) 5-22 ZYK-FE 5-48

Manuale di programmazione CPU 928B-3UB21

C79000-G8572-C870-01