Wincc_recuperation données API [Résolu]

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

6 réponses

Répondre au sujet
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 12 mai 2009 à 14:30
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Pistol_Pete
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 12 mai 2009 à 11:24
0
Utile
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 7 Messages postés mercredi 29 avril 2009Date d'inscription 22 juin 2009 Dernière intervention - 12 mai 2009 à 12:06
0
Utile
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 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 12 mai 2009 à 12:47
0
Utile
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 7 Messages postés mercredi 29 avril 2009Date d'inscription 22 juin 2009 Dernière intervention - 12 mai 2009 à 13:45
0
Utile
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 7 Messages postés mercredi 29 avril 2009Date d'inscription 22 juin 2009 Dernière intervention - 12 mai 2009 à 14:46
0
Utile
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.