siemens€¦ · orientarsi nel testo sottoparagrafi abbastanza estesi (ad es. 4.3) vengono...
Post on 18-Nov-2020
5 Views
Preview:
TRANSCRIPT
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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à
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
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
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
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
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
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
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
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
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
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
Proaramma utente
Una descrizione dettagliata di queste funzioni speciali si trova nel capitolo 6.
Manuale di programmazione CPU 928B-3UB21
C79000-G8572-C870-01
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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).
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).
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
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
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
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
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
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
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
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=
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
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
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
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 ')
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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ì
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ì
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
sì
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
sì
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
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
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
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
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
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
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
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
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
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
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
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
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
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
.
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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).
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).
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.
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.
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.
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
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
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(.
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.
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.
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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
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=
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
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)
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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"!
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
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
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"!
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 )
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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?
sì
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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".
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
...
...
...
...
...
...
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
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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" .
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related