Aide su automate SAIA

Partie du forum pour tout ce qui concerne les automates industriels B&R, Beckhoff, Phoenix Contact etc...
Elisabeth2
Apprend le binaire
Apprend le binaire
Messages : 2
Inscription : 11 mai 2017, 09:54

Aide su automate SAIA

Message par Elisabeth2 »

Bonjour,
Je travaille actuellement sur la conversion du programme d'un automate SAIA (PCD4) écrit entièrement en IL (3700 lignes de code sans commentaires ni mnémoniques)vers un automate Schneider sur Unity Pro. Or je ne connaissais pas du tout les automates SAIA, et malgré l'aide de la documentation j'ai du mal à élucider de nombreux points.

1 - Pour les séquences d'opérations sur bits, j'ai comme indication que "Chaque instruction ORH
marque le début d’une nouvelle ligne de contacts". Mais j'ai des doutes avec l'instruction ORL : par exemple si j'ai
STL F21
ORL F5
ANL F18

Dois-je comprendre :
LD %M21 OR(LDN %M5 AND NOT %M18) (solution pour laquelle je pencherais)
ou
LD %M21 ORN(%M5 AND NOT %M18) ?

2 - J'ai dans mon programme cinq grafcets dont trois qui comportent plusieurs étapes initiales (IST), voire, dans l'un des cas, que des étapes initiales !
Je mets le schéma ci-dessous :
SB3.jpg
Sur unity, lorsque les quatre étapes sont actives de manière simultanée au démarrage, l'ordre d'exécution des actions dépend de l'ordre de création des étapes du grafcet lors de la conception. Si je crée l'étape 18 en dernier c'est le bit %M310 qui sera mis à 1. Mais sur SAIA je n'ai rien trouvé qui donne le comportement de l'automate dans ce cas.

3 - Lors de la sauvegarde nous avons récupéré un fichier data.dt5. Or dans les registres qui peuvent contenir des entiers ou des flottants je ne récupère que des valeurs entières, souvent très élevés et négatives :
Ex_dt5.jpg
Or ces valeurs sont utilisées avec des instructions pour les flottants dans le programme. Comment faire la conversion de R100(-1610612669) vers un flottant ? J'en ai besoin en particulier pour la mise à l'échelle des E/S analogiques.
Pour les valeurs des compteurs/temporisateurs relevés dans ce fichier a-t-on les valeurs de preset ou les valeurs courantes ?

J'ai comme doc :
Instructions_Guide_IL_F.pdf
26-732_FR_ManuelUtilisateur_PG514.pdf
26-734_FR_Manuel_PCD4_02.pdf

Merci d'avance pour votre aide.
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7025
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Aide su automate SAIA

Message par itasoft »

Slts,
Je ne connais pas cet automate SAIA (PCD4) jamais entendu parler.
Je dirais à la grosse que si le « IL » est dans la même norme que sur UNITY (ça peut être vrai mais pas sur)
Il suffirait d’exporter le programme dans un fichier TXT et de le coller dans une section « IL » de Unity.
Ça laisse rêveur, LOL
Automaticien privé (de tout)
itasoft@free.fr
tuscaonline
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 141
Inscription : 04 nov. 2015, 04:25

Re: Aide su automate SAIA

Message par tuscaonline »

Pour la question N°1 c'est :

(Not(%M21) OR NOT(%M5)) AND not(%M18)

Pour la 2 bah la je sais pas

pour la 3 : toutes les valeurs binaire doivent être représenté sous forme d'entier signé donc à toi de convertir les valeurs dans le bon format si tu le connais


Bon courage ...
Avatar de l’utilisateur
Bernardo59
Dieu du process
Dieu du process
Messages : 955
Inscription : 20 oct. 2015, 05:48
Localisation : Nimes

Re: Aide su automate SAIA

Message par Bernardo59 »

Salut,

Une question bête mais pourquoi ne pas repartir de 0 ?
Des fois, tu es gagnant à tout refaire que de tout décrypter...
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7025
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Aide su automate SAIA

Message par itasoft »

slts,
je viens voir que c'est un automate dédié REGULATION , ya pas d'autre solutions que de tout reprendre à zéro
Automaticien privé (de tout)
itasoft@free.fr
Kallysto
Créateur de langage
Créateur de langage
Messages : 732
Inscription : 27 avr. 2017, 11:11
Localisation : Loin de la civilisation

Re: Aide su automate SAIA

Message par Kallysto »

Tardivement, mais :

Les automates SAIA sont à la base des automates indus qui ont ensuite évolué vers la CVC. Mais ils ont conservé la possibilité de faire du IL ou du GrafTec. Certains les utilisent toujours pour de l'indus.

