Home › Forum › Informazioni ambiente di sviluppo LogicLab › Conversione programma da Remoter a LogicLab
- Questo topic ha 2 risposte, 2 partecipanti ed รจ stato aggiornato l'ultima volta 15 anni, 3 mesi fa da
Sergio Bertana.
-
AutorePost
-
Luglio 4, 2011 alle 1:55 pm #35043
Anonimo
InattivoAbbiamo alcuni programmi molto semplici sviluppati in linguaggio RIL su Remoter, dovremmo importarli sul nuovo ambiente di sviluppo LogicLab per poter trasferire le applicazioni sui nuovi sistemi SlimLine.
Come ci consigliate di procedere ?
Luglio 5, 2011 alle 6:16 am #36819Sergio Bertana
Amministratore del forumNon esiste un tool di conversione dal linguaggio RIL (Remoter Instruction List) al linguaggio IL (Instruction List) della IEC61131-3, occorre effettuare la conversione manualmente. Il mio consiglio è di convertire i programmi RIL direttamente in LD (Ladder Diagram) la conversione è più immediata ed i programmi risultano più leggibili perchè visualizzati in modo grafico. Di seguito la conversione di un semplice ramo per dare una idea di come sia possibile effettuarla.
(* ORGR *)
LDN %IX0.0 (* LODF I 0000 *)
AND %IX0.1 (* ANDT I 0001 *)
OR( %IX0.0 (* LODT I 0000 *)
ANDN %IX0.1 (* ANDF I 0001 *)
AND F0001 (* ANDT F 0001 *)
) (* ORLR *)
ANDN F0003 (* ANDF F 0003 *)
ANDN F0004 (* ANDF F 0004 *)
S %Q0.0 (* LTCH O 0000 *)Di seguito la conversione di un ramo che utilizza un timer.
(* ORGR *)
LD %IX0.2 (* LODT I 0002 *)
ST T0000.INLD 1000
ST T0000.PT
CAL T0000 (* OUTM T 0000 KD 0010 *)(* ORGR *)
LD T0000.Q (* LODT T 0000 *)
R %Q0.0 (* UTCH O 0000 *)Allego un programma LogicLab di esempio e la stampa dello stesso, nel programma vi è anche la conversione in LD per comprendere la logica (Download programma).
Attenzione! Nella scrittura in LD non è possibile fare riferimento diretto agli operandi di I/O come nel linguaggio IL, quindi anche per gli I/O sono stati utilizzati degli mnemonici. In LD l’uscita %Q0.0 è stata sostituita con la %Q0.1 per permettere il test del programma sul sistema.
Luglio 5, 2011 alle 6:41 am #36820Sergio Bertana
Amministratore del forumA quanto detto nel post precedente aggiungo un suggerimento per risolvere il parallelo e/o la serie tra rami quando il primo operando del ramo in parallelo/serie è un operando negato. Su statements di OR( e AND( non è possibile effettuare la negazione diretta, occorre caricare l’operando e poi invertirlo con uno statement NOT.
(* ORGR *)
LD %I0.0 (* LODT I 0000 *)
AND %I0.1 (* ANDT I 0001 *)OR( %I0.2 (* LODF I 0002 *)
NOT
ANDN %I0.3 (* ANDF I 0003 *)
) (* ORLR *)ST %Q0.0 (* OUTT O 0000 *)
(* ORGR *)
LD %I0.0 (* LODT I 0000 *)
AND %I0.1 (* ANDT I 0001 *)AND( %I0.2 (* LODF I 0002 *)
NOT
ANDN %I0.3 (* ANDF I 0003 *)
) (* ANDR *)ST %Q0.1 (* OUTT O 0001 *)
-
AutorePost
- Devi essere connesso per rispondere a questo topic.