IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Programmer un IHM Weintek cMT3072X avec un Micro820 2080-LC20-20QWB


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2022
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Programmer un IHM Weintek cMT3072X avec un Micro820 2080-LC20-20QWB
    Bonjour,
    Je suis en train de reprendre le projet d'une personne et je n'ai aucune expérience avec les IHM Weintek et leur programmation en EBPro un mélange entre du Visual et du C.
    Pièce jointe 629709

    L'IHM et l'automate sont connecter en Ethernet.

    Le projet que j'ai repris étais de mettre en place une douchette (scanner de code barre) sur un IHM et d'afficher ce code barre scanner sur l'IHM

    Nom : ihm.jpg
Affichages : 163
Taille : 63,9 Ko

    Code de l'IHM en EBPro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    macro_command main()
     
    //CODE OPERATEUR
     
    char Scan_Code_Operateur[8], Code_Operateur[6]	//Déclaration code avant et apres traitement
    bool Code_Operateur_Valide	//bit voyant
     
    GetData(Scan_Code_Operateur[0], "Local HMI", LW, 0, 8) //recupère le champ d'écriture
     
     
    if Scan_Code_Operateur[0] == 46  and Scan_Code_Operateur[1] == 84 and not Scan_Code_Operateur[2] == 36 then //si le code commence par .T et n'est pas suivit d'un $ (évite de rentrer le code LPP dans l'operateur)
     
    	Code_Operateur_Valide = true	//Voyant vert
     
    	StringTrimLeft(Scan_Code_Operateur[0], ".T", Code_Operateur[0])	//enleve .T au debut du code operateur
    	SetData(Code_Operateur[0], "Local HMI", LW, 10, 6)	//écrit le code modifié dans le champ
     
    else
    	Code_Operateur_Valide = false	//Voyant rouge
    end if
     
    SetData(Code_Operateur_Valide, "Local HMI", LB, 0, 1)	//Met a jour le voyant de validité
     
     
     
     
    //CODE LANCEMENT/PHASE/POSE(LPP)
     
    char Scan_Code_LPP[35], Code_Lancement[15] = "", Code_Poste[6] = "", Code_Phase[10] = ""	//Déclaration codes avant et apres traitement
    int Debut_Lancement, Longueur_Lancement, Debut_Poste, Longueur_Poste, Debut_Phase, Longueur_Phase	//Positions du debut de chaques codes + longueurs codes
    bool Code_LPP_Valide = 0	//bit voyant
     
    GetData(Scan_Code_LPP[0], "Local HMI", LW, 100, 35)	//recupère le champ d'écriture
     
    if Scan_Code_LPP[0] == 46  and Scan_Code_LPP[1] == 84 and Scan_Code_LPP[2] == 36 then	//si le code commence par .T$
     
    	Code_LPP_Valide = true	//Voyant vert
     
    	Debut_Lancement = StringFind(Scan_Code_LPP[0], "$") + 1								//Donne la possition après le 1er $
    	Debut_Poste = StringFind(Scan_Code_LPP[Debut_Lancement], "$") + Debut_Lancement + 1	//Donne la possition après le 2e $
    	Debut_Phase = StringFind(Scan_Code_LPP[Debut_Poste], "$") + Debut_Poste + 1			//Donne la possition après le 3e $
     
    	Longueur_Lancement = Debut_Poste - Debut_Lancement - 1		//Donne le nombre de charactères du code Lancement
    	Longueur_Poste = Debut_Phase - Debut_Poste - 1				//Donne le nombre de charactères du code Poste
    	Longueur_Phase = StringLength(Scan_Code_LPP[Debut_Phase])	//Donne le nombre de charactères du code Phase
     
    	StringMid(Scan_Code_LPP[Debut_Lancement], Longueur_Lancement, Code_Lancement[0])	//Extrait le code Lancement du code LPP	(StringMid(source[start], count, destination[start]))
    	StringMid(Scan_Code_LPP[Debut_Poste], Longueur_Poste, Code_Poste[0])				//Extrait le code Poste du code LPP
    	StringMid(Scan_Code_LPP[Debut_Phase], Longueur_Phase, Code_Phase[0])				//Extrait le code Phase du code LPP
     
    	SetData(Code_Lancement[0], "Local HMI", LW, 120, Longueur_Lancement)	//écrit le code Lancement dans le champ
    	SetData(Code_Poste[0], "Local HMI", LW, 130, Longueur_Poste)			//écrit le code Poste dans le champ
    	SetData(Code_Phase[0], "Local HMI", LW, 140, Longueur_Phase)			//écrit le code Phase dans le champ
     
    else
     
    	Code_LPP_Valide = false	//Voyant rouge
     
    end if
     
    SetData(Code_LPP_Valide, "Local HMI", LB, 1, 1)	//Met a jour le voyant de validité
     
    end macro_command
    Code de l'automate Micro820:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    //Initialisation des variables
    p := 0;
    Pointeur[0] := 0;
    Pointeur[1] := 0;
    Pointeur[2] := 0;
     
    //Detection syboles $
    for i:=0 to 81 by +1 do
    	Caractere := ASCII(Code,i);
    	if Caractere = 36 then
    		Pointeur[p] := i;
    		p:=p+1;
    	end_if;
    end_for;
     
    //Assignation codes
    if Pointeur[0]>0 and Pointeur[1]>0 and Pointeur[2]>0 then	//code_barres valide
    	Lancement := MID(Code,Pointeur[1]-Pointeur[0]-1,Pointeur[0]+1);
    	Poste := MID(Code,Pointeur[2]-Pointeur[1]-1,Pointeur[1]+1);
    	Phase := MID(Code,MLEN(Code)-Pointeur[2],Pointeur[2]+1);
    end_if;
     
    if ASCII(Operateur,3)>64 and ASCII(Operateur,6)>64 and ASCII(Operateur,1)=46 then
    	Operateur := MID(Operateur,MLEN(Operateur)-2,3);
    	elsif ASCII(Operateur,3)<64 or ASCII(Operateur,6)<64 then
    	Operateur := '';
    end_if;
    Label vers un serveur OPC
    Nom : tag.jpg
