s7wspsceSMEM

63
SIMATIC S7ProSim V5.4 Oggetto COM Manuale utente Edizione: 01/2007

description

MANUAL

Transcript of s7wspsceSMEM

Page 1: s7wspsceSMEM

SIMATIC

S7ProSim V5.4

Oggetto COM

Manuale utente

Edizione: 01/2007

Page 2: s7wspsceSMEM

Copyright e indicazioni 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 materiali.

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 ®sono marchi registrati di Microsoft Corporation.

Copyright Siemens AG, 2007 Tutti i diritti riservati 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 AG Automation and Drives Postfach 4848, D-90327 Nuernberg

© Siemens AG 2007 Dati tecnici soggetti a modifiche senza preavviso.

Page 3: s7wspsceSMEM

S7ProSim V5.4 iii A5E00992433-01

Prefazione S7ProSim consente di accedere in modo programmatico all'interfaccia di simulazione PLC di S7-PLCSIM. Con S7ProSim è possibile scrivere un software per eseguire task quali la modifica della posizione dell'interruttore a chiave del PLC simulato, la verifica del programma di controllo un ciclo di scansione per volta, la lettura o la scrittura dei 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 di software 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 S7ProSim V5.4. .

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 scrive 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, il simulatore 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: s7wspsceSMEM
Page 5: s7wspsceSMEM

S7ProSim V5.4 v A5E00992433-01

Sommario S7ProSim Overview ............................................................................................. 7

Inserimento nel progetto di un oggetto COM S7ProSim................................................ 7 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim............................ 8

Metodi .................................................................................................................. 11 BeginScanNotify .......................................................................................................... 13 Connect ....................................................................................................................... 14 Continue ...................................................................................................................... 15 Disconnect ................................................................................................................... 16 EndScanNotify ............................................................................................................. 17 ExecuteNmsScan ........................................................................................................ 18 ExecuteNScans ........................................................................................................... 19 ExecuteSingleScan...................................................................................................... 20 GetPauseState ............................................................................................................ 21 GetScanMode.............................................................................................................. 22 GetStartUpSwitch ........................................................................................................ 23 GetState....................................................................................................................... 24 HotStartWithSavedValues ........................................................................................... 25 Pause........................................................................................................................... 26 ReadDataBlockValue................................................................................................... 27 ReadFlagValue ............................................................................................................ 28 ReadOutputImage ....................................................................................................... 29 ReadOutputPoint ......................................................................................................... 30 SavePLC...................................................................................................................... 31 SetScanMode .............................................................................................................. 32 SetStartUpSwitch......................................................................................................... 33 SetState....................................................................................................................... 34 StartPLCSim................................................................................................................ 35 WriteDataBlockValue................................................................................................... 36 WriteFlagValue ............................................................................................................ 37 WriteInputImage .......................................................................................................... 38 WriteInputPoint ............................................................................................................ 39

Eventi................................................................................................................... 41 ConnectionError........................................................................................................... 42 PauseStateChanged.................................................................................................... 43 PLCSimStateChanged................................................................................................. 44 ScanFinished............................................................................................................... 45 ScanModeChanged..................................................................................................... 46

Page 6: s7wspsceSMEM

COM Object Manual

vi S7ProSim V5.4 A5E00992433-01

Definizione dei tipi.............................................................................................. 47 CPURunMode.............................................................................................................. 48 ImageDataTypeConstants ........................................................................................... 49 PauseStateConstants .................................................................................................. 50 PointDataTypeConstants............................................................................................. 51 RestartSwitchPosition.................................................................................................. 52 ScanModeConstants ................................................................................................... 53 tagPauseState ............................................................................................................. 54 ScanInfo Constants ..................................................................................................... 55

Codici di ritorno degli errori.............................................................................. 59

Indice analitico ................................................................................................... 61

Page 7: s7wspsceSMEM

S7ProSim V5.4 7 A5E00992433-01

S7ProSim Overview S7ProSim è un oggetto COM che consente di accedere tramite programma all'interfaccia per la simulazione del processo di S7-PLCSIM. S7ProSim può essere usato in qualsiasi applicazione che accetta gli oggetti COM 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.

Inserimento nel progetto di un oggetto COM S7ProSim Per poter utilizzare nel progetto un oggetto COM S7ProSim è necessario inserire un riferimento all'oggetto seguendo una procedura che varia in funzione dell'ambiente di programmazione. Ad esempio, per inserire un oggetto COM S7ProSim in Microsoft Visual Basic (6.0 o .NET) si dovrà procedere come descritto di seguito.

1. Selezionare il comando di menu Progetto > Riferimenti o Progetto > Aggiungi riferimento.

2. Nella finestra di dialogo Riferimenti selezionare la casella di opzione relativa all'oggetto COM S7ProSim Siemens (in Visual Basic .NET questa opzione si trova nella scheda COM della finestra Riferimenti).

3. Fare clic su OK.

Una volta aggiunto il riferimento al progetto è possibile esaminare i metodi e gli eventi dell'oggetto COM S7ProSim mediante il Visualizzatore oggetti. Selezionare S7PROSIMLib nell'elenco a discesa delle librerie del Visualizzatore. La classe S7ProSim contiene i metodi e gli eventi che consentono di programmare un'interfaccia con S7-PLCSIM.

Per inserire un oggetto COM in Microsoft Visual Studio C++ V6.0 o in Microsoft Visual C++ .NET si dovranno seguire le procedure adatte all'ambiente di programmazione scelto.

Page 8: s7wspsceSMEM

Introduzione a S7ProSim

8 S7ProSim V5.4 A5E00992433-01

Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim Per poter comandare il PLC simulato S7-PLCSIM in modo programmato con S7ProSim è necessario eseguire le operazioni descritte di seguito.

• Inserire nel progetto l'oggetto COM Siemens S7ProSim.

• Inserire nel progetto una dichiarazione per S7ProSim.

Esempio: Visual Basic 6.0 Option Explicit Private WithEvents S7ProSim As S7PROSIMLib.S7ProSim ... Private Sub Form_Load() Set S7ProSim = New S7PROSIMLIB.S7ProSim ... End Sub

Esempio: Visual Basic .NET Private WithEvents S7ProSim As New S7PROSIMLib.S7ProSim

Esempio: Visual C++ 6.0 // La libreria ProSim /tlb è nella dll #import <S7wspsmx.dll> named_guids, no_namespace//, solo_interfacce_grezze class ProSimWrapper { public: ProSimWrapper() : m_pProSim(OLESTR("S7wspsmx.S7ProSim"), NULL, CLSCTX_INPROC_SERVER) {}; // Lo spartptr viene creato automaticamente nello stack all'avvio dell'app. virtual ~ProSimWrapper() {}; // Nessuna implementazione, lo smartptr viene rilasciato automaticamente alla chiusura dell'app. IS7ProSim * GetPtr() { return m_pProSim; }; // Attributi protected: // IProSimPtr è un CComPtr (smart ptr) all'interfaccia IProSim // È del file dll importato // CoCreateInstance verrà creato automaticamente // nell'oggetto ptr nel costruttore di questa classe // Il rilascio di ptr viene richiamato automaticamente // dal distruttore di questa classe IS7ProSimPtr m_pProSim; };

Esempio: C# using S7PROSIMLib; ... private S7ProSim ps;

• Per Visual Basic programmare handler per gli eventi S7ProSim. Gli handler di evento non sono necessari in Visual C++. All'interno di ogni handler di evento si può inserire un codice personalizzato per la propria applicazione.

Esempio: Visual Basic 6.0 Private Sub S7ProSim_PauseStateChanged(ByVal NewState As String) DoEvents ... End Sub

Page 9: s7wspsceSMEM

Introduzione a S7ProSim

S7ProSim V5.4 9 A5E00992433-01

Private Sub S7ProSim_ScanFinished(ByVal ScanInfo As Variant) DoEvents ... End Sub Private Sub S7ProSim_PLCSimStateChanged(ByVal NewState As String) DoEvents ... End Sub Private Sub S7ProSim_ConnectionError(ByVal ControlEngine As String, ByVal error As Long) DoEvents MsgBox "Connection Error" End Sub Private Sub S7ProSim_ScanModeChanged(ByVal NewState As String) DoEvents ... End Sub

Nota In Visual Basic .NET non è necessario utilizzare il richiamo "DoEvents".

• 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 10: s7wspsceSMEM
Page 11: s7wspsceSMEM

S7ProSim V5.4 11 A5E00992433-01

Metodi

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.

Continue Prosegue una simulazione che era stata messa in pausa.

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.

GetPauseState Restituisce lo stato di pausa attuale di S7-PLCSIM.

GetScanMode Restituisce il modo di scansione di S7-PLCSIM.

GetStartUpSwitch Rileva il tipo di avvio impostato (riavviamento, nuovo avviamento o avviamento a freddo) per S7-PLCSIM.

GetState Restituisce una stringa contenente il valore della posizione dell'interruttore a chiave di S7-PLCSIM (RUN, RUN-P o STOP).

HotStartWithSavedValues Imposta un valore booleano per determinare se S7-PLCSIM caricherà o meno gli I/O della periferia quando viene avviato nello stato HotStart. Per fare in modo che S7-PLCSIM si avvii e carichi gli I/O della periferia, si deve richiamare HotStartWithSavedValues con un valore TRUE, salvare il programma del PLC ( SavePLC), e impostare lo stato di avviamento di S7-PLCSIM su HotStart ( SetStartUpSwitch). Quando verrà riavviato S7-PLCSIM caricherà gli I/O della periferia.

