Sida 1 av 1

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

Postat: 9 oktober 2016, 22:12:12
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

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

Postat: 10 oktober 2016, 04:34:42
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å.

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

Postat: 10 oktober 2016, 08:43:20
av skorpion
Tack för det utförliga svaret, nu känns det mera logiskt!