J’ai fait une macro sur un écran KEP MMI dans le but d’envoyer mes variables automate (une table de 64 mots) sur un autre port série, et recevoir une chaine de 16 mots et de les copier dans les variables de mon automate dans l’écran.
Je souhaite utiliser mon IHM comme passerelle.
Cette macro doit être appelé en permanence, et elle exécute un transfert toute les secondes.
L’IHM dialogue bien avec l’automate en modbus RTU sur le com3.
Je n’arrive pas avoir quelque chose dans mon equipment sur le port série COM1 ?
Pouvez vous me conseillé
Cordialement
Code : Tout sélectionner
macro_command main()
// Declaration de variables
bool Cadence // Bit de cadence
bool Front // Bit de front pour execution programme
int retour // Mot retour info communication
short MotdeVie // Mot de vie pour la communication
int Table_Envoie[64] // Table d'echange a envoyer
int Table_Reception[16] // Table d'echange a recevoir
int t
int r
// ***********************
// * Programma principal *
// ***********************
// BIT CADENCE A 1HZ
if Cadence == false then // Si "Cadence" est a 0
DELAY(1000) // On attend 1 seondes
Cadence = true // On met "Cadence" a 1
end if // Fin de if
if Cadence == true then // Si "Cadence" est a 1
DELAY(1000) // On attend 1 seondes
Cadence = false // On met "Cadence" a 0
Front = true // Si "Front" est a 1
end if // Fin de if
// ECHANGE DES DONNÉES
GetData(MotdeVie, "CPU1284", 3x, 1 ,1)
if Front == true then // Si "Front" est a 1
// On execute le programme et on reset Front a la fin
for t=0 to 64 // Boucle pour recupéré les 64 variables
GetData(Table_Envoie[t], "CPU1284", 3x, t ,1) // Copie des variables dans la macro
next // Fin de la boucle for
OUTPORT(Table_Envoie[0], "CP340", 64) // Envoie sur le port comm
INPORT(Table_Reception[0], "CP340", 16, retour) // Reception sur le port comm
SetData(retour, "Local HMI", LW, 0, 1) // Retour info communication
for r=0 to 16 // Boucle pour envoyer les 16 variables
SetData(Table_Reception[r], "CPU1284", 4x, r ,1)// Copie des variables dans l'IHM
next // Fin de la boucle for
Front == false // On remet "Front" a 0
end if // Fin de if: echange des données
SetData(Table_Reception[0], "Local HMI", LW, 1 ,1) // Puissance Instantané
SetData(Table_Reception[1], "Local HMI", LW, 22 ,1) // Années
SetData(Table_Reception[2], "Local HMI", LW, 21 ,1) // Mois
SetData(Table_Reception[3], "Local HMI", LW, 20 ,1) // Jours
SetData(Table_Reception[4], "Local HMI", LW, 19 ,1) // Heures
SetData(Table_Reception[5], "Local HMI", LW, 18 ,1) // Minutes
SetData(Table_Reception[6], "Local HMI", LW, 17 ,1) // SECondes
SetData(Table_Reception[8], "Local HMI", LW, 2 ,1) // PLC Etat
end macro_command