Je ne crois pas que le langage IL qui était utilisé à l'époque du PCD4 ait beaucoup évolué depuis, par contre les docs oui !
Tu regardes le programme avec quelle version du logiciel ? Car celon la version, l'aide proposée est plus ou moins enrichie... et plus ou moins en français !

Voici le site support avec un peu tout : https://www.sbc-support.com/fr/product- ... pcd4/axxx/

Et sinon, ils ont une super assistance technique : +33 1 39 96 49 59
Je crois Damien qui maitrise à fond le IL dans SAIA est en vac, mais Wilfried et Jérémie devraient pouvoir te renseigner quand même :) Si tu tombes sur Arnaud, il est super méga giga bon techniquement, le best du best, mais n'a pas du tout la patience face à quelqu'un qui ne comprend pas aussi vite que lui... Bref, sec et direct.
Dernière modification par Kallysto le 09 août 2017, 15:56, modifié 1 fois.
Kallysto
Créateur de langage
Créateur de langage
Messages : 732
Inscription : 27 avr. 2017, 11:11
Localisation : Loin de la civilisation

Re: Aide su automate SAIA

Message par Kallysto »

C'est le grafTec SAIA que t'as linké ?
Alors les 3 étapes ne peuvent pas être actives en même temps dans une structure en OU... C'est quoi les programmes de tes transitions ? (double clic dessus) D'ailleurs, je crois qu'on ne peut pas faire un "ET" en GrafTec (sûre à 90%)

Pas de possibilité de tester le programme existant pour voir ce qu'il fait et être sûr de ton coup ?
Dernière modification par Kallysto le 09 août 2017, 15:50, modifié 1 fois.
Kallysto
Créateur de langage
Créateur de langage
Messages : 732
Inscription : 27 avr. 2017, 11:11
Localisation : Loin de la civilisation

Re: Aide su automate SAIA

Message par Kallysto »

Pour les valeurs entières, il faut savoir qu'en SAIA, la virgule n'existe pas.

Si dans un registre tu as : 120, ça veut aussi bien dire 12,0 que 1,20 que 0,120. C'est à toi de savoir où se trouve ta virgule et de mettre toutes tes valeurs au même format (x,y ou x,yy etc) avant d'effectuer un calcul. Les valeurs que tu peux voir en ligne, c'est toi qui définit comment tu l'affiches (avec comme sans virgule) mais ça n'a aucune influence sur le programme.

J'espère pour toi que le gus qui a fait le programme était un minimum organisé... rien n'est plus chiant que le mec qui est un coup en 1 chiffre après la virgule puis pour une autre valeur sans virgule, etc. Je suis rentrée très méchant dans un sous traitant pour ça. J'ai refusé qu'on le paye en plus de le chopper physiquement, tant que j'aurai pas l'intégralité de mes valeurs dans le programme en 1 chiffre après la virgule. Que ça soit des pascal, des bars, des °C, des % d'hygro ou des % de vanne, je m'en cogne. Tout le monde à le même format une fois les entrées passées.

Ensuite, ta liste de registre : c'est ta mémoire que tu visualises. Donc ce sont les emplacements mémoires dont les valeurs sont traduites en entier signé pour être lisibles. Les analogiques de ton programme : registre, réel, entier, sont stockés dans cette liste et occupent 1 ou 2 ou 4 espace mémoire selon le type.
Il faut donc que tu associes ton réel flottant d'adresse 1563 par exemple avec ton registre mémoire n°280 et 281 par exemple. Pour savoir où commence les emplacement mémoire des différents type de données, il faut regarder le "Build Option" de ton device. Une fois que t'as réussi ça, tu retraduit 280 et 281 en binaire et ce binaire tu le retraduit en réel flottant.
Et c'est pareil pour les bits (Flags) SAIA utilise des registres 64 bits et tu as donc 64 Flag qui sont enregistrés dans un seul des registres qui sont dans ta liste. Il faut à nouveau tout convertir en binaire pour ensuite trouver l'état de chacun de tes flags.

Le plus simple serait quand même d'avoir un API et de noter les valeurs que tu as...

Actuellement, les cartes d'entrées et sorties analogiques sont en mV et mA : donc pour 1V, l'automate t'affichera 1000. Pour les PT1000 / NI1000, elles sont en 0,1°C (donc 120 pour 12,0°C). Je n'utilise pas de PT100/NI100 mais logiquement c'est la même chose.

Pour moi ce fichier est ta mémoire API à l'instant T. Donc tu as les valeurs courantes. Pour les valeurs de Préset, le mieux c'est de regarder dans le programme.

Et au pire l'assistance technique car cette version là de SAIA je l'ai pas utilisé depuis 2008... et j'étais pas allée jusque là...
Répondre