Rajouter un îlot Advantys en I/O Scanning

Forum traitant des automates industriels de marque Schneider - Telemecanique
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1954
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Rajouter un îlot Advantys en I/O Scanning

Message par Béryl »

Bonjour à tous,

Dans une armoire j'ai un TSX 57204M qui gère des E/S en local et sa carte ETY4103 qui gère des E/S déportées Advantys et 3 var en ethernet.
Une troisième armoire doit venir se greffer là-dessus avec un variateur supplémentaire et une dizaine d'E/S.
Je compte donc rajouter un îlot Advantys en ethernet pour la piloter.
Mon souci est que les îlots Advantys et les var en ethernet sont gérés en I/O scanning. Les mots sont donc réservés et le manque de flexibilité du système fait que le rajout d'un îlot se complique car les mots qui suivent l'espace réservé sont utilisés dans le programme.
Aussi, je pensais passer les var en analogique de manière à récupérer leur espace d'adressage (32 mots en lecture et 32 mots en écriture par var) et utiliser une partie de cette espace libre pour l'îlot à rajouter.
Vous suivez toujours ? :)

Bien.
Mais ça me semble un peu bricolo comme solution...
Peut-être avez-vous une meilleure idée ?

Merci !
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rajouter un îlot Advantys en I/O Scanning

Message par itasoft »

slts,
Disons que le plus élégant serait de décaler les variables %MW afin de libérer la place.
Si le besoin s’en fait sentir, J’ai une moulinette qui fait ça,
Procédure :
Copier les lignes de programme VBS ci dessous et les coller dans l’éditeur « Bloc-notes »
Enregistrer sous le nom : MoveVarsMW.VBS
Avec l’explorateur de fichier Windows double clic sur MoveVarsMW.VBS pour lancer la moulinette
Ouvrir le fichier exporté depuis UNITY *.XEF
Résultats dans le fichier _RESULT.XEF à remettre dans UNITY à la place de l’ancien
Dans le source, Personnaliser les paramètres
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rajouter un îlot Advantys en I/O Scanning

Message par itasoft »

oublié le prog de la moulinette:

Code : Tout sélectionner

Option explicit
Dim TXT,fileNameSource,fileNameCible,sOLD,sNEW, sOBJ,sL
Dim mySize,ADRS,NB,VD,iVAL
Dim FSO,Rtxt,Wtxt
Dim oRegExp, oMatches, oMatch
'Objet Régular-expressions
Set oRegExp = CreateObject("VBScript.RegExp")
oRegExp.Global = True
oRegExp.IgnoreCase = True
fileNameSource=GetFileNameDlg()
if InStr(fileNameSource,".")=0 then
MsgBox("Fichier avec Extension obligatoire ex: *.XEF")
WScript.Quit 0
end if
'Fichier résultat
fileNameCible = Replace(fileNameSource, ".", "_RESULT_.")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Rtxt = FSO.OpenTextFile(fileNameSource)
TXT=Rtxt.ReadAll
Rtxt.close
Set Wtxt = FSO.createTextFile(fileNameCible,true)

'-PARAMETRE: ADRESSE DU PREMIER MOT %MW A DECALER ----------
ADRS=300
'-PARAMETRE: NOMBRE DE MOTS %MW A DECALER ----------
NB=32
'-PARAMETRE: VALEUR DU DECALAGE ----------
VD=+1000

oRegExp.Pattern = "%MW[0-9]+"
Set oMatches = oRegExp.Execute(TXT)
For Each oMatch In oMatches
sOBJ=oMatch.Value
iVAL=CInt(Replace(sOBJ, "%MW", ""))
if iVAL>=ADRS AND iVAL<(ADRS+NB) then 
			sOLD="%MW" & CStr(iVAL)
			sNEW="%MW" & CStr(iVAL+VD)
			TXT=Replace(TXT, sOLD,sNEW)
			end if
Next

Wtxt.write (TXT)
Wtxt.close

Set oRegExp = Nothing
Set oMatches =Nothing
Set oMatch =Nothing
MsgBox "Fin des opérations" , vbInformation, fileNameCible

Function GetFileNameDlg() 
GetFileNameDlg=CreateObject("WScript.Shell").Exec("mshta.exe ""about:<input type=file id=f><script language=""VBScript"">f.click():CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(f.value):close()</script>""").StdOut.ReadAll 
End Function
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1954
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rajouter un îlot Advantys en I/O Scanning

Message par Béryl »

Merci Antoine, je me garde ça précieusement sous le coude !
Je vais l'essayer très vite en simulation.
Le souci, c'est que je dois travailler en ligne sur l'automate, pas question de le passer en stop (ou toute l'usine est arrêtée en 10min !).
Avatar du membre
Bernardo59
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1054
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes
Contact :

Re: Rajouter un îlot Advantys en I/O Scanning

Message par Bernardo59 »

Salut,

Tu peux aussi utiliser la méthode READ_VAR et WRITE_VAR mais ça fera pas propre au niveau du programme.
Avatar du membre
skip74
Créateur de langage
Créateur de langage
Messages : 664
Enregistré le : 13 oct. 2015, 06:34

Re: Rajouter un îlot Advantys en I/O Scanning

Message par skip74 »

Bernardo59 a écrit : 02 avr. 2017, 13:53 Salut,

Tu peux aussi utiliser la méthode READ_VAR et WRITE_VAR mais ça fera pas propre au niveau du programme.
salut

Si l'installatyion est critique , perso je ferais cela...
C'esty ce qui risque le moins....

A+
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1954
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rajouter un îlot Advantys en I/O Scanning

Message par Béryl »

Ah oui, c'est même la plus critique de l'usine !
Bon, jamais utilisé READ_VAR et WRITE_VAR ; je vais faire des essais.
C'est quoi l'avantage ?
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Rajouter un îlot Advantys en I/O Scanning

Message par itasoft »

SLTS?
Disons que le READ_VAR et WRITE_VAR peuvent s'écrire en ligne automate en RUN, c'est une bonne solution de dépannage.
Mais pour la cohérence et le fair-play tu repassera car on ne va pas comprendre pourquoi on as pas tout mis sur IOScanning.
Ceci dit , celui qui se posera la question n'est pas payé pour comprendre,
LOL
Automaticien privé (de tout)
itasoft@free.fr
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1954
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Rajouter un îlot Advantys en I/O Scanning

Message par Béryl »

Ce que je voulais dire c'est que, suivant les avantages et les inconvénients de ces deux commandes par rapport à un I/O Scanning, je bascule les trois VAR existants sur ce principe-là.
En plus, je peux éventuellement piloter le VAR supplémentaire qui viendra dans la nouvelle armoire.

Ce n'est pas moi qui ai choisi de gérer les VAR en I/O Scanning ; c'est une vieille installation initialement programmée en PL7-PRO/XBTL-1000 et que j'ai basculée en Unity Pro/Vijeo-Designer.
Je n'ai pas bien compris la raison de bouffer 64 mots par VAR si ce n'est pour se servir au final que de quelques registres et se retouver avec un DFB imbuvable qui a fortement participé à la chute accélérée de ma pilosité crânienne.
Ce qui me faisait opter aussi pour l'analogique, c'est la simplicité.
Les trois VAR en réseau étant des ATV58, le jour où je vais les changer (en urgence, le cul sur les braises évidemment), pas sûr que je retrouve mes petits aussi rapidement qu'avec une bête consigne ana.
Avatar du membre
Bernardo59
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1054
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes
Contact :

Re: Rajouter un îlot Advantys en I/O Scanning

Message par Bernardo59 »

Salut Béryl,
Je déteste l'IO Scanning pour la simple et bonne raison que ce n'est pas flexible.
Pour te donner un exemple, je suis sur un programme avec 5 ilots d'E/S déportées. Lors de ma mise en service, on m' a dit qu'il fallait supprimer un coffret dans l'API, ce qui implique de supprimer l'ilot. Problème, celui-ci se trouve en plein milieu de ma liste en IO Scanning. Du coup, je ne peux pas le supprimer, car si je le supprime tous mes mots d'entrées et de sorties se décalent... MAIS WHAT THE FUCK ! :shock:
La réponse de Schneider ? Ah mais, il vous suffit de l'inhiber... Moi qui aime avoir un programme propre, c'est raté.
Répondre