Eenvoudig 60 waarden optellen

Visualisatie in EIB-KNX systemen, een vak apart.
Plaats reactie
Dries_De_Bouwer
Berichten: 109
Lid geworden op: ma 24 mei 2010, 23:32

Eenvoudig 60 waarden optellen

Bericht door Dries_De_Bouwer »

Hoi,
Weet iemand een efficiënte manier om 60 waarden op te tellen? Ik kan de bouwsteen "addition" gebruiken, maar die kan maar 2 waarden optellen. Als ik die bouwsteen heel vaak gebruik, lukt het natuurlijk ook, maar is er een alternatieve oplossing?
pvhuf
Berichten: 246
Lid geworden op: vr 28 dec 2012, 18:28

Re: Eenvoudig 60 waarden optellen

Bericht door pvhuf »

De meest efficiënte manier is zelf je logische bouwsteen hiervoor te maken. Dat is niet zo moeilijk. Zestig is wel veel natuurlijk, dat zal een enorme klepper zijn op het tekenblad, maar je kan misschien één met twintig maken.

De bouwsteen add (twee waarden) is nummer 9035, de code hiervoor staat in logik.dat en is:

### BS : Addition
5001|9035|2|2|0|0|1
5002|9035|1|0
5002|9035|2|0
5004|9035|1|0|0|1
5004|9035|2|0|0|2
5012|9035|0|""|"EN[1]+EN[2]"|""|1|0|0|0
5012|9035|0|"(EI==0)"|"EN[1]+EN[2]"|""|2|0|0|0

Iets dergelijks heb je dus nodig.

In logik.dat staat ook wat je moet aanpassen (helemaal vooraan). Je moet natuurlijk een andere nummer gebruiken ipv 9035, één in de range die voor iedereen is.

Dus je creëert een nieuw tekstbestandje die je de extensie .hsl geeft.
Hierin komt dan die code.

Je bewaart dat tekstbestandje ergens en "importeert" dan de logische module in de expert.
Die komt dan ergens in een folder terecht, bij mij:
c:\Documents and Settings\All Users\Documents\HS+FS Experte 2.7\logic\

Toevallig echter heb ik op het duitse forum er ééntje gevonden die er acht optelt.

Het bestandje heet 19951_Summe_8.hsl en telt er dus 8 op.
De inhoud van het bestandje staat onderaan (ik kan dit niet aanhechten).
Je kan dit eenvoudig uitbreiden naar meer waarden.

###################################
### (C) 2004, Tilo Kⁿhn, v1.0
###################################
### BS : Summe
###################################

5000|"#Rechnen\Summe 8 Eing."|0|8|"Eing 1"|"Eing 2"|"Eing 3"|"Eing 4"|"Eing 5"|"Eing 6"|"Eing 7"|"Eing 8"|1|"E1+E2..E8"

5001|8|1|0|0|1
5002|1|0|0 # E1
5002|2|0|0 # E2
5002|3|0|0 # E3
5002|4|0|0 # E4
5002|5|0|0 # E5
5002|6|0|0 # E6
5002|7|0|0 # E7
5002|8|0|0 # E8

5004|1|0|0|1|0 # summe

5012|0|"1"|"EN[1] + EN[2] + EN[3] + EN[4] + EN[5] + EN[6] + EN[7] + EN[8]"|""|1|0|0|0
747driver
Berichten: 1475
Lid geworden op: za 19 feb 2011, 10:06

Re: Eenvoudig 60 waarden optellen

Bericht door 747driver »

De grootste opteller welke ik gebruik is een 32-voudige om aan te geven hoeveel irrigatie sproeiers er aan staan.
Die past op een "Small" sheet size.
Ik heb meerdere GLE modules aangepast/uitgebreid aan m'n eigen wensen waarbij ik deze in een aparte folder plaats en zo makkelijk na installatie van een nieuwe HS Expert versie kan importeren.
1 van de dingen welke ik graag aanpas is de "Calculation during start" welke vaak op 0 staat.
Ik zet die dan op 1 zodat sommige objecten niet eerst hoeven te wijzigen om te worden weergegeven in de visualisatie.
Hieronder de inhoud van de 10060_add32.hsl
Breidt 'm eventueel uit, pas de filename aan en vervang 747driver in de definitie door je eigen naam.

Code: Selecteer alles

#######################
# Module: 32-fold adder
# As at:    05.04.2013
# Version:  1.0
#######################

#5000|"Text"|Retentive (1/0)|No. of inputs|.n.|No. of outputs|.n.|.n.
#5001|No. of inputs|Outputs|Offset|Memory|Calculation during start
#5002|Index input|Default value|0=numeric 1=alphanumeric
#5003|Memory|Initialisation value|Retentive
#5004|Output|Initialisation value|round binary (0/1)|type (1-send/2-sbc)|0=numeric 1=alphanumeric
#5012|cancellation with cond. (0/1)|condition|formula|time|pin output|pin offset|pin memory|pin neg. output

# Expert Definition
####################
5000|"747driver\Addition 32-fold Eric"|0|32|"E1"|"E2"|"E3"|"E4"|"E5"|"E6"|"E7"|"E8"|"E9"|"E10"|"E11"|"E12"|"E13"|"E14"|"E15"|"E16"|"E17"|"E18"|"E19"|"E20"|"E21"|"E22"|"E23"|"E24"|"E25"|"E26"|"E27"|"E28"|"E29"|"E30"|"E31"|"E32"|2|"A1 Sum"|"A2 Sum(sbc)"|

# Module
##########
5001|32|2|0|0|1

# Inputs
###########
5002|1|0|0
5002|2|0|0
5002|3|0|0
5002|4|0|0
5002|5|0|0
5002|6|0|0
5002|7|0|0
5002|8|0|0
5002|9|0|0
5002|10|0|0
5002|11|0|0
5002|12|0|0
5002|13|0|0
5002|14|0|0
5002|15|0|0
5002|16|0|0
5002|17|0|0
5002|18|0|0
5002|19|0|0
5002|20|0|0
5002|21|0|0
5002|22|0|0
5002|23|0|0
5002|24|0|0
5002|25|0|0
5002|26|0|0
5002|27|0|0
5002|28|0|0
5002|29|0|0
5002|30|0|0
5002|31|0|0
5002|32|0|0

# Outputs
###########
5004|1|0|0|1|0
5004|2|0|0|2|0

#Formulae
#########
5012|0|""|"EN[1]+EN[2]+EN[3]+EN[4]+EN[5]+EN[6]+EN[7]+EN[8]+EN[9]+EN[10]+EN[11]+EN[12]+EN[13]+EN[14]+EN[15]+EN[16]+EN[17]+EN[18]+EN[19]+EN[20]+EN[21]+EN[22]+EN[23]+EN[24]+EN[25]+EN[26]+EN[27]+EN[28]+EN[29]+EN[30]+EN[31]+EN[32]"|""|1|0|0|0
5012|0|"(EI == 0)"|"EN[1]+EN[2]+EN[3]+EN[4]+EN[5]+EN[6]+EN[7]+EN[8]+EN[9]+EN[10]+EN[11]+EN[12]+EN[13]+EN[14]+EN[15]+EN[16]+EN[17]+EN[18]+EN[19]+EN[20]+EN[21]+EN[22]+EN[23]+EN[24]+EN[25]+EN[26]+EN[27]+EN[28]+EN[29]+EN[30]+EN[31]+EN[32]"|""|1|0|0|0

### END
Dries_De_Bouwer
Berichten: 109
Lid geworden op: ma 24 mei 2010, 23:32

Re: Eenvoudig 60 waarden optellen

Bericht door Dries_De_Bouwer »

Heel erg bedankt alletwee! Ik heb de 32-voudige opteller van 747driver gebruiker. Een bouwsteen van 60 waarden is wat veel, en met 2*32 geraak je even ver. :-)
Plaats reactie