Actions sur les alarmes de Vijeo-designer

Partie du forum pour tout ce qui concerne les interfaces homme machine ou IHM. Forum, conseil, astuce et entraide sur les interface homme machine ou IHM tels que les magelis, KEP, proface, XBT, .
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Actions sur les alarmes de Vijeo-designer

Message par itasoft »

Slts,
Actions sur les alarmes de Vijeo-designer
Si on doit ajouter une ou des actions sur chaque alarme (Ex : afficher un popUp d’aide sur l’alarme pointée)
Et si vous avez 1000 alarmes à vous palucher à la mano, demander la moulinette qui fait ça automatiquement.
-
Capture.JPG
Capture.JPG (37.95 Kio) Consulté 2173 fois
Automaticien privé (de tout)
itasoft@free.fr
Thosss
Apprend le binaire
Apprend le binaire
Messages : 2
Inscription : 04 juin 2018, 17:09

Re: Actions sur les alarmes de Vijeo-designer

Message par Thosss »

Bonjour itasoft,

Ce post me semble inespéré, je me suis pincé plusieurs fois mais le post existe toujours :D

Objectifs : Implémenter deux actions sur appui alarme sur chacune de mes 3000 alarmes, ce qui me conduis à plus ou moins 20 000 clics accompagné d'une source d'erreur non négligeable.

Est-il possible que vous me communiquiez la moulinette que j'éditerai à ma convenance pour implémenter une recopie de mot (index ressource texte vers une variable) et une ouverture de popup.

Je vous remercie par avance.

Bien Cordialement.

Bonne journée.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Actions sur les alarmes de Vijeo-designer

Message par itasoft »

slts,
c'est une macro en VBA, ça ajoute les actions sur les alarmes qui au départ n'ont pas d'actions
Dans VijeoDesigner exporter les variables au format .XML unicode, puis importer le fichier XML resultant. AVEC ÉCRASEMENT
copier les lignes ci dessous et les coller dans le VBA de Excel , personnaliser les paramètres et exécuter la macro

Code : Tout sélectionner

Sub NumeroteActionsAlarmesXML()
Dim TXT As String, TXT2 As String, sSS As String, Clef As String, NameAlr As String, NamePopUp As String
Dim NameVar As String, fileNameSource As String, fileNameCible As String
Dim iNUM As Long, nbl As Long, mySize As Long, Y As Long, YMax As Long
Dim Number1 As Integer, Number2 As Integer
Dim Marche As Boolean, Arret As Boolean, yaAL As Boolean
Dim TList(20) As String

'-Exporter toutes les variables au format XML
'-Importer le fichier alarmes résultant _RESULT.XML dans les variables au format XML Unicode

'============================ PARAMETRES à personnaliser =======================
'fichier source de export XML
fileNameSource = "D:\AFF\VariablesIHM.XML"
'Nom du PopUp à ouvrir
NamePopUp = "10001: Ecran3"
'Nom de la variable qui sert de index à la ressource Texte
'va prendre le n°du message à afficher sur le PopUp
NameVar = "INDEX"
'Repére qui indique que c'est une Alarme, ex: Noms qui commencent par ALR
NameAlr = "ALR"
'================================================================================

Number1 = FreeFile
Open fileNameSource For Input As #Number1

fileNameCible = Replace(UCase(fileNameSource), ".XML", "_RESULT.txt")
Number2 = FreeFile
Open fileNameCible For Output As #Number2
Clef = "<Variable name=" & Chr(34) & NameAlr

While Not EOF(Number1)
Line Input #Number1, TXT
        TXT = Trim(TXT)
        If nbl = 0 Then Print #Number2, Chr(255) & Chr(254) & StrConv(Mid(TXT, 3), 64) & StrConv(vbCrLf, 64)
        If nbl = 1 Then Print #Number2, StrConv(TXT, 64) & StrConv(vbCrLf, 64)

Arret = InStr(TXT, "</Variable>") > 0
Marche = InStr(TXT, Clef) > 0 Or Marche

If Marche Then
        TList(YMax) = TXT
        YMax = YMax + 1
        End If


yaAL = InStr(TXT, "<AlarmGroup>GroupeAlarmes1</AlarmGroup>") > 0

If yaAL And Marche Then

For Y = 0 To YMax - 1
Print #Number2, StrConv(TList(Y), 64) & StrConv(vbCrLf, 64)
Next Y
YMax = 0

iNUM = iNUM + 1

sSS = "<AlarmTouchActions buzzerOnTouch=#Enabled#>"
sSS = Replace(sSS, "#", Chr(34))
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

sSS = "<Word sourceConstant=#x# destination=#" & NameVar & "#/>"
sSS = Replace(sSS, "x", Format(iNUM))
sSS = Replace(sSS, "#", Chr(34))
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

sSS = " <PopupPanel action=#Open#>"
sSS = Replace(sSS, "#", Chr(34))
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

sSS = "<PanelID>" & NamePopUp & "</PanelID>"
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

sSS = "<Position centered=#true#/>"
sSS = Replace(sSS, "#", Chr(34))
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

sSS = "</PopupPanel>"
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

sSS = "</AlarmTouchActions>"
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

End If

If Arret Then Marche = False

nbl = nbl + 1
Wend

For Y = 0 To YMax - 1
Print #Number2, StrConv(TList(Y), 64) & StrConv(vbCrLf, 64)
Next Y

sSS = "</VariableData>"
Print #Number2, StrConv(sSS, 64) & StrConv(vbCrLf, 64)

Close #Number1
Close #Number2


fileNameSource = fileNameCible
mySize = FileLen(fileNameSource)
TXT = String(mySize, Chr(0))
Number1 = FreeFile
Open fileNameSource For Binary As #Number1
Get #Number1, , TXT
Close #Number1

TXT = Replace(TXT, vbCrLf, "")

fileNameCible = Replace(fileNameSource, ".txt", ".XML")
Number1 = FreeFile
Open fileNameCible For Binary As #Number1
Put #Number1, , TXT
Close #Number1

DoEvents
MsgBox ("Fin des opérations")

End Sub
Dernière modification par itasoft le 05 juin 2018, 10:36, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
Thosss
Apprend le binaire
Apprend le binaire
Messages : 2
Inscription : 04 juin 2018, 17:09

Re: Actions sur les alarmes de Vijeo-designer

Message par Thosss »

Merci beaucoup, ça va grandement me simplifier la vie.
Je test la macro et ferai un retour par la suite.
Répondre