Elettronica123 Inserito: 3 agosto 2017 Segnala Inserito: 3 agosto 2017 Buongiorno al tutto il gruppo. Vorrei, se possibile, un grande aiuto. Ne sarei davvero riconoscente. La situazione è la seguente: ho un PLC S7 1200. Il mio obiettivo è quello di fare in modo che al variare del valore di un campo nel datablook dove ho un campo booleano (dunque Vero o Falso), al verificarsi della condizione “Vero” deve essere chiuso un contatto. Contrariamente, se si verifica una condizione “Falso”, il contatto deve essere aperto. Ho le basi della programmazione C, tuttavia credo di non aver avuto un corretto approccio. Quale principio di programmazione dovrei seguire per ottenere l’obiettivo di cui ho parlato sopra? Grazie mille in anticipo. Ringrazio chiunque possa darmi un grande aiuto. Cari saluti.
odx Inserita: 3 agosto 2017 Segnala Inserita: 3 agosto 2017 Se il tuo bit è per esempio nella DB 100 , quarto bit del Byte 30... In ladder metti un contatto aperto e lo nomini DB100.DBX30.4 in Strutturato puoi usare il comando IF
Elettronica123 Inserita: 3 agosto 2017 Autore Segnala Inserita: 3 agosto 2017 Grazie mille. Io ho creato un blocco dati DB 1, c'è differenza con il DB 100? Grazie mille ancora, davvero!
odx Inserita: 3 agosto 2017 Segnala Inserita: 3 agosto 2017 ho scritto un numero a caso ;).. i DB sono tutti uguali, a meno che non siano quelli di istanza utilizzati da funzioni tipo i timer ( per citare uno dei più banali ) Sono gli OB che hanno funzioni varie a seconda del numero Una dritta.... nelle proprietà delle DB c'è una spunta ( attributi - Accesso ottimizzato al blocco ) ... se lo togli, puoi accedere anche a Byte di dati che hai archiviato come Word o DW ... Cioè se hai un DW20 che hai chiamato "pippo", se togli la spunta di ottimizzazione, puoi accedere a DB20 e DB21 dall'esterno, anche se poi ti rimane un warning in compilazione che te lo ricorda sempre. ( io lo uso nelle DB in cui prendo dati da protocolli esterni per esempio )
Elettronica123 Inserita: 3 agosto 2017 Autore Segnala Inserita: 3 agosto 2017 OK, ma seguendo la tua dritta, ogni quanto tempo verrà effettuata l'operazione di lettura del DB? Grazie ancora!!!
odx Inserita: 3 agosto 2017 Segnala Inserita: 3 agosto 2017 Le letture sono cicliche col programma ... credo ... l'ottimizzazione non ho mai appurato quali vantaggi pratici dia in termini di tempo, per fortuna non ho i millisecondi contati nei miei programmi ... ( almeno ancora per un mese, poi .... ci saranno i nanosecondi ahime ;D ) Però la cosa serve solo se devi pescare dei "pezzi" e non i dati interi. Io come ti ho scritto, lo uso nei registri modbus, altri esempi al momento non mi vengono, dipende da cosa fai. Prego comunque ... si trattava solo di una sintassi alla fine ;P
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