Page 1 sur 2
Débutant portage programme somachine
Posté : 29 sept. 2016, 09:52
par alex01
Bonjours à tous ,
Je me suis inscrit sur ce forum car je débute sur somachine et j'ai quelques question sur lesquelles vous pourrez très certainement m'éclairer.
Alors dans l'ordre :
1) Sur Somachine basic il m'était facile de passez du langage ST à LD , or sur somachine 4.1 la fonctionnalité disparaît lorsque le programme devient complexe (notamment pour passez de ST à LD) ?
Est ce normal ?
2) Voici un extrait d'un programme d'un très ancien automate , qui à été porté par un sous traitant pour les automates Schneider TM251
* Tim presence chariot plein 2 secondes **
LIRE ep0
ET CapDep
ET CapBlo
DTP #20 TimCPl2s
LIRE TimCPl2s
SET MeChPl
Cela ressemble à de l'assembleur françisé ?
Voici le portage réalisé :
(* Tim presence chariot plein 2 secondes *)
TimCPl2s_TON(IN:=(ep0 AND CapDep AND CapBlo),PT:= T#2S );
TimCPl2s:=TimCPl2s_TON.Q;
IF(TimCPl2s) THEN
MeChPl:=TRUE;
END_IF;
Le portage ressemble à du langage C pour moi , cependant je ne comprend pas la façon de déclarer ce TIMER.
3) Voici un autre extrait du même programme pour vous donnez une idée , pensez vous que l'on peut charger tel quel ce type de programme porté pour automate Schneider , dans n'importe quel automate Siemens Omron ou autre ?
IF(TimCPl2s AND (NOT MeChPlT) AND (NOT MeChViT) AND (NOT MeChAc) AND fm01S) THEN
MoChPlT:= MoChPlT +1;
IF(MoChPlT > MoVal600) THEN
MeChPlT:=TRUE;
END_IF;
END_IF;
Si vous pouviez m'éclairer sur ces quelques points , merci d'avance
Re: Débutant portage programme somachine
Posté : 29 sept. 2016, 14:36
par itasoft
slts,
rien compris
1) Sur Somachine basic il m'était facile de passez du langage ST à LD ,
sur SoMachine Basic ya pas de langage ST mais langage LIST
ceci dit, dans aucun cas on ne peut passer de ST à LADDER
Re: Débutant portage programme somachine
Posté : 30 sept. 2016, 13:07
par alex01
Effectivement oui je parlais bien du langage LIST et non ST , autant pour moi.
Je vais reformuler mes questions:
1) Sur SoMachine Basic en 1 clic , je peux passez de LIST à LD ou inversement , mais sur SoMachine 4.1 dès que le programme devient un peu complexe , la fonctionnalité pour passez de l'un a l'autre disparaît. est ce une limite de somachine 4.1 ?
2) * Tim presence chariot plein 2 secondes **
LIRE ep0
ET CapDep
ET CapBlo
DTP #20 TimCPl2s
LIRE TimCPl2s
SET MeChPl
Le portage realisé :
(* Tim presence chariot plein 2 secondes *)
TimCPl2s_TON(IN:=(ep0 AND CapDep AND CapBlo),PT:= T#2S );
TimCPl2s:=TimCPl2s_TON.Q;
IF(TimCPl2s) THEN
MeChPl:=TRUE;
END_IF;
Cet extrait de programme provient d'un automate de 1995 , le retrofit qui va être réalise va remplacer tous ces anciens automates par des automates Schneider TM251.
Donc un portage à été fait par un de nos sous traitant afin que ce programme puisse fonctionner sur les nouveaux automates.
Dans ce programme , il y'a un timer qui est utilisé , or je ne comprend pas trop la manière dont le sous traitant à déclarer ce timer au sein du portage.
3) Enfin , est ce que ce code qui à été porté pour un automate Schneider , est susceptible de fonctionner tel quel sur un automate d'une autre marque ( omron , siemens)
Voila merci d'avance , j’espère avoir été plus clair
Re: Débutant portage programme somachine
Posté : 30 sept. 2016, 13:13
par philou77
Salut !
1 / si tu peux pas et bien c'est ou mal écrit ou impossible..il y a pas à chercher plus loin..
2 / le ST et le list ne sont pas identiques.. donc des différences surviennent !
le portage à l'air correct et on peut réaliser les mêmes choses sur tous les automates (heureusement) seul le language diffère !
Re: Débutant portage programme somachine
Posté : 30 sept. 2016, 13:55
par JC87
Bonjour,
Ce qu'il faut comprendre c'est que sur des petits automates du type du M221 le langage de base avec lequel travaille l'automate est le List et le ladder qu'on peut utiliser n'est qu'une transcription exacte du list. C'est pour ça que c'est facilement réversible. Sur les automates qui comportent les 5 langages de la norme IEC, les langages sont autonomes et présentent des différences significatives, d'ailleurs le List n'est là que pour faire plaisir aux allemands

