SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali...

54
SIMATIC S7ProSim V5.3 con SP1 Controllo ActiveX Manuale utente Edizione: 01/2005 A5E00425530-01

Transcript of SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali...

Page 1: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

SIMATIC

S7ProSim V5.3 con SP1

Controllo ActiveX

Manuale utente

Edizione: 01/2005

A5E00425530-01

Page 2: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Copyright e avvertenze sulla sicurezza Il presente manuale contiene avvertenze relative alla sicurezza delle persone e alla prevenzione dei danni materiali a cui ci si deve attenere per tutelare la propria incolumità e proteggere il prodotto e le apparecchiature ad esso collegate. Le avvertenze sono contrassegnate da un triangolo e, a seconda del grado di pericolo, sono rappresentate nel modo seguente.

Pericolo di morte Segnala una situazione di imminente pericolo che, se non evitata con le opportune misure di sicurezza, provoca la morte, gravi lesioni alle persone e ingenti danni materiali.

Pericolo Segnala una situazione potenzialmente pericolosa che, se non evitata con le opportune misure di sicurezza, può causare la morte, gravi lesioni alle persone e ingenti danni materiali.

Attenzione Questa avvertenza accompagnata dal triangolo segnala una situazione potenzialmente pericolosa che, se non evitata con le opportune misure di sicurezza, può causare lesioni non gravi alle persone o danni materiali di lieve entità.

Attenzione Questa avvertenza senza triangolo segnala una situazione potenzialmente pericolosa che, se non evitata con le opportune misure di sicurezza, può provocare danni material.

Avvertenza Questa avvertenza senza triangolo segnala una situazione potenziale che, se non evitata con le opportune misure di sicurezza, può determinare una situazione o uno stato indesiderati.

Personale qualificato L'apparecchio o il sistema devono essere messi in servizio e utilizzati esclusivamente secondo le modalità prescritte nel presente manuale. L'installazione e l'utilizzo dell'apparecchio sono consentiti solo al personale qualificato. Come tale si intende il personale autorizzato a mettere in servizio, collegare a massa e contrassegnare i circuiti elettrici, le apparecchiature e i sistemi secondo gli standard e le pratiche di sicurezza consolidate.

Utilizzo conforme alle disposizioni Si noti quanto segue:

Pericolo L'apparecchio e i relativi componenti devono essere destinati esclusivamente all'uso previsto nel catalogo e nelle descrizioni tecniche e assieme ad apparecchiature e componenti di terzi approvati o raccomandati da Siemens.

Per garantire un funzionamento corretto e sicuro è indispensabile che il prodotto venga trasportato, immagazzinato, installato e montato correttamente e che venga utilizzato e sottoposto a manutenzione secondo le modalità previste.

Marchi registrati Siemens® e SIMATIC® sono marchi registrati di SIEMENS AG. STEP 7™ e S7™ sono marchi registrati di SIEMENS AG. Microsoft ®, Windows ®, Windows 95 ®, Windows 98 ®, Windows NT ®, Windows ME ® e Windows 2000 ® asono marchi registrati di Microsoft Corporation.

Copyright Siemens Energy & Automation, Inc. 2005 All rights reserved La riproduzione, la trasmissione e l'utilizzo della presente documentazione sono vietati se non previa autorizzazione scritta. I trasgressori saranno puniti a termini di legge. Tutti i diritti sono riservati, in particolare quelli relativi ai brevetti o ai marchi registrati.

Esclusione della responsabilità Abbiamo controllato che il contenuto della presente documentazione corrisponda all'hardware e al software descritti. Non potendo tuttavia escludere eventuali differenze non possiamo garantire una completa rispondenza. Il contenuto della presente documentazione viene comunque verificato regolarmente e le correzioni o modifiche eventualmente necessarie sono contenute nelle edizioni successive. Saremo lieti di ricevere qualunque tipo di proposta di miglioramento.

Siemens Energy & Automation, PCbA One Internet Plaza Johnson City, TN 37602-4991, USA

© Siemens Energy & Automation, Inc. 2005

I dati tecnici sono soggetti a modifiche senza preavviso.

Page 3: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

iii

Prefazione S7ProSim consente di accedere da un programma all'interfaccia simulata di un PLC di S7-PLCSIM. Con S7ProSim è possibile scrivere un software per eseguire task come modificare la posizione dell'interruttore a chiave del PLC simulato, verificare il programma di controllo un ciclo di scansione alla volta, leggere o scrivere i valori del controllore ecc.

A chi è destinato il manuale

Il presente manuale si rivolge a tecnici, programmatori e personale addetto alla manutenzione che dispongono di conoscenze teoriche e pratiche sui controllori a logica programmabile S7 e sullo sviluppo in Visual Basic (6.0 o .NET) o Visual C++ (6.0 o .NET).

Oggetto del manuale

Il manuale descrive le caratteristiche e il funzionamento di S7-PLCSIM V5.3 con SP1.

Altri manuali

Per maggiori informazioni si consiglia di consultare la Guida in linea di STEP 7 e S7-PLCSIM e i seguenti manuali:

• Manuale Programmazione con STEP 7. Questo manuale fornisce informazioni di base sulla progettazione e la programmazione dei programmi di controllo. È utile consultarlo quando si crea un programma di controllo con il software per l'automazione STEP 7.

• Manuale di riferimento Software di sistema per S7-300/400, Funzioni standard e di sistema. Questo manuale descrive le funzioni di sistema, i blocchi organizzativi e le funzioni standard per lo sviluppo del programma di controllo.

• Primi passi ed esercitazioni con STEP 7 - Getting Started Manual. Questo manuale spiega come utilizzare il software di automazione STEP 7 e descrive le procedure per la configurazione dei PLC e lo sviluppo dei programmi di controllo.

• S7-PLCSIM - Testing Your S7-CPU Program. Questo manuale illustra l'interfaccia utente e il funzionamento di S7-PLCSIM, l'emulatore di PLC S7.

Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del PC in cui è stato installato STEP 7.

Ulteriore assistenza tecnica

Per ricevere assistenza su problemi tecnici e richiedere informazioni sui corsi di formazione e l'ordinazione di questo prodotto, si consiglia di rivolgersi al proprio distributore o al più vicino ufficio vendite Siemens.

America del Nord e del Sud Europa e Africa Asia e area del Pacifico Tel.: +1 (800) 333-7421 Tel.: +49 (0) 180 5050 222 Tel.: +86 10 64 75 75 75 Fax: +1 (423) 262-2200 Fax: +49 (0) 180 5050 223 Fax: +86 10 64 74 74 74 [email protected] [email protected] [email protected]

