Sei sulla pagina 1di 62

 S7ProSim V5.

4 ___________________
Introduzione 1

___________________
Panoramica di S7ProSim 2

___________________
Metodi 3
SIMATIC
___________________
Eventi 4
Engineering Tool
S7ProSim V5.4 ___________________
Definizione dei tipi 5

Manuale d'uso

07/2011
A5E00992433-02
Avvertenze di legge
Avvertenze di legge
Concetto di segnaletica di avvertimento
Questo manuale contiene delle norme di sicurezza che devono essere rispettate per salvaguardare l'incolumità
personale e per evitare danni materiali. Le indicazioni da rispettare per garantire la sicurezza personale sono
evidenziate da un simbolo a forma di triangolo mentre quelle per evitare danni materiali non sono precedute dal
triangolo. Gli avvisi di pericolo sono rappresentati come segue e segnalano in ordine descrescente i diversi livelli
di rischio.

PERICOLO
questo simbolo indica che la mancata osservanza delle opportune misure di sicurezza provoca la morte o gravi
lesioni fisiche.

AVVERTENZA
il simbolo indica che la mancata osservanza delle relative misure di sicurezza può causare la morte o gravi
lesioni fisiche.

CAUTELA
con il triangolo di pericolo indica che la mancata osservanza delle relative misure di sicurezza può causare
lesioni fisiche non gravi.

CAUTELA
senza triangolo di pericolo indica che la mancata osservanza delle relative misure di sicurezza può causare
danni materiali.

ATTENZIONE
indica che, se non vengono rispettate le relative misure di sicurezza, possono subentrare condizioni o
conseguenze indesiderate.
Nel caso in cui ci siano più livelli di rischio l'avviso di pericolo segnala sempre quello più elevato. Se in un avviso
di pericolo si richiama l'attenzione con il triangolo sul rischio di lesioni alle persone, può anche essere
contemporaneamente segnalato il rischio di possibili danni materiali.
Personale qualificato
Il prodotto/sistema oggetto di questa documentazione può essere adoperato solo da personale qualificato per il
rispettivo compito assegnato nel rispetto della documentazione relativa al compito, specialmente delle avvertenze
di sicurezza e delle precauzioni in essa contenute. Il personale qualificato, in virtù della sua formazione ed
esperienza, è in grado di riconoscere i rischi legati all'impiego di questi prodotti/sistemi e di evitare possibili
pericoli.
Uso conforme alle prescrizioni di prodotti Siemens
Si prega di tener presente quanto segue:

AVVERTENZA
I prodotti Siemens devono essere utilizzati solo per i casi d’impiego previsti nel catalogo e nella rispettiva
documentazione tecnica. Qualora vengano impiegati prodotti o componenti di terzi, questi devono essere
consigliati oppure approvati da Siemens. Il funzionamento corretto e sicuro dei prodotti presuppone un trasporto,
un magazzinaggio, un’installazione, un montaggio, una messa in servizio, un utilizzo e una manutenzione
appropriati e a regola d’arte. Devono essere rispettate le condizioni ambientali consentite. Devono essere
osservate le avvertenze contenute nella rispettiva documentazione.

Marchio di prodotto
Tutti i nomi di prodotto contrassegnati con ® sono marchi registrati della Siemens AG. Gli altri nomi di prodotto
citati in questo manuale possono essere dei marchi il cui utilizzo da parte di terzi per i propri scopi può violare i
diritti dei proprietari.
Esclusione di responsabilità
Abbiamo controllato che il contenuto di questa documentazione corrisponda all'hardware e al software descritti.
Non potendo comunque escludere eventuali differenze, non possiamo garantire una concordanza perfetta. Il
contenuto di questa documentazione viene tuttavia verificato periodicamente e le eventuali correzioni o modifiche
vengono inserite nelle successive edizioni.

Siemens AG A5E00992433-02 Copyright © Siemens AG 2011.


Industry Sector Ⓟ 05/2011 Con riserva di eventuali modifiche tecniche
Postfach 48 48
90026 NÜRNBERG
GERMANIA
Indice del contenuto

1 Introduzione............................................................................................................................................... 5
2 Panoramica di S7ProSim........................................................................................................................... 7
2.1 Inserimento di un oggetto COM S7ProSim nel progetto ...............................................................7
2.2 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim ...........................................8
3 Metodi...................................................................................................................................................... 11
3.1 BeginScanNotify ..........................................................................................................................13
3.2 Connect........................................................................................................................................14
3.3 ConnectExt...................................................................................................................................15
3.4 Continue.......................................................................................................................................16
3.5 Disconnect ...................................................................................................................................17
3.6 EndScanNotify .............................................................................................................................18
3.7 ExecuteNmsScan ........................................................................................................................19
3.8 ExecuteNScans ...........................................................................................................................20
3.9 ExecuteSingleScan......................................................................................................................21
3.10 GetPauseState.............................................................................................................................22
3.11 GetScanMode ..............................................................................................................................23
3.12 GetStartUpSwitch ........................................................................................................................24
3.13 GetState .......................................................................................................................................25
3.14 HotStartWithSavedValues ...........................................................................................................26
3.15 Pause ...........................................................................................................................................27
3.16 ReadDataBlockValue...................................................................................................................28
3.17 ReadFlagValue ............................................................................................................................30
3.18 ReadOutputImage........................................................................................................................32
3.19 ReadOutputPoint .........................................................................................................................34
3.20 SavePLC ......................................................................................................................................36
3.21 SetScanMode...............................................................................................................................37
3.22 SetStartUpSwitch.........................................................................................................................38
3.23 SetState .......................................................................................................................................39
3.24 StartPLCSim ................................................................................................................................40
3.25 StartPLCSimExt ...........................................................................................................................41
3.26 WriteDataBlockValue ...................................................................................................................42

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 3
Indice del contenuto

3.27 WriteFlagValue............................................................................................................................ 44
3.28 WriteInputImage.......................................................................................................................... 46
3.29 WriteInputPoint............................................................................................................................ 47
4 Eventi....................................................................................................................................................... 49
4.1 ConnectionError .......................................................................................................................... 49
4.2 PauseStateChanged ................................................................................................................... 50
4.3 PLCSimStateChanged ................................................................................................................ 50
4.4 ScanFinished .............................................................................................................................. 50
4.5 ScanModeChanged .................................................................................................................... 51
5 Definizione dei tipi.................................................................................................................................... 53
5.1 Definizione dei tipi ....................................................................................................................... 53
5.2 CPURunMode ............................................................................................................................. 53
5.3 ImageDataTypeConstants .......................................................................................................... 54
5.4 PauseStateConstants ................................................................................................................. 54
5.5 PointDataTypeConstants ............................................................................................................ 55
5.6 RestartSwitchPosition ................................................................................................................. 55
5.7 ScanModeConstants................................................................................................................... 56
5.8 tagPauseState............................................................................................................................. 56
5.9 Costanti ScanInfo........................................................................................................................ 57
5.10 Codici di ritorno degli errori ......................................................................................................... 57
Indice analitico ......................................................................................................................................... 59