donc la réversibilité est rare. SoMachine basic et SoMachine tout court n'ont rien a voir a part un nom qui est là pour des raisons marketing. Je ne connais pas SoMachine mais ça ne me surprend pas du tout qu'on ne puisse pas passer d'un langage à l'autre, après tout c'était déjà le cas en Unity ou en PL7 Pro.
Pour la tempo, la conversion me semble tout a fait correcte, c'est juste une syntaxe particulière au logiciel mais ça ressemble à Unity donc à du Littéral normé car SoMachine est basé sur Codesys qui respecte totalement la norme IEC. Pour la conversion entre marques, tout est possible mais selon le ou les langages disponibles et l'age de l'automate ça peut être plus ou moins simple. Aujourd’hui les langages s'uniformisent entre les marque pour respecter cette fameuse norme et ça facilite les conversions. A une époque pas si lointaine passer d'un automate à l'autre pouvait demander beaucoup de travail.
JC
Re: Débutant portage programme somachine
Posté : 30 sept. 2016, 18:28
par itasoft
slts,
ça s'appelait langage Teutons puis ils l'ont renommé LIST
LOL
Re: Débutant portage programme somachine
Posté : 30 sept. 2016, 22:23
par JAPIB
Avec CODESYS V3 d'où est issue SOMachine, la conversion IL-LD-FBD est tout à fait possible.
On la trouve dans l'option du menu principal nommée "FBD/LD/IL" entre "Projet" et "Créer".
Enfin tout au moins sur CODESYS ! Parce que Schneider à pu modifier des choses sur SoMachine. C'était le cas avec les premières versions ou beaucoup de raccourcis clavier de CODESYS avaient été modifiés.
Cette conversion fonctionne bien mieux qu'en Siemens, sauf si on utilise l'instruction front (le contact avec la lettre P ou N à l'intérieur) en LD ou FBD mais qui n'existe pas en IL.
Par contre il est impossible de convertir automatiquement les langages ST, SFC et CFC.
Par contre la conversion avec un cerveau et des doigts agiles fonctionne bien

Re: Débutant portage programme somachine
Posté : 01 oct. 2016, 09:09
par or3l
Salut
D ailleurs qqun peut me dire comment utiliser un front en ST .
J ai test RE mais ça a pas l air d être ça ....
Aussi j utilise if .... Then xvar:=1 pour alimenter une bobine comme un set, mais comment faire pour alimenter une bobine sans la set ??
Avec Else xvar:=0 ?
Merci
Re: Débutant portage programme somachine
Posté : 01 oct. 2016, 14:05
par itasoft
slts;
IF(TimCPl2s) THEN
MeChPl:=TRUE;
ELSE MeChPl:=FALSE;
END_IF;
Équivaut à:
MeChPl:=TimCPl2s;
Re: Débutant portage programme somachine
Posté : 03 oct. 2016, 14:35
par isolet
bonjour,
quelqu'un pourrais m'aider pour mon programme svp
je veux créer un historique sur un automate M172 avec le logiciel somachine HVAC ,j'ai fait sa pour le moment mais sa me dit qu'il y a une erreur a la ligne 2 et je bloque :
trig(clk:=start1);
IF trig.q:=TRUE THEN
arrtab
.valeur1:=valeur11;
arrtab.valeur2:=valeur22;
arrtab.valeur3:=valeur33;
arrtab.valeur4:=valeur44;
arrtab.valeur5:=valeur55;
arrtab.defaut:=defaut11;
arrtab.date_heure:=date_heure1;
i:=i+1;
end_if;
if i >=100 then
i:=0;
end_if;
avec se programme je veux inscrire les valeurs en entré dans un tableau a chaque front montant de start1 que je remplacerais par un timer plus tard.
Ou alors si vous avez un autre programme a me proposer pour créer un historique , je suis preneur 