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.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
Questo bug è possibile risolverlo mettendo un contatore(cont2) sulla fase A2. Quindi la condizione diventerebbe :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.
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.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 ?
esatto ahahaUna cosa so per certo: non ho mai visto usare un comando del tipo <nomefase>.old, e anche cercando su internet non l'ho trovato.
non ho capito...Questo bug è possibile risolverlo mettendo un contatore(cont2) sulla fase A2. Quindi la condizione diventerebbe :
|----+-|P|----
| | T2.X
| |-| |----
cont2==0
ho sbagliato ad esprimermi , ho capito il concetto, ma quindi la sincronizzazione locale introduce una scelta ? diciamo sommariamenteCome 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.
Qualcuno l'ha fatto qst???