Affichages : 152
Taille : 73,7 Ko

    Voici a peu près les éléments que j'ai.
    Nom : 70863156.jpg
Affichages : 156
Taille : 47,0 Ko
    La douchette que je connecte pour scanner le code-barres.

    Je ne sais pas du tout si je suis claire j'ai du mal à expliquer brièvement les choses. Si besoins j'essaierais d'expliquer le mieux que je peuxn

    Shadow_1

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    je n'ai aucune expérience avec les IHM Weintek et leur programmation en EBPro un mélange entre du Visual et du C.
    ici, c'est le forum Access donc principalement le langage SQL et VBA, je ne suis pas sûr que tu trouveras de l'aide pour EBPro
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,

    Sache que ce forum est un forum purement Access
    Seulement si tu veux réaliser des relevés code barres en VBA, on pourra t'aider
    sinon tu dois chercher de l'aide sur des forums plus appropriés (C, C++ ...)

    Bon courage
    "Always look at the bright side of life." Monty Python.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Fonction Trace avec programme sans IHM
    Par TANITE dans le forum WinDev
    Réponses: 15
    Dernier message: 10/12/2012, 15h08
  2. Programmer sous un Pentium I : avec quoi ?
    Par @v@lon dans le forum Langages de programmation
    Réponses: 17
    Dernier message: 23/03/2007, 10h54
  3. Réponses: 5
    Dernier message: 07/03/2007, 09h29
  4. Outil de test IHM sous Linux avec Application JAVA et AWT
    Par mmayniel dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 18/01/2007, 16h29
  5. Appeler un programme sur le poste client avec <object>
    Par ouioui2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/08/2005, 14h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo