Giorgio Demurtas Inserito: 4 ottobre 2015 Segnala Inserito: 4 ottobre 2015 Ciao a tutti,devo programmare un PLC (rockwell micrologix 1400) e mi sono preparato con carta e matita il diagramma a stati. Devo ora passare all'implementazione in ladder. Il PLC non ha FSC o C.Quando programmo in C (PIC e arduino) utilizzo una variabile a 0-255 per memorizzare lo stato, e uso dei #define per utilizzare i nomi degli stati nel programma in C invece dei valori numerici (più leggibile). Per programmare una macchina a stati in ladder ho visto su internet che si utilizza un bit per ogni stato, e set-reset per le transizioni di stato (Reset il bit dello stato vecchio, Set il bit dello stato nuovo).Sul PLC potrei utilizzare una variabile intera per memorizzare lo stato. Le transizioni di stato si farebbero impostano la variabile al nuovo valore. In questo modo non c'è rischio che il sistema si trovi in due stati contemporaneamente (cosa che succederebbe se utiizzando i bit dimentico di resettare lo stato precedente).Qual'è il modo migliore per organizzare il programma?
batta Inserita: 4 ottobre 2015 Segnala Inserita: 4 ottobre 2015 Qual'è il modo migliore per organizzare il programma?Quello che ti piace di più.In linea di massima, visto che nel programma PLC non puoi utilizzare #define per migliorare la leggibilità, l'uso dei bit rende il programma, appunto, più leggibile. Ci sono però vari modi per superare questo piccolo inconveniente. In questo modo non c'è rischio che il sistema si trovi in due stati contemporaneamente (cosa che succederebbe se utiizzando i bit dimentico di resettare lo stato precedenteQualche volta questo comportamento (due stati attivi contemporaneamente) potrebbe essere voluto.
drugo66 Inserita: 4 ottobre 2015 Segnala Inserita: 4 ottobre 2015 (modificato) Ciao,ti sei imbattuto non nel migliore dei PLC Rockwell (almeno secondo me); a parte questo, come ti suggerisce Batta, puoi fare come più ti aggrada: assegnare ad una variabile un valore che cambia con lo stato (potresti utilizzare l'area N7; sono interi, sempre se non ricordo male) oppure utilizzare i bit (l'area B3 potrebbe fare al caso tuo); dimenticarsi di resettare un bit puo' capitare e, ovviamente, risulterà in un malfunzionamento (a meno che non sia voluto), ma tutto stà nella tua abilità nello scrivere e poi verificarlo.La cosa che ti consiglio, invece, è di andare su "Literature Library" nel sito Rockwell e scaricare quanta più documentazione possibile sul quel PLC, perchè, anche se la programmazione di microprocessori ti abitua ad avere dei limiti (se programmi per PC, invece, limiti, praticamente, non ne hai), quella dei PLC è comunque diversa.Per la programmazione ti servirà RsLogix500 a partire dalla versione 8, sempre se ricordo bene. Modificato: 4 ottobre 2015 da drugo66
Giorgio Demurtas Inserita: 10 ottobre 2015 Autore Segnala Inserita: 10 ottobre 2015 Ciao, grazie per le risposte! Alla fine ho fatto un ibrido Ho usato una variabile intera per lo stato, e ho messo le disequazioni (verificano in che stato sono) nella parte delle transizioni di stato. Sul filo all'uscita della disequazione ho agganciato un bit, così nel resto del programma (transizioni di uscita) sono più comodo con i bit.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora