Een kort programma om meetwaardes te middelen. Omdat S5 niet bekent staat om z'n geweldige floating point eigenschappen is dit een mooie oplossing van Peter. Uiteraard ook bruikbaar in S7. M 0.4 is een flank van bv een timer.
U M 0.4
SPBN =NTEL
L MW 10 > JOUW GEMETEN WAARDE VAN DE SENSOR
L MW 40
+I
T MW 40
NTEL: U M 0.4
ZV Z 1
L z 1
L 16
>=I
SPBN =NGEM
SET
R Z 1
L MW 40
SRW 4
T MW 50 //>> GEMIDDELDE WAARDE OVER 16 METINGEN
L 0
T MW 40
NGEM: NOP 0
Voor een student die op zoek was naar een flankdetektie.
positieve flank: U E 1.0 de ingang waar we een opgaande flank van gaan detekteren UN M 20.1 hulpbit = M 20.0 de flankdtektie U E 1.0 = M 20.1 negatieve flank: UN E 1.0 de ingang waar we een neergaande flank van gaan detekteren UN M 20.1 hulpbit = M 20.0 de flankdtektie UN E 1.0 = M 20.1
Tellen in een dubbelwoord in S5, door Joop.
„In dit voorbeeld word DW0 als teller aantal gebruikt, DW 3 is het LW van het teller DWord DD2 . Als voor de telling DW3 negtief is (dus > 32767) dan wordt M255.0 hooggemaakt. Als deze merker niet hoog is is de telling na het optellen klaar. Is deze hoog dan wordt er weer een vergelijking gemaakt is DW3 nog negatief is de telling klaar, als DW3 niet meer negatief an wordt DW2 met 1 verhoogt. M255.0 is een smeermerker.”
AUF DB3 //DB van teller
L DW 3 //LW teller
L 0
<F
= M255.0 //LW is negatief
L DW 0 //teller aantal
L DW 3 //LW teller
+F
T DW 3 //LW teller
UN M255.0
SPB OK //LW was positief ->klaar
L DW 3
L 0
<F
SPB OK //LW is nog negatief ->klaar
L DW 2 // HW teller
L 1
+F //HW met 1 verhogen
T