PLC function blocks - Vad betyder detta: "myVar.1=TRUE"

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
skorpion
Inlägg: 72
Blev medlem: 21 augusti 2008, 21:39:13
Ort: Falun

PLC function blocks - Vad betyder detta: "myVar.1=TRUE"

Inlägg av skorpion »

Hej

Jag håller på att lägga in lite kod i en befintlig installation och har sett att det används en sak som jag inte har riktig koll på.
Systemet är Bosch Rexroth och det är vad jag vet baserat på CoDeSys. Jag har inte hittat något som förklarar detta i någon manual.

På vissa ställen så finns följande:

Kod: Markera allt

         ______
firstVar-|  &  |-[s] secondVar.1
         |_____|
Hur förklarar man " secondVar.1"?
secondVar är av typen DINT

Är det bara ett tillvägagångssätt för att göra följande:
secondVar=1

Vilket i funktionsblock skulle kunna ersättas med?

Kod: Markera allt

         ______         ________
firstVar-|  &  |-------| move  |-
         |_____|     1-|_______|-secondVar
Om man istället för " secondVar.1" gör en reset "[r] secondVar.1", blir då secondVar=0?

Har jag förstått rätt?

MVH Niclas
Mr Andersson
Inlägg: 1409
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

Re: PLC function blocks - Vad betyder detta: "myVar.1=TRUE"

Inlägg av Mr Andersson »

> Hur förklarar man " secondVar.1"?
Sätt andra biten i secondVar (index är nollbaserat) till 1. Lämna alla andra bitar oförändrade.

> Är det bara ett tillvägagångssätt för att göra följande:
> secondVar=1

Nej. Den koden sätter bit 0 till 1 och alla andra bitar till 0.

> Om man istället för " secondVar.1" gör en reset "[r] secondVar.1", blir då secondVar=0?
Samma som första frågan, men sätt biten till 0 istället för 1. Det är möjligt att secondVar kanske blir lika med 0, men det beror på vad som finns i de andra bitarna.

Syntax är variabel.%{X,B,W,D}index där X=BOOL, B=BYTE, W=WORD,D=DWORD.
Till exempel myvar.%B3 som betyder 4:e BYTE:en i myvar.
Skippar man prefix, som i din secondVar, så motsvarar det X dvs. en bit/BOOL.

Från 2013-standarden:
bitaccess.png
Bara ANY_BIT-variabler är officiellt specificerade men det är upp till individuella PLC-tillverkare om de vill tillåta andra typer (t.ex. ANY_INT) också. Dock så kan man inte garantera att koden går problemfritt att flytta över till ett annat märke då.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
skorpion
Inlägg: 72
Blev medlem: 21 augusti 2008, 21:39:13
Ort: Falun

Re: PLC function blocks - Vad betyder detta: "myVar.1=TRUE"

Inlägg av skorpion »

Tack för det utförliga svaret, nu känns det mera logiskt!
Skriv svar