S7ProSim V5.4
4 Manuale d'uso, 07/2011, A5E00992433-02
Introduzione 1
S7ProSim consente di accedere in modo programmatico all'interfaccia del sistema di
destinazione in S7-PLCSIM. S7ProSim può essere utilizzato per scrivere software che
eseguono task quali la modifica della posizione dell'interruttore a chiave del PLC simulato,
l'esecuzione ciclica del programma di controllo, la lettura o la scrittura dei valori di controllo
e l'esecuzione di molte altre fasi operative.

Lettori
Il presente manuale si rivolge allo sviluppatore, programmatore e personale di manutenzione
con conoscenze precise e esperienza nell'ambito di controllori S7 programmabili e lo
sviluppo di software in Visual Basic (6.0 o .NET) e Visual C++ (6.0 o .NET).

Panorama del manuale


Questo manuale descrive le funzioni e l'utilizzo di S7ProSim dalla versione V5.4 SP5.

Ulteriori manuali
Maggiori informazioni sono disponibili nella Guida in linea a STEP 7 e S7-PLCSIM,
nonché nei seguenti manuali:
● Programmazione con STEP 7, manuale. Questo manuale fornisce le informazioni
importanti per la creazione e programmazione di programmi di controllo.
Utilizzare questo manuale se si intende creare un programma di controllo
con il software di automazione STEP 7.
● Software di sistema per S7-300/400, Funzioni standard e di sistema, manuale di
riferimento. Questo manuale contiene descrizioni sulle funzioni di sistema,
sui blocchi organizzativi e sulle funzioni standard che vengono utilizzati per lo
sviluppo di programmi di controllo.
● Primi passi e esercitazioni con STEP 7, Getting Started. In questo manuale viene
descritto come utilizzare il software di automazione STEP 7. Il manuale mostra una
sintesi sulle operazioni necessarie per la configurazione di un sistema di destinazione
e per lo sviluppo di programmi di controllo.
● S7-PLCSIM - Testare i programmi CPU S7. In questo manuale vengono descritti
l'interfaccia utente e il funzionamento di S7-PLCSIM, il simulatore S7-SPS.
Questi e altri manuali si trovano nel menu di avvio selezionando il comando Start > SIMATIC
> Documentazione se è stato installato STEP 7 sul PC.

Supporto supplementare
Per domande tecniche o informazioni su come ordinare questo prodotto o riguardo corsi di
formazione, rivolgersi al proprio responsabile Siemens.

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 5
Introduzione

S7ProSim V5.4
6 Manuale d'uso, 07/2011, A5E00992433-02
Panoramica di S7ProSim 2
S7ProSim è un oggetto COM che consente di accedere tramite programma all'interfaccia
per la simulazione del processo in S7-PLCSIM. S7ProSim può essere usato in qualsiasi
applicazione che supporti gli oggetti COM per collegarsi alla simulazione di processo
S7-PLCSIM.
La presente documentazione online spiega come inserire S7ProSim in un'applicazione
e descrive le caratteristiche, l'interfaccia e il funzionamento di S7ProSim,
comprese le definizioni degli oggetti software dei metodi e degli eventi.

2.1 Inserimento di un oggetto COM S7ProSim nel progetto


Per poter utilizzare un oggetto COM S7ProSim nel progetto è necessario inserire un
riferimento all'oggetto seguendo una procedura che varia in funzione dell'ambiente di
programmazione.

Procedimento
Per inserire un riferimento a un oggetto COM S7ProSim in Microsoft Visual Basic
(6.0 o .NET) si dovrà procedere ad es. nel modo seguente.
1. Selezionare il comando di menu Progetto > Riferimenti o Progetto > Aggiungi riferimento.
2. Nella finestra di dialogo "Riferimenti" selezionare la casella di controllo relativa all'oggetto
COM S7ProSim Siemens (in Visual Basic .NET questa opzione si trova nella scheda
"COM" della finestra "Riferimenti").
3. Confermare con "OK".
Una volta acquisito il riferimento nel progetto è possibile visualizzare i metodi e gli eventi
dell'oggetto COM S7ProSim mediante il visualizzatore oggetti. Nella casella di riepilogo a
discesa delle biblioteche nel visualizzatore selezionare S7PROSIMLib. 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.
Con i seguenti passi è possibile aggiungere un riferimento ad un oggetto COM S7ProSim in
Microsoft Visual C# .NET:
1. Selezionare il comando di menu Progetto > Inserisci riferimento.
2. Nella scheda "COM" selezionare il componente "Siemens S7ProSim COM Object".
3. Confermare la selezione con "Seleziona".
4. Chiudere la finestra di dialogo con "OK".

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 7
Panoramica di S7ProSim
2.2 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim

2.2 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim

Procedimento
Per poter comandare il PLC simulato in S7-PLCSIM con S7ProSim procedere
nel modo seguente.
1. Inserire nel progetto l'oggetto COM Siemens S7ProSim.
2. 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 biblioteca ProSim /tlb è nella dll

#import <S7wspsmx.dll> named_guids, no_namespace//, raw_interfaces_only

class ProSimWrapper

public:

ProSimWrapper() : m_pProSim(OLESTR("S7wspsmx.S7ProSim"), NULL,


CLSCTX_INPROC_SERVER)

{}; // spartptr viene generato automaticamente nello stack all'avvio


// dell'applicazione

virtual ~ProSimWrapper()

{}; // nessuna implementazione, smartptr viene abilitato

// automaticamente
// alla chiusura dell'applicazione

IS7ProSim * GetPtr()

return m_pProSim;

};

// attributi

protected:

S7ProSim V5.4
8 Manuale d'uso, 07/2011, A5E00992433-02
Panoramica di S7ProSim
2.2 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim

// IProSimPtr è un CComPtr (smart ptr) per l'interfaccia


// IProSim

// deriva dal file dll di #import

// CoCreateInstance viene richiamato automaticamente per l'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;

// create the COM Object connection

ps = new S7ProSim();

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 9
Panoramica di S7ProSim
2.2 Programmazione di un'interfaccia verso S7-PLCSIM con S7ProSim

3. In Visual Basic programmare handler specifici per gli eventi S7ProSim. Gli handler di
evento non sono necessari in Visual C++ e Visual C#. In 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

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

Avvertenza
In Visual Basic .NET non è necessario il richiamo "DoEvents".
4. Inserire nell'applicazione i pulsanti dei comandi, le caselle di testo e 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
10 Manuale d'uso, 07/2011, A5E00992433-02
Metodi 3
Panoramica

