simaticlegins69.free.fr/automatisme/pl7pro/prosimactive_f.pdfiii préface s7prosim fournit un accès...

54
SIMATIC S7ProSim V5.3 incluant SP1 Contrôle ActiveX Guide de l'utilisateur Edition : 01/2005 A5E00425524-01

Upload: others

Post on 26-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

SIMATIC

S7ProSim V5.3 incluant SP1

Contrôle ActiveX

Guide de l'utilisateur

Edition : 01/2005

A5E00425524-01

Page 2: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Copyright et conseils de sécurité Ce manuel donne des consignes que vous devez respecter pour votre propre sécurité ainsi que pour éviter des dommages matériels. Elles sont mises en évidence par un triangle d'avertissement et sont présentées, selon le risque encouru, de la façon suivante :

Danger signifie que la non-application des mesures de sécurité appropriées conduit à la mort ou à des lésions corporelles graves.

Attention signifie que la non-application des mesures de sécurité appropriées peut conduire à la mort ou à des lésions corporelles graves.

Avertissement Utilisé avec le symbole de mise en garde, signifie que la non-application des mesures de sécurité appropriées peut conduire à des lésions corporelles légères.

Avertissement Utilisé sans le symbole de mise en garde, signifie que la non-application des mesures de sécurité appropriées peut conduire à un dommage matériel.

Nota Utilisé sans le symbole de mise en garde, signale une situation potentielle pouvant entraîner un résultat ou un état non désiré.

Personnel qualifié La mise en service et l'utilisation de l'appareil ou du système ne doivent être effectuées que conformément au manuel. Seules des personnes qualifiées sont autorisées à effectuer des interventions sur l'appareil. Il s'agit de personnes qui ont l'autorisation de mettre en service, de mettre à la terre et de repérer des appareils, systèmes et circuits électriques conformément aux règles de sécurité en vigueur.

Utilisation conforme aux dispositions Tenez compte des points suivants :

Attention L'appareil ne doit être utilisé que pour les applications spécifiées dans le catalogue ou dans la description technique, et exclusivement avec des périphériques et composants recommandés par Siemens.

Le transport, le stockage, le montage, la mise en service ainsi que l'utilisation et la maintenance adéquats du produit sont les conditions indispensables pour garantir son fonctionnement correct et sûr.

Marques de fabrique Siemens® et SIMATIC® sont des marques déposées par SIEMENS AG. STEP 7™ et S7™ sont des marques de SIEMENS AG. Microsoft ®, Windows ®, Windows 95 ®, Windows 98 ®, Windows NT ®, Windows ME ® et Windows 2000 ® sont des marques déposées par Microsoft Corporation. ActiveX™ est une marque de Microsoft Corporation.

Copyright Siemens Energy & Automation, Inc. 2005 Tous droits réservés Toute communication ou reproduction de ce support d'information, toute exploitation ou communication de son contenu sont interdites, sauf autorisation expresse. Tout manquement à cette règle est illicite et expose son auteur au versement de dommages et intérêts. Tous nos droits sont réservés, notamment pour le cas de la délivrance d'un brevet ou celui de l'enregistrement d'un modèle d'utilité.

Exclusion de responsabilité Nous avons vérifié la conformité du contenu du présent manuel avec le matériel et le logiciel qui y sont décrits. Or des divergences n'étant pas exclues, nous ne pouvons pas nous porter garants pour la conformité intégrale. Si l'usage de ce manuel devait révéler des erreurs, nous en tiendrons compte et apporterons les corrections nécessaires dès la prochaine édition. Veuillez nous faire part de vos suggestions.

Siemens Energy & Automation, PCbA One Internet Plaza Johnson City, TN 37602-4991, Etats-Unis d'Amérique

© Siemens Energy & Automation, Inc. 2005

Nous nous réservons le droit de modifier les caractéristiques techniques.

Page 3: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

iii

Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous pouvez écrire du logiciel pour exécuter des tâches comme changer la position du commutateur à clé de l'AP de simulation, exécuter le programme cycle par cycle, écrire ou lire les valeurs de l'automate, etc.

Groupe cible

Ce manuel est destiné aux ingénieurs, aux programmeurs et au personnel de maintenance expérimentés connaissant les automates programmables (AP) S7 et la conception de logiciels dans Visual Basic (6.0 ou .NET) ou Visual C++ (6.0 ou .NET).

Objet

Ce document décrit les caractéristiques et le fonctionnement de S7ProSim V5.3 incluant SP1.

Autres manuels

Vous trouverez des informations supplémentaires dans l'aide en ligne de STEP 7 et de S7-PLCSIM, ainsi que dans les manuels suivants :

• Manuel Programmer avec STEP 7. Ce manuel fournit des informations de base sur la conception et la programmation de programmes de commande. Servez-vous de ce manuel pour créer un programme de commande avec le logiciel d'automatisation STEP 7.

• Manuel de référence Logiciel système pour SIMATIC S7-300/400, Fonctions standard et fonctions système. Ce manuel décrit les fonctions système, les blocs d'organisation et les fonctions standard que vous utilisez lors de la conception d'un programme de commande.

• Manuel STEP 7, Getting Started. Ce manuel explique comment utiliser le logiciel d'automatisation STEP 7. Il présente les procédures utilisées pour configurer un AP et pour concevoir des programmes de commande.

• S7-PLCSIM - Tester le programme de votre CPU S7. Ce manuel explique l'interface utilisateur et le fonctionnement de S7-PLCSIM, l'application de simulation d'automates S7.

Pour trouver ces manuels ou d'autres manuels, sélectionnez la commande Démarrer > Simatic > Documentation dans le menu Démarrer de l'ordinateur où est installé STEP 7.

Aide supplémentaire

Adressez-vous à votre agence Siemens si certaines de vos questions techniques restent sans réponse, si vous désirez passer une commande ou si vous voulez connaître les offres de formation.

Amérique du Nord et du Sud Europe et Afrique Asie et région du Pacifique Téléphone : +1 (800) 333-7421 Téléphone : +49 (0) 180 5050 222 Téléphone : +86 10 64 75 75 75 Télécopie : +1 (423) 262-2200 Télécopie : +49 (0) 180 5050 223 Télécopie : +86 10 64 74 74 74 [email protected] [email protected] [email protected]

Page 4: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous
Page 5: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

v

Sommaire Présentation de S7ProSim .................................................................................. 1

Insertion du contrôle S7ProSim dans une application Visual Basic .............................. 2 Accès aux propriétés du contrôle S7ProSim dans Visual Basic.................................... 3 Programmation d'une interface vers S7-PLCSIM à l'aide de S7ProSim ....................... 4

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

Evénements ........................................................................................................ 19 ConnectionError........................................................................................................... 20 PLCSimStateChanged................................................................................................. 21 ScanFinished............................................................................................................... 22

Propriétés............................................................................................................ 23 AutoConnect ................................................................................................................ 24 ControlEngine.............................................................................................................. 25 Enabled........................................................................................................................ 26 ScanMode.................................................................................................................... 27

Définitions de types ........................................................................................... 29 ImageDataTypeConstants ........................................................................................... 30 PointDataTypeConstants............................................................................................. 31 ScanModeConstants ................................................................................................... 32

Codes d'erreur .................................................................................................... 33

Exemple de projet utilisant le contrôle ActiveX S7ProSim............................ 35 Code de l'exemple de projet ........................................................................................ 36

Page 6: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous
Page 7: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

1

Présentation de S7ProSim S7ProSim fournit un contrôle ActiveX™ qui donne accès par programme à l'interface de simulation de processus de S7-PLCSIM. Vous pouvez utiliser S7ProSim dans toute application qui peut accepter que des contrôles ActiveX soient reliés à une simulation de processus S7-PLCSIM.

Ce document en ligne décrit comment ajouter S7ProSim à une application, ainsi que les caractéristiques, interface et fonctionnements de S7ProSim, notamment les définitions objets logicielles des méthodes et des événements. L'exemple de projet montre comment utiliser les méthodes et événements S7ProSim.

La figure ci-après présente le diagramme de fonctionnement pour les diverses méthodes et les divers événements utilisés dans l'exemple de projet.

Page 8: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Présentation de S7ProSim

2

Insertion du contrôle S7ProSim dans une application Visual Basic

Vous pouvez utiliser le contrôle ActiveX S7ProSim dans de nombreux conteneurs tiers. Procédez comme suit pour ajouter le contrôle S7ProSim à un formulaire Visual Basic :

1. Sélectionnez la commande Projet -> Composantes pour afficher la boîte de dialogue des composantes.

2. Dans la liste des contrôles, sélectionnez “Contrôle S7ProSim Siemens”.

3. Cliquez sur OK. Un contrôle S7ProSim apparaît dans la boîte d'outils à gauche du formulaire Visual Basic.

4. Sélectionnez le contrôle S7ProSim dans la boîte d'outils et collez-le dans le formulaire.

Vous pouvez maintenant accéder à toutes les propriétés, toutes les méthodes et tous les événements du contrôle S7ProSim à partir de votre programme Visual Basic.

Page 9: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Présentation de S7ProSim

3

Accès aux propriétés du contrôle S7ProSim dans Visual Basic

Lorsque vous cliquez avec le bouton droit de la souris sur le contrôle S7ProSim dans le formulaire et que vous sélectionnez Propriétés dans le menu contextuel, Visual Basic affiche une boîte de dialogue Pages des propriétés :

La fenêtre des propriétés vous permet de configurer les propriétés suivantes du contrôle ActiveX S7ProSim :

• Auto Connect : La propriété AutoConnect détermine si le contrôle est connecté automatiquement à S7-PLCSIM lors de la mise en route ou lors du passage du mode de création au mode d'exécution.

• Control Engine : La propriété ControlEngine (lecture seule) définit l'adresse de l'automate Control Engine auquel le contrôle S7ProSim se connecte. Cette adresse est S7-PLCSIM.

• Enabled : La propriété Enabled détermine si le contrôle est enregistré ou non (l'événement ScanFinished et l'événement PLCSIMStateChanged sont disponibles).

• Scan Mode : La propriété ScanMode définit le mode d'exécution de S7-PLCSIM. Les modes d'exécution autorisés sont le mode "cycle unique" ou le mode "cycle continu".

Page 10: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Présentation de S7ProSim

4

Programmation d'une interface vers S7-PLCSIM à l'aide de S7ProSim

Vous devez exécuter les tâches suivantes pour faire fonctionner l'automate de simulation S7-PLCSIM de manière programmée à l'aide de S7ProSim :

• Inclure le contrôle Siemens S7ProSim dans le projet en tant que composante de projet.

• Gestionnaires d'événements de programme pour les événements S7ProSim (facultatif). Vous pouvez insérer, à l'intérieur de chaque gestionnaire d'événement, du code personnalisé pour votre application.

Exemple : Visual Basic 6.0

Private Sub S7ProSim1_ScanFinished(ByVal ScanInfo As Variant)

...

End Sub

Private Sub S7ProSim1_PLCSimStateChanged(ByVal NewState As String)

...

End Sub

Private Sub S7ProSim1_ConnectionError(ByVal ControlEngine As String, ByVal error As Long)

MsgBox "Erreur de connexion"

End Sub

• Ajoutez des boutons de commande, des boîtes de texte et d'autres objets à votre application selon vos besoins pour accéder aux diverses méthodes S7ProSim. Programmez le code pour chaque gestionnaire de bouton de commande pour l'appel de méthodes S7ProSim et définissez les valeurs correspondantes pour les boîtes de texte en fonction de votre application.

Page 11: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

5

Méthodes

AboutBox Affiche la boîte de dialogue AboutBox.

BeginScanNotify

Enregistre S7ProSim pour des rappels de l'automate Control Engine. L'événement ScanFinished et l'événement PLCSimStateChanged seront envoyés lorsqu'ils se produisent.

Connect Connecte S7ProSim à S7-PLCSIM.

Disconnect Déconnecte S7ProSim de S7-PLCSIM.

EndScanNotify Annule l'enregistrement de S7ProSim pour des rappels de l'automate Control Engine. Les événements ScanFinished etPLCSimStateChanged ne seront pas envoyés.

ExecuteNmsScan Force S7-PLCSIM à exécuter des cycles pendant une durée indiquée (Nms) et n'attend pas que l'exécution du cycle en cours soit achevée. Si la notification de cycle est activée, le programme sera averti lorsque S7-PLCSIM aura terminé les cycles.

ExecuteNScans Force S7-PLCSIM à exécuter un nombre défini de cycles sans attendre que l'exécution du cycle en cours s'achève. Si la notification de cycle est activée, le programme sera averti lorsque S7-PLCSIM aura terminé les cycles.

ExecuteSingleScan Force S7-PLCSIM à exécuter un cycle sans attendre que l'exécution du cycle en cours s'achève. Si la notification de cycle est activée, le programme sera averti lorsque S7-PLCSIM aura terminé le cycle.

ReadOutputImage Lit des éléments dans la périphérie de sortie (zone de mémoire PA) de S7-PLCSIM.

ReadOutputPoint Lit un bit (Boolean), un octet (Byte), un mot (Integer) ou un double mot (Long) spécifique de la périphérie de sortie (zone PA).

WriteInputImage Ecrit des éléments dans la périphérie d'entrée (zone PE) de S7-PLCSIM, en commençant à la position StartIndex des données désignées par pData.

WriteInputPoint Ecrit un bit (Boolean), un octet (Byte), un mot (Integer) ou un double mot (Long) spécifique du paramètre Data (de type Variant) dans la périphérie d'entrée (zone PE).

Page 12: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

6

AboutBox

void AboutBox()

Utilisation Visual Basic

Page 13: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

7

BeginScanNotify

STDMETHOD(CS7ProSim::BeginScanNotify)()

Description Enregistre S7ProSim pour des rappels de l'automate Control Engine. L'événement ScanFinished et l'événement PLCSimStateChanged seront envoyés lorsqu'ils se produisent.

Paramètres Néant

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 14: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

8

Connect

STDMETHOD(CS7ProSim::Connect)()

Description Connecte S7ProSim à S7-PLCSIM.

Paramètres Néant

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 15: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

9

Disconnect

STDMETHOD(CS7ProSim::Disconnect)()

Description Déconnecte S7ProSim de S7-PLCSIM.

Paramètres Néant

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 16: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

10

EndScanNotify

STDMETHOD(CS7ProSim::EndScanNotify)()

Description Annule l'enregistrement de S7ProSim pour des rappels de l'automate Control Engine. Les événements ScanFinished et PLCSimStateChanged ne seront pas envoyés.

Paramètres Néant

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

PS_E_NOTREGISTERED 0x80040209 : S7ProSim n'est pas enregistré pour des rappels de S7-PLCSIM.

Utilisation Visual Basic

Page 17: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

11

ExecuteNmsScan

STDMETHOD(CS7ProSim::ExecuteNmsScan)( long MsNumber)

Description Force S7-PLCSIM à exécuter des cycles pendant une durée indiquée (Nms) et n'attend pas que l'exécution du cycle en cours soit achevée. Si la notification de cycle est activée, le programme sera averti lorsque S7-PLCSIM aura terminé les cycles. S7-PLCSIM doit être en mode Cycle unique pour que vous puissiez utiliser cette méthode.

Paramètres

MsNumber Durée (en millisecondes) pendant laquelle les cycles doivent être exécutés.

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM n'est pas en mode d'exécution "cycle unique".PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM n'est pas en cours d'exécution. PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM.

Utilisation Visual Basic

Page 18: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

12

ExecuteNScans

STDMETHOD(CS7ProSim::ExecuteNScans)( long NScanNumber)

Description Force S7-PLCSIM à exécuter un nombre défini de cycles sans attendre que l'exécution du cycle en cours s'achève. Si la notification de cycle est activée, le programme sera averti lorsque S7-PLCSIM aura terminé les cycles. S7-PLCSIM doit être en mode Cycle unique pour que vous puissiez utiliser cette méthode.

Paramètres

NScanNumber Nombre de cycles à exécuter

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM n'est pas en mode d'exécution "cycle unique".PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM n'est pas en cours d'exécution. PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM.

Utilisation Visual Basic

Page 19: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

13

ExecuteSingleScan

STDMETHOD(CS7ProSim::ExecuteSingleScan)()

Description Force S7-PLCSIM à exécuter un cycle sans attendre que l'exécution du cycle en cours s'achève. Si la notification de cycle est activée, le programme sera averti lorsque S7-PLCSIM aura terminé le cycle. S7-PLCSIM doit être en mode Cycle unique pour que vous puissiez utiliser cette méthode.

Paramètres Néant

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM n'est pas en cours d'exécution.

PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM n'est pas en mode d'exécution "cycle unique".

PS_E_MODENOTPOSSIBLE 0x8004020C : S7-PLCSIM n'a pas pu établir le mode d'exécution de cycle indiqué.

Utilisation Visual Basic

Page 20: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

14

ReadOutputImage

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

Description Lit des éléments dans la périphérie de sortie (zone de mémoire PA) de S7-PLCSIM.

Paramètres

StartIndex Représente la position d'octet de début à lire dans la périphérie de sortie. Les valeurs correctes pour StartIndex dépendent de la CPU.

ElementsToRead Représente le nombre d'octets, de mots ou de doubles mots à lire dans la périphérie de sortie. Les valeurs correctes pour ElementsToRead dépendent de la CPU.

DataType Représente le type de données à lire. La valeur DataType doit avoir l'une des valeurs ImageDataTypeConstants.

pData Pointeur désignant l'emplacement pour les éléments renvoyés. Les valeurs correctes pour data dépendent de ElementsToRead. Vous devez affecter et libérer cette zone de mémoire dans votre application.

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_BADBYTENDX 0x80040201 : Indice d'octet incorrect

PS_E_BADBYTECOUNT 0x80040202 : La taille du tableau de données est incorrecte pour l'indice d'octet de début indiqué.

PS_E_READFAILED 0x80040203 : Echec de l'opération de lecture PS_E_BADTYPE 0x80040206 : Type de données incorrect PS_E_NOTALLREADSWORKED 0x8004020F : Toutes les opérations de lecture n'ont pas abouti. PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 21: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

15

ReadOutputPoint

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

Description Lit un bit (Boolean), un octet (Byte), un mot (Integer) ou un double mot (Long) spécifique de la périphérie de sortie (zone PA).

Paramètres

ByteIndex Représente la position d'octet de début à lire dans la périphérie. Les valeurs correctes pour ByteIndex dépendent de la CPU.

BitIndex Représente la position de bit (en octets) à lire dans la périphérie. Les valeurs autorisées sont comprises entre 0 et 7.

DataType L'une des constantes PointDataTypeConstants

pData Pointeur désignant les données à lire. Les valeurs correctes pour Data dépendent du type de données.

Remarques Si le paramètre DataType est S7_Bit, alors ByteIndex et BitIndex doivent tous deux être définis à des indices corrects. En cas de succès, la méthode renvoie le bit donné dans pData et son type de données Variant est BOOL.

Si le paramètre DataType est S7_Byte, S7_Word ou S7_DoubleWord, alors ByteIndex doit être défini à un indice correct (BitIndex n'est pas pris en compte). En cas de succès, la méthode renvoie la valeur dans pData. Le type de données Variant est Byte, Integer ou Long, selon le paramètre DataType.

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_BADBYTENDX 0x80040201 : Indice d'octet incorrect

PS_E_BADBYTECOUNT 0x80040202 : La taille du tableau de données est incorrecte pour l'indice d'octet de début indiqué.

PS_E_READFAILED 0x80040203 : Echec de l'opération de lecture PS_E_BADBITNDX 0x80040205 : Indice de bit incorrect PS_E_BADTYPE 0x80040206 : Type de données incorrect PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 22: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

16

WriteInputImage

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

Description Ecrit des éléments dans la périphérie d'entrée (zone de mémoire PE) de S7-PLCSIM, en commençant à la position StartIndex des données désignées par pData.

Paramètres

StartIndex Représente la position d'octet de début à écrire dans la périphérie d'entrée. Les valeurs correctes pour StartIndex dépendent de la CPU.

pData Pointeur désignant les données à écrire pour S7-PLCSIM. Les valeurs correctes pour les données dépendent de la CPU. Vous devez affecter et libérer cette zone de mémoire dans votre application.

Remarques Le type des éléments à écrire est déterminé par le type des éléments de pData. Tous les éléments doivent avoir le même type de données. Un tableau "Array of Byte" écrit des octets, un tableau "Array of Integer" écrit des mots et un tableau "Array of Long" écrit des doubles mots. Les valeurs écrites sont des valeurs brutes que la méthode n'interprète ni ne convertit en aucune façon. Le nombre d'éléments écrits est déterminé par la taille du tableau désigné par pData.

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_BADBYTENDX 0x80040201 : Indice d'octet incorrect

PS_E_BADBYTECOUNT 0x80040202 : La taille du tableau de données est incorrecte pour l'indice d'octet de début indiqué.

PS_E_WRITEFAILED 0x80040204 : Echec de l'opération d'écriture PS_E_BADTYPE 0x80040206 : Type de données incorrect PS_E_NOTALLWRITESWORKED 0x80040210 : Toutes les opérations d'écriture n'ont pas abouti. PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 23: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Méthodes

17

WriteInputPoint

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

Description Ecrit un bit (Boolean), un octet (Byte), un mot (Integer) ou un double mot (Long) spécifique du paramètre Data (de type Variant) dans la périphérie d'entrée (zone PE).

Paramètres

ByteIndex Représente la position d'octet de début à écrire dans la périphérie d'entrée. Les valeurs correctes pour ByteIndex dépendent de la CPU.

BitIndex Représente la position de bit (en octets) à écrire dans la périphérie. Les valeurs autorisées sont comprises entre 0 et 7.

pData Pointeur désignant les données à écrire. Les valeurs correctes pour Data dépendent du type de données.

Remarques Si Boolean est indiqué comme type de données, alors ByteIndex et BitIndex doivent tous deux être définis à des indices corrects. En cas de succès, la méthode écrit le bit donné à la position pData.

Si Byte, Integer ou Long sont indiqués comme type de données, alors ByteIndex doit être défini à un indice correct (BitIndex n'est pas pris en compte). En cas de succès, la méthode écrit les éléments dans pData.

Codes retour Valeur Signification S_OK 0x00000000 : Réussite E_FAIL 0x80004005 : Erreur non précisée PS_E_BADBYTENDX 0x80040201 : Indice d'octet incorrect

PS_E_BADBYTECOUNT 0x80040202 : La taille du tableau de données est incorrecte pour l'indice d'octet de début indiqué.

PS_E_WRITEFAILED 0x80040204 : Echec de l'opération d'écriture PS_E_BADBITNDX 0x80040205 : Indice de bit incorrect PS_E_BADTYPE 0x80040206 : Type de données incorrect PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM. PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

Utilisation Visual Basic

Page 24: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous
Page 25: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

19

Evénements

ConnectionError Généré lorsque la connexion à l'automate Control Engine est impossible.

PLCSimStateChanged Généré lorsqu'un nouvel état du commutateur AP est détecté. ScanFinished Généré lors de l'achèvement d'un cycle unique.

Page 26: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Evénements

20

ConnectionError

HRESULT ConnectionError(BSTR ControlEngine, long Error)

Description Généré lorsque la connexion à l'automate Control Engine est impossible.

Utilisation Visual Basic

Page 27: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Evénements

21

PLCSimStateChanged

HRESULT PLCSimStateChanged(BSTR NewState)

Description Généré lorsqu'un nouvel état du commutateur AP est détecté.

Utilisation Visual Basic

Page 28: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Evénements

22

ScanFinished

HRESULT ScanFinished(VARIANT ScanInfo)

Description Généré lors de l'achèvement d'un cycle unique.

Utilisation Visual Basic

Page 29: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

23

Propriétés

AutoConnect Détermine si le contrôle est connecté automatiquement à S7-PLCSIM lors de la mise en route ou lors du passage du mode de création au mode d'exécution.

ControlEngine Définit le nom de l'automate Control Engine (lecture seule) auquel le contrôle S7ProSim se connecte. Ce nom est “S7-PLCSIM”.

Enabled Commute lorsque le contrôle est enregistré pour des rappels pour les événements ScanFinished et PLCSimStateChanged

ScanMode Définit/renvoie le mode d'exécution en cours de l'automate Control Engine

Page 30: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Propriétés

24

AutoConnect

boolean AutoConnect

Description Détermine si le contrôle est connecté automatiquement à S7-PLCSIM lors de la mise en route ou lors du passage du mode de création au mode d'exécution.

Page 31: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Propriétés

25

ControlEngine

BSTR ControlEngine

Description Définit le nom de l'automate Control Engine (lecture seule) auquel le contrôle S7ProSim se connecte. Ce nom est “S7-PLCSIM”.

Page 32: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Propriétés

26

Enabled

boolean Enabled

Description Commute lorsque le contrôle est enregistré pour des rappels pour les événements ScanFinished et PLCSimStateChanged

Page 33: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Propriétés

27

ScanMode

ScanModeConstants ScanMode

Description Définit/renvoie le mode d'exécution en cours de l'automate Control Engine en tant que SingleScanou en tant que ContinuousScan.

Page 34: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous
Page 35: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

29

Définitions de types

ImageDataTypeConstants Constantes pour la méthode ReadOutputImage

PointDataTypeConstants Constantes pour la méthode ReadOutputPoint

ScanModeConstants Constantes pour le mode d'exécution

Page 36: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Définitions de types

30

ImageDataTypeConstants

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

Description Constantes pour la méthode ReadOutputImage

Eléments S7Byte S7DoubleWord S7Word

Page 37: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Définitions de types

31

PointDataTypeConstants

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

Description Constantes pour la méthode ReadOutputPoint

Eléments S7_Bit S7_Byte S7_DoubleWord S7_Word

Page 38: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Définitions de types

32

ScanModeConstants

enum { SingleScan = 0, ContinuousScan = 1 }

Description Constantes pour le mode d'exécution

Eléments ContinuousScan SingleScan

Page 39: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

33

Codes d'erreur PS_E_BADBITNDX 0x80040205 : Indice de bit incorrect

PS_E_BADBYTECOUNT 0x80040202 : La taille du tableau de données est incorrecte pour l'indice d'octet de début indiqué.

PS_E_BADBYTENDX 0x80040201 : Indice d'octet incorrect

PS_E_BADTYPE 0x80040206 : Type de données incorrect

PS_E_INVALIDCALLBACK 0x80040207 : Rappel incorrect

PS_E_INVALIDDISPATCH 0x80040208 : Distribution incorrecte

PS_E_INVALIDINPUT 0x80040213 : Entrée incorrecte

PS_E_INVALIDSCANTYPE 0x8004020B : Mode d'exécution incorrect ; doit être l'une des constantes ScanModeConstants

PS_E_MODENOTPOSSIBLE 0x8004020C : S7-PLCSIM n'a pas pu établir le mode d'exécution de cycle indiqué.

PS_E_NOTALLREADSWORKED 0x8004020F : Toutes les opérations de lecture n'ont pas abouti.

PS_E_NOTALLWRITESWORKED0x80040210 : Toutes les opérations d'écriture n'ont pas abouti.

PS_E_NOTCONNECTED 0x80040211 : S7ProSim n'est pas connecté à S7-PLCSIM.

PS_E_NOTIFICATION_EXIST 0x8004020D : S7ProSim est déjà enregistré pour la notification

PS_E_NOTREGISTERED 0x80040209 : S7ProSim n'est pas enregistré pour des rappels de S7-PLCSIM.

PS_E_NOTSINGLESCAN 0x8004020A : S7-PLCSIM n'est pas en mode d'exécution "cycle unique".

PS_E_PLCNOTRUNNING 0x8004020E : S7-PLCSIM n'est pas en cours d'exécution.

PS_E_POWEROFF 0x80040212 : S7-PLCSIM est hors tension.

PS_E_READFAILED 0x80040203 : Echec de l'opération de lecture

PS_E_WRITEFAILED 0x80040204 : Echec de l'opération d'écriture

E_FAIL 0x80004005 : Erreur non précisée

E_INVALID_STATE 0x00008002 : Etat incorrect

S_OK 0x00000000 : Réussite

STG_E_CANTSAVE 0x80030103 : Enregistrement impossible

Page 40: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous
Page 41: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

35

Exemple de projet utilisant le contrôle ActiveX S7ProSim Cet exemple Visual Basic montre l'utilisation de l'ensemble des propriétés, méthodes et événements du contrôle ActiveX S7ProSim. Vous pouvez voir le code derrière chacun des gestionnaires de bouton de commande dans la rubrique Code de l'exemple : Projet utilisant le contrôle ActiveX S7ProSim.

Formulaire de l'exemple de projet

Page 42: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

36

Code de l'exemple de projet

Le listage de code suivant montre la mise en oeuvre de l'exemple de projet :

'======================================= 'PARTIE DE DECLARATION DU FORMULAIRE '======================================= 'Il faut dÈclarer les variables Option Explicit 'Valeurs de code d'erreur par dÈfaut de S7ProSim '--------------------------------------- Private Const S_OK = &H0 Private Const PS_E_FAIL = &H80004005 Private Const PS_E_INVBYTENDX = &H80040201 Private Const PS_E_INVBYTECOUNT = &H80040202 Private Const PS_E_READFAILED = &H80040203 Private Const PS_E_WRITEFAILED = &H80040204 Private Const PS_E_INVBITNDX = &H80040205 Private Const PS_E_INVTYPE = &H80040206 Private Const PS_E_NOTREGISTERED = &H80040209 Private Const PS_E_NOTSINGLESCAN = &H8004020A Private Const PS_E_MODENOTPOSSIBLE = &H8004020C Private Const PS_E_NOTIfICATION_EXIST = &H8004020D Private Const PS_E_PLCSIMNOTRUNNING = &H8004020E Private Const PS_S_ALLREADSNOTPOSSIBLE = &H8004020F Private Const PS_S_ALLWRITESNOTPOSSIBLE = &H80040210 Private Const PS_E_NOTCONNECTED = &H80040211 Private Const PS_E_POWEROFF = &H80040212 'Texte d'erreur par dÈfaut '--------------------------------------- Private Const MSG_OK = "&H0: La mÈthode a abouti" Private Const MSG_FAIL = "&H80004005: Erreur inconnue" Private Const MSG_INVBYTENDX = _ "&H80040201: Valeur ByteIndex hors plage" Private Const MSG_INVBYTECOUNT = _ "&H80040202: ByteIndex + taille du tableau Data hors plage ou BytesToRead hors plage" Private Const MSG_READFAILED = _ "&H80040203: S7-PLCSIM a refusÈ la demande de lecture" Private Const MSG_WRITEFAILED = _ "&H80040204: S7-PLCSIM a refusÈ la demande d'Ècriture" Private Const MSG_INVBITNDX = _ "&H80040205: Valeur BitIndex hors plage" Private Const MSG_INVTYPE = "&H80040206: Type de donnÈes incorrect" Private Const MSG_NOTREGISTERED = _ "&H80040209: L'application n'est pas enregistrÈe" Private Const MSG_NOTSINGLESCAN = _ "&H8004020A: S7-PLCSIM n'est pas en mode Cycle unique" Private Const MSG_NOTIFICATION_EXIST = _ "&H8004020D: Application dÈj‡ enregistrÈe" Private Const MSG_PLCSIMNOTRUNNING = _ "&H8004020E: S7-PLCSIM n'est pas ‡ l'Ètat Run ou Run-P" Private Const MSG_ALLREADSNOTPOSSIBLE = _ "&H8004020F: Seules les sorties configurÈes ont pu Ítre lues avec succËs" Private Const MSG_ALLWRITESNOTPOSSIBLE = _ "&H80040210: Seules les entrÈes configurÈes ont pu Ítre Ècrites avec succËs" Private Const MSG_NOTCONNECTED = _ "&H80040211: Le contrÙle S7ProSim n'est pas connectÈ ‡ S7-PLCSIM" Private Const MSG_POWEROFF = _ "&H80040212: S7-PLCSIM est hors tension" '======================================= 'CODE POUR LES BOUTONS '=======================================

Page 43: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

37

'cmdAutoConnectTrueStart '--------------------------------------- Private Sub cmdAutoConnectTrueStart_Click() S7ProSim1.AutoConnect = True End Sub 'cmdAutoConnectTrueEnd '--------------------------------------- Private Sub cmdAutoConnectTrueEnd_Click() S7ProSim1.AutoConnect = True End Sub 'cmdCalculateValuesOfProcessSimulation '--------------------------------------- Private Sub cmdCalculateValuesOfProcessSimulation_Click() '***** A FAIRE par l'utilisateur ***** '***** Dans cette fonction, vous devez mettre en oeuvre ***** '***** le code pour la simulation de processus. Prenez ***** '***** les valeurs des sorties de S7-PLCSIM et ***** '***** calculez les nouvelles valeurs pour l'entrÈe ***** '***** de S7-PLCSIM. ***** End Sub 'cmdConnect '--------------------------------------- Private Sub cmdConnect_Click() Dim errConnect As Long errConnect = S7ProSim1.Connect If errConnect = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errConnect End If End Sub 'cmdDisconnect '--------------------------------------- Private Sub cmdDisconnect_Click() Dim errDisconnect As Long errDisconnect = S7ProSim1.Disconnect If errDisconnect = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errDisconnect End If End Sub 'cmdEnableTrue '--------------------------------------- Private Sub cmdEnableTrue_Click() S7ProSim1.Enabled = True End Sub 'cmdEnableFalse '--------------------------------------- Private Sub cmdEnableFalse_Click() S7ProSim1.Enabled = False End Sub 'cmdScanModeSingle '--------------------------------------- Private Sub cmdScanModeSingle_Click() S7ProSim1.ScanMode = SingleScan End Sub 'cmdScanModeCont '--------------------------------------- Private Sub cmdScanModeCont_Click()

Page 44: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

38

S7ProSim1.ScanMode = ContinuousScan End Sub 'cmdExecuteSingleScan '--------------------------------------- Private Sub cmdExecuteSingleScan_Click() Dim errExecuteSingleScan As Long errExecuteSingleScan = S7ProSim1.ExecuteSingleScan If errExecuteSingleScan = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errExecuteSingleScan End If End Sub 'cmdReadOutputImage '--------------------------------------- Private Sub cmdReadOutputImage_Click() 'Long Dim errReadOutputImage As Long Dim lStartIndex As Long Dim lElementsToRead As Long 'ImageDataTypeConstants Dim DataType As ImageDataTypeConstants 'Variant Dim vData As Variant '***** Lire 2 octets ‡ l'adresse de dÈpart Q 8.0 ***** DataType = S7Byte 'Lire le type Octet lStartIndex = 8 'Commencer ‡ l'adresse Q 8.0 lElementsToRead = 2 'Lire 2 ÈlÈments (octets) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "La valeur de QB 8 est : " & CByte(vData(0)) & vbCrLf & _ "La valeur de QB 9 est : " & CByte(vData(1)), _ vbInformation, "Exemple S7ProSim" Else ShowError errReadOutputImage End If '***** Lire 2 mots ‡ l'adresse de dÈpart Q 10.0 ***** DataType = S7Word 'Lire le type Mot lStartIndex = 10 'Commencer ‡ l'adresse Q 10.0 lElementsToRead = 2 'Lire 2 ÈlÈments (mots) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "La valeur de QW 10 est : " & CInt(vData(0)) & vbCrLf & _ "La valeur de QW 12 est : " & CInt(vData(1)), _ vbInformation, "Exemple S7ProSim" Else ShowError errReadOutputImage End If '***** Lire 2 doubles mots ‡ l'adresse de dÈpart Q 14.0 ***** DataType = S7DoubleWord 'Lire le type Double mot lStartIndex = 14 'Commencer ‡ l'adresse Q 14.0 lElementsToRead = 2 'Lire 2 ÈlÈments (doubles mots) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "La valeur de QD 14 est : " & CLng(vData(0)) & vbCrLf & _ "La valeur de QD 18 est : " & CLng(vData(1)), _ vbInformation, "Exemple S7ProSim" Else

Page 45: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

39

ShowError errReadOutputImage End If '***** AprËs cette section, les calculs pour la simulation ***** '***** de processus peuvent Ítre effectuÈs si la ***** '***** valeur renvoyÈe est S_OK. ***** End Sub 'cmdReadOutputPoint '--------------------------------------- Private Sub cmdReadOutputPoint_Click() 'Long Dim errReadOutputPoint As Long Dim lByteIndex As Long Dim lBitIndex As Long 'PointDataTypeConstants Dim DataType As PointDataTypeConstants 'Variant Dim vData As Variant '***** Lire le bit ‡ l'adresse Q0.5 ***** lByteIndex = 0 'Commencer ‡ l'adresse 0.0 lBitIndex = 5 'Lire le bit spÈcifique 5 (de l'octet 0) DataType = S7_Bit 'Lire le type Bit errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "La valeur en cours de Q 0.5 est : " & CInt(vData), _ vbInformation, "Exemple S7ProSim" Else ShowError errReadOutputPoint End If '***** Lire l'octet ‡ l'adresse Q 1.0 ***** lByteIndex = 1 'Commencer ‡ l'adresse 1.0 DataType = S7_Byte 'Lire le type Octet errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "La valeur en cours de QB 1 est : " & CByte(vData), _ vbInformation, "Exemple S7ProSim" Else ShowError errReadOutputPoint End If '***** Lire le mot ‡ l'adresse Q 2.0 ***** lByteIndex = 2 'Commencer ‡ l'adresse 2.0 DataType = S7_Word 'Lire le type Mot errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "La valeur en cours de QW 2 est : " & CInt(vData), _ vbInformation, "Exemple S7ProSim" Else ShowError errReadOutputPoint End If '***** Lire le double mot ‡ l'adresse Q 4.0 ***** lByteIndex = 4 'Commencer ‡ l'adresse 4.0 DataType = S7_DoubleWord 'Lire le type Double mot errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "La valeur en cours de QD 4 est : " & CLng(vData), _ vbInformation, "Exemple S7ProSim" Else

Page 46: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

40

ShowError errReadOutputPoint End If '***** AprËs cette section, les calculs pour la simulation ***** '***** de processus peuvent Ítre effectuÈs si la valeur ***** '***** renvoyÈe est S_OK. ***** End Sub 'cmdWriteInputImage '--------------------------------------- Private Sub cmdWriteInputImage_Click() 'Byte Dim cByteArray(0 To 1) As Byte 'Integer Dim iWordArray(0 To 1) As Integer 'Long Dim errWriteInputImage As Long Dim lDoubleWordArray(0 To 1) As Long Dim lStartIndex As Long 'Variant Dim vData As Variant '***** Ecrire 2 octets et commencer ‡ l'adresse I 8.0 ***** cByteArray(0) = 8 'Ecrire 8 dans le premier ÈlÈment (octet) cByteArray(1) = 9 'Ecrire 9 dans le second ÈlÈment (octet) lStartIndex = 8 'Commencer ‡ l'adresse I 8.0 vData = cByteArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) '***** AprËs cette section, les calculs pour la simulation ***** '***** de processus peuvent Ítre effectuÈs si la valeur ***** '***** renvoyÈe est S_OK. ***** If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errWriteInputImage End If '***** Ecrire 2 mots et commencer ‡ l'adresse I 10.0 ***** iWordArray(0) = 10 'Ecrire 10 dans le premier ÈlÈment (mot) iWordArray(1) = 12 'Ecrire 12 dans le second ÈlÈment (mot) lStartIndex = 10 'Commencer ‡ l'adresse I 10.0 vData = iWordArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errWriteInputImage End If '***** Ecrire 2 doubles mots et commencer ‡ l'adresse I 14.0 ***** lDoubleWordArray(0) = 14 'Ecrire 14 dans le premier ÈlÈment (double mot) lDoubleWordArray(1) = 18 'Ecrire 18 dans le second ÈlÈment (double mot) lStartIndex = 14 'Commencer ‡ l'adresse I 14.0 vData = lDoubleWordArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errWriteInputImage End If End Sub

Page 47: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

41

'cmdWriteInputPoint '--------------------------------------- Private Sub cmdWriteInputPoint_Click() 'Boolean Dim bBoolIn As Boolean 'Byte Dim cByteIn As Byte 'Integer Dim iWordIn As Integer 'Long Dim errWriteInputPoint As Long Dim lBitIndex As Long Dim lByteIndex As Long Dim lDoubleWordIn As Long 'Variant Dim vData As Variant '***** Ecrire 1 bit ‡ l'adresse I 0.5 ***** bBoolIn = 1 'Ecrire la valeur 1 lByteIndex = 0 'Commencer ‡ l'adresse 0.0 lBitIndex = 5 'Ecrire le bit spÈcifique 5 (de l'octet 0) vData = bBoolIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) '***** AprËs cette section, les calculs pour la simulation ***** '***** de processus peuvent Ítre effectuÈs si la valeur ***** '***** renvoyÈe est S_OK. ***** If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errWriteInputPoint End If '***** Ecrire 1 octet ‡ l'adresse I 1.0 ***** cByteIn = 1 'Ecrire la valeur 1 lByteIndex = 1 'Commencer ‡ l'adresse 1.0 vData = cByteIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errWriteInputPoint End If '***** Ecrire 1 mot ‡ l'adresse I 2.0 ***** iWordIn = 2 'Ecrire la valeur 2 lByteIndex = 2 'Commencer ‡ l'adresse 2.0 vData = iWordIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errWriteInputPoint End If '***** Ecrire 1 double mot ‡ l'adresse I 4.0 ***** lDoubleWordIn = 4 'Ecrire la valeur 4 lByteIndex = 4 'Commencer ‡ l'adresse 4.0 vData = lDoubleWordIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else

