PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Importation et utilisation assemblage dotnet sanp7 dans windev
Importation et utilisation assemblage dotnet sanp7 dans windev
Débuté par bouba, 17 avr. 2014 10:46 - 14 réponses
Membre enregistré
9 messages
Posté le 17 avril 2014 - 10:46
Bonjour,
J'ai importé un assemblage dotnet dans WinDev qui permet de faire communiquer une application Windows avec un automate Siemens.

J'ai un problème avec le code en WinDev:

tabMyDB32 est un tableau de 256 octets
Myclient est un objet S7Client dynamique
Myclient = allouer S7Client
Myclient = allouer un objet S7Client // il y a une erreur au niveau de l'allocation mémoire
MyClient.ConnectTo(SAI_ipautomate,0,2)
MyClient.DBRead(32, 0, 16, tabMyDB32)
libérer Myclient

Merci
Posté le 17 avril 2014 - 11:38
Bonjour

pourquoi as tu DEUX allocations successives pour la même variable ?
Quel est le prototype du constructeur ?

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 4/17/2014 2:46 AM, bouba wrote:
Bonjour,
J'ai importé un assemblage dotnet dans WinDev qui permet de faire
communiquer une application Windows avec un automate Siemens.

J'ai un problème avec le code en WinDev:

tabMyDB32 est un tableau de 256 octets
Myclient est un objet S7Client dynamique
Myclient = allouer S7Client
Myclient = allouer un objet S7Client // il y a une
erreur au niveau de l'allocation mémoire
MyClient.ConnectTo(SAI_ipautomate,0,2)
MyClient.DBRead(32, 0, 16, tabMyDB32)
libérer Myclient

Merci
Membre enregistré
9 messages
Posté le 17 avril 2014 - 14:04
Rebonjour,merci de la réponse
j'ai oublié d'enlever la 2e allocation en effet

Revoici le code:
tabMyDB32 est un tableau de 256 octets
Myclient est un objet S7Client dynamique
Myclient = allouer un objet S7Client // il y a une erreur au niveau de l'allocation mémoire
MyClient.ConnectTo("10.0.0.21",0,2)
MyClient.DBRead(32, 0, 16, tabMyDB32)
libérer Myclient


Le constructeur est:

public S7Client()
{
Client = Cli_Create();
}




J'essaie de traduire le programme C# suivant en WinDev :

Using Snap7;
byte[] MyDB32 = new byte[256];
static S7Client MyClient;
static void SymplyGet()
{
MyClient = new S7Client();
MyClient.ConnectTo(“10.0.0.21”,0,2);
MyClient.DBRead(32, 0, 16, MyDB32);
MyClient = null;
}



Merci
Posté le 17 avril 2014 - 15:17
Rebonjour

est ce qu'il ne manque pas les parenthèse à ton allocation ?

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXShowroom.com est disponible : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 4/17/2014 6:04 AM, bouba wrote:
Rebonjour,merci de la réponse
j'ai oublié d'enlever la 2e allocation en effet

Revoici le code:
tabMyDB32 est un tableau de 256 octets
Myclient est un objet S7Client dynamique
Myclient = allouer un objet S7Client // il y a une
erreur au niveau de l'allocation mémoire
MyClient.ConnectTo("10.0.0.21",0,2)
MyClient.DBRead(32, 0, 16, tabMyDB32)
libérer Myclient


Le constructeur est:

public S7Client()
{
Client = Cli_Create();
}




J'essaie de traduire le programme C# suivant en WinDev :

Using Snap7;
byte[] MyDB32 = new byte[256];
static S7Client MyClient;
static void SymplyGet()
{
MyClient = new S7Client();
MyClient.ConnectTo(“10.0.0.21”,0,2);
MyClient.DBRead(32, 0, 16, MyDB32);
MyClient = null;
}



Merci
Membre enregistré
9 messages
Posté le 17 avril 2014 - 22:04
j'ai essayer avec les parenthèses mais ça marche pas non plus
Je pense que c'est un problème d'importation et d'exécution de la DLL dotnet.C'est un DLL que j'ai télécharger ici https://sourceforge.net/projects/snap7/files/

Merci
Membre enregistré
962 messages
Popularité : +183 (185 votes)
Posté le 18 avril 2014 - 02:27
hello Bouba,
attention, si tu utilises le wrapper snap7.net.dll et la dll snap7.dll qui se trouve dans le répertoire examples\dot.net\winbin du fichier zip cela ne fonctionnera pas si tu compiles ou testes en 32 bits. Il semblerait que la dll snap7.dll qui se trouve dans le répertoire examples\dot.net\winbin soit la version 64 bits. Il faut que tu prennes la dll snap7.dll qui se trouve dans le répertoire release\windows\win32 du fichier zip.

Ami calmant, J.P
Posté le 18 avril 2014 - 05:00
Le 17/04/2014 20:04, bouba a écrit :
j'ai essayer avec les parenthèses mais ça marche pas non plus
Je pense que c'est un problème d'importation et d'exécution de la DLL
dotnet.C'est un DLL que j'ai télécharger ici
https://sourceforge.net/projects/snap7/files/

Merci

Egalement ... j'ai essayé avec une DLL interne que nous avons créé...
pas mois mais un collègue de travail.
Le résultat ... n'accepte pas le Framework net 4.0 seulement 3.5 et pire
le premier démarrage marche crosso modo ... on revient dessus plante
méchamment... et chaque fois avec un message autre.
On compile la Dll pour un exécutable... là aucun problème c'est vraiment
l'intégration de l'assemblage.net dans le projet qui créé des problèmes
et il n'y a que quelques fonctions.
La Windev a raté le coche... la même dll dans un autre langage marche
parfaitement... donc ....
Membre enregistré
9 messages
Posté le 18 avril 2014 - 11:27
Bonjour,

Effectivement fallait importer la DLL version 32 bits. ça compile maintenant. J'essaie maintenant de récupérer la variable tabMyDB32 et l'afficher dans un label.Je lis un octet du DB32 à partir de la position 0 et je le stocke dans tabMyDB32

tabMyDB32 est un tableau de 18 octets
Myclient est un S7Client dynamique
Myclient= allouer objet S7Client()
Myclient.ConnectTo("10.0.0.21",0,2)
LIB_db1..Valeur=Myclient.DBRead(32, 0, 1, tabMyDB32) //affichage du retour de la fonction
LIB_db2..Valeur=tabMyDB32 //affichage de la valeur de tabMyDB32
libérer Myclient

Apparemment il y'a pas de connexion avec l'automate.La fonction retourne un nombre bizzard et tabMyDB32 n'affiche rien. Je suis encore bloqué

Merci de votre aide
Posté le 15 avril 2016 - 16:57
Bonjour,

J'ai le même problème que vous et je n'arrive pas a m'en sortir.
Pouvez-vous m'indiquer votre installation (Windows 7, Framework installé, ...)?

Merci d'avance
Membre enregistré
84 messages
Popularité : +2 (2 votes)
Posté le 12 décembre 2016 - 22:22
Bonjour Bouba,

J'aimerais utiliser la dernière version de snap7 pour communiquer avec un automate siemens.
J'ai bien importer l'assemblage dotnet. Mais je ne sais pas comment faire pour l'utiliser.
Etant novice dans ce domaine, pouvez vous m'aider ?

Cordialement

--
DB
Membre enregistré
84 messages
Popularité : +2 (2 votes)
Posté le 12 décembre 2016 - 23:01
Bonjour,

J'aimerais utiliser la dernière version de snap7 pour communiquer avec un automate siemens.
J'ai bien importer l'assemblage dotnet. Mais je ne sais pas comment faire pour l'utiliser.
Etant novice dans ce domaine, pouvez vous m'aider ?

Cordialement

--
DB
Posté le 03 février 2019 - 16:43
Bonjour Bouba,
Je souhaite créer une supervision à l’aide de Windev et un automate Siemens S7-1200.
Avez-vous un exemple de code pour pouvoir y parvenir ?
Vous remerciant par avance,

Cordialement
Membre enregistré
7 messages
Popularité : +1 (1 vote)
Posté le 11 février 2020 - 22:29
comment peut tu importer l'assemblage dans windev sans problème ?
Membre enregistré
84 messages
Popularité : +2 (2 votes)
Posté le 16 avril 2020 - 10:43
Bonjour, j'aimerais faire communiquer une appli windev avec un S7-1200.
Avez-vous réussi ? Pouvez-vous me guider avec snap7 si c'est le cas ? comment importer la dll ?
Merci par avance

Cordialement

--
DB
Membre enregistré
84 messages
Popularité : +2 (2 votes)
Posté le 16 avril 2020 - 11:44
-Bonjour, quelqu'un pourrait m'aider pour faire communiquer une appli windev avec un s7-1200 ? Help !!! Il semble qu'il faut utiliser snap7. J'aimerais de l'aide car dans le dossier snap7 je ne sais pas quel dll prendre :-(
Merci à vous tous de m'aider
Prenez soin de vous

--
DB