Metodo Descrizione
BeginScanNotify Registra S7ProSim per le chiamate di ritorno dal controllore.
(Pagina 13) Quando si verificano questi eventi vengono trasmessi gli eventi
ScanFinished e PLCSIMStateChanged.
Connect (Pagina 14) Collega S7ProSim a S7-PLCSIM.
ConnectExt (Pagina 15) Collega S7ProSim all'istanza S7-PLCSIM con il numero
InstanceNumber.
Continue (Pagina 16) Prosegue una simulazione che era stata messa in pausa.
Disconnect (Pagina 17) Interrompe il collegamento tra S7ProSim e S7-PLCSIM.
EndScanNotify (Pagina 18) Annulla la registrazione di S7ProSim per le chiamate di ritorno dal
controllore. Gli eventi ScanFinished e PLCSIMStateChanged non
vengono trasmessi.
ExecuteNmsScan Forza S7-PLCSIM a eseguire i cicli di scansione per un determinato
(Pagina 19) intervallo di tempo (Nms) senza attendere la fine del ciclo attuale.
Se è attiva l'opzione di notifica della scansione, verrà comunicato al
programma quando S7-PLCSIM ha concluso i cicli.
ExecuteNScans Forza S7-PLCSIM a eseguire un determinato numero di cicli di
(Pagina 20) scansione senza attendere la fine del ciclo attuale. Se è attiva l'opzione
di notifica della scansione, verrà comunicato al programma quando
S7-PLCSIM ha concluso i cicli.
ExecuteSingleScan Forza S7-PLCSIM a eseguire un ciclo di scansione senza attendere
(Pagina 21) 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.
GetPauseState (Pagina 22) Restituisce lo stato di pausa attuale di S7-PLCSIM.
GetScanMode (Pagina 23) Segnala il modo di funzionamento di S7-PLCSIM.
GetStartUpSwitch Rileva il tipo di avvio impostato (riavviamento, avviamento a
(Pagina 24) caldo o a freddo) per S7-PLCSIM.
GetState (Pagina 25) Restituisce una stringa con la posizione attuale dell'interruttore
a chiave di S7-PLCSIM (RUN, RUN-P o STOP).
HotStartWithSavedValues Imposta un valore booleano per indicare se S7-PLCSIM dovrà caricare
(Pagina 26) i valori I/O della periferia salvati all'avvio nello stato HotStart. Per fare in
modo che S7-PLCSIM carichi gli I/O della periferia all'avvio, occorre
richiamare HotStartWithSavedValues con il 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 (Pagina 27) Mette in pausa una simulazione.
ReadDataBlockValue Legge un particolare bit, byte, parola o doppia parola dall'area di
(Pagina 28) memoria dei DB di S7-PLCSIM.

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 11
Metodi

Metodo Descrizione
ReadFlagValue (Pagina 30) Legge un particolare bit, byte, parola o doppia parola dall'area di
memoria dei merker (M) di S7-PLCSIM.
ReadOutputImage Legge gli elementi dell'area di periferia delle uscite
(Pagina 32) (area di memoria PQ) di S7-PLCSIM.
ReadOutputPoint Legge un particolare bit (Boolean), byte (Byte), parola di due byte
(Pagina 34) (Integer) o parola di quattro byte (Long) dall'area di periferia
delle uscite (area di memoria PQ).
SavePLC (Pagina 36) Salva in un file i dati del PLC simulato. I dati salvati sono costituiti da
programma, configurazione hardware, posizione dell'interruttore a
chiave indicata nella sottofinestra "CPU", tipo di scansione
(Continuo o Ciclo singolo), stato degli I/O, valori dei temporizzatori,
indirizzi simbolici e alimentazione (on/off).

SetScanMode (Pagina 37) Imposta il modo di funzionamento di S7-PLCSIM.


SetStartUpSwitch Imposta il tipo di avvio (riavviamento, avviamento a caldo o a freddo)
(Pagina 38) di S7-PLCSIM.
SetState (Pagina 39) Imposta la posizione attuale dell'interruttore a chiave di S7-PLCSIM
(RUN, RUN-P o STOP).
StartPLCSim (Pagina 40) Avvia S7-PLCSIM con il file di simulazione PLC specificato
(salvato durante un precedente richiamo di SavePLC).
StartPLCSimExt Avvia un'istanza di S7-PLCSIM con il file di simulazione PLC
(Pagina 41) specificato (salvato durante un precedente richiamo).
WriteDataBlockValue Scrive un particolare bit, byte, parola o doppia parola nell'area di
(Pagina 42) memoria dei DB di S7-PLCSIM.
WriteFlagValue (Pagina 44) Scrive un particolare bit, byte, parola o doppia parola nell'area di
memoria dei merker (M) di S7-PLCSIM.
WriteInputImage Scrive gli elementi nell'area di periferia degli ingressi (area di memoria
(Pagina 46) PI) di S7-PLCSIM iniziando dallo StartIndex dei dati puntati da pData.
WriteInputPoint (Pagina 47) Scrive un particolare bit (Boolean), byte (Byte), parola di due byte
(Integer) o parola di quattro byte (Long) dalla Data Variant nell'area di
periferia degli ingressi (area di memoria PI).

S7ProSim V5.4
12 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.1 BeginScanNotify

3.1 BeginScanNotify
STDMETHOD(CS7ProSim::BeginScanNotify)()

Descrizione
Registra S7ProSim per le chiamate di ritorno dal controllore. Quando si verificano questi
eventi vengono trasmessi gli eventi ScanFinished e PLCSIMStateChanged.

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo in Visual Basic


Function BeginScanNotify() As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 13
Metodi
3.2 Connect

3.2 Connect
STDMETHOD(Connect)()

Descrizione
Collega S7ProSim con la prima istanza di S7-PLCSIM, che ha il numero di istanza "1".

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM
PS_E_PLCISCONNECTED 0x8004020E : S7-PLCSIM è collegato
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo in Visual Basic


Function Connect() As Long

S7ProSim V5.4
14 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.3 ConnectExt

3.3 ConnectExt
STDMETHOD (ConnectExt)(/*[in]*/ long InstanceNumber)

Descrizione
Collega S7ProSim all'istanza S7-PLCSIM con il numero InstanceNumber.

Parametri
InstanceNumber [in]: Numero dell'istanza con il quale debba essere collegato S7ProSim

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM
PS_E_PLCISCONNECTED 0x8004020E : S7-PLCSIM è collegato
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo in Visual Basic


Function ConnectExt() As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 15
Metodi
3.4 Continue

3.4 Continue
STDMETHOD(CS7ProSim::Continue)()

Descrizione
Prosegue una simulazione che era stata messa in pausa.

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub Continue()

S7ProSim V5.4
16 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.5 Disconnect

3.5 Disconnect
STDMETHOD(CS7ProSim::Disconnect)()

Descrizione
Interrompe il collegamento tra S7ProSim e S7-PLCSIM.

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo in Visual Basic


Function Disconnect() As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 17
Metodi
3.6 EndScanNotify

3.6 EndScanNotify
STDMETHOD(CS7ProSim::EndScanNotify)()

Descrizione
Annulla la registrazione di S7ProSim per le chiamate di ritorno dal controllore.
Gli eventi ScanFinished e PLCSIMStateChanged non vengono più trasmessi.

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
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 le chiamate di ritorno
da S7-PLCSIM

Utilizzo in Visual Basic


Function EndScanNotify() As Long

S7ProSim V5.4
18 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.7 ExecuteNmsScan

3.7 ExecuteNmsScan
STDMETHOD(CS7ProSim::ExecuteNmsScan)( long MsNumber)

Descrizione
Forza S7-PLCSIM a eseguire i cicli di scansione per un determinato intervallo di tempo
(Nms) senza attendere la fine del ciclo attuale. Se è attiva l'opzione di notifica della
scansione, verrà comunicato al programma quando S7-PLCSIM ha concluso i cicli. Per poter
utilizzare questo metodo S7-PLCSIM deve essere in modalità di scansione a ciclo singolo.

Parametri

Parametri Dichiarazione Descrizione


MsNumber Input Durata (in millisecondi) di esecuzione dei cicli di scansione.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_NOTSINGLESCAN 0x8004020A : in S7-PLCSIM non è impostata la modalità di
scansione a ciclo singolo
PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Function ExecuteNmsScan(MsNumber As Long) As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 19
Metodi
3.8 ExecuteNScans

3.8 ExecuteNScans
STDMETHOD(CS7ProSim::ExecuteNScans)( long NScanNumber)

Descrizione
Forza S7-PLCSIM a eseguire un determinato numero di cicli di scansione senza attendere la
fine del ciclo attuale. Se è attiva l'opzione di notifica della scansione, verrà comunicato al
programma quando S7-PLCSIM ha concluso i cicli. Per poter utilizzare questo metodo
S7-PLCSIM deve essere in modalità di scansione a ciclo singolo.

Parametri

Parametri Dichiarazione Descrizione


NScanNumber Input Numero di cicli di scansione da eseguire

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_NOTSINGLESCAN 0x8004020A : in S7-PLCSIM non è impostata la modalità di scansione
a ciclo singolo
PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Function ExecuteNScans(NScanNumber As Long) As Long

S7ProSim V5.4
20 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.9 ExecuteSingleScan

3.9 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 in modalità di scansione a ciclo singolo.

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione
PS_E_NOTSINGLESCAN 0x8004020A : in S7-PLCSIM non è impostata la modalità di
scansione a ciclo singolo
PS_E_MODENOTPOSSIBLE 0x8004020C : S7-PLCSIM non è riuscito a impostare il modo di
funzionamento specificato

Utilizzo in Visual Basic


Function ExecuteSingleScan() As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 21
Metodi
3.10 GetPauseState

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

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

Parametri

Parametri Dichiarazione Descrizione


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

Avvertenze
Con il richiamo da Visual Basic e C# lo stato di pausa viene emesso nel valore di ritorno
della funzione e il parametro pVal non è presente.
Con il richiamo da C++ lo stato viene emesso nel valore al quale punta pVal.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Function GetPauseState() As PauseStateConstants

S7ProSim V5.4
22 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.11 GetScanMode

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

Descrizione
Segnala il modo di funzionamento di S7-PLCSIM.

Parametri

Parametri Dichiarazione Descrizione


pVal Output Puntatore al modo di funzionamento emesso. Il modo di
funzionamento emesso è una delle "ScanModeConstants"

Avvertenze
Con il richiamo da Visual Basic e C# il modo di funzionamento viene emesso nel valore di
ritorno della funzione e il parametro pVal non è presente.
Con il richiamo da C++ lo stato viene emesso nel valore al quale punta pVal.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Function GetScanMode() As ScanModeConstants

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 23
Metodi
3.12 GetStartUpSwitch

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

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

Parametri

Parametri Dichiarazione Descrizione


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

Avvertenze
Con il richiamo da Visual Basic e C# la posizione dell'interruttore viene emessa nel valore di
ritorno della funzione e il parametro pPos non è presente.
Con il richiamo da C++ lo stato viene emesso nel valore al quale punta pPos.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Function GetStartUpSwitch() As RestartSwitchPosition

S7ProSim V5.4
24 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.13 GetState

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

Descrizione
Restituisce una stringa con la posizione attuale dell'interruttore a chiave di
S7-PLCSIM (RUN, RUN-P o STOP).

Parametri

Parametri Dichiarazione Descrizione


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

Avvertenze
Con il richiamo da Visual Basic e C# lo stato viene emesso nel valore di ritorno della
funzione e il parametro pVal non è presente.
Con il richiamo da C++ lo stato viene emesso nel valore al quale punta pVal.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
E_INVALID_STATE 0x00008002 : stato non valido
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Function GetState() As String

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 25
Metodi
3.14 HotStartWithSavedValues

3.14 HotStartWithSavedValues
STDMETHOD(CS7ProSim::HotStartWithSavedValues)( BOOL val)

Descrizione
Imposta un valore booleano per indicare se S7-PLCSIM dovrà caricare i valori I/O della
periferia salvati all'avvio nello stato HotStart.
Per fare in modo che S7-PLCSIM carichi gli I/O della periferia all'avvio, occorre richiamare
HotStartWithSavedValues con il 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.

Parametri

Parametri Dichiarazione Descrizione


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

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub HotStartWithSavedValues(val As Long)

S7ProSim V5.4
26 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.15 Pause

3.15 Pause
STDMETHOD(CS7ProSim::Pause)()

Descrizione
Mette in pausa una simulazione.

Parametri
Nessuno

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub Pause()

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 27
Metodi
3.16 ReadDataBlockValue

3.16 ReadDataBlockValue
STDMETHOD(CS7ProSim::ReadDataBlockValue)(
long BlockNumber,
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'area di memoria di un blocco dati.

Parametri

Parametri Dichiarazione Descrizione


BlockNumber Input Numero del blocco dati da leggere. I valori validi per BlockNumber
dipendono dalla CPU.
ByteIndex Input Posizione del byte iniziale nel blocco dati da leggere.
I valori validi per ByteIndex dipendono dalla CPU.
BitIndex Input In caso di lettura di un valore booleano (bit), posizione del bit
iniziale nel blocco dati da leggere. Per BitIndex sono
validi i valori da 0 a 7.
DataType Input Tipo di dati da leggere. DataType deve essere una delle
"PointDataTypeConstants".
pData Input, Output Puntatore ai dati letti. I valori validi per Data dipendono dal tipo di
dati. Questa area di memoria deve essere assegnata e resa
disponibile nell'applicazione.

Avvertenza
Se DataType è un S7_Bit, ByteIndex e BitIndex devono essere impostati entrambi su indici
validi. Se riesce, il metodo restituisce il bit indicato in pData e il relativo tipo di dati
Variant è booleano.
Se DataType è un 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 tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

S7ProSim V5.4
28 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.16 ReadDataBlockValue

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
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 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_READFAILED 0x80040203 : lettura non riuscita

Utilizzo in Visual Basic


Sub ReadDataBlockValue(BlockNum As Long, ByteIndex As Long, BitIndex As Long,
DataType As PointDataTypeConstants, pData)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 29
Metodi
3.17 ReadFlagValue

3.17 ReadFlagValue
STDMETHOD(CS7ProSim::ReadFlagValue)( 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'area di memoria dei merker.

Parametri

Parametri Dichiarazione Descrizione


ByteIndex Input Rappresenta la posizione del byte iniziale da leggere nella memoria
dei merker. I valori validi per ByteIndex dipendono dalla CPU.
BitIndex Input In caso di lettura di un valore booleano (bit) rappresenta la
posizione del bit iniziale da leggere nell'area di memoria dei
merker. Per BitIndex sono validi i valori da 0 a 7.
DataType Input Rappresenta il tipo di dati da leggere. DataType deve essere una
delle "PointDataTypeConstants".
pData Input, Output Puntatore ai dati letti. I valori validi per Data dipendono dal tipo di
dati. Questa area di memoria deve essere assegnata e resa
disponibile nell'applicazione.

Avvertenza
Se DataType è un S7_Bit, ByteIndex e BitIndex devono essere impostati entrambi su indici
validi. Se riesce, il metodo restituisce il bit indicato in pData e il relativo tipo di dati Variant è
booleano.
Se DataType è un 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 tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

S7ProSim V5.4
30 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.17 ReadFlagValue

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
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 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_READFAILED 0x80040203 : lettura non riuscita

Utilizzo in Visual Basic


Sub ReadFlagValue(ByteIndex As Long, BitIndex As Long, DataType As
PointDataTypeConstants, pData)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 31
Metodi
3.18 ReadOutputImage

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

Descrizione
Legge gli elementi dell'area di periferia delle uscite (area di memoria PQ) di S7-PLCSIM.

Parametri

Parametri Dichiarazione Descrizione


StartIndex Input Rappresenta la posizione del byte iniziale da leggere nell'area di
periferia delle uscite. I valori consentiti per StartIndex dipendono
dalla CPU.
ElementsToRead Input Rappresenta il numero di byte, parole o doppie parole da
leggere dall'immagine. I valori consentiti per ElementsToRead
dipendono dalla CPU.
DataType Input Rappresenta il tipo di dati da leggere. DataType deve essere
una delle ImageDataTypeConstants.
pData Input, Output Puntatore ai dati letti. I valori validi per Data dipendono dal tipo di
dati. Questa area di memoria deve essere assegnata e resa
disponibile nell'applicazione.

Avvertenza
Se DataType è un S7_Bit, ByteIndex e BitIndex devono essere impostati entrambi
su indici validi. Se riesce, il metodo restituisce il bit indicato in pData e il relativo tipo di dati
Variant è booleano.
Se DataType è un 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 tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

S7ProSim V5.4
32 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.18 ReadOutputImage

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_BADBYTENDX 0x80040201 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_READFAILED 0x80040203 : lettura non riuscita
PS_E_BADTYPE 0x80040206 : tipo di dati non valido
PS_E_NOTALLREADSWORKED 0x8004020F : non tutte le operazioni di lettura sono riuscite
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo in Visual Basic


Sub ReadOutputImage(StartIndex As Long, ElementsToRead As Long, DataType As
ImageDataTypeConstants, pData) As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 33
Metodi
3.19 ReadOutputPoint

3.19 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'area di periferia delle uscite (area di memoria PQ).

Parametri

Parametri Dichiarazione Descrizione


ByteIndex Input Rappresenta la posizione del byte iniziale da leggere nell'area di
periferia. I valori validi per ByteIndex dipendono dalla CPU.
BitIndex Input Rappresenta la posizione del bit (in byte) da leggere nell'area di
periferia. Sono validi i valori da 0 a 7.
DataType Input Una delle PointDataTypeConstants
pData Input, Output Puntatore ai dati da leggere. I valori validi per Data dipendono
dal tipo di dati.

Avvertenze
Se DataType è un S7_Bit, ByteIndex e BitIndex devono essere impostati entrambi
su indici validi. Se riesce, il metodo restituisce il bit indicato in pData e il relativo tipo di dati
Variant è booleano.
Se DataType è un 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 tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

S7ProSim V5.4
34 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.19 ReadOutputPoint

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_BADBYTENDX 0x80040201 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_READFAILED 0x80040203 : lettura non riuscita
PS_E_BADBITNDX 0x80040205 : l'indice del byte 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 in Visual Basic


Sub ReadOutputPoint(ByteIndex As Long, BitIndex As Long, DataType As
PointDataTypeConstants, pData) As Long

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 35
Metodi
3.20 SavePLC

3.20 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'interruttore a chiave indicata nella sottofinestra "CPU", tipo di scansione
(Continuo o Ciclo singolo), stato degli I/O, valori dei temporizzatori, indirizzi
simbolici e alimentazione (on/off).

Parametri

Parametri Dichiarazione Descrizione


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

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
STG_E_CANTSAVE 0x80030103 : impossibile salvare
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub SavePLC(FileName As String)

S7ProSim V5.4
36 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.21 SetScanMode

3.21 SetScanMode
STDMETHOD(CS7ProSim::SetScanMode)( ScanModeConstants newVal)

Descrizione
Imposta il modo di funzionamento di S7-PLCSIM.

Parametri

Parametri Dichiarazione Descrizione


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

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub SetScanMode(newVal As ScanModeConstants)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 37
Metodi
3.22 SetStartUpSwitch

3.22 SetStartUpSwitch
STDMETHOD(CS7ProSim::SetStartUpSwitch)( RestartSwitchPosition
postion)

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

Parametri

Parametri Dichiarazione Descrizione


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

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub SetStartUpSwitch(postion As RestartSwitchPosition)

S7ProSim V5.4
38 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.23 SetState

3.23 SetState
STDMETHOD(CS7ProSim::SetState)( BSTR newVal)

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

Parametri

Parametri Dichiarazione Descrizione


newVal Input Valore da impostare per la posizione attuale dell'interruttore a
chiave in S7-PLCSIM, i valori validi sono RUN, RUN_P,
STOP e MRES

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
E_INVALID_STATE 0x00008002 : stato non valido
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

Utilizzo in Visual Basic


Sub SetState(newVal As String)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 39
Metodi
3.24 StartPLCSim

3.24 StartPLCSim
STDMETHOD(CS7ProSim::StartPLCSim)( BSTR plcFile)

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

Parametri

Parametri Dichiarazione Descrizione


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

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato

Utilizzo in Visual Basic


Sub StartPLCSim(plcFile As String)

S7ProSim V5.4
40 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.25 StartPLCSimExt

3.25 StartPLCSimExt
STDMETHOD(StartPLCSimExt)(/*[in]*/ BSTR plcFile)

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

Parametri

Parametri Dichiarazione Descrizione


plcFile [in] Input Nome del file per l'avvio di S7-PLCSIM.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_MAXINSTANCE 0x80040214 : Numero massimo di istanze
S7 PLCSIM aperte raggiunto

Utilizzo in Visual Basic


Sub StartPLCSimExt(plcFile As String)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 41
Metodi
3.26 WriteDataBlockValue

3.26 WriteDataBlockValue
STDMETHOD(CS7ProSim::WriteDataBlockValue)(
long BlockNumber,
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) nell'area di memoria di un blocco dati.

Parametri

Parametri Dichiarazione Descrizione


BlockNumber Input Rappresenta il numero del blocco dati da scrivere.
I valori validi per BlockNumber dipendono dalla CPU.
ByteIndex Input Rappresenta la posizione del byte iniziale da scrivere nel blocco
dati. I valori validi per ByteIndex dipendono dalla CPU.
BitIndex Input In caso di scrittura di un valore booleano (bit) rappresenta la
posizione del bit iniziale da scrivere nel blocco dati. Per BitIndex
sono validi i valori da 0 a 7.
pData Input Puntatore ai dati da scrivere. I valori validi per Data dipendono
dal tipo di dati. Questa area di memoria deve essere assegnata
e resa disponibile nell'applicazione.

Avvertenze
Se DataType è un S7_Bit, ByteIndex e BitIndex devono essere impostati entrambi su indici
validi. Se riesce, il metodo scrive il bit indicato (pData) nel blocco dati con il numero
BlockNumber.
Se DataType è un S7_Byte, S7_Word o S7_DoubleWord, ByteIndex deve essere impostato
su un indice valido (BitIndex viene ignorato). Se riesce, il metodo scrive il valore da pData.
Il tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

S7ProSim V5.4
42 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.26 WriteDataBlockValue

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
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 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_WRITEFAILED 0x80040204 : scrittura non riuscita

Utilizzo in Visual Basic


Sub WriteDataBlockValue(BlockNum As Long, ByteIndex As Long, BitIndex As Long, pData)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 43
Metodi
3.27 WriteFlagValue

3.27 WriteFlagValue
STDMETHOD(CS7ProSim::WriteFlagValue)( 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) nell'area di memoria dei merker.

Parametri

Parametri Dichiarazione Descrizione


ByteIndex Input Rappresenta la posizione del byte iniziale da scrivere nell'area di
memoria dei merker. I valori validi per ByteIndex dipendono
dalla CPU.
BitIndex Input In caso di scrittura di un valore booleano (bit) rappresenta la
posizione del bit iniziale da scrivere nell'area di memoria dei
merker. Per BitIndex sono validi i valori da 0 a 7.
pData Input Puntatore ai dati da scrivere. I valori validi per Data dipendono
dal tipo di dati. Questa area di memoria deve essere assegnata
e resa disponibile nell'applicazione.

Avvertenze
Se DataType è un S7_Bit, ByteIndex e BitIndex devono essere impostati entrambi su indici
validi. Se riesce, il metodo scrive il bit indicato (pData) nel blocco dati con il numero
BlockNumber.
Se DataType è un S7_Byte, S7_Word o S7_DoubleWord, ByteIndex deve essere impostato
su un indice valido (BitIndex viene ignorato). Se riesce, il metodo scrive il valore da pData.
Il tipo di dati Variant è Byte, Integer o Long in funzione del parametro DataType.

S7ProSim V5.4
44 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.27 WriteFlagValue

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
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 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_WRITEFAILED 0x80040204 : scrittura non riuscita

Utilizzo in Visual Basic


Sub WriteFlagValue(ByteIndex As Long, BitIndex As Long, pData)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 45
Metodi
3.28 WriteInputImage

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

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

Parametri
Parametri Dichiarazione Descrizione
StartIndex Input Rappresenta la posizione del byte iniziale da scrivere nell'area
di periferia degli ingressi. I valori consentiti per StartIndex
dipendono dalla CPU.
pData Input Puntatore ai dati che deve scrivere S7-PLCSIM. I valori validi per
i dati variano in funzione della CPU. Questa area di memoria
deve essere assegnata e resa disponibile nell'applicazione.

Avvertenze
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 Byte scrive byte, un array di tipo Integer
scrive parole e un array di tipo Long scrive doppie parole. I dati scritti sono "grezzi" e non
vengono analizzati o convertiti in alcun modo dal metodo. Il numero di elementi scritti
dipende dalla dimensione dell'array al quale punta Data.

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno
Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_BADBYTENDX 0x80040201 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è
valida per l'indice del byte iniziale specificato
PS_E_WRITEFAILED 0x80040204 : scrittura non riuscita
PS_E_BADTYPE 0x80040206 : tipo di dati non valido
PS_E_NOTALLWRITESWORKED 0x80040210 : non tutte le operazioni di scrittura
sono riuscite
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a
S7-PLCSIM
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento

Utilizzo in Visual Basic


Sub WriteInputImage(StartIndex As Long, Data) As Long

S7ProSim V5.4
46 Manuale d'uso, 07/2011, A5E00992433-02
Metodi
3.29 WriteInputPoint

3.29 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'area di periferia degli ingressi
(area di memoria PI).

Parametri

Parametri Dichiarazione Descrizione


ByteIndex Input Rappresenta la posizione del byte iniziale da scrivere nell'area
di periferia degli ingressi. I valori validi per ByteIndex dipendono
dalla CPU.
BitIndex Input Rappresenta la posizione del bit (in byte) da scrivere nell'area di
periferia. Sono validi i valori da 0 a 7.
pData Input Puntatore ai dati da scrivere. I valori validi per Data dipendono
dal tipo di dati.

Avvertenze
Se si indica "Boolean" come tipo di dati, ByteIndex e BitIndex devono essere impostati
entrambi su indici validi. Se riesce, il metodo scrive il bit indicato in pData.
Se si indica Byte, Integer o Long come tipo di dati, si deve impostare ByteIndex su un indice
valido (BitIndex viene ignorato). Se riesce, il metodo scrive gli elementi indicati in pData.

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 47
Metodi
3.29 WriteInputPoint

Trattamento degli errori


Gli errori vengono segnalati nell'evento ConnectionError e non dal richiamo della funzione.

Valore di ritorno

Valore Significato
S_OK 0x00000000 : codice di scansione riuscita
E_FAIL 0x80004005 : errore non specificato
PS_E_BADBYTENDX 0x80040201 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è valida per
l'indice del byte iniziale specificato
PS_E_WRITEFAILED 0x80040204 : scrittura non riuscita
PS_E_BADBITNDX 0x80040205 : l'indice del byte 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 in Visual Basic


Sub WriteInputPoint(ByteIndex As Long, BitIndex As Long, Data) As Long

S7ProSim V5.4
48 Manuale d'uso, 07/2011, A5E00992433-02
Eventi 4
Panoramica

Evento Significato
ConnectionError (Pagina 49) Viene generato se non è possibile stabilire il collegamento con il
motore di controllo ("S7-PLCSIM") o se si verifica un errore al
richiamo di un metodo S7ProSim.
PauseStateChanged Viene generato se viene rilevato un passaggio dello stato da
(Pagina 50) Interrompi a Continua. NewState è una stringa che costituisce una
delle PauseStateConstants.
PLCSimStateChanged Viene generato se viene rilevato un nuovo stato dell'interruttore del
(Pagina 50) PLC. NewState è il nuovo stato di funzionamento: "RUN", "RUN_P"
o "STOP".
ScanFinished (Pagina 50) Viene generato al termine di un singolo ciclo di scansione. ScanInfo
fornisce informazioni indicizzate sulla scansione.
ScanModeChanged Viene generato se viene rilevato un cambiamento del modo di
(Pagina 51) funzionamento. NewState è una stringa che costituisce una delle
ScanModeConstants.

4.1 ConnectionError
HRESULT ConnectionError(BSTR ControlEngine, long Error)

Descrizione
Viene generato se non è possibile stabilire il collegamento al sistema di destinazione
simulato in S7-PLCSIM o se si verifica un errore al richiamo di un metodo S7ProSim.

Utilizzo in Visual Basic


Event ConnectionError(ControlEngine As String, Error As Long)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 49
Eventi
4.2 PauseStateChanged

4.2 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 in Visual Basic


Event PauseStateChanged(NewState As String)

4.3 PLCSimStateChanged
HRESULT PLCSimStateChanged(BSTR NewState)

Descrizione
Viene generato se viene rilevato un nuovo stato dell'interruttore del PLC.
NewState è il nuovo stato di funzionamento: "RUN", "RUN_P" o "STOP".

Utilizzo in Visual Basic


Event PLCSimStateChanged(NewState As String)

4.4 ScanFinished
HRESULT ScanFinished(VARIANT ScanInfo)

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

Utilizzo in Visual Basic


Event ScanFinished(ScanInfo)

S7ProSim V5.4
50 Manuale d'uso, 07/2011, A5E00992433-02
Eventi
4.5 ScanModeChanged

4.5 ScanModeChanged
HRESULT ScanModeChanged(BSTR NewState)

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

Utilizzo in Visual Basic


Event ScanModeChanged(NewState As String)

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 51
Eventi
4.5 ScanModeChanged

S7ProSim V5.4
52 Manuale d'uso, 07/2011, A5E00992433-02
Definizione dei tipi 5
5.1 Definizione dei tipi

Panoramica delle definizioni dei tipi

Tipo Descrizione
CPURunMode (Pagina 53) Costanti per lo stato di scansione in modo RUN della CPU.
ImageDataTypeConstants Costanti del metodo ReadOutputImage.
(Pagina 54)
PauseStateConstants (Pagina 54) Costanti dello stato di pausa.
PointDataTypeConstants Costanti del metodo ReadOutputPoint.
(Pagina 55)
RestartSwitchPosition (Pagina 55) Costanti della posizione dell'interruttore di avvio
sul pannello frontale.
ScanModeConstants (Pagina 56) Costanti del modo di funzionamento.
tagPauseState (Pagina 56) Costanti dello stato di pausa.
Costanti ScanInfo (Pagina 57) Costanti per le informazioni sul ciclo di scansione

5.2 CPURunMode
enum CPURunMode { CONTINUOUS_SCAN, SINGLE_SCAN, SINGLE_STEP }

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

Elementi
CONTINUOUS_SCAN
SINGLE_SCAN
SINGLE_STEP

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 53
Definizione dei tipi
5.3 ImageDataTypeConstants

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

Descrizione
Costanti del metodo ReadOutputImage.

Elementi
S7Byte
S7DoubleWord
S7Word

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

Descrizione
Costanti dello stato di pausa.

Elementi
DISABLED
Paused
Running

S7ProSim V5.4
54 Manuale d'uso, 07/2011, A5E00992433-02
Definizione dei tipi
5.5 PointDataTypeConstants

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

Descrizione
Costanti del metodo ReadOutputPoint.

Elementi
S7_Bit
S7_Byte
S7_DoubleWord
S7_Word

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

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

Elementi
ColdStartPosizione di riavvio OB102
HotStartPosizione di riavvio OB101
WarmStartPosizione di riavvio OB100

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 55
Definizione dei tipi
5.7 ScanModeConstants

5.7 ScanModeConstants
enum {
SingleScan = 0,
ContinuousScan = 1
}

Descrizione
Costanti del modo di funzionamento.

Elementi
ContinuousScan
SingleScan

5.8 tagPauseState
enum tagPauseState { ENABLED_RUNNING, ENABLED_PAUSED, DISABLED }

Descrizione
Costanti dello stato di pausa.

Elementi
DISABLED
ENABLED_PAUSED
ENABLED_RUNNING

S7ProSim V5.4
56 Manuale d'uso, 07/2011, A5E00992433-02
Definizione dei tipi
5.5 Costanti ScanInfo

5.5 Costanti ScanInfo

ScanInfo
Il tipo di dati Variant ScanInfo rappresenta una array del tipo Long. Ogni tipo di dati Long
nell'array definisce alcune informazioni sul ciclo di scansione in base alla definizione
delle costanti ScanInfo.

Tabella 5- 1 Costanti ScanInfo

Componente Significato Definizione


NUM_OF_SCANINFO_ELEMENTS Numero di elementi nell'array 5
ScanInfo emesso.
EXECUTION_TIME_NDX Indice 0: tempo di esecuzione in ms 0
MIN_CYCLE_TIME_NDX Indice 1: tempo di esecuzione 1
minimo in ms
LARGEST_CYCLE_TIME_NDX Indice 2: tempo di esecuzione max. in ms 2
AVERAGE_CYCLE_TIME_NDX Indice 3: tempo di ciclo medio in ms 3
IS_PLC_RUNNING_NDX Indice 4: merker: 1 = PLC in funzione; 0 = 4
PLC non in funzione

5.6 Codici di ritorno degli errori

Panoramica dei codici di ritorno degli errori

Codice di ritorno degli errori Significato


PS_E_BADBITNDX 0x80040205 : l'indice del byte non è valido
PS_E_BADBYTECOUNT 0x80040202 : la dimensione dell'array di dati non è
valida per l'indice del byte iniziale specificato
PS_E_BADBYTENDX 0x80040201 : l'indice del byte non è valido
PS_E_BADTYPE 0x80040206 : tipo di dati non valido
PS_E_INVALIDCALLBACK 0x80040207 : chiamata di ritorno non valida
PS_E_INVALIDDISPATCH 0x80040208 : distribuzione non valida
PS_E_INVALIDINPUT 0x80040213 : ingresso non valido
PS_E_INVALIDSCANTYPE 0x8004020B : tipo di scansione non valido,
deve essere una delle ScanModeConstants.
PS_E_MAXINSTANCE 0x80040214 : Numero massimo di istanze S7-PLCSIM
aperte raggiunto
PS_E_MODENOTPOSSIBLE 0x8004020C : S7-PLCSIM non è riuscito a impostare il modo
di funzionamento specificato
PS_E_NOTALLREADSWORKED 0x8004020F : non tutte le operazioni di lettura sono riuscite
PS_E_NOTALLWRITESWORKED 0x80040210 : non tutte le operazioni di scrittura sono riuscite
PS_E_NOTCONNECTED 0x80040211 : S7ProSim non è collegato a S7-PLCSIM

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 57
Definizione dei tipi
5.6 Codici di ritorno degli errori

Codice di ritorno degli errori Significato


PS_E_NOTIFICATION_EXIST 0x8004020D : S7ProSim è già registrato per la notifica
PS_E_NOTREGISTERED 0x80040209 : S7ProSim non è registrato per le
chiamate di ritorno da S7-PLCSIM
PS_E_NOTSINGLESCAN 0x8004020A : in S7-PLCSIM non è impostata la modalità di
scansione a ciclo singolo
PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM non è in esecuzione
PS_E_POWEROFF 0x80040212 : S7-PLCSIM è spento
PS_E_READFAILED 0x80040203 : lettura non riuscita
PS_E_WRITEFAILED 0x80040204 : scrittura non riuscita
E_FAIL 0x80004005 : errore non specificato
E_INVALID_STATE 0x00008002 : stato non valido
S_OK 0x00000000 : codice di scansione riuscita
STG_E_CANTSAVE 0x80030103 : impossibile salvare

S7ProSim V5.4
58 Manuale d'uso, 07/2011, A5E00992433-02
Indice analitico

E
A Elaborazione ciclica del programma
AVERAGE_CYCLE_TIME_NDX, 57 ExecuteNmsScan, 19
ExecuteNScans, 20
ExecuteSingleScan, 21
C GetScanMode, 23
ScanModeConstants, 56
Caricamento degli I/O della periferia al SetScanMode, 37
riavviamento, 26 Eventi
Caricamento dei file *.PLC salvati, 40, 41 ConnectionError, 49
Codici di ritorno degli errori, 57 PauseStateChanged, 50
ColdStart, 55 PLCSimStateChanged, 50
Impostazione, 38 ScanFinished, 50
Costanti, 53 ScanModeChanged, 51
CPURunMode, 53 Evento ConnectionError, 49
ImageDataTypeConstants, 54 Evento PauseStateChanged, 50
PauseStateConstants, 54 Evento PLCSimStateChanged, 50
PointDataTypeConstants, 55 Evento ScanFinished, 50
RestartSwitchPosition, 55 Evento ScanModeChanged, 51
ScanModeConstants, 56 EXECUTION_TIME_NDX, 57
tagPauseState, 56
Costanti definite, 53
CPURunMode, 53 H
ImageDataTypeConstants, 54
PauseStateConstants, 54 Handler di evento, 8
PointDataTypeConstants, 55 HotStart, 55
RestartSwitchPosition, 55 Impostazione, 26, 38
ScanModeConstants, 56
tagPauseState, 56
Costanti ScanInfo, 57 I
CPURunMode, 53 ImageDataTypeConstants, 54
Introduzione, 7
IS_PLC_RUNNING_NDX, 57
D
Definizione dei tipi, 53
CPURunMode, 53 L
ImageDataTypeConstants, 54 LARGEST_CYCLE_TIME_NDX, 57
PauseStateConstants, 54 Lettura
PointDataTypeConstants, 55 Immagine delle uscite, 32
RestartSwitchPosition, 55 Uscita, 34
ScanModeConstants, 56 Valore dei merker (M), 30
tagPauseState, 56 Valori dei blocchi dati (DB)T, 28

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 59
Indice analitico

M
Metodo GetPauseState, 22
Merker
Metodo GetScanMode, 23
Lettura, 30
Metodo GetStartUpSwitch, 24
Scrittura, 44
Metodo GetState, 25
Methode ConnectExt, 15
Metodo HotStartWithSavedValues, 26
Metodi
Metodo Pause, 27
BeginScanNotify, 13
Metodo ReadDataBlockValue, 28
Connect, 14
Metodo ReadFlagValue, 30
ConnectExt, 15
Metodo ReadOutputImageT, 32
Continue, 16
Metodo ReadOutputPoint, 34
Disconnect, 17
Metodo SavePLC, 36
EndScanNotify, 18
Metodo SetScanMode, 37
ExecuteNmsScan, 19
Metodo SetStartUpSwitch, 38
ExecuteNScans, 20
Metodo SetState, 39
ExecuteSingleScan, 21
Metodo StartPLCSim, 40
GetPauseState, 22
Metodo StartPLCSimExt, 41
GetScanMode, 23
Metodo WriteDataBlockValue, 42
GetStartUpSwitch, 24
Metodo WriteFlagValue, 44
GetState, 25
Metodo WriteInputImage, 46
HotStartWithSavedValues, 26
Metodo WriteInputPoint, 47
Pause, 27
MIN_CYCLE_TIME_NDX, 57
ReadDataBlockValue, 28
Modo di funzionamento
ReadFlagValue, 30
Impostazione, 37
ReadOutputImage, 32
Rilevamento, 23
ReadOutputPoint, 34
SavePLC, 36
SetScanMode, 37
N
SetStartUpSwitch, 38
SetState, 39 Notifica della scansione, 13, 18
StartPLCSim, 40 NUM_OF_SCANINFO_ELEMENTS, 57
StartPLCSimExt, 41
WriteDataBlockValue, 42
WriteFlagValue, 44 O
WriteInputImage, 46
Oggetto COM S7ProSim Siemens, inserimento nel
WriteInputPoint, 47
progetto, 7
Metodi di esecuzione del ciclo di scansione
ExecuteNmsScan, 19
ExecuteNScans, 20
P
ExecuteSingleScan, 21
Metodi S7ProSim Pro Panoramica, 7
ReadDataBlockValue, 28 PauseStateConstants, 54
ReadFlagValue, 30 PLCSIM, avvio, 40, 41
WriteDataBlockValue, 42 PointDataTypeConstants, 55
WriteFlagValue, 44 Posizione dell'interruttore a chiave
Metodo BeginScanNotify, 13 Impostazione, 39
Metodo Connect, 14 Rilevamento, 25
Metodo Continue, 16 Posizione dell'interruttore di avvio, 55
Metodo Disconnect, 17 Impostazione, 38
Metodo EndScanNotify, 18 Rilevamento, 24
Metodo ExecuteNmsScan, 19 Programmazione di un'interfaccia S7ProSim verso S7-
Metodo ExecuteNScans, 20 PLCSIM, 8
Metodo ExecuteSingleScan, 21

S7ProSim V5.4
60 Manuale d'uso, 07/2011, A5E00992433-02
Indice analitico

R V
RestartSwitchPosition, 55 Valore dei merker
Riferimenti, 7 Lettura, 30
Riferimenti per il progetto, 7 Scrittura, 44
Riferimento all'oggetto COM S7ProSim Valori dei blocchi dati (DB)
Microsoft Visual Basic, 7 Lettura, 28
Microsoft Visual C#, 7 Scrittura, 42
Microsoft Visual Studio C++, 7 Valori di ritorno, 57

S W
S7-PLCSIM, avvio, 26, 40, 41 WarmStart, 55
S7ProSim Impostazione, 38
Inserimento nel progetto VB, 7
Interfaccia verso S7-PLCSIM, programmazione, 8
Panoramica, 7
Salvataggio di file *.PLC, 36
ScanModeConstants, 56
Scrittura
Immagine degli ingressi, 46
Ingresso, 47
Valore dei merker (M), 44
Valori dei blocchi dati (DB), 42
Stato di pausa
Impostazione, 16, 27
Rilevamento, 22

T
tagPauseState, 56
Tipi enum, 53
CPURunMode, 53
ImageDataTypeConstants, 54
PauseStateConstants, 54
PointDataTypeConstants, 55
RestartSwitchPosition, 55
ScanModeConstants, 56
tagPauseState, 56
Tipo di scansione a ciclo continuo
GetScanMode, 23
ScanModeConstants, 56
SetScanMode, 37

S7ProSim V5.4
Manuale d'uso, 07/2011, A5E00992433-02 61
Indice analitico

S7ProSim V5.4
62 Manuale d'uso, 07/2011, A5E00992433-02