Vai al contenuto
PLC Forum


PLC S7 1200


Elettronica123

Messaggi consigliati

Elettronica123

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. :worthy:

 

Cari saluti.

Link al commento
Condividi su altri siti


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

Link al commento
Condividi su altri siti

Elettronica123

Grazie mille. 

 

Io ho creato un blocco dati DB 1, c'è differenza con il DB 100?

 

Grazie mille ancora, davvero!:)

Link al commento
Condividi su altri siti

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 )

Link al commento
Condividi su altri siti

Elettronica123

OK, ma seguendo la tua dritta, ogni quanto tempo verrà effettuata l'operazione di lettura del DB? 

 

Grazie ancora!!! :worthy:

Link al commento
Condividi su altri siti

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

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...