s7wspsceSMEM
description
Transcript of s7wspsceSMEM
SIMATIC
S7ProSim V5.4
Oggetto COM
Manuale utente
Edizione: 01/2007
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.
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
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
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
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.
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
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.
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).
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).
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
Definizione dei tipi
S7ProSim V5.4 53 A5E00992433-01
ScanModeConstants
enum { SingleScan = 0, ContinuousScan = 1 }
Descrizione Costanti del modo di scansione.
Membri ContinuousScan SingleScan
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
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.
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
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
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
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
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
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