Wincc_recuperation données API

Résolu
kais52 Messages postés 7 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 juin 2009 - 12 mai 2009 à 09:00
kais52 Messages postés 7 Date d'inscription mercredi 29 avril 2009 Statut Membre 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 ?

6 réponses

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
12 mai 2009 à 14:30
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
3
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
12 mai 2009 à 11:24
Salut
Il faut que tu ajoutes un return 0 à la fin de ton main.

A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
0
kais52 Messages postés 7 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 juin 2009
12 mai 2009 à 12:06
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...
0
Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
12 mai 2009 à 12:47
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kais52 Messages postés 7 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 juin 2009
12 mai 2009 à 13:45
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
0
kais52 Messages postés 7 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 juin 2009
12 mai 2009 à 14:46
Merci. Ma compilation s'est correctement effectué!
Je te revaudrai çà, ou du moins j'espère...
A+
0
Rejoignez-nous