Pause Mette in pausa una simulazione.

ReadDataBlockValue Legge un particolare bit, byte, parola o doppia parola dall'area di memoria dei DB di S7-PLCSIM.

ReadFlagValue Legge un particolare bit, byte, parola o doppia parola dall'area di memoria dei flag M di S7-PLCSIM.

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

Page 12: s7wspsceSMEM

Metodi

12 S7ProSim V5.4 A5E00992433-01

SavePLC Salva in un file i dati del PLC simulato.

I dati salvati sono costituiti dal programma, dalla configurazione hardware, dalla posizione dell'interruttore a chiave indicata dall'oggetto di visualizzazione CPU, dal tipo di scansione (continuo o ciclo singolo), dallo stato degli I/O, dai valori dei temporizzatori, dagli indirizzi simbolici e dall'alimentazione (on o off).

SetScanMode Imposta il modo di scansione di S7-PLCSIM.

SetStartUpSwitch Imposta il tipo di avvio di S7-PLCSIM (nuovo avvio???, a caldo o a freddo).

SetState Imposta la posizione attuale dell'interruttore a chiave di S7-PLCSIM (RUN, RUN-P o STOP).

StartPLCSim Avvia S7-PLCSIM con il file di simulazione PLC specificato (salvato in seguito a un precedente richiamo di SavePLC).

WriteDataBlockValue Scrive un particolare bit, byte, parola o doppia parola nall'area di memoria dei DB di S7-PLCSIM.

WriteFlagValue Scrive un particolare bit, byte, parola o doppia parola nall'area di memoria dei flag M di S7-PLCSIM.

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 13: s7wspsceSMEM

Metodi

S7ProSim V5.4 13 A5E00992433-01

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

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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: s7wspsceSMEM

Metodi

14 S7ProSim V5.4 A5E00992433-01

Connect

STDMETHOD(CS7ProSim::Connect)()

Descrizione Collega S7ProSim a S7-PLCSIM.

Parametri Nessuno

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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: s7wspsceSMEM

Metodi

S7ProSim V5.4 15 A5E00992433-01

Continue

STDMETHOD(CS7ProSim::Continue)()

Descrizione Prosegue una simulazione che era stata messa in pausa.

Parametri Nessuno

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 16: s7wspsceSMEM

Metodi

16 S7ProSim V5.4 A5E00992433-01

Disconnect

STDMETHOD(CS7ProSim::Disconnect)()

Descrizione Scollega S7ProSim da S7-PLCSIM.

Parametri Nessuno

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 17: s7wspsceSMEM

Metodi

S7ProSim V5.4 17 A5E00992433-01

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

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 18: s7wspsceSMEM

Metodi

18 S7ProSim V5.4 A5E00992433-01

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.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 19: s7wspsceSMEM

Metodi

S7ProSim V5.4 19 A5E00992433-01

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

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 20: s7wspsceSMEM

Metodi

20 S7ProSim V5.4 A5E00992433-01

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

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 21: s7wspsceSMEM

Metodi

S7ProSim V5.4 21 A5E00992433-01

GetPauseState

STDMETHOD(CS7ProSim::GetPauseState)( PauseStateConstants *pVal)

Descrizione Restituisce lo stato di pausa attuale di S7-PLCSIM.

Parametri

pVal Puntatore allo stato di S7-PLCSIM restituito, che è costituito da una delle PauseStateConstants

Note Se richiamato da Visual Basic, lo stato di pausa viene restituito nel valore di ritorno della funzione e il parametro pVal non è presente.

Se richiamato da C++ lo stato di pausa viene restituito nel valore puntato da pVal.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 22: s7wspsceSMEM

Metodi

22 S7ProSim V5.4 A5E00992433-01

GetScanMode

STDMETHOD(CS7ProSim::GetScanMode)( ScanModeConstants *pVal)

Descrizione Restituisce il modo di scansione di S7-PLCSIM.

Parametri

pVal Puntatore al modo di scansione restituito. Il modo di scansione restituito è una delle ScanModeConstants

Note Se richiamato da Visual Basic, il modo di scansione viene restituito nel valore di ritorno della funzione e il parametro pVal non è presente.

Se richiamato da C++ lo stato viene restituito nel valore puntato da pVal.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 23: s7wspsceSMEM

Metodi

S7ProSim V5.4 23 A5E00992433-01

GetStartUpSwitch

STDMETHOD(CS7ProSim::GetStartUpSwitch)( RestartSwitchPosition *pPos)

Descrizione Rileva il tipo di avvio impostato (riavviamento, nuovo riavviamento o riavviamento a freddo) per S7-PLCSIM.

Parametri