Page 48: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

42

ShowError errWriteInputPoint End If End Sub '======================================= 'MISE EN OEUVRE DES EVENEMENTS POUR LE CONTROLE '======================================= 'ConnectionError '--------------------------------------- Private Sub S7ProSim1_ConnectionError(ByVal ControlEngine As String, _ ByVal Error As Long) Dim errMessage As String errMessage = "Impossible de se connecter ‡ " & ControlEngine & vbCrLf errMessage = errMessage & vbCrLf & _ "Lancer " & ControlEngine & vbCrLf errMessage = errMessage & "et se connecter avec la mÈthode Connect" MsgBox errMessage, vbExclamation, "Erreur de connexion" End Sub 'PLCStateChanged '--------------------------------------- Private Sub S7ProSim1_PLCSimStateChanged(ByVal NewState As String) Dim cMessage As String cMessage = "PLCSIM a changÈ l'Ètat de fonctionnement en " & NewState MsgBox cMessage, vbInformation, "Exemple S7ProSim" End Sub 'ScanFinished '--------------------------------------- Private Sub S7ProSim1_ScanFinished(ByVal ScanInfo As Variant) Dim cMessage As String Dim vArrayInfo As Variant '***** Avant cette section de code, il faut effectuer les ***** '***** calculs pour la simulation de processus. ***** vArrayInfo = ScanInfo cMessage = "Le dernier cycle a pris " & vArrayInfo(0) & vbCrLf cMessage = cMessage & _ "Temps de cycle minimum " & vArrayInfo(1) & vbCrLf cMessage = cMessage & _ "Le temps d'exÈcution le plus important fut " & vArrayInfo(2) & vbCrLf cMessage = cMessage & _ "Le cycle moyen a pris " & vArrayInfo(3) MsgBox cMessage, vbInformation, "Exemple S7ProSim" End Sub Private Sub cmdBeginScanNotify_Click() S7ProSim1.BeginScanNotify End Sub Private Sub cmdEndScanNotify_Click() S7ProSim1.EndScanNotify End Sub Private Sub cmdExecuteNmsScan_Click() Dim ReturnValue As Long ReturnValue = S7ProSim1.ExecuteNmsScan(Int(txtScanNumber.Text)) If ReturnValue <> 0 Then MsgBox "Echec !", vbOKOnly End If End Sub Private Sub cmdExecuteNScan_Click() Dim ReturnValue As Long ReturnValue = S7ProSim1.ExecuteNScans(Int(txtScanNumber.Text)) If ReturnValue <> 0 Then MsgBox "Echec !", vbOKOnly End If End Sub Private Sub Form_Unload(Cancel As Integer) Dim errDisconnect As Long errDisconnect = S7ProSim1.Disconnect If errDisconnect = S_OK Then