Page 4: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del
Page 5: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

v

Sommario Introduzione a S7ProSim..................................................................................... 1

Inserimento del controllo S7ProSim in un'applicazione Visual Basic ............................ 2 Accesso alle proprietà del controllo S7ProSim in Visual Basic ..................................... 3 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim............................ 4

Metodi .................................................................................................................... 5 AboutBox ....................................................................................................................... 6 BeginScanNotify ............................................................................................................ 7 Connect ......................................................................................................................... 8 Disconnect ..................................................................................................................... 9 EndScanNotify ............................................................................................................. 10 ExecuteNmsScan ........................................................................................................ 11 ExecuteNScans ........................................................................................................... 12 ExecuteSingleScan...................................................................................................... 13 ReadOutputImage ....................................................................................................... 14 ReadOutputPoint ......................................................................................................... 15 WriteInputImage .......................................................................................................... 16 WriteInputPoint ............................................................................................................ 17

Eventi................................................................................................................... 19 ConnectionError........................................................................................................... 20 PLCSimStateChanged................................................................................................. 21 ScanFinished............................................................................................................... 22

Proprietà.............................................................................................................. 23 AutoConnect ................................................................................................................ 24 ControlEngine.............................................................................................................. 25 Enabled........................................................................................................................ 26 ScanMode.................................................................................................................... 27

Definizione dei tipi.............................................................................................. 29 ImageDataTypeConstants ........................................................................................... 30 PointDataTypeConstants............................................................................................. 31 ScanModeConstants ................................................................................................... 32

Codici di ritorno degli errori.............................................................................. 33

Esempio di progetto che utilizza il controllo ActiveX S7ProSim.................. 35 Codice del progetto di esempio ................................................................................... 36

Page 6: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del
Page 7: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

1

Introduzione a S7ProSim S7ProSim è un controllo ActiveX™ che fornisce accesso tramite programma all'interfaccia per la simulazione del processo di S7-PLCSIM. S7ProSim può essere usato in qualsiasi applicazione che accetta i controlli ActiveX per collegarsi a una simulazione di processo S7-PLCSIM.

Questa documentazione online spiaga come aggiungere S7ProSim a un'applicazione e descrive le funzioni, le caratteristiche, l'interfaccia e le operazioni di S7ProSim, comprese le definizioni degli oggetti software dei metodi e degli eventi. L'esempio di progetto illustra l'utilizzo dei metodi e degli eventi di S7ProSim.

La seguente figura rappresenta il diagramma di sequenza dei metodi e degli eventi utilizzati nell'esempio di progetto.

Page 8: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Introduzione a S7ProSim

2

Inserimento del controllo S7ProSim in un'applicazione Visual Basic

Il controllo ActiveX S7ProSim può essere utilizzato in diversi container di terze parti. Per aggiungere il controllo S7ProSim a un form di Visual Basic procedere come indicato di seguito.

1. Visualizzare la finestra di dialogo Componenti selezionando il comando di menu Progetto -> Componenti.

2. Selezionare “Siemens S7ProSim Control” nell'elenco dei controlli.

3. Fare clic su OK. Nella casella degli strumenti sulla sinistra del form di Visual Basic compare il controllo S7ProSim.

4. Selezionare il controllo S7ProSim nella casella degli strumenti e incollarlo nel form.

A questo punto è possibile accedere alle proprietà, ai metodi e agli eventi del controllo S7ProSim dal programma Visual Basic.

Page 9: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Introduzione a S7ProSim

3

Accesso alle proprietà del controllo S7ProSim in Visual Basic

Se nel form si fa clic con il tasto destro del mouse sul controllo S7ProSim e si seleziona la voce Proprietà del menu contestuale Visual Basic visualizza la finestra di dialogo Pagine delle proprietà.

La finestra delle proprietà permette di configurare le seguenti proprietà del controllo ActiveX di S7ProSim:

• Auto Connect: la proprietà AutoConnect determina se il controllo viene connesso automaticamente a S7-PLCSIM all'avvio o in seguito al passaggio dal modo design al modo Run.

• Control Engine: la proprietà ControlEngine (di sola lettura) definisce l'indirizzo del motore di controllo a cui si connette S7ProSim. L'indirizzo è S7-PLCSIM.

• Enabled: la proprietà Enabled determina se il controllo viene registrato o meno (sono disponibili gli eventi ScanFinished e PLCSIMStateChanged).

• Scan Mode: la proprietà ScanMode imposta il modo di scansione di S7-PLCSIM. Sono disponibili i modi Ciclo singolo e Ciclo continuo.

Page 10: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Introduzione a S7ProSim

4

Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim

Per utilizzare S7ProSim per eseguire il controllore simulato S7-PLCSIM da un programma è necessario eseguire le operazioni descritte di seguito.

• Inserire il controllo Siemens S7ProSim come componente del progetto.

• Programmare degli handler di evento S7ProSim (opzionale). All'interno di ogni handler di evento l'utente può inserire un codice personalizzato per la propria applicazione.

Esempio: Visual Basic 6.0

Private Sub S7ProSim1_ScanFinished(ByVal ScanInfo As Variant) ... End Sub Private Sub S7ProSim1_PLCSimStateChanged(ByVal NewState As String) ... End Sub Private Sub S7ProSim1_ConnectionError(ByVal ControlEngine As String, ByVal error As Long) MsgBox "Connection Error" End Sub

• Aggiungere all'applicazione i pulsanti dei comandi, le caselle di testo o gli altri oggetti necessari per accedere ai vari metodi di S7ProSim. Programmare il codice di ogni handler dei pulsanti di comando per richiamare i metodi S7ProSim e impostare dei valori per le caselle di testo che siano adeguati all'applicazione.

Page 11: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

5

Metodi AboutBox Visualizza la finestra AboutBox.

BeginScanNotify Registra S7ProSim per i richiami (callback) provenienti dal controllore. Quando si verificano questi eventi vengono trasmessi gli eventi ScanFinished e PLCSimStateChanged.

Connect Collega S7ProSim a S7-PLCSIM.

Disconnect Scollega S7ProSim da S7-PLCSIM.

EndScanNotify Annulla la registrazione di S7ProSim per i richiami (callback) provenienti dal controllore.Gli eventi ScanFinished e PLCSimStateChanged non vengono trasmessi.

ExecuteNmsScan Forza S7-PLCSIM ad eseguire i cicli di scansione per un dato tempo (Nms) senza attendere che termini l'esecuzione del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso il ciclo.

ExecuteNScans Forza S7-PLCSIM ad eseguire il numero indicato di cicli di scansione senza attendere che termini l|qesecuzione del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso la scansione.

ExecuteSingleScan Forza S7-PLCSIM a eseguire un ciclo di scansione senza attendere che termini l'esecuzione del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso la scansione.

ReadOutputImage Legge gli elementi dell'immagine di uscita della periferia (area di memoria PQ) di S7-PLCSIM.

ReadOutputPoint Legge un particolare bit (Boolean), byte (Byte), parola di due byte (Integer) o parola di quattro byte (Long) dall'immagine di uscita della periferia (area di memoria PQ).

WriteInputImage Scrive gli elementi nell'immagine di ingresso della periferia (area di memoria PI) di S7-PLCSIM iniziando dallo StartIndex dei dati puntati da pData.

WriteInputPoint Scrive un particolare bit (Boolean), byte (Byte), parola di due byte (Integer) o parola di quattro byte (Long) dalla Data Variant nell'immagine di ingresso della periferia (area di memoria PI).

Page 12: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

6

AboutBox

void AboutBox()

Utilizzo di Visual Basic

Page 13: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

7

BeginScanNotify

STDMETHOD(CS7ProSim::BeginScanNotify)()

Descrizione Registra S7ProSim per i richiami (callback) provenienti dal controllo. Quando si verificano questi eventi vengono trasmessi gli eventi ScanFinished e PLCSIMStateChanged.

Parametri Nessuno

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_NOTCONNECTED 0x80040211 : S7ProSim non collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Visual Basic Usage

Page 14: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

8

Connect

STDMETHOD(CS7ProSim::Connect)()

Descrizione Collega S7ProSim a S7-PLCSIM.

Parametri Nessuno

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo di Visual Basic

Page 15: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

9

Disconnect

STDMETHOD(CS7ProSim::Disconnect)()

Descrizione Scollega S7ProSim da S7-PLCSIM.

Parametri Nessuno

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo di Visual Basic

Page 16: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

10

EndScanNotify

STDMETHOD(CS7ProSim::EndScanNotify)()

Descrizione Annulla la registrazione di S7ProSim per i richiami (callback) provenienti dal controllore. Gli eventi ScanFinished e PLCSIMStateChanged non vengono trasmessi.

Parametri Nessuno

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

PS_E_NOTREGISTERED 0x80040209 : S7ProSim non registrato per i richiami (callback) provenienti da S7-PLCSIM

Utilizzo di Visual Basic

Page 17: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

11

ExecuteNmsScan

STDMETHOD(CS7ProSim::ExecuteNmsScan)( long MsNumber)

Descrizione Forza S7-PLCSIM ad eseguire i cicli di scansione per un dato tempo (Nms) senza attendere che termini l'esecuzione del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso il ciclo. Per poter utilizzare questo metodo S7-PLCSIM deve essere modalità Ciclo singolo.

Parametri

MsNumber Tempo (in millisecondi) per cui dovranno essere eseguiti i cicli di scansione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM non è in modo Ciclo singolo PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 18: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

12

ExecuteNScans

STDMETHOD(CS7ProSim::ExecuteNScans)( long NScanNumber)

Descrizione Forza S7-PLCSIM ad eseguire il numero indicato di cicli di scansione senza attendere che termini l'esecuzione del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso il ciclo. Per poter utilizzare questo metodo S7-PLCSIM deve essere modalità Ciclo singolo.

Parametri

NScanNumber Numero di cicli di scansione da eseguire

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM non è in modo Ciclo singolo PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Visual Basic Usage

Page 19: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

13

ExecuteSingleScan

STDMETHOD(CS7ProSim::ExecuteSingleScan)()

Descrizione Forza S7-PLCSIM a eseguire un ciclo di scansione senza attendere che termini l'esecuzione del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso il ciclo. Per poter utilizzare questo metodo S7-PLCSIM deve essere modalità Ciclo singolo.

Parametri Nessuno

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM non è in modo Ciclo singolo

PS_E_MODENOTPOSSIBLE 0x8004020C : S7-PLCSIM non è riuscito a impostare il modo di scansione specificato

Utilizzo di Visual Basic

Page 20: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

14

ReadOutputImage

STDMETHOD(CS7ProSim::ReadOutputImage)( long StartIndex, long ElementsToRead, ImageDataTypeConstants DataType, VARIANT* pData)

Descrizione Legge gli elementi dell'immagine di uscita della periferia (area di memoria PQ) di S7-PLCSIM.

Parametri

StartIndex Rappresenta la posizione del byte iniziale nel buffer dell'immagine di uscita della periferia da leggere. I valori consentiti per StartIndex dipendono dalla CPU.

ElementsToRead Rappresenta il numero di byte, parole o doppie parole da leggere dal buffer dell'immagine. I valori consentiti per ElementsToRead dipendono dalla CPU.

DataType Rappresenta il tipo di dati da leggere. Il DataType valore deve essere una ImageDataTypeConstants.

pData Puntatore allo spazio degli elementi restituiti. I valori consentiti per i dati dipendono da ElementsToRead. Questa area di memoria deve essere assegnata e resa disponibile nell'applicazione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_BADBYTENDX 0x80040201 : Indice del byte non valido

PS_E_BADBYTECOUNT 0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte di ingresso specificato

PS_E_READFAILED 0x80040203 : Operazione di lettura non riuscita PS_E_BADTYPE 0x80040206 : Tipo di dati non valido PS_E_NOTALLREADSWORKED 0x8004020F : Nessuna operazione di lettura riuscita PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo di Visual Basic

Page 21: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

15

ReadOutputPoint

STDMETHOD(CS7ProSim::ReadOutputPoint)( long ByteIndex, long BitIndex, PointDataTypeConstants DataType, VARIANT* pData)

Descrizione Legge un particolare bit (Boolean), byte (Byte), parola di due byte (Integer) o parola di quattro byte (Long) dall'immagine di uscita della periferia (area di memoria PQ).

Parametri

ByteIndex Rappresenta la posizione del byte iniziale nel buffer dell'immagine della periferia da leggere. I valori consentiti per ByteIndex dipendono dalla CPU.

BitIndex Rappresenta la posizione del bit (nei byte) nel buffer dell'immagine della periferia da leggere. Sono ammessi i valori da 0 a 7.

DataType Una delle PointDataTypeConstants

pData Puntatore ai dati da leggere. I valori consentiti per Data dipendono dal tipo di dati.

Note Se il parametro DataType è S7_Bit, ByteIndex e BitIndex devono essere impostati su indici validi. Se riesce, il metodo restituisce il bit indicato in pData e il relativo tipo di dati Variant è booleano.

Se il parametro DataType è impostato su S7_Byte, S7_Word o S7_DoubleWord, ByteIndex deve essere impostato su un indice valido (BitIndex viene ignorato). Se riesce, il metodo restituisce il valore in pData. Il suo tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_BADBYTENDX 0x80040201 : Indice del byte non valido

PS_E_BADBYTECOUNT 0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte iniziale specificato

PS_E_READFAILED 0x80040203 : Operazione di lettura non riuscita PS_E_BADBITNDX 0x80040205 : Indice del bit non valido PS_E_BADTYPE 0x80040206 : Tipo di dati non valido PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo di Visual Basic

Page 22: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

16

WriteInputImage

STDMETHOD(CS7ProSim::WriteInputImage)( long StartIndex, const VARIANT* pData)

Descrizione Scrive gli elementi nell'immagine di ingresso della periferia (area di memoria PI) di S7-PLCSIM iniziando dallo StartIndex dei dati puntati da pData.

Parametri

StartIndex Rappresenta la posizione del byte iniziale nel buffer dell'immagine di ingresso della periferia da scrivere. I valori consentiti per StartIndex dipendono dalla CPU.

pData Puntatore ai dati da scrivere in S7-PLCSIM. I valori consentiti dipendono dalla CPU. Questa area di memoria deve essere assegnata e resa disponibile nell'applicazione.

Note Il tipo di elementi da scrivere è determinato dal tipo di elementi di Data. Tutti gli elementi devono avere lo stesso tipo di dati. Un array di tipo Bytes scrive byte, un array di tipo Integer scrive parole, un array di tipo Long scrive doppie parole. I valori scritti sono ”grezzi” e non vengono interpretati o convertiti in alcun modo dal metodo. Il numero di elementi scritti dipende dalla dimensione dell'array puntato da Data.

Valori restituiti Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_BADBYTENDX 0x80040201 : Indice del byte non valido

PS_E_BADBYTECOUNT 0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte di ingresso specificato

PS_E_WRITEFAILED 0x80040204 : Operazione di scrittura non riuscita PS_E_BADTYPE 0x80040206 : Tipo di dati non valido PS_E_NOTALLWRITESWORKED 0x80040210 : Nessuna operazione di scrittura riuscita PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Visual Basic Usage

Page 23: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Metodi

17

WriteInputPoint

STDMETHOD(CS7ProSim::WriteInputPoint)( long ByteIndex, long BitIndex, const VARIANT* pData)

Descrizione Scrive un particolare bit (Boolean), byte (Byte), parola di due byte (Integer) o parola di quattro byte (Long) dalla Data Variant nell'immagine di ingresso della periferia (area di memoria PI).

Parametri

ByteIndex Rappresenta la posizione del byte iniziale nel buffer dell'immagine di ingresso della periferia da scrivere. I valori ammessi per ByteIndex dipendono dalla CPU.

BitIndex Rappresenta la posizione del bit (nei byte) nel buffer dell'immagine della periferia da scrivere. Sono ammessi i valori da 0 a 7.

pData Puntatore ai dati da scrivere. I valori consentiti per Data dipendono dal tipo di dati.

Note Se si indica come tipo di dati Booleano, ByteIndex e BitIndex devono essere impostati su indici validi. Se riesce, il metodo scrive il bit indicato in pData.

Se si indica come tipo di dati Byte, Integer o Long, si deve impostare ByteIndex su un indice valido (BitIndex is ignored). Se riesce, il metodo scrive gli elementi indicati in pData.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato PS_E_BADBYTENDX 0x80040201 : Indice del byte non valido

PS_E_BADBYTECOUNT 0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte iniziale specificato

PS_E_WRITEFAILED 0x80040204 : Operazione di scrittura non riuscita PS_E_BADBITNDX 0x80040205 : Indice del bit non valido PS_E_BADTYPE 0x80040206 : Tipo di dati non valido PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo di Visual Basic

Page 24: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del
Page 25: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

19

Eventi

ConnectionError Generato quando non si riesce a stabilire il collegamento al motore di controllo.

PLCSimStateChanged Generato in caso di rilevamento di un nuovo stato dell'interruttore del PLC.

ScanFinished Generato al termine dell'esecuzione di un ciclo singolo.

Page 26: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Eventi

20

ConnectionError

HRESULT ConnectionError(BSTR ControlEngine, long Error)

Descrizione Viene generato quando non si riesce a stabilire il collegamento al motore di controllo

Visual Basic Usage

Page 27: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Eventi

21

PLCSimStateChanged

HRESULT PLCSimStateChanged(BSTR NewState)

Descrizione Viene generato in caso di rilevamento di un nuovo stato dell'interruttore del PLC.

Visual Basic Usage

Page 28: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Eventi

22

ScanFinished

HRESULT ScanFinished(VARIANT ScanInfo)

Descrizione Viene generato al termine dell'esecuzione di un ciclo singolo.

Visual Basic Usage

Page 29: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

23

Proprietà

AutoConnect Questa proprietà determina se il controllo viene connesso a S7-PLCSIM automaticamente all'avvio o in caso di commutazione dal modo design al modo run.

ControlEngine Questa proprietà definisce il nome del motore di controllo (di sola lettura) a cui si connette il controllo S7ProSim. Il nome è “S7-PLCSIM”.

Enabled Questa proprietà determina se il controllo viene registrato o meno per i richiami (callback) degli eventi ScanFinished e PLCSimStateChanged.

ScanMode Imposta/ripristina il modo di scansione attuale del motore di controllo.

Page 30: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Proprietà

24

AutoConnect

boolean AutoConnect

Descrizione Questa proprietà determina se il controllo viene connesso a S7-PLCSIM automaticamente all'avvio o in seguito al passaggio dal modo design al modo run.

Page 31: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Proprietà

25

ControlEngine

BSTR ControlEngine

Descrizione Questa proprietà definisce il nome del motore di controllo (di sola lettura) a cui si connette il controllo S7ProSim. Il nome è “S7-PLCSIM”.

Page 32: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Proprietà

26

Enabled

Enabled

di tipo booleano

Descrizione Questa proprietà determina se il controllo viene registrato o meno per i richiami (callback) degli eventi ScanFinished e PLCSimStateChanged.

Page 33: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Proprietà

27

ScanMode

ScanModeConstants ScanMode

Descrizione Imposta/ripristina il modo di scansione attuale del motore di controllo su SingleScan o ContinuousScan.

Page 34: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del
Page 35: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

29

Definizione dei tipi

ImageDataTypeConstants Costanti del metodo ReadOutputImage

PointDataTypeConstants Costanti del metodo ReadOutputPoint

ScanModeConstants Costanti del modo di scansione

Page 36: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Definizione dei tipi

30

ImageDataTypeConstants

enum { S7Byte = 2, S7Word = 3, S7DoubleWord = 4 }

Descrizione Costanti del metodo ReadOutputImage.

Membri S7Byte S7DoubleWord S7Word

Page 37: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Definizione dei tipi

31

PointDataTypeConstants

enum { S7_Bit = 1, S7_Byte = 2, S7_Word = 3, S7_DoubleWord = 4 }

Descrizione Costanti del metodo ReadOutputPoint.

Membri S7_Bit S7_Byte S7_DoubleWord S7_Word

Page 38: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Definizione dei tipi

32

ScanModeConstants

enum { SingleScan = 0, ContinuousScan = 1 }

Descrizione Costanti del modo di scansione.

Membri ContinuousScan SingleScan

Page 39: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

33

Codici di ritorno degli errori PS_E_BADBITNDX 0x80040205 : Indice del bit non valido

PS_E_BADBYTECOUNT 0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte iniziale specificato

PS_E_BADBYTENDX 0x80040201 : Indice del byte non valido

PS_E_BADTYPE 0x80040206 : Tipo di dati non valido

PS_E_INVALIDCALLBACK 0x80040207 : Callback non valido

PS_E_INVALIDDISPATCH 0x80040208 : Dispatch non valido

PS_E_INVALIDINPUT 0x80040213 : Input non valido

PS_E_INVALIDSCANTYPE 0x8004020B : Tipo di scansione non valido, deve essere una ScanModeConstants

PS_E_MODENOTPOSSIBLE 0x8004020C : S7-PLCSIM non è riuscito a impostare il modo di scansione specificato

PS_E_NOTALLREADSWORKED 0x8004020F : Nessuna operazione di lettura riuscita

PS_E_NOTALLWRITESWORKED 0x80040210 : Nessuna operazione di scrittura riuscita

PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

PS_E_NOTIFICATION_EXIST 0x8004020D : S7ProSim è già registrato per la notifica

PS_E_NOTREGISTERED 0x80040209 : S7ProSim non registrato per i richiami (callback) da S7-PLCSIM

PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM non è nel modo Ciclo singolo

PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione

PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

PS_E_READFAILED 0x80040203 : Operazione di lettura non riuscita

PS_E_WRITEFAILED 0x80040204 : Operazione di scrittura non riuscita

E_FAIL 0x80004005 : Errore non specificato

E_INVALID_STATE 0x00008002 : Stato non valido

S_OK 0x00000000 : Codice di metodo riuscito

STG_E_CANTSAVE 0x80030103 : Impossibile salvare

Page 40: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del
Page 41: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

35

Esempio di progetto che utilizza il controllo ActiveX S7ProSim Questo esempio di progetto in Visual Basic descrive l'utilizzo delle proprietà, dei metodi e degli eventi del controllo ActiveX S7ProSim. Il codice degli handler per i pulsanti di comando è riportato nell'argomento Esempio di codice: progetto che utilizza il controllo ActiveX S7ProSim.

Form dell'esempio di progetto

Page 42: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

36

Codice del progetto di esempio

Il seguente codice mostra l'implementazione del progetto di esempio:

'======================================= 'PARTE DI DICHIARAZIONE DEL MODULO '======================================= 'Le variabili devono essere dichiarate Option Explicit 'Valori dei codici d'errore di default di S7ProSim '--------------------------------------- Private Const S_OK = &H0 Private Const PS_E_FAIL = &H80004005 Private Const PS_E_INVBYTENDX = &H80040201 Private Const PS_E_INVBYTECOUNT = &H80040202 Private Const PS_E_READFAILED = &H80040203 Private Const PS_E_WRITEFAILED = &H80040204 Private Const PS_E_INVBITNDX = &H80040205 Private Const PS_E_INVTYPE = &H80040206 Private Const PS_E_NOTREGISTERED = &H80040209 Private Const PS_E_NOTSINGLESCAN = &H8004020A Private Const PS_E_MODENOTPOSSIBLE = &H8004020C Private Const PS_E_NOTIFICATION_EXIST = &H8004020D Private Const PS_E_PLCSIMNOTRUNNING = &H8004020E Private Const PS_S_ALLREADSNOTPOSSIBLE = &H8004020F Private Const PS_S_ALLWRITESNOTPOSSIBLE = &H80040210 Private Const PS_E_NOTCONNECTED = &H80040211 Private Const PS_E_POWEROFF = &H80040212 'Testo errori di default '--------------------------------------- Private Const MSG_OK = "&H0: metodo riuscito" Private Const MSG_FAIL = "&H80004005: si Ë verificato un errore sconosciuto" Private Const MSG_INVBYTENDX = _ "&H80040201: Valore ByteIndex fuori campo" Private Const MSG_INVBYTECOUNT = _ "&H80040202: ByteIndex + dimensione array di dati fuori campo o BytesToRead fuori campo" Private Const MSG_READFAILED = _ "&H80040203: S7-PLCSIM ha rifiutato la richiesta di lettura" Private Const MSG_WRITEFAILED = _ "&H80040204: S7-PLCSIM ha rifiutato la richiesta di scrittura" Private Const MSG_INVBITNDX = _ "&H80040205: valore BitIndex fuori campo" Private Const MSG_INVTYPE = "&H80040206: tipo di dati non valido" Private Const MSG_NOTREGISTERED = _ "&H80040209: Applicazione non registrata" Private Const MSG_NOTSINGLESCAN = _ "&H8004020A: S7-PLCSIM non Ë in modo ciclo singolo" Private Const MSG_NOTIFICATION_EXIST = _ "&H8004020D: Applicazione gi‡ registrata" Private Const MSG_PLCSIMNOTRUNNING = _ "&H8004020E: S7-PLCSIM non Ë in Run o Run-P" Private Const MSG_ALLREADSNOTPOSSIBLE = _ "&H8004020F: Sono state lette solo le uscite configurate" Private Const MSG_ALLWRITESNOTPOSSIBLE = _ "&H80040210: Sono stati letti solo gli ingressi configurati" Private Const MSG_NOTCONNECTED = _ "&H80040211: Il controllo S7ProSim non Ë connesso a S7-PLCSIM" Private Const MSG_POWEROFF = _ "&H80040212: S7-PLCSIM Ë in stato Power-off"

