Vai al contenuto
PLC Forum


macchina a stati: bit o byte?


Giorgio Demurtas

Messaggi consigliati

Giorgio Demurtas

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?

Link al commento
Condividi su altri siti


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 precedente

Qualche volta questo comportamento (due stati attivi contemporaneamente) potrebbe essere voluto.

Link al commento
Condividi su altri siti

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: da drugo66
Link al commento
Condividi su altri siti

Giorgio Demurtas

Ciao, grazie per le risposte! Alla fine ho fatto un ibrido :D

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.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...