Page 49: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

43

MsgBox MSG_OK, vbInformation, "Exemple S7ProSim" Else ShowError errDisconnect End If End Sub '======================================= 'SOUS-PROGRAMMES PRIVES '======================================= 'ShowError '--------------------------------------- Private Sub ShowError(ErrorNumber) Select Case ErrorNumber Case PS_E_FAIL MsgBox MSG_FAIL, vbExclamation, "Exemple S7ProSim" Case PS_E_INVBYTENDX MsgBox MSG_INVBYTENDX, vbExclamation, "Exemple S7ProSim" Case PS_E_INVBYTECOUNT MsgBox MSG_INVBYTECOUNT, vbExclamation, "Exemple S7ProSim" Case PS_E_READFAILED MsgBox MSG_READFAILED, vbExclamation, "Exemple S7ProSim" Case PS_E_WRITEFAILED MsgBox MSG_WRITEFAILED, vbExclamation, "Exemple S7ProSim" Case PS_E_INVBITNDX MsgBox MSG_INVBITNDX, vbExclamation, "Exemple S7ProSim" Case PS_E_INVTYPE MsgBox MSG_INVTYPE, vbExclamation, "Exemple S7ProSim" Case PS_E_NOTREGISTERED MsgBox MSG_NOTREGISTERED, vbExclamation, "Exemple S7ProSim" Case PS_E_NOTSINGLESCAN MsgBox MSG_NOTSINGLESCAN, vbExclamation, "Exemple S7ProSim" Case PS_E_NOTIFICATION_EXIST MsgBox MSG_NOTIFICATION_EXIST, vbExclamation, _ "Exemple S7ProSim" Case PS_E_PLCSIMNOTRUNNING MsgBox MSG_PLCSIMNOTRUNNING, vbExclamation, _ "Exemple S7ProSim" Case PS_S_ALLREADSNOTPOSSIBLE MsgBox MSG_ALLREADSNOTPOSSIBLE, vbExclamation, _ "Exemple S7ProSim" Case PS_S_ALLWRITESNOTPOSSIBLE MsgBox MSG_ALLWRITESNOTPOSSIBLE, vbExclamation, _ "Exemple S7ProSim" Case PS_E_NOTCONNECTED MsgBox MSG_NOTCONNECTED, vbExclamation, "Exemple S7ProSim" Case PS_E_POWEROFF MsgBox MSG_POWEROFF, vbExclamation, "Exemple S7ProSim" Case Else MsgBox "Une erreur systËme s'est produite : &H" & Hex(ErrorNumber), _ vbExclamation, "Exemple S7ProSim" End Select End Sub

Page 50: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous
Page 51: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Index-1

Index A

AboutBox, 6

Ajout de S7ProSim à une application VB, 2

AutoConnect, 3, 24

B BeginScanNotify, 7

C Codes retour, 33

Composantes de projet, VB, 2

Connect, 8

ConnectionError, 20

Constantes définies, 29

ImageDataTypeConstants, 30

PointDataTypeConstants, 31

ScanModeConstants, 32

Contrôle Siemens S7ProSim, ajout à un projet VB, 2

ControlEngine, 3, 25

D Définitions de types, 29

ImageDataTypeConstants, 30

PointDataTypeConstants, 31

ScanModeConstants, 32

Disconnect, 9

E Ecriture

Entrée, 17

Périphérie d'entrée, 16

Enabled, 3, 26

EndScanNotify, 10

Evénements, 19

ConnectionError, 20

PLCSimStateChanged, 21

ScanFinished, 22

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

Exécution de cycle continue

ScanMode, 27

ScanModeConstants, 32

Exemple de projet

Code, 36

Présentation, 35

G Gestionnaires d'événements, 4

I ImageDataTypeConstants, 30

Insertion de S7ProSim dans une application VB, 2

Introduction, 1

L Lecture

Périphérie de sortie, 14

Sortie, 15

M Méthodes, 5

AboutBox, 6

BeginScanNotify, 7

Connect, 8

Disconnect, 9

EndScanNotify, 10

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

ReadOutputImage, 14

ReadOutputPoint, 15

WriteInputImage, 16

WriteInputPoint, 17

Méthodes d'exécution de cycle

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

Page 52: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Exemple de projet

Index-2

Mode Cycle unique

ExecuteNmsScan, 11

ExecuteNScans, 12

ExecuteSingleScan, 13

ScanMode, 27

ScanModeConstants, 32

Mode d'exécution de cycle

Paramétrage, 27

Renvoi, 27

N Nom de l'automate Control engine, 25

Notification de cycle, 7, 10, 26

P PLCSimStateChanged, 21

PointDataTypeConstants, 31

Présentation, 1

Programmation d'une interface S7ProSim vers S7-PLCSIM, 4

Projet Visual Basic, ajout de S7ProSim, 2

Propriétés, 3, 23

AutoConnect, 24

ControlEngine, 25

Enabled, 26

ScanMode, 27

R ReadOutputImage, 14

ReadOutputPoint, 15

S S7ProSim

Ajout à un projet VB, 2

Interface vers S7-PLCSIM, programmation, 4

Présentation, 1

Propriétés, 3

ScanFinished, 22

ScanMode, 3, 27

ScanModeConstants, 32

T Types énumérés, 29

ImageDataTypeConstants, 30

PointDataTypeConstants, 31

ScanModeConstants, 32

W WriteInputImage, 16

WriteInputPoint, 17

Page 53: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Remarques / suggestions Vos remarques et suggestions nous permettent d'améliorer la qualité générale de notre documentation. C'est pourquoi nous vous serions reconnaissants de compléter et de renvoyer ce formulaire à Siemens.

Répondez aux questions suivantes en attribuant une note comprise entre 1 pour très bien et 5 pour très mauvais.

Le contenu du manuel répond-il à votre attente ?

Les informations requises peuvent-elles facilement être trouvées ?

Le texte est-il compréhensible ?

Le niveau des détails techniques répond-il à votre attente ?

Quelle évaluation attribuez-vous aux figures et tableaux ?

Vos remarques et suggestions :

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

_____________________________________________________

Page 54: SIMATIClegins69.free.fr/automatisme/PL7Pro/ProsimActive_f.pdfiii Préface S7ProSim fournit un accès par programme à l'interface de simulation d'AP de S7-PLCSIM. Avec S7ProSim, vous

Indiquez votre secteur industriel :

Industrie automobile

Industrie chimique

Industrie électrique

Industrie alimentaire

Contrôle/commande

Construction mécanique

Pétrochimie

Industrie pharmaceutique

Traitement des matières plastiques

Industrie du papier

Industrie textile

Transports

Autres ___________________________

Envoyez votre réponse à :

Siemens Energy & Automation, Inc.

A l'attention de :TECHNICAL COMMUNICATIONS

ONE INTERNET PLAZA

Johnson City TN 37604 Etats-Unis d'Amérique

Précisez les informations suivantes :

Expéditeur

Nom :_______________________________________________________________

Fonction :____________________________________________________________

Entreprise :___________________________________________________________

Rue :________________________________________________________________

Code postal et ville :____________________________________________________

Pays :_______________________________________________________________

Téléphone :___________________________________________________________