Page 43: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

37

'======================================= 'CODICE PER I PULSANTI '======================================= 'cmdAutoConnectTrueStart '--------------------------------------- Private Sub cmdAutoConnectTrueStart_Click() S7ProSim1.AutoConnect = True End Sub 'cmdAutoConnectTrueEnd '--------------------------------------- Private Sub cmdAutoConnectTrueEnd_Click() S7ProSim1.AutoConnect = True End Sub 'cmdCalculateValuesOfProcessSimulation '--------------------------------------- Private Sub cmdCalculateValuesOfProcessSimulation_Click() '***** DAFARE da parte dell'utente ***** '***** In questa funzione si deve implementare ***** '***** Codice per la simulazione del processo. Prendi i ***** '***** valori delle uscite di S7-PLCSIM e ***** '***** calcola i nuovi valori per l'ingresso di ***** '***** S7-PLCSIM. ***** End Sub 'cmdConnect '--------------------------------------- Private Sub cmdConnect_Click() Dim errConnect As Long errConnect = S7ProSim1.Connect If errConnect = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errConnect End If End Sub 'cmdDisconnect '--------------------------------------- Private Sub cmdDisconnect_Click() Dim errDisconnect As Long errDisconnect = S7ProSim1.Disconnect If errDisconnect = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errDisconnect End If End Sub 'cmdEnableTrue '--------------------------------------- Private Sub cmdEnableTrue_Click() S7ProSim1.Enabled = True End Sub 'cmdEnableFalse '--------------------------------------- Private Sub cmdEnableFalse_Click() S7ProSim1.Enabled = False End Sub 'cmdScanModeSingle '--------------------------------------- Private Sub cmdScanModeSingle_Click() S7ProSim1.ScanMode = SingleScan End Sub

Page 44: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

38

'cmdScanModeCont '--------------------------------------- Private Sub cmdScanModeCont_Click() S7ProSim1.ScanMode = ContinuousScan End Sub 'cmdExecuteSingleScan '--------------------------------------- Private Sub cmdExecuteSingleScan_Click() Dim errExecuteSingleScan As Long errExecuteSingleScan = S7ProSim1.ExecuteSingleScan If errExecuteSingleScan = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errExecuteSingleScan End If End Sub 'cmdReadOutputImage '--------------------------------------- Private Sub cmdReadOutputImage_Click() 'Long Dim errReadOutputImage As Long Dim lStartIndex As Long Dim lElementsToRead As Long 'ImageDataTypeConstants Dim DataType As ImageDataTypeConstants 'Variant Dim vData As Variant '***** Leggi 2 byte nell'indirizzo iniziale Q 8.0 ***** DataType = S7Byte 'Leggi tipo Byte lStartIndex = 8 'Inizia dall'indirizzo Q 8.0 lElementsToRead = 2 'Leggi 2 elementi (byte) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "Il valore di QB 8 Ë: " & CByte(vData(0)) & vbCrLf & _ "Il valore di QB 9 Ë: " & CByte(vData(1)), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputImage End If '***** Leggi 2 parole nell'indirizzo iniziale Q 10.0 ***** DataType = S7Word 'Leggi il tipo Parola lStartIndex = 10 'Inizia dall'indirizzo Q 10.0 lElementsToRead = 2 'Leggi 2 elementi (parole) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "Il valore di QW 10 Ë: " & CInt(vData(0)) & vbCrLf & _ "Il valore di QW 12 Ë: " & CInt(vData(1)), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputImage End If '***** Leggi 2 parole doppie nell'indirizzo iniziale Q 14.0 ***** DataType = S7DoubleWord 'Leggi il tipo Parola Doppia lStartIndex = 14 'Inizia dall'indirizzo Q 14.0 lElementsToRead = 2 'Leggi 2 elementi (parole doppie) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "Il valore di QD 14 Ë: " & CLng(vData(0)) & vbCrLf & _

Page 45: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

39

"Il valore di QD 18 Ë: " & CLng(vData(1)), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputImage End If '***** Dopo questa sezione si possono effettuare i calcoli ***** '***** per la simulazione del processo se il valore di ritorno ***** '***** Ë S_OK. ***** End Sub 'cmdReadOutputPoint '--------------------------------------- Private Sub cmdReadOutputPoint_Click() 'Long Dim errReadOutputPoint As Long Dim lByteIndex As Long Dim lBitIndex As Long 'PointDataTypeConstants Dim DataType As PointDataTypeConstants 'Variant Dim vData As Variant '***** Leggi il bit nell'indirizzo Q 0.5 ***** lByteIndex = 0 'Inizia dall'indirizzo 0.0 lBitIndex = 5 'Leggi bit specifico 5 (del byte 0) DataType = S7_Bit 'Leggi il tipo Bit errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "Il valore corrente di Q 0.5 Ë: " & CInt(vData), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputPoint End If '***** Leggi il byte nell'indirizzo Q 1.0 ***** lByteIndex = 1 'Inizia dall'indirizzo 1.0 DataType = S7_Byte 'Leggi il tipo Byte errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "Il valore corrente di QB 1 Ë: " & CByte(vData), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputPoint End If '***** Leggi la parola nell'indirizzo Q 2.0 ***** lByteIndex = 2 'Inizia dall'indirizzo 2.0 DataType = S7_Word 'Leggi il tipo Parola errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "Il valore corrente di QW 2 Ë: " & CInt(vData), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputPoint End If '***** Leggi la doppia parola nell'indirizzo Q 4.0 ***** lByteIndex = 4 'Inizia dall'indirizzo 4.0 DataType = S7_DoubleWord 'Leggi il tipo Parola Doppia errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData)

Page 46: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

40

