Professional Documents
Culture Documents
S7ProSim V5.4
Oggetto COM
Manuale utente
Edizione: 01/2007
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.
Marchi registrati
Siemens AG
Automation and Drives
Postfach 4848, D-90327 Nuernberg
Siemens AG 2007
Dati tecnici soggetti a modifiche senza preavviso.
Prefazione
S7ProSim consente di accedere in modo programmatico all'interfaccia di simulazione PLC di S7PLCSIM. 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.
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.
Europa e Africa
Tel.: +86 10 64 75 75 75
Fax: +86 10 64 74 74 74
simatic.hotline@siemens.com
adsupport@siemens.com
adsupport.asia@siemens.com
S7ProSim V5.4
A5E00992433-01
iii
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
S7ProSim V5.4
A5E00992433-01
vi
S7ProSim V5.4
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.
S7ProSim V5.4
A5E00992433-01
Introduzione a S7ProSim
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
S7ProSim V5.4
A5E00992433-01
Introduzione a S7ProSim
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
A5E00992433-01
Metodi
Connect
Continue
Disconnect
BeginScanNotify
GetPauseState
GetScanMode
GetStartUpSwitch
EndScanNotify
ExecuteNmsScan
ExecuteNScans
ExecuteSingleScan
GetState
HotStartWithSavedValues
Pause
ReadDataBlockValue
ReadFlagValue
ReadOutputImage
ReadOutputPoint
S7ProSim V5.4
A5E00992433-01
11
Metodi
SavePLC
SetScanMode
SetStartUpSwitch
SetState
StartPLCSim
WriteDataBlockValue
WriteFlagValue
WriteInputImage
WriteInputPoint
12
S7ProSim V5.4
A5E00992433-01
Metodi
BeginScanNotify
STDMETHOD(CS7ProSim::BeginScanNotify)()
Descrizione
Registra S7ProSim per i richiami (callback) provenienti dal controllo. Quando si verificano questi eventi
vengono trasmessi gli eventi ScanFinished e PLCSIMStateChanged.
Parametri
Nessuno
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
S7ProSim V5.4
A5E00992433-01
13
Metodi
Connect
STDMETHOD(CS7ProSim::Connect)()
Descrizione
Collega S7ProSim a S7-PLCSIM.
Parametri
Nessuno
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
14
S7ProSim V5.4
A5E00992433-01
Metodi
Continue
STDMETHOD(CS7ProSim::Continue)()
Descrizione
Prosegue una simulazione che era stata messa in pausa.
Parametri
Nessuno
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
15
Metodi
Disconnect
STDMETHOD(CS7ProSim::Disconnect)()
Descrizione
Scollega S7ProSim da S7-PLCSIM.
Parametri
Nessuno
Valore restituito
Valore
S_OK
E_FAIL
PS_E_POWEROFF
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040212 : S7-PLCSIM spento
16
S7ProSim V5.4
A5E00992433-01
Metodi
EndScanNotify
STDMETHOD(CS7ProSim::EndScanNotify)()
Descrizione
Annulla la registrazione di S7ProSim per i richiami (callback) provenienti dal controllore. Gli eventi
ScanFinished e PLCSIMStateChanged non vengono trasmessi.
Parametri
Nessuno
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
0x80040209 : S7ProSim non registrato per i richiami (callback)
PS_E_NOTREGISTERED
provenienti da S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
17
Metodi
ExecuteNmsScan
STDMETHOD(CS7ProSim::ExecuteNmsScan)( long MsNumber)
Descrizione
Forza S7-PLCSIM ad eseguire i cicli di scansione per un dato tempo (Nms) senza attendere che
termini l'esecuzione del ciclo attuale. Se attiva l'opzione di notifica della scansione, verr comunicato
al programma quando S7-PLCSIM ha concluso il ciclo. Per poter utilizzare questo metodo S7-PLCSIM
deve essere modalit Ciclo singolo.
Parametri
MsNumber Tempo (in millisecondi) per cui dovranno essere eseguiti i cicli di scansione.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTSINGLESCAN
PS_E_PLCNOTRUNNING
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x8004020A : S7-PLCSIM non in modo Ciclo singolo
0x8004020E : S7-PLCSIM non in esecuzione
0x80040211 : S7ProSim non collegato a S7-PLCSIM
18
S7ProSim V5.4
A5E00992433-01
Metodi
ExecuteNScans
STDMETHOD(CS7ProSim::ExecuteNScans)( long NScanNumber)
Descrizione
Forza S7-PLCSIM ad eseguire il numero indicato di cicli di scansione senza attendere che termini
l'esecuzione del ciclo attuale. Se attiva l'opzione di notifica della scansione, verr comunicato al
programma quando S7-PLCSIM ha concluso il ciclo. Per poter utilizzare questo metodo S7-PLCSIM
deve essere modalit Ciclo singolo.
Parametri
NScanNumber Numero di cicli di scansione da eseguire
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTSINGLESCAN
PS_E_PLCNOTRUNNING
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x8004020A : S7-PLCSIM non in modo Ciclo singolo
0x8004020E : S7-PLCSIM non in esecuzione
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
19
Metodi
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 S7PLCSIM ha concluso il ciclo. Per poter utilizzare questo metodo S7-PLCSIM deve essere modalit
Ciclo singolo.
Parametri
Nessuno
Valore restituito
Valore
S_OK
E_FAIL
PS_E_PLCNOTRUNNING
PS_E_NOTSINGLESCAN
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x8004020E : S7-PLCSIM non in esecuzione
0x8004020A : S7-PLCSIM non in modo Ciclo singolo
0x8004020C : S7-PLCSIM non riuscito a impostare il modo di
PS_E_MODENOTPOSSIBLE
scansione specificato
20
S7ProSim V5.4
A5E00992433-01
Metodi
GetPauseState
STDMETHOD(CS7ProSim::GetPauseState)( PauseStateConstants *pVal)
Descrizione
Restituisce lo stato di pausa attuale di S7-PLCSIM.
Parametri
pVal
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.
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
21
Metodi
GetScanMode
STDMETHOD(CS7ProSim::GetScanMode)( ScanModeConstants *pVal)
Descrizione
Restituisce il modo di scansione di S7-PLCSIM.
Parametri
pVal
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.
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
22
S7ProSim V5.4
A5E00992433-01
Metodi
GetStartUpSwitch
STDMETHOD(CS7ProSim::GetStartUpSwitch)( RestartSwitchPosition *pPos)
Descrizione
Rileva il tipo di avvio impostato (riavviamento, nuovo riavviamento o riavviamento a freddo) per S7PLCSIM.
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.
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
23
Metodi
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.
Valore restituito
Valore
S_OK
E_FAIL
E_INVALID_STATE
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x00008002 : Stato non valido
0x80040211 : S7ProSim non collegato a S7-PLCSIM
24
S7ProSim V5.4
A5E00992433-01
Metodi
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, S7PLCSIM 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.
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
25
Metodi
Pause
STDMETHOD(CS7ProSim::Pause)()
Descrizione
Mette in pausa una simulazione.
Parametri
Nessuno
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
26
S7ProSim V5.4
A5E00992433-01
Metodi
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
pData
Puntatore allo spazio per il valore restituito. Questa area di memoria deve essere
assegnata e resa disponibile nell'applicazione.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
PS_E_BADTYPE
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
0x80040206 : Tipo di dati non valido
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte
PS_E_BADBYTECOUNT
iniziale specificato
PS_E_READFAILED
0x80040203 : Operazione di lettura non riuscita
S7ProSim V5.4
A5E00992433-01
27
Metodi
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
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
pData
Puntatore allo spazio per il valore restituito. Questa area di memoria deve essere
assegnata e resa disponibile nell'applicazione.
Valore di ritorno
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
PS_E_BADTYPE
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
0x80040206 : Tipo di dati non valido
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte
PS_E_BADBYTECOUNT
iniziale specificato
PS_E_READFAILED
0x80040203 : Operazione di lettura non riuscita
28
S7ProSim V5.4
A5E00992433-01
Metodi
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
ElementsToRead
DataType
pData
Puntatore allo spazio degli elementi restituiti. I valori consentiti per i dati
dipendono da ElementsToRead. Questa area di memoria deve essere
assegnata e resa disponibile nell'applicazione.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice
PS_E_BADBYTECOUNT
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
S7ProSim V5.4
A5E00992433-01
29
Metodi
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
pData
Puntatore ai dati da leggere. I valori consentiti per Data dipendono dal tipo di dati.
Note
Se il parametro DataType S7_Bit, ByteIndex e BitIndex devono essere impostati su indici validi. Se
riesce, il metodo restituisce il bit indicato in pData e il relativo tipo di dati Variant booleano.
Se il parametro DataType impostato su S7_Byte, S7_Word o S7_DoubleWord, ByteIndex deve
essere impostato su un indice valido (BitIndex viene ignorato). Se riesce, il metodo restituisce il valore
in pData. Il suo tipo di dati Variant Byte, Integer o Long in funzione del parametro DataType.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte
PS_E_BADBYTECOUNT
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
30
S7ProSim V5.4
A5E00992433-01
Metodi
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
Valore restituito
Valore
S_OK
STG_E_CANTSAVE
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80030103 : Impossibile salvare
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
31
Metodi
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
Valore restituito
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
32
S7ProSim V5.4
A5E00992433-01
Metodi
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.
Valore di ritorno
Valore
S_OK
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80040211 : S7ProSim non collegato a S7-PLCSIM
S7ProSim V5.4
A5E00992433-01
33
Metodi
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
Valore restituito
Valore
S_OK
E_FAIL
E_INVALID_STATE
PS_E_NOTCONNECTED
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x00008002 : Stato non valido
0x80040211 : S7ProSim non collegato a S7-PLCSIM
34
S7ProSim V5.4
A5E00992433-01
Metodi
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.
Valore restituito
Valore
S_OK
E_FAIL
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
S7ProSim V5.4
A5E00992433-01
35
Metodi
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
ByteIndex
Rappresenta la posizione del byte iniziale nel blocco dati da scrivere. I valori
ammessi per ByteIndex dipendono dalla CPU.
BitIndex
pData
Puntatore allo spazio di memoria che contiene i dati da scrivere. Questa area di
memoria deve essere assegnata e resa disponibile nell'applicazione.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
PS_E_BADTYPE
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
0x80040206 : Tipo di dati non valido
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte
PS_E_BADBYTECOUNT
iniziale specificato
PS_E_WRITEFAILED
0x80040204 : Operazione di scrittura non riuscita
36
S7ProSim V5.4
A5E00992433-01
Metodi
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
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.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_NOTCONNECTED
PS_E_POWEROFF
PS_E_BADTYPE
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040211 : S7ProSim non collegato a S7-PLCSIM
0x80040212 : S7-PLCSIM spento
0x80040206 : Tipo di dati non valido
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte
PS_E_BADBYTECOUNT
iniziale specificato
PS_E_WRITEFAILED
0x80040204 : Operazione di scrittura non riuscita
S7ProSim V5.4
A5E00992433-01
37
Metodi
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
Note
Il tipo di elementi da scrivere determinato dal tipo di elementi di Data. Tutti gli elementi devono avere
lo stesso tipo di dati. Un array di tipo Bytes scrive byte, un array di tipo Integer scrive parole, un array di
tipo Long scrive doppie parole. I valori scritti sono grezzi e non vengono interpretati o convertiti in
alcun modo dal metodo. Il numero di elementi scritti dipende dalla dimensione dell'array puntato da
Data.
Valori restituiti
Valore
S_OK
E_FAIL
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice
PS_E_BADBYTECOUNT
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
38
S7ProSim V5.4
A5E00992433-01
Metodi
WriteInputPoint
STDMETHOD(CS7ProSim::WriteInputPoint)( long ByteIndex,
long BitIndex,
const VARIANT* pData)
Descrizione
Scrive un particolare bit (Boolean), byte (Byte), parola di due byte (Integer) o parola di quattro byte
(Long) dalla Data Variant nell'immagine di ingresso della periferia (area di memoria PI).
Parametri
ByteIndex
Rappresenta la posizione del byte iniziale nel buffer dell'immagine di ingresso della
periferia da scrivere. I valori ammessi per ByteIndex dipendono dalla CPU.
BitIndex
Rappresenta la posizione del bit (nei byte) nel buffer dell'immagine della periferia da
scrivere. Sono ammessi i valori da 0 a 7.
pData
Puntatore ai dati da scrivere. I valori consentiti per Data dipendono dal tipo di dati.
Note
Se si indica come tipo di dati Booleano, ByteIndex e BitIndex devono essere impostati su indici validi.
Se riesce, il metodo scrive il bit indicato in pData.
Se si indica come tipo di dati Byte, Integer o Long, si deve impostare ByteIndex su un indice valido
(BitIndex is ignored). Se riesce, il metodo scrive gli elementi indicati in pData.
Valore restituito
Valore
S_OK
E_FAIL
PS_E_BADBYTENDX
Significato
0x00000000 : Codice di metodo riuscito
0x80004005 : Errore non specificato
0x80040201 : Indice del byte non valido
0x80040202 : Dimensione dell'array di dati non valida per l'indice del byte
PS_E_BADBYTECOUNT
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
S7ProSim V5.4
A5E00992433-01
39
Eventi
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.
Viene generato se viene rilevato un passaggio dello stato da
PauseStateChanged
Interrompi a Continua. NewState una stringa che costituisce una
delle PauseStateConstants.
Viene generato se viene rilevato un nuovo stato dell'interruttore del
PLCSimStateChanged PLC. NewState corrisponde al nuovo stato operativo: "RUN",
"RUN_P" o "STOP".
Viene generato al termine di un singolo ciclo di scansione. ScanInfo
ScanFinished
fornisce informazioni indicizzate sulla scansione.
Viene generato se viene rilevato un cambiamento del modo di
ScanModeChanged
scansione. NewState una stringa che costituisce una delle
ScanStateConstants.
ConnectionError
S7ProSim V5.4
A5E00992433-01
41
Eventi
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.
42
S7ProSim V5.4
A5E00992433-01
Eventi
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.
S7ProSim V5.4
A5E00992433-01
43
Eventi
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".
44
S7ProSim V5.4
A5E00992433-01
Eventi
ScanFinished
HRESULT ScanFinished(VARIANT ScanInfo)
Descrizione
Viene generato al termine di un singolo ciclo di scansione. ScanInfo fornisce informazioni indicizzate
sulla scansione.
S7ProSim V5.4
A5E00992433-01
45
Eventi
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.
46
S7ProSim V5.4
A5E00992433-01
RestartSwitchPosition
ScanModeConstants
tagPauseState
ScanInfo Constants
S7ProSim V5.4
A5E00992433-01
47
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
48
S7ProSim V5.4
A5E00992433-01
ImageDataTypeConstants
enum {
S7Byte = 2,
S7Word = 3,
S7DoubleWord = 4
}
Descrizione
Costanti del metodo ReadOutputImage.
Membri
S7Byte
S7DoubleWord
S7Word
S7ProSim V5.4
A5E00992433-01
49
PauseStateConstants
enum {
Running = 0,
Paused = 1,
Disabled = 2
}
Descrizione
Costanti dello stato di pausa.
Membri
Disabled
Paused
Running
50
S7ProSim V5.4
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
S7ProSim V5.4
A5E00992433-01
51
RestartSwitchPosition
enum {
WarmStart = 0,
HotStart = 1,
ColdStart = 2
}
Descrizione
Costanti della posizione dell'interruttore di avvio sul pannello frontale.
Membri
ColdStart
HotStart
52
S7ProSim V5.4
A5E00992433-01
ScanModeConstants
enum {
SingleScan = 0,
ContinuousScan = 1
}
Descrizione
Costanti del modo di scansione.
Membri
ContinuousScan
SingleScan
S7ProSim V5.4
A5E00992433-01
53
tagPauseState
enum tagPauseState { ENABLED_RUNNING, ENABLED_PAUSED,
DISABLED }
Descrizione
Costanti dello stato di pausa.
Membri
DISABLED
ENABLED_PAUSED
ENABLED_RUNNING
54
S7ProSim V5.4
A5E00992433-01
ScanInfo Constants
Costanti ScanInfo
ScanInfo
NUM_OF_SCANINFO_ELEMENTS Numero di elementi nell'array di ritorno ScanInfo.
EXECUTION_TIME_NDX
MIN_CYCLE_TIME_NDX
LARGEST_CYCLE_TIME_NDX
AVERAGE_CYCLE_TIME_NDX
IS_PLC_RUNNING_NDX
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.
S7ProSim V5.4
A5E00992433-01
55
NUM_OF_SCANINFO_ELEMENTS
#define NUM_OF_SCANINFO_ELEMENTS
Descrizione
Numero di elementi nell'array di ritorno ScanInfo.
EXECUTION_TIME_NDX
#define EXECUTION_TIME_NDX
Descrizione
Indice 0: tempo di esecuzione in ms
MIN_CYCLE_TIME_NDX
#define MIN_CYCLE_TIME_NDX
Descrizione
Indice 1: valore del tempo di esecuzione pi basso in ms
56
S7ProSim V5.4
A5E00992433-01
LARGEST_CYCLE_TIME_NDX
#define LARGEST_CYCLE_TIME_NDX
Descrizione
Indice 2: tempo di esecuzione massimo espresso in ms
AVERAGE_CYCLE_TIME_NDX
#define AVERAGE_CYCLE_TIME_NDX
Descrizione
indice 3: tempo di ciclo medio in ms
IS_PLC_RUNNING_NDX
#define IS_PLC_RUNNING_NDX
Descrizione
Indice 4: merker: 1=PLC in funzione; 0=PLC non in funzione
S7ProSim V5.4
A5E00992433-01
57
PS_E_BADBYTECOUNT
PS_E_BADBYTENDX
PS_E_BADTYPE
PS_E_INVALIDCALLBACK
PS_E_INVALIDDISPATCH
PS_E_INVALIDINPUT
PS_E_MODENOTPOSSIBLE
PS_E_NOTALLREADSWORKED
PS_E_INVALIDSCANTYPE
PS_E_NOTIFICATION_EXIST
PS_E_NOTREGISTERED
PS_E_NOTSINGLESCAN
PS_E_PLCNOTRUNNING
PS_E_POWEROFF
PS_E_READFAILED
PS_E_WRITEFAILED
E_FAIL
E_INVALID_STATE
S_OK
STG_E_CANTSAVE
S7ProSim V5.4
A5E00992433-01
59
Indice analitico
A
AVERAGE_CYCLE_TIME_NDX, 57
B
BeginScanNotify, 13
C
Caricamento degli I/O della periferia al
riavviamento, 25
ScanModeConstants, 53
tagPauseState, 54
Disconnect, 16
E
EndScanNotify, 17
Esecuzione in modo Ciclo continuo
GetScanMode, 22
ScanModeConstants, 53
SetScanMode, 32
ColdStart, 52
impostazione, 33
Connect, 14
ExecuteNScans, 19
ConnectionError, 42
ExecuteSingleScan, 20
Continue, 15
GetScanMode, 22
Costanti, 47
ScanModeConstants, 53
CPURunMode, 48
ImageDataTypeConstants, 49
SetScanMode, 32
Eventi, 41
PauseStateConstants, 50
ConnectionError, 42
PointDataTypeConstants, 51
PauseStateChanged, 43
RestartSwitchPosition, 52
PLCSimStateChanged, 44
ScanModeConstants, 53
ScanFinished, 45
tagPauseState, 54
ScanModeChanged, 46
Costanti definite, 47
ExecuteNmsScan, 18
CPURunMode, 48
ExecuteNScans, 19
ImageDataTypeConstants, 49
ExecuteSingleScan, 20
PauseStateConstants, 50
EXECUTION_TIME_NDX, 56
PointDataTypeConstants, 51
RestartSwitchPosition, 52
GetPauseState, 21
ScanModeConstants, 53
GetScanMode, 22
tagPauseState, 54
GetStartUpSwitch, 23
Costanti ScanInfo, 55
CPURunMode, 48
D
Definizione dei tipi, 47
CPURunMode, 48
ImageDataTypeConstants, 49
PauseStateConstants, 50
PointDataTypeConstants, 51
GetState, 24
H
Handler di evento, 8
HotStart, 52
impostazione, 33
HotStartWithSavedValues, 25
I
ImageDataTypeConstants, 49
RestartSwitchPosition, 52
S7ProSim V5.4
A5E00992433-01
61
WriteInputPoint, 39
Metodi di esecuzione del ciclo di scansione
ExecuteNmsScan, 18
LARGEST_CYCLE_TIME_NDX, 57
ExecuteNScans, 19
Lettura
ExecuteSingleScan, 20
uscita, 30
ReadDataBlockValue, 27
ReadFlagValue, 28
WriteDataBlockValue, 36
M
Memoria M
lettura, 28
scrittura, 37
Metodi, 11
BeginScanNotify, 13
Connect, 14
Continue, 15
Disconnect, 16
EndScanNotify, 17
ExecuteNmsScan, 18
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
ExecuteNScans, 19
Pause, 26
ExecuteSingleScan, 20
PauseStateChanged, 43
GetPauseState, 21
PauseStateConstants, 50
GetScanMode, 22
PLCSIM, avvio, 35
GetStartUpSwitch, 23
PLCSimStateChanged, 44
GetState, 24
PointDataTypeConstants, 51
HotStartWithSavedValues, 25
Pause, 26
impostazione, 34
ReadDataBlockValue, 27
rilevamento, 24
ReadFlagValue, 28
ReadOutputImage, 29
impostazione, 33
ReadOutputPoint, 30
rilevamento, 23
SavePLC, 31
SetScanMode, 32
SetStartUpSwitch, 33
SetState, 34
StartPLCSim, 35
WriteDataBlockValue, 36
WriteFlagValue, 37
WriteInputImage, 38
R
ReadDataBlockValue, 27
ReadFlagValue, 28
ReadOutputImage, 29
ReadOutputPoint, 30
RestartSwitchPosition, 52
Riferimenti, 7
62
S7ProSim V5.4
A5E00992433-01
Indice analitico
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
S7ProSim V5.4
A5E00992433-01
63