pPos Puntatore al valore della posizione di avvio di S7-PLCSIM che è una delle impostazione di RestartSwitchPosition

Note Se richiamata da Visual Basic, la posizione dell'interruttore viene restituita nel valore di ritorno della funzione e il parametro pPos.

Se richiamato da C++ lo stato viene restituito nel valore puntato da pPos.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 24: s7wspsceSMEM

Metodi

24 S7ProSim V5.4 A5E00992433-01

GetState

STDMETHOD(CS7ProSim::GetState)( BSTR *pVal)

Descrizione Restituisce una stringa contenente il valore della posizione dell'interruttore a chiave di S7-PLCSIM (RUN, RUN-P o STOP).

Parametri

pVal Puntatore al valore della posizione dell'interruttore a chiave di S7-PLCSIM restituito.

Note Se richiamato da Visual Basic, lo stato viene restituito nel valore di ritorno della funzione e il parametro pVal non è presente.

Se richiamato da C++ lo stato viene restituito nel valore puntato da pVal.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato E_INVALID_STATE 0x00008002 : Stato non valido PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 25: s7wspsceSMEM

Metodi

S7ProSim V5.4 25 A5E00992433-01

HotStartWithSavedValues

STDMETHOD(CS7ProSim::HotStartWithSavedValues)( BOOL val)

Descrizione Imposta un valore booleano per determinare se S7-PLCSIM dovrà caricare gli I/O di periferia salvati se avviato nello stato HotStart.

Per fare in modo che S7-PLCSIM si avvii e carichi gli I/O della periferia, si deve richiamare HotStartWithSavedValues con un valore TRUE, salvare il programma del PLC (SavePLC) e impostare lo stato di avvio di S7-PLCSIM su HotStart (SetStartUpSwitch). Quando verrà riavviato, S7-PLCSIM caricherà gli I/O della periferia.

Parametri

val Un valore TRUE indica che, in caso di riavviamento, S7-PLCSIM dovrà caricare i dati di I/O della periferia salvati. Un valore FALSE indica che non dovrà caricarli.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 26: s7wspsceSMEM

Metodi

26 S7ProSim V5.4 A5E00992433-01

Pause

STDMETHOD(CS7ProSim::Pause)()

Descrizione Mette in pausa una simulazione.

Parametri Nessuno

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 27: s7wspsceSMEM

Metodi

S7ProSim V5.4 27 A5E00992433-01

ReadDataBlockValue

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

Descrizione Legge un particolare bit, byte, parola o doppia parola dall'area di memoria dei DB di S7-PLCSIM.

Parametri

BlockNumber Numero del blocco dati da leggere. I valori consentiti per BlockNumber dipendono dalla CPU.

ByteIndex Posizione del byte iniziale nel blocco dati da leggere. I valori ammessi per ByteIndex dipendono dalla CPU.

BitIndex In caso di lettura di un valore booleano (bit), posizione del bit iniziale nel blocco dati da leggere. I valori consentiti per BitIndex vanno da 0 a 7.

DataType Tipo di dati da leggere. DataType deve essere una PointDataTypeConstants.

pData Puntatore allo spazio per il valore restituito. Questa area di memoria deve essere assegnata e resa disponibile nell'applicazione.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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_BADTYPE 0x80040206 : Tipo di dati non valido 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

Utilizzo di Visual Basic

Page 28: s7wspsceSMEM

Metodi

28 S7ProSim V5.4 A5E00992433-01

ReadFlagValue

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

Descrizione Legge un particolare bit, byte, parola o doppia parola dall'area di memoria dei merker M di S7-PLCSIM.

Parametri

ByteIndex Rappresenta la posizione del byte iniziale della memoria M da scrivere. I valori ammessi per ByteIndex dipendono dalla CPU.

BitIndex In caso di scrittura di un valore booleano (bit) rappresenta la posizione del bit iniziale all'interno del byte di memoria M da scrivere. I valori consentiti per BitIndex vanno da 0 a 7.

DataType Rappresenta il tipo di dati da leggere. DataType deve essere una PointDataTypeConstants.

pData Puntatore allo spazio per il valore restituito. Questa area di memoria deve essere assegnata e resa disponibile nell'applicazione.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno 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_BADTYPE 0x80040206 : Tipo di dati non valido 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

Utilizzo di Visual Basic

Page 29: s7wspsceSMEM

Metodi

S7ProSim V5.4 29 A5E00992433-01

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.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 30: s7wspsceSMEM

Metodi

30 S7ProSim V5.4 A5E00992433-01

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.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 31: s7wspsceSMEM

Metodi

S7ProSim V5.4 31 A5E00992433-01

SavePLC

STDMETHOD(CS7ProSim::SavePLC)( BSTR FileName)

Descrizione Salva in un file i dati del PLC simulato.

I dati salvati sono costituiti da programma, configurazione hardware, posizione dell|qinterruttore a chiave indicata dalla sottofinestra CPU, tipo di scansione (Continuo o Ciclo singolo), stato degli I/O, valori dei temporizzatori, indirizzi simbolici e alimentazione (on o off).

Parametri

FileName Nome del file in cui salvare i dati simulati del PLC

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito STG_E_CANTSAVE 0x80030103 : Impossibile salvare PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 32: s7wspsceSMEM

Metodi

32 S7ProSim V5.4 A5E00992433-01

SetScanMode

STDMETHOD(CS7ProSim::SetScanMode)( ScanModeConstants newVal)

Descrizione Imposta il modo di scansione di S7-PLCSIM.

Parametri

newVal Modo di scansione da impostare per S7-PLCSIM. Il modo di scansione deve essere una delle ScanModeConstants

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 33: s7wspsceSMEM

Metodi

S7ProSim V5.4 33 A5E00992433-01

SetStartUpSwitch

STDMETHOD(CS7ProSim::SetStartUpSwitch)( RestartSwitchPosition postion)

Descrizione Imposta il tipo di avvio (riavviamento, nuovo avviamento o avviamento a freddo) di S7-PLCSIM.

Parametri

postion Valore da impostare per la posizione dell'interruttore di avvio di S7-PLCSIM.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno Valore Significato S_OK 0x00000000 : Codice di metodo riuscito PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 34: s7wspsceSMEM

Metodi

34 S7ProSim V5.4 A5E00992433-01

SetState

STDMETHOD(CS7ProSim::SetState)( BSTR newVal)

Descrizione Imposta la posizione dell'interruttore a chiave di S7-PLCSIM (RUN, RUN-P o STOP).

Parametri

newVal Valore della posizione dell'interruttore a chiave di S7-PLCSIM da impostare

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato E_INVALID_STATE 0x00008002 : Stato non valido PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo di Visual Basic

Page 35: s7wspsceSMEM

Metodi

S7ProSim V5.4 35 A5E00992433-01

StartPLCSim

STDMETHOD(CS7ProSim::StartPLCSim)( BSTR plcFile)

Descrizione Avvia S7-PLCSIM con il file di simulazione PLC specificato (salvato durante un precedente richiamo di SavePLC).

Parametri

plcFile Nome del file per l'avvio di S7-PLCSIM.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

Valore restituito Valore Significato S_OK 0x00000000 : Codice di metodo riuscito E_FAIL 0x80004005 : Errore non specificato

Utilizzo di Visual Basic

Page 36: s7wspsceSMEM

Metodi

36 S7ProSim V5.4 A5E00992433-01

WriteDataBlockValue

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

Descrizione Scrive un particolare bit, byte, parola o doppia parola nall'area di memoria dei DB di S7-PLCSIM.

Parametri

BlockNumber Rappresenta il numero del blocco dati da scrivere. I valori ammessi per BlockNumber dipendono dalla CPU.

ByteIndex Rappresenta la posizione del byte iniziale nel blocco dati da scrivere. I valori ammessi per ByteIndex dipendono dalla CPU.

BitIndex In caso di scrittura di un valore booleano (bit) rappresenta la posizione del bit iniziale all'interno del blocco dati da scrivere. I valori validi per BitIndex vanno da 0 a 7.

pData Puntatore allo spazio di memoria che contiene i dati da scrivere. Questa area di memoria deve essere assegnata e resa disponibile nell'applicazione.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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_BADTYPE 0x80040206 : Tipo di dati non valido 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

Utilizzo di Visual Basic

Page 37: s7wspsceSMEM

Metodi

S7ProSim V5.4 37 A5E00992433-01

WriteFlagValue

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

Descrizione Scrive un particolare bit, byte, parola o doppia parola nall'area di memoria dei flag M di S7-PLCSIM.

Parametri

ByteIndex Rappresenta la posizione del byte iniziale della memoria M da scrivere. I valori ammessi per ByteIndex dipendono dalla CPU.

BitIndex In caso di scrittura di un valore boolenano (bit) rappresenta la posizione del bit iniziale all'interno del byte di memoria M da scrivere. I valori consentiti per BitIndex vanno da 0 a 7.

pData Puntatore allo spazio di memoria che contiene i dati da scrivere. Questa area di memoria deve essere assegnata e resa disponibile nell'applicazione.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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_BADTYPE 0x80040206 : Tipo di dati non valido 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

Utilizzo di Visual Basic

Page 38: s7wspsceSMEM

Metodi

38 S7ProSim V5.4 A5E00992433-01

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.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 39: s7wspsceSMEM

Metodi

S7ProSim V5.4 39 A5E00992433-01

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.

Gestione degli errori Gli errori vengono restituiti nell'evento ConnectionError e non dal richiamo della funzione.

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 40: s7wspsceSMEM
Page 41: s7wspsceSMEM

