Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: muu kieli: Structured text: Suureneeko luku?

LaKaRa [04.12.2015 08:06:34]

#

Olen juuri aloittanut Codesysillä ohjelmoinnin ja perusteet on hyvin hukassa. Minulla on sellainen anturi joka antaa luvun välillä 1-230. Luvut ovat ainoastaan kokonaislukuja. Minun pitäisi saada Boolean arvo trueksi aina kun luku kasvaa edelliseen lukuun nähden ja sitten laitan counterin perään laskemaan. Jos luku pienenee niin silloin laskuriin ei saisi tulla mitään. Voisiko joku viisaampi antaa vinkkiä tähän?

Quirzo [04.12.2015 17:56:35]

#

Tapoja on useita, mutta jos haluat välttämättä käyttää counteria niin esim tällä tavalla:

VAR
	anturiArvo AT%IW0 : WORD;
	edellinenLuku : WORD;
	laskuri : CTU;
	saavutettu : bool;
END_VAR

laskuri(CU := (anturiArvo > edellinenLuku), PV := 10);
edellinenLuku := anturiArvo;

//Muistaakseni tarvitaan varalta, koska CTU tutkii nousevia reunoja
laskuri(CU := FALSE);

IF laskuri.Q THEN
	//10 saavutettu
	saavutettu := TRUE;
END_IF

Tietty voisi saman korvata ihan vaan kasvattamalla lukua näin:

VAR
	anturiArvo AT%IW0 : WORD;
	edellinenLuku : WORD;
	laskuri : INT;
END_VAR

IF anturiArvo > edellinenLuku THEN
	laskuri := laskuri + 1;
END_IF

edellinenLuku := anturiArvo;

IF laskuri > 10 THEN
	//yli kymmenen, esimerkiksi
END_IF

Jos siis ymmärsin mitä tarkoitit.

LaKaRa [07.12.2015 10:05:38]

#

Kiitos avusta!oon niin alussa tämän ohjelmoinnin kanssa että tämä helpotti paljon!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta