Wincc_recuperation données API [Résolu]

kais52
Messages postés
7
Date d'inscription
mercredi 29 avril 2009
Dernière intervention
22 juin 2009
- 12 mai 2009 à 09:00 - Dernière réponse : kais52
Messages postés
7
Date d'inscription
mercredi 29 avril 2009
Dernière intervention
22 juin 2009
- 12 mai 2009 à 14:46
Bonjour,
je débute avec wincc et le language C. je souhaite récupérer une donnée (l'état de la production suivant l'équipe en cours 1, 2 ou 3)
Voici mon code

#include "apdefap.h"
 double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 2
#define PROD "Produ"
#define Eq1 "Equipe1"
#define Eq2 "Equipe2"
#define Eq3 "Equipe3"
// WINCC:TAGNAME_SECTION_END


// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END


//Variable
unsigned long objectif;
char* ObjName;




//Lecture de la production suivant l'équipe en cours
if (Eq1==1)          //Si l'équipe en cours est l'équipe 1

objectif= (long)GetOutputValueDouble(lpszPictureName,"ES_Prod1");    
                                                                        //Alors on retourne la valeur de la prod de l'équipe 1
SetTagDWord(PROD,objectif);
}
else                                                                //Sinon
if (Eq2==1)                                                    //Si l'équipe en cours est l'équipe 2

objectif= (long)GetOutputValueDouble(lpszPictureName,"ES_Prod2");   
                                                                     //Alors on retourne la valeur de la prod de l'équipe 2
SetTagDWord(PROD,objectif);
}
else                                                                //Sinon
if (Eq3==1)                                                    //Si l'équipe en cours est l'équipe 3

objectif= (long)GetOutputValueDouble(lpszPictureName,"ES_Prod3");    
                                                                     //Alors on retourne la valeur de la prod de l'équipe 3
SetTagDWord(PROD,objectif);
}
}

Et voici mon code erreur après compilation :
line2: error (0086) : function '_main' does not return a value
L'action de contient pas de code interpréteur.
Taille du code source : 1314 caractères - Taille du P-Code 0 Octet(s)

POUVEZ VOUS M'AIDER SVP ?
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Pistol_Pete
Messages postés
1055
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
9 juillet 2013
- 12 mai 2009 à 14:30
3
Merci
S'il y a juste les deux premières lignes de bloquer, ne peux tu pas ajouter un "return 0;" à la fin de ton programme :

#include "apdefap.h"
 double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 2
#define PROD "Produ"
#define Eq1 "Equipe1"
#define Eq2 "Equipe2"
#define Eq3 "Equipe3"
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END

//Variable
unsigned long objectif;
char* ObjName;

//Lecture de la production suivant l'équipe en cours
if (Eq1==1)          //Si l'équipe en cours est l'équipe 1

objectif= (long)GetOutputValueDouble(lpszPictureName,"ES_Prod1");    
                                                                        //Alors on retourne la valeur de la prod de l'équipe 1
SetTagDWord(PROD,objectif);
}
else                                                                //Sinon
if (Eq2==1)                                                    //Si l'équipe en cours est l'équipe 2

objectif= (long)GetOutputValueDouble(lpszPictureName,"ES_Prod2");   
                                                                     //Alors on retourne la valeur de la prod de l'équipe 2
SetTagDWord(PROD,objectif);
}
else                                                                //Sinon
if (Eq3==1)                                                    //Si l'équipe en cours est l'équipe 3

objectif= (long)GetOutputValueDouble(lpszPictureName,"ES_Prod3");    
                                                                     //Alors on retourne la valeur de la prod de l'équipe 3
SetTagDWord(PROD,objectif);
}
return 0;
}

A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr

Merci Pistol_Pete 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Pistol_Pete
Pistol_Pete
Messages postés
1055
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
9 juillet 2013
- 12 mai 2009 à 11:24
0
Merci
Salut
Il faut que tu ajoutes un return 0 à la fin de ton main.

A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Commenter la réponse de Pistol_Pete
kais52
Messages postés
7
Date d'inscription
mercredi 29 avril 2009
Dernière intervention
22 juin 2009
- 12 mai 2009 à 12:06
0
Merci
Merci amigo. J'ai tenté de faire la modif mais les deux premières lignes sont verrouillées. Je ne peux apporter aucune modification avant la premiere accolade...
Commenter la réponse de kais52
Pistol_Pete
Messages postés
1055
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
9 juillet 2013
- 12 mai 2009 à 12:47
0
Merci
Je ne comprend pas : "les premières lignes sont verrouillés". Tu ne peux pas modifier le code source?
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Commenter la réponse de Pistol_Pete
kais52
Messages postés
7
Date d'inscription
mercredi 29 avril 2009
Dernière intervention
22 juin 2009
- 12 mai 2009 à 13:45
0
Merci
Je peux modifier le code source mais seules les deux lignes me sont verrouillées
Elles me sont proposées/affichées lors d'une création d'un champs d'E/S puis modification dans les propriétés pour modification du script.


Je pensais au début qu'il s'agissait peut être de la définition du char objname non utilisé mais après suppresion de cette déclaration de variable, j'ai toujours le même souci... :-(
[file://\\Merci Merci] pour ton aide
Commenter la réponse de kais52
kais52
Messages postés
7
Date d'inscription
mercredi 29 avril 2009
Dernière intervention
22 juin 2009
- 12 mai 2009 à 14:46
0
Merci
Merci. Ma compilation s'est correctement effectué!
Je te revaudrai çà, ou du moins j'espère...
A+
Commenter la réponse de kais52

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.