If errReadOutputPoint = S_OK Then MsgBox "Il valore corrente di QD 4 Ë: " & CLng(vData), _ vbInformation, "Esempio di S7ProSim" Else ShowError errReadOutputPoint End If '***** Dopo questa sezione si possono effettuare i calcoli ***** '***** per la simulazione del processo se il valore di ritorno ***** '***** Ë S_OK. ***** End Sub 'cmdWriteInputImage '--------------------------------------- Private Sub cmdWriteInputImage_Click() 'Byte Dim cByteArray(0 To 1) As Byte 'Integer Dim iWordArray(0 To 1) As Integer 'Long Dim errWriteInputImage As Long Dim lDoubleWordArray(0 To 1) As Long Dim lStartIndex As Long 'Variant Dim vData As Variant '***** Scrivi 2 byte e inizia dall'indirizzo I 8.0 ***** cByteArray(0) = 8 'Scrivi 8 nel primo elemento (byte) cByteArray(1) = 9 'Scrivi 9 nel secondo elemento (byte) lStartIndex = 8 'Inizia dall'indirizzo I 8.0 vData = cByteArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) '***** Dopo questa sezione si possono effettuare i calcoli ***** '***** per la simulazione del processo se il valore di ritorno ***** '***** Ë S_OK. ***** If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errWriteInputImage End If '***** Scrivi 2 parole e inizia dall'indirizzo I 10.0 ***** iWordArray(0) = 10 'Scrivi 10 nel primo elemento (parola) iWordArray(1) = 12 'Scrivi 12 nel secondo elemento (parola) lStartIndex = 10 'Inizia dall'indirizzo I 10.0 vData = iWordArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errWriteInputImage End If '***** Scrivi due parole doppie e inizia dall'indirizzo I 14.0 ***** lDoubleWordArray(0) = 14 'Scrivi 14 nel primo elemento (parola doppia) lDoubleWordArray(1) = 18 'Scrivi 18 nel secondo elemento (parola doppia) lStartIndex = 14 'Inizia dall'indirizzo I 14.0 vData = lDoubleWordArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errWriteInputImage End If End Sub

Page 47: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

41

'cmdWriteInputPoint '--------------------------------------- Private Sub cmdWriteInputPoint_Click() 'Boolean Dim bBoolIn As Boolean 'Byte Dim cByteIn As Byte 'Integer Dim iWordIn As Integer 'Long Dim errWriteInputPoint As Long Dim lBitIndex As Long Dim lByteIndex As Long Dim lDoubleWordIn As Long 'Variant Dim vData As Variant '***** Scrivi 1 bit nell'indirizzo 0.5 ***** bBoolIn = 1 'Scrivi il valore 1 lByteIndex = 0 'Inizia dall'indirizzo 0.0 lBitIndex = 5 'Scrivi il bit specifico 5 (del byte 0) vData = bBoolIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) '***** Dopo questa sezione si possono effettuare i calcoli ***** '***** per la simulazione del processo se il valore di ritorno ***** '***** Ë S_OK. ***** If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errWriteInputPoint End If '***** Scrivi 1 byte nell'indirizzo I 1.0 ***** cByteIn = 1 'Scrivi il valore 1 lByteIndex = 1 'Inizia dall'indirizzo 1.0 vData = cByteIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errWriteInputPoint End If '***** Scrivi 1 parola nell'indirizzo I 2.0 ***** iWordIn = 2 'Scrivi il valore 2 lByteIndex = 2 'Inizia dall'indirizzo 2.0 vData = iWordIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errWriteInputPoint End If '***** Scrivi 1 parola doppia nell'indirizzo I 4.0 ***** lDoubleWordIn = 4 'Scrivi il valore 4 lByteIndex = 4 'Inizia dall'indirizzo 4.0 vData = lDoubleWordIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else

Page 48: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

42

ShowError errWriteInputPoint End If End Sub '======================================= 'IMPLEMENTAZIONE DEGLI EVENTI PER IL CONTROLLO '======================================= 'ConnectionError '--------------------------------------- Private Sub S7ProSim1_ConnectionError(ByVal ControlEngine As String, _ ByVal Error As Long) Dim errMessage As String errMessage = "Impossibile collegarsi a " & ControlEngine & vbCrLf errMessage = errMessage & vbCrLf & _ "Avvia " & ControlEngine & vbCrLf errMessage = errMessage & "e collega con il metodo Connect" MsgBox errMessage, vbExclamation, "Errore di connessione" End Sub 'PLCStateChanged '--------------------------------------- Private Sub S7ProSim1_PLCSimStateChanged(ByVal NewState As String) Dim cMessage As String cMessage = "PLCSIM ha cambiato stato operativo in " & NewState MsgBox cMessage, vbInformation, "Esempio di S7ProSim" End Sub 'ScanFinished '--------------------------------------- Private Sub S7ProSim1_ScanFinished(ByVal ScanInfo As Variant) Dim cMessage As String Dim vArrayInfo As Variant '***** I calcoli per la simulazione del processo devono essere ***** '***** effettuati prima di questa sezione di codice. ***** vArrayInfo = ScanInfo cMessage = "L'ultimo ciclo Ë durato " & vArrayInfo(0) & vbCrLf cMessage = cMessage & _ "minimum cyle time " & vArrayInfo(1) & vbCrLf cMessage = cMessage & _ "Il tempo massimo di esecuzione Ë stato " & vArrayInfo(2) & vbCrLf cMessage = cMessage & _ "Il ciclo medio Ë durato " & vArrayInfo(3) MsgBox cMessage, vbInformation, "Esempio di S7ProSim" End Sub Private Sub cmdBeginScanNotify_Click() S7ProSim1.BeginScanNotify End Sub Private Sub cmdEndScanNotify_Click() S7ProSim1.EndScanNotify End Sub Private Sub cmdExecuteNmsScan_Click() Dim ReturnValue As Long ReturnValue = S7ProSim1.ExecuteNmsScan(Int(txtScanNumber.Text)) If ReturnValue <> 0 Then MsgBox "Fallito!", vbOKOnly End If End Sub Private Sub cmdExecuteNScan_Click() Dim ReturnValue As Long ReturnValue = S7ProSim1.ExecuteNScans(Int(txtScanNumber.Text)) If ReturnValue <> 0 Then MsgBox "Fallito!", vbOKOnly End If End Sub Private Sub Form_Unload(Cancel As Integer) Dim errDisconnect As Long errDisconnect = S7ProSim1.Disconnect

Page 49: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

43

If errDisconnect = S_OK Then MsgBox MSG_OK, vbInformation, "Esempio di S7ProSim" Else ShowError errDisconnect End If End Sub '======================================= 'PRIVATE SUBs '======================================= 'ShowError '--------------------------------------- Private Sub ShowError(ErrorNumber) Select Case ErrorNumber Case PS_E_FAIL MsgBox MSG_FAIL, vbExclamation, "Esempio di S7ProSim" Case PS_E_INVBYTENDX MsgBox MSG_INVBYTENDX, vbExclamation, "Esempio di S7ProSim" Case PS_E_INVBYTECOUNT MsgBox MSG_INVBYTECOUNT, vbExclamation, "Esempio di S7ProSim" Case PS_E_READFAILED MsgBox MSG_READFAILED, vbExclamation, "Esempio di S7ProSim" Case PS_E_WRITEFAILED MsgBox MSG_WRITEFAILED, vbExclamation, "Esempio di S7ProSim" Case PS_E_INVBITNDX MsgBox MSG_INVBITNDX, vbExclamation, "Esempio di S7ProSim" Case PS_E_INVTYPE MsgBox MSG_INVTYPE, vbExclamation, "Esempio di S7ProSim" Case PS_E_NOTREGISTERED MsgBox MSG_NOTREGISTERED, vbExclamation, "Esempio di S7ProSim" Case PS_E_NOTSINGLESCAN MsgBox MSG_NOTSINGLESCAN, vbExclamation, "Esempio di S7ProSim" Case PS_E_NOTIFICATION_EXIST MsgBox MSG_NOTIFICATION_EXIST, vbExclamation, _ "Esempio di S7ProSim" Case PS_E_PLCSIMNOTRUNNING MsgBox MSG_PLCSIMNOTRUNNING, vbExclamation, _ "Esempio di S7ProSim" Case PS_S_ALLREADSNOTPOSSIBLE MsgBox MSG_ALLREADSNOTPOSSIBLE, vbExclamation, _ "Esempio di S7ProSim" Case PS_S_ALLWRITESNOTPOSSIBLE MsgBox MSG_ALLWRITESNOTPOSSIBLE, vbExclamation, _ "Esempio di S7ProSim" Case PS_E_NOTCONNECTED MsgBox MSG_NOTCONNECTED, vbExclamation, "Esempio di S7ProSim" Case PS_E_POWEROFF MsgBox MSG_POWEROFF, vbExclamation, "Esempio di S7ProSim" Case Else MsgBox "Si Ë verificato un errore di sistema: &H" & Hex(ErrorNumber), _ vbExclamation, "Esempio di S7ProSim" End Select End Sub

Page 50: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del
Page 51: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Indice analitico-1

Indice analitico A

AboutBox, 6

Aggiunta di S7ProSim a un'applicazione VB, 2

AutoConnect, 3, 24

B BeginScanNotify, 7

C Codice, esempio di progetto, 36

Codici di ritorno degli errori, 33

Componenti del progetto, VB, 2

Connect, 8

ControlEngine, 3, 25

Controllo Siemens S7ProSim, inserimento in un progetto VB, 2

Costanti definite, 29

ImageDataTypeConstants, 30

PointDataTypeConstants, 31

ScanModeConstants, 32

D Definizione dei tipi, 29

ImageDataTypeConstants, 30

PointDataTypeConstants, 31

ScanModeConstants, 32

Disconnect, 9

E Enabled, 3, 26

EndScanNotify, 10

Esecuzione in modo Ciclo continuo

ScanMode, 27

ScanModeConstants, 32

Esecuzione in modo Ciclo singolo

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

ScanMode, 27

ScanModeConstants, 32

Esempio di progetto, 35

codice, 36

Eventi, 19

ConnectionError, 20

PLCSimStateChanged, 21

ScanFinished, 22

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

H Handler di evento, 4

I ImageDataTypeConstants, 30

Inserimento di S7ProSim in un'applicazione VB, 2

Introduzione, 1

L Lettura

immagine delle uscite, 14

punto di uscita, 15

M Metodi, 5

AboutBox, 6

BeginScanNotify, 7

Connect, 8

Disconnect, 9

EndScanNotify, 10

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

ReadOutputImage, 14

ReadOutputPoint, 15

WriteInputImage, 16

WriteInputPoint, 17

Metodi di esecuzione del ciclo di scansione

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

Modo di scansione

impostazione, 27

Page 52: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Esempio di progetto

Indice analitico-2

rilevamento, 27

N Nome del motore di controllo, 25

Notifica della scansione, 7, 10, 26

P PointDataTypeConstants, 31

Progetto Visual Basic, aggiunta di S7ProSim, 2

Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim, 4

Proprietà, 3, 23

AutoConnect, 24

ControlEngine, 25

Enabled, 26

ScanMode, 27

R ReadOutputImage, 14

ReadOutputPoint, 15

S S7ProSim

aggiunta a un progetto VB, 2

interfaccia verso S7-PLCSIM, programmazione, 4

introduzione, 1

proprietà, 3

ScanMode, 3, 27

ScanModeConstants, 32

Scrittura

immagine degli ingressi, 16

punto di ingresso, 17

T Tipi enum, 29

ImageDataTypeConstants, 30

PointDataTypeConstants, 31

ScanModeConstants, 32

V Valori di ritorno, 33

W WriteInputImage, 16

WriteInputPoint, 17

Page 53: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Questionario Le vostre osservazioni e i vostri suggerimenti ci consentono di migliorare la qualità e la praticità d'uso della nostra documentazione. Vi saremmo pertanto grati se voleste compilare e inviare a Siemens il presente questionario.

Utilizzando una scala da 1 (ottimo) a 5 (pessimo) esprimete una valutazione del manuale rispondendo alle seguenti domande.

Il contenuto del manuale corrisponde alle vostre aspettative?

Le informazioni sono facilmente reperibili?

Il testo è di facile comprensione?

Il livello delle informazioni tecniche è soddisfacente?

Come valutate la qualità dei grafici e delle tabelle?

Altre osservazione:

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

Page 54: SIMATIC...funzionamento di S7-PLCSIM, l'emulatore di PLC S7. Per richiamare questi e altri manuali selezionare il comando di menu Start > Simatic > Documentazione nel menu Start del

Indicate i settori attinenti alla vostra attività:

Automobilistico

Chimico

Elettrotecnico ed elettronico

Alimentare

Tecnica di controllo e strumentazione

Meccanico

Petrolchimico

Farmaceutico

Materie plastiche

Cartario

Tessile

Trasporti

Altro___________________________

Inviare il questionario compilato a:

Siemens Energy & Automation, Inc.

ATTN: Technical Communications

One Internet Plaza

Johnson City TN USA 37604

Specificare le seguenti informazioni:

Mittente

Nome e cognome: __________________________________________________________

Qualifica: __________________________________________________________________

Azienda:___________________________________________________________________

Via:_______________________________________________________________________

Città:______________________________________________________________________

Stato: _____________________________________________________________________

N. telefonico:________________________________________________________________