lele1975 Inserito: 27 marzo 2018 Segnala Inserito: 27 marzo 2018 Ciao ragazzi del forum, sono in fase di programmazione con un vecchio PLC Siemens simatic S5-100U cpu 103 e volevo utilizzare la funzione shift. Dal manuale seguo le istruzioni SHIFT+F3 (sposta) e qui dovrebbero comparire tutte le operazioni, nel mio caso F1 (SRW) ma il menù compare vuoto senza operazioni, premendo F1 il programma dice "funzione non consentita". Uso lo Step5/ST versione 7.23 potete gentilmente aiutarmi a capire cosa c'è che non funziona? Devo inserire un pacchetto supplementare per utilizzare le operazioni avanzate in step5? Stranamente le operazioni aritmetiche ci sono tutte.... Ciao grazie a tutti.
rguaresc Inserita: 27 marzo 2018 Segnala Inserita: 27 marzo 2018 Assicurati di aver impostata la modalità [RW] nella shermata iniziale del progetto Le istruzioni di shift funzionano entro un FB non in OB o PB
lele1975 Inserita: 27 marzo 2018 Autore Segnala Inserita: 27 marzo 2018 Grazie mille rguaresc. Non ho mai editato un FB in step5 e non saprei da dove iniziare, puoi darmi qualche suggerimento? Il mio progetto fa quanto segue: ingresso E0.0 Byte MB100 fronte in salita di e0.0 allora OR tra MB100 e 2#100 e mi colloca il risultato in MB100 Fronte in discesa di E0.0 shift a destra di 1 del mio MB100 Questo è quanto devo realizzare, con step7 e codesys uso spesso questo sistema di memorizzazione per tavole rotanti ma in step5 non l'ho mai fatto. Ringrazio tutti per l'aiuto
rguaresc Inserita: 27 marzo 2018 Segnala Inserita: 27 marzo 2018 Non c'è la funzione di rilevamento di fronte in S5 bisogna costruirsela. Verifica la word binaria KM 00000000 00000100 è possibile che si debba scrivere con i byte scambiati KM 00000100 00000000 poi chiama la FB1 da OB1 con SPA FB1 ///////////////////////////////////////////////////////// esempio FB1 Segmento 1 Nome :TEST ; qualsiasi nome // la seconda riga SGOP non serve, passare alla terza :U E 0.0 :UN M 10.6 ; un merker libero := M 10.0 ; fronte di salita :U E 0.0 := M 10.6 : :UN E 0.0 :UN M 10.7 ; merker libero := M 10.1 ; fronte di discesa :UN E 0.0 := M 10.7 : :UN M 10.0 ; salta se non fronte salita :SPB =UNO :L MB 100 ; altrimenti carica MB100 :L KM 00000000 00000100 ;verificare con i byte scambiati :OW ; or a word :T MB 100 ; salva UNO :UN M 10.1 ; salta se non fronte discesa :SPB =DUE :L MB 100 :SRW 1 :T MB 100 DUE :NOP 0 :BE
lele1975 Inserita: 28 marzo 2018 Autore Segnala Inserita: 28 marzo 2018 Grazie mille per questo utile FB tra poco programma e ti faccio sapere.
lele1975 Inserita: 12 aprile 2018 Autore Segnala Inserita: 12 aprile 2018 ciao ragazzi ciao rguaresc ho provato l'esempio sopra citato FB 1 ma non funziona correttamente(ho provato anche a scambiare l'ordine dei byte) ma quando lo testo il mio bit M100.0 si alza anche quando non dovrebbe , vi scrivo il mio programma in Step7 funzionante: LD I 0.0 ingresso sensore AB>= VB100 , 45 camma elettronica di lettura e VB100 rappresenta il valore attuale dell'encoder AB<= VB100 , 70 camma elettronica di letture e VB100 rappresenta il valore attuale dell'encoder ORB 4, VB1293 se il sensore è on ed è in camma combino OR tra i due ingressi : #100 e VB1293 e carico il risultato sempre in VB1293 LDB>= VB100 , 45 camma elettronica AB<= VB100 , 70 camma elettronica ED fronte di discesa SRB VB1293 , 1 ogni volta che ho il fronte di discesa della camma faccio scorrere il byte VB1293 verso desta con valore di scorrimento 1 Forse è identico all'esempio di rguaresc ma allora perché non funziona ? grazie infinite a tutti
rguaresc Inserita: 12 aprile 2018 Segnala Inserita: 12 aprile 2018 post #3 fronte in salita di E0.0 allora OR tra MB100 e 2#100 e mi colloca il risultato in MB100 post #6 non fai uso del fronte di salita, LD I0.0 è solo una interrogazione che in step 5 diventa U E 0.0 prova a rimuovere il fronte di salita. Inoltre il fronte di discesa è elaborato dopo una catena di confronti oltre all'interrogazione dell'ingresso le operazioni di confronto in step 5 non sono condizionate dall'interrogazione dell'ingresso come, invece, in step 7 microwin Quote :UN E 0.0 :UN M 10.7 ; merker libero := M 10.1 ; fronte di discesa :UN E 0.0 := M 10.7 : ::L MB 100 ; carica MB100 :L KM 00000000 00000100 ;verificare con i byte scambiati :OW ; or a word :T MB 100 ; salva UNO :UN M 10.1 ; salta se non fronte discesa :SPB =DUE :L MB 100 :SRW 1 :T MB 100 DUE :NOP 0
lele1975 Inserita: 16 aprile 2018 Autore Segnala Inserita: 16 aprile 2018 Grazie mille vi faccio sapere come si comporta il programma
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