S7ProSim V5.4 41 A5E00992433-01

Eventi

ConnectionError Viene generato se non è possibile stabilire il collegamento con il motore di controllo ("S7-PLCSIM") o se si verifica un errore nel richiamo di un metodo S7ProSim.

PauseStateChanged Viene generato se viene rilevato un passaggio dello stato da Interrompi a Continua. NewState è una stringa che costituisce una delle PauseStateConstants.

PLCSimStateChanged Viene generato se viene rilevato un nuovo stato dell'interruttore del PLC. NewState corrisponde al nuovo stato operativo: "RUN", "RUN_P" o "STOP".

ScanFinished Viene generato al termine di un singolo ciclo di scansione. ScanInfofornisce informazioni indicizzate sulla scansione.

ScanModeChanged Viene generato se viene rilevato un cambiamento del modo di scansione. NewState è una stringa che costituisce una delle ScanStateConstants.

Page 42: s7wspsceSMEM

Eventi

42 S7ProSim V5.4 A5E00992433-01

ConnectionError

HRESULT ConnectionError(BSTR ControlEngine, long Error)

Descrizione Viene generato se non è possibile stabilire il collegamento con il motore di controllo ("S7-PLCSIM") o se si verifica un errore nel richiamo di un metodo S7ProSim.

Utilizzo di Visual Basic

Page 43: s7wspsceSMEM

Eventi

S7ProSim V5.4 43 A5E00992433-01

PauseStateChanged

HRESULT PauseStateChanged(BSTR NewState)

Descrizione Viene generato se viene rilevato un passaggio dello stato da Interrompi a Continua. NewState è una stringa che costituisce una delle PauseStateConstants.

Utilizzo di Visual Basic

Page 44: s7wspsceSMEM

Eventi

44 S7ProSim V5.4 A5E00992433-01

PLCSimStateChanged

HRESULT PLCSimStateChanged(BSTR NewState)

Descrizione Viene generato se viene rilevato un nuovo stato dell'interruttore del PLC. NewState corrisponde al nuovo stato operativo: "RUN", "RUN_P" o "STOP".

Utilizzo di Visual Basic

Page 45: s7wspsceSMEM

Eventi

S7ProSim V5.4 45 A5E00992433-01

ScanFinished

HRESULT ScanFinished(VARIANT ScanInfo)

Descrizione Viene generato al termine di un singolo ciclo di scansione. ScanInfo fornisce informazioni indicizzate sulla scansione.

Utilizzo di Visual Basic

Page 46: s7wspsceSMEM

Eventi

46 S7ProSim V5.4 A5E00992433-01

ScanModeChanged

HRESULT ScanModeChanged(BSTR NewState)

Descrizione Viene generato se viene rilevato un cambiamento del modo di scansione. NewState è una stringa che costituisce una delle ScanStateConstants.

Utilizzo di Visual Basic

Page 47: s7wspsceSMEM

S7ProSim V5.4 47 A5E00992433-01

Definizione dei tipi

CPURunMode Costanti per lo stato di scansione "run" della CPU

ImageDataTypeConstants Costanti per il metodo ReadOutputImage

PauseStateConstants Costanti per lo stato "pausa"

PointDataTypeConstants Costanti per il metodo ReadOutputPoint

RestartSwitchPosition Costanti per la posizione dell'interruttore di avvio sul pannello frontale

ScanModeConstants Costanti per il modo di scansione

tagPauseState Costanti per lo stato "pausa"

ScanInfo Constants Costanti per le informazioni sul ciclo di scansione

Page 48: s7wspsceSMEM

Definizione dei tipi

48 S7ProSim V5.4 A5E00992433-01

CPURunMode

enum CPURunMode { CONTINUOUS_SCAN, SINGLE_SCAN, SINGLE_STEP }

Descrizione Costanti per lo stato di scansione in modo RUN della CPU.

Membri CONTINUOUS_SCAN SINGLE_SCAN SINGLE_STEP

Page 49: s7wspsceSMEM

Definizione dei tipi

S7ProSim V5.4 49 A5E00992433-01

ImageDataTypeConstants

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

Descrizione Costanti del metodo ReadOutputImage.

Membri S7Byte S7DoubleWord S7Word

Page 50: s7wspsceSMEM

Definizione dei tipi

50 S7ProSim V5.4 A5E00992433-01

PauseStateConstants

enum { Running = 0, Paused = 1, Disabled = 2 }

Descrizione Costanti dello stato di pausa.

Membri Disabled Paused Running

Page 51: s7wspsceSMEM

Definizione dei tipi

S7ProSim V5.4 51 A5E00992433-01

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 52: s7wspsceSMEM

Definizione dei tipi

52 S7ProSim V5.4 A5E00992433-01

RestartSwitchPosition

enum { WarmStart = 0, HotStart = 1, ColdStart = 2 }

Descrizione Costanti della posizione dell'interruttore di avvio sul pannello frontale.

Membri

ColdStart Posizione di riavvio OB102

HotStart Posizione di riavvio OB101

WarmStart Posizione di riavvio OB100

Page 53: s7wspsceSMEM

Definizione dei tipi

S7ProSim V5.4 53 A5E00992433-01

ScanModeConstants

enum { SingleScan = 0, ContinuousScan = 1 }

Descrizione Costanti del modo di scansione.

Membri ContinuousScan SingleScan

Page 54: s7wspsceSMEM

Definizione dei tipi

54 S7ProSim V5.4 A5E00992433-01

tagPauseState

enum tagPauseState { ENABLED_RUNNING, ENABLED_PAUSED, DISABLED }

Descrizione Costanti dello stato di pausa.

Membri DISABLED ENABLED_PAUSED ENABLED_RUNNING

Page 55: s7wspsceSMEM

Definizione dei tipi

S7ProSim V5.4 55 A5E00992433-01

ScanInfo Constants

Costanti ScanInfo

ScanInfo

NUM_OF_SCANINFO_ELEMENTS Numero di elementi nell'array di ritorno ScanInfo.

EXECUTION_TIME_NDX Indice 0: tempo di esecuzione in ms

MIN_CYCLE_TIME_NDX Indice 1: valore del tempo di esecuzione più basso in ms

LARGEST_CYCLE_TIME_NDX Indice 2: tempo di esecuzione massimo espresso in ms

AVERAGE_CYCLE_TIME_NDX Indice 3: tempo di ciclo medio in ms

IS_PLC_RUNNING_NDX Indice 4: merker: 1=PLC in funzione; 0=PLC non in funzione

ScanInfo

ScanInfo Il tipo di dati ScanInfo è un array di long. Ogni long dell'array definisce delle informazioni sul ciclo di scansione nelle modalità definite dalle constanti di ScanInfo.

Page 56: s7wspsceSMEM

Definizione dei tipi

56 S7ProSim V5.4 A5E00992433-01

NUM_OF_SCANINFO_ELEMENTS

#define NUM_OF_SCANINFO_ELEMENTS 5

Descrizione Numero di elementi nell'array di ritorno ScanInfo.

EXECUTION_TIME_NDX

#define EXECUTION_TIME_NDX 0

Descrizione Indice 0: tempo di esecuzione in ms

MIN_CYCLE_TIME_NDX

#define MIN_CYCLE_TIME_NDX 1

Descrizione Indice 1: valore del tempo di esecuzione più basso in ms

Page 57: s7wspsceSMEM

Definizione dei tipi

S7ProSim V5.4 57 A5E00992433-01

LARGEST_CYCLE_TIME_NDX

#define LARGEST_CYCLE_TIME_NDX 2

Descrizione Indice 2: tempo di esecuzione massimo espresso in ms

AVERAGE_CYCLE_TIME_NDX

#define AVERAGE_CYCLE_TIME_NDX 3

Descrizione indice 3: tempo di ciclo medio in ms

IS_PLC_RUNNING_NDX

#define IS_PLC_RUNNING_NDX 4

Descrizione Indice 4: merker: 1=PLC in funzione; 0=PLC non in funzione

Page 58: s7wspsceSMEM
Page 59: s7wspsceSMEM

S7ProSim V5.4 59 A5E00992433-01

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 60: s7wspsceSMEM
Page 61: s7wspsceSMEM

S7ProSim V5.4 61 A5E00992433-01

Indice analitico A

AVERAGE_CYCLE_TIME_NDX, 57

B BeginScanNotify, 13

C Caricamento degli I/O della periferia al

riavviamento, 25

Caricamento del file .plc salvato, 35

Codici di ritorno degli errori, 59

ColdStart, 52

impostazione, 33

Connect, 14

ConnectionError, 42

Continue, 15

Costanti, 47

CPURunMode, 48

ImageDataTypeConstants, 49

PauseStateConstants, 50

PointDataTypeConstants, 51

RestartSwitchPosition, 52

ScanModeConstants, 53

tagPauseState, 54

Costanti definite, 47

CPURunMode, 48

ImageDataTypeConstants, 49

PauseStateConstants, 50

PointDataTypeConstants, 51

RestartSwitchPosition, 52

ScanModeConstants, 53

tagPauseState, 54

Costanti ScanInfo, 55

CPURunMode, 48

D Definizione dei tipi, 47

CPURunMode, 48

ImageDataTypeConstants, 49

PauseStateConstants, 50

PointDataTypeConstants, 51

RestartSwitchPosition, 52

ScanModeConstants, 53

tagPauseState, 54

Disconnect, 16

E EndScanNotify, 17

Esecuzione in modo Ciclo continuo

GetScanMode, 22

ScanModeConstants, 53

SetScanMode, 32

Esecuzione in modo Ciclo singolo

ExecuteNmsScan, 18

ExecuteNScans, 19

ExecuteSingleScan, 20

GetScanMode, 22

ScanModeConstants, 53

SetScanMode, 32

Eventi, 41

ConnectionError, 42

PauseStateChanged, 43

PLCSimStateChanged, 44

ScanFinished, 45

ScanModeChanged, 46

ExecuteNmsScan, 18

ExecuteNScans, 19

ExecuteSingleScan, 20

EXECUTION_TIME_NDX, 56

G GetPauseState, 21

GetScanMode, 22

GetStartUpSwitch, 23

GetState, 24

H Handler di evento, 8

HotStart, 52

impostazione, 33

HotStartWithSavedValues, 25

I ImageDataTypeConstants, 49

Page 62: s7wspsceSMEM

Definizione dei tipi

62 S7ProSim V5.4 A5E00992433-01

Introduzione, 7

IS_PLC_RUNNING_NDX, 57

L LARGEST_CYCLE_TIME_NDX, 57

Lettura

immagine delle uscite, 29

uscita, 30

valore dei merker (memoria M), 28

Valori dei blocchi dati (DB), 27

M Memoria M

lettura, 28

scrittura, 37

Metodi, 11

BeginScanNotify, 13

Connect, 14

Continue, 15

Disconnect, 16

EndScanNotify, 17

ExecuteNmsScan, 18

ExecuteNScans, 19

ExecuteSingleScan, 20

GetPauseState, 21

GetScanMode, 22

GetStartUpSwitch, 23

GetState, 24

HotStartWithSavedValues, 25

Pause, 26

ReadDataBlockValue, 27

ReadFlagValue, 28

ReadOutputImage, 29

ReadOutputPoint, 30

SavePLC, 31

SetScanMode, 32

SetStartUpSwitch, 33

SetState, 34

StartPLCSim, 35

WriteDataBlockValue, 36

WriteFlagValue, 37

WriteInputImage, 38

WriteInputPoint, 39

Metodi di esecuzione del ciclo di scansione

ExecuteNmsScan, 18

ExecuteNScans, 19

ExecuteSingleScan, 20

Metodi S7ProSim Pro

ReadDataBlockValue, 27

ReadFlagValue, 28

WriteDataBlockValue, 36

WriteFlagValue, 37

MIN_CYCLE_TIME_NDX, 56

Modo di scansione

impostazione, 32

rilevamento, 22

N NUM_OF_SCANINFO_ELEMENTS, 56

O Oggetto COM Siemens S7ProSim, aggiunta a

un progetto, 7

P Pause, 26

PauseStateChanged, 43

PauseStateConstants, 50

PLCSIM, avvio, 35

PLCSimStateChanged, 44

PointDataTypeConstants, 51

Posizione dell'interruttore a chiave

impostazione, 34

rilevamento, 24

Posizione dell'interruttore di avvio, 52

impostazione, 33

rilevamento, 23

Programmazione dell'interfaccia S7ProSim verso S7-PLCSIM, 8

R ReadDataBlockValue, 27

ReadFlagValue, 28

ReadOutputImage, 29

ReadOutputPoint, 30

RestartSwitchPosition, 52

Riferimenti, 7

Page 63: s7wspsceSMEM

Indice analitico

S7ProSim V5.4 63 A5E00992433-01

Riferimenti per il progetto, 7

S S7-PLCSIM, avvio, 35

S7ProSim

interfaccia verso S7-PLCSIM, programmazione, 8

introduzione, 7

Salvataggio del file .plc, 31

SavePLC, 31

ScanFinished, 45

ScanModeChanged, 46

ScanModeConstants, 53

Scrittura

immagine degli ingressi, 38

ingresso, 39

valore dei merker (memoria M), 37

Valori dei blocchi dati (DB), 36

SetScanMode, 32

SetStartUpSwitch, 33

SetState, 34

StartPLCSim, 35

Stato di pausa

impostazione, 26

rilevamento, 21

T tagPauseState, 54

Tipi enum, 47

CPURunMode, 48

ImageDataTypeConstants, 49

PauseStateConstants, 50

PointDataTypeConstants, 51

RestartSwitchPosition, 52

ScanModeConstants, 53

tagPauseState, 54

V Valore dei merker

lettura, 28

scrittura, 37

Valori dei blocchi dati (DB)

lettura, 27

scrittura, 36

Valori di ritorno, 59

W WarmStart, 52

impostazione, 33

WriteDataBlockValue, 36

WriteFlagValue, 37

WriteInputImage, 38

WriteInputPoint, 39