Individuare due passaggi consecutivi per fase b1

Cicciofrank19

Moderatore
Staff Forum
Utente Premium
31 Maggio 2015
168
50
28
Salve. Mi sono imbattuto in questo esercizio:1529047666105-631760304.jpg
Una possibile soluzione è:
1529047802788455107686.jpg
Ora non so che significa <nomefase>.old né perchè la pone uguale a b1.x. Qualcuno lo ha svolto oppure sa cosa significa b1.old?
 

Cicciofrank19

Moderatore
Staff Forum
Utente Premium
31 Maggio 2015
168
50
28
Delego a un SFC l'onere di incrementare il conteggio ogni volta che si attiva b2, ossia ----|P|-----, cioè ogni volta che B2.X passa da 0 a 1. A un altro SFC affido il compito del controllo, deve controllare che ci siano stati due passaggi consecutivi per la fase B2,(cont==2) e che siano passati 30 s dalla seconda attivazione (T1.t>#t30s).
Adesso si aggiunge alla transizione dello SFC principale (transizione dopo A1) la condizione T2.X , ossia che si sia attivata la fase di T2 e che siano state verificate le 2 condizioni precedenti. @napoletano90 aveva fatto diversamente, aveva aggiunto una sincronizzazione locale ai 2 sfc principali che secondo me è inutile...ditemi voi se vi convince
 
  • Like
Reactions: napoletano90

napoletano90

Membro attivo
29 Settembre 2014
26
10
3
Delego a un SFC l'onere di incrementare il conteggio ogni volta che si attiva b2, ossia ----|P|-----, cioè ogni volta che B2.X passa da 0 a 1. A un altro SFC affido il compito del controllo, deve controllare che ci siano stati due passaggi consecutivi per la fase B2,(cont==2) e che siano passati 30 s dalla seconda attivazione (T1.t>#t30s).
Adesso si aggiunge alla transizione dello SFC principale (transizione dopo A1) la condizione T2.X , ossia che si sia attivata la fase di T2 e che siano state verificate le 2 condizioni precedenti. @napoletano90 aveva fatto diversamente, aveva aggiunto una sincronizzazione locale ai 2 sfc principali che secondo me è inutile...ditemi voi se vi convince
Guardandolo meglio la tua soluzione non va bene perchè la prima volta A2 non andrà mai in esecuzione poichè la condizione T2.x non è soddisfatta.
 
  • Like
Reactions: Cicciofrank19

DarkMetheora

Membro attivo
14 Giugno 2018
16
3
3
Ma è possibile modificare l'SFC iniziale aggiungendo condizioni ? non si dovrebbero progettare SFC addizionali senza modificare il contenuto dei primi?
 

DarkMetheora

Membro attivo
14 Giugno 2018
16
3
3
Vero chiedo venia @Cicciofrank19 , @napoletano90 penso sia buona , mi chiedevo se pero al posto della sincro locale, dopo la fase T ci fosse direttamente la transizione con condizione T2.x e poi direttamente la fase A2 , non sarebbe corretto lo stesso ?
 

Cicciofrank19

Moderatore
Staff Forum
Utente Premium
31 Maggio 2015
168
50
28
Guardandolo meglio la tua soluzione non va bene perchè la prima volta A2 non andrà mai in esecuzione poichè la condizione T2.x non è soddisfatta.
Questo bug è possibile risolverlo mettendo un contatore(cont2) sulla fase A2. Quindi la condizione diventerebbe :
|----+-|P|----
| | T2.X
| |-| |----
cont2==0
 

Cicciofrank19

Moderatore
Staff Forum
Utente Premium
31 Maggio 2015
168
50
28
Una cosa so per certo: non ho mai visto usare un comando del tipo <nomefase>.old, e anche cercando su internet non l'ho trovato.
 

napoletano90

Membro attivo
29 Settembre 2014
26
10
3
Vero chiedo venia @Cicciofrank19 , @napoletano90 penso sia buona , mi chiedevo se pero al posto della sincro locale, dopo la fase T ci fosse direttamente la transizione con condizione T2.x e poi direttamente la fase A2 , non sarebbe corretto lo stesso ?
Come dicevo a @Cicciofrank19 se fai così il primo ciclo con azione impulsiva su OUT2 non lo fai mai poichè T2.X non è soddisfatta, la specifica chiede invece A2 - B2 - B2 - 30 sec - A2. Spero di essere stato chiaro.
 

Seguici su Facebook