Pagina 1 van 1

HS3 programmeer tip

Geplaatst: za 14 jul 2012, 15:29
door 747driver
Wellicht dat ervaren HS3 programmeurs het al wisten maar voor mij was het tot voor kort nog een fors probleem.
Iedere keer wanneer ik de HS3 opnieuw opstartte werden sommige variabelen weer op 0 gezet.
Dit kwam doordat in de Graphic logic editor de uitgang van sommige logische modules bij het opstarten de waarde 1 hebben.
Daardoor werd er bv een reset uitgevoerd van een teller omdat aan een bepaalde conditie werd voldaan.

Ook bij m'n garagedeur module waarbij in een archieve wordt bijgehouden wanneer (datum+tijd) voor het laatst de deur open, geheel open, in beweging en gesloten is werd de date/time van de "deur dicht" steeds aangepast aan de tijd dat de HS3 werd opgestart doordat de input een 1 was.
Door in plaats van de A1 uitgang nu de A3 (sbc, send by change) uitgang te gebruiken is dit probleem opgelost.
In de Help file staat mbt de sbc uitgang van bv. een 2 Input AND: "Output does not send during restart".
Bij de garagedeur module heb ik er een AND poort bij moeten plakken om een sbc uitgang te verkrijgen.
sbc.jpg
sbc.jpg (17.7 KiB) 3816 keer bekeken

Re: HS3 programmeer tip

Geplaatst: vr 27 jul 2012, 14:16
door 747driver
Nog een tip.
Heb een functie waarbij ieder uur, dag, week, maand en jaar een aantal waardes worden gereset.
Om dat te bewerkstelligen gebruik ik vergelijk functies bv voor de week reset: uur=0 minuut=1 weekdag=0
Minuut=1 wordt gebruikt om resets te voorkomen bij het opstarten.
Aangezien de uur en minuut in 4 van die vergelijk functies worden gebruikt heb ik de Input boxen waar deze in staan met copy/paste gemaakt en aangevuld met de benodigde derde input object (bv weekdag).
Het onverwachte resultaat was dat een Uur reset alle andere resets ook activeerde.
Foutzoeken heb ik gedaan door een message archieve te maken en de afzonderlijke resets daar een message in te laten schrijven.
Zag toen dus dat dit gebeurde.
Toen ik van de afzonderlijke objecten keek naar de References zag ik tot m'n verbazing dat ze in 5 Input boxen voorkwamen met dezelfde ID's....
Heb nieuwe Input boxen gemaakt en de objecten daar naartoe verplaatst en nu werkt het wel.
Wellicht dat het hernoemen van de box voldoende was geweest maar ik neem geen risico meer, ik maak gewoon iedere keer een nieuwe Input box!
Het vinden van deze fout heeft me gauw een dag gekost....
Week reset.jpg
Week reset.jpg (35 KiB) 3786 keer bekeken

Re: HS3 programmeer tip

Geplaatst: zo 29 jul 2012, 22:37
door 747driver
Voorgaande posting bleek niet helemaal te kloppen...
Ik bleef last houden van het resetten van variabelen.
De oplossing bleek eenvoudig.
Moest gewoon de vaste waarde aan input zijde van de logische AND blokken op 0 zetten.
Normaal staat daar een 1 in het groen en dat is volgens de doku-logiksprache pdf van Dacom de waarde welke bij initialisering wordt aangenomen.
Daardoor was de uitgang van de AND blokken bij een herstart steeds even een 1....
Deze uitgang gebruik ik om bepaalde objecten te resetten er om er wat commands mee uit te voeren en dat moet natuurlijk niet bij iedere herstart gebeuren!
Onderstaand een plaatje van een gedeelte van het "reset sheet".
De inputs zijn connectoren van de uitgangen van het Date+Time logische blok.
Reset signals.jpg
Reset signals.jpg (59.28 KiB) 3774 keer bekeken