ISYGLT domotica systeem

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
Jaartje terug wat modules via marktplaats gekocht,
oa;
  • IP master module MA-IP/2
  • I/O module with 8 inputs and outputs I/O-08B-230V-16A
  • Universal dimmer 2x500W UD-500-M2/B
  • paar LED dimmers for 4x10 LED´s 3W at 700mA LED-04ECM-700
  • etc
Met de verbouwing van ons huis heel wat extra draden en buizen getrokken en gelegd.

Nu a.s. vrijdag de slimme meter wordt geplaatst, maar eens begonnen met het fatsoeneren van mijn meterkast.

En een klein begin gemaakt met het aansluiten van de domotica.
Daar ik niet echt thuis ben in het programmeren begonnen met een klein projectje.


Case; sturing hal lamp

onderdelen;
Hal lamp, A1.4
Haldeur, E1.3 ReadContact weg gewerkt in de deur, hoog als de deur dicht is
en een pulsdrukker (schakelaar) E1.2

scenario;

Hal lamp uit, haldeur gaat open hal lamp aan voor 30sec.
Hal lamp aan, (door pulsdrukker), Haldeur open geen gevolg.

code:
1
2
3
4
5
6
TOR A1.4 = E1.2

SETGOTO HalLampAan A1.4  ;HAL LAMP AAN
AVZ A1.4 = !E1.3 3s

HalLampAan:

Regel 1, schakelaar, werkt
Regel 3, werkt, als de hallamp aan staat springt het script naar "HalLampAan:"
Regel 4, tja als ik van A1.4, A1.2 maak, dus uitgang 2 stuur ipv van 4, werkt het zo als ik het graag wil,
alleen de hal lamp zit op uitgang 4.

CHM file, internet explorer help file
The-Source schreef op dinsdag 13 december 2016 @ 19:16:
Waar heb je je vraagteken verstopt :?
Ik probeer dus de code goed te krijgen,
met de schakelaar de hal lamp aan uit te kunnen zetten,
en als de deur open gaat en de hal lamp is uit, deze voor x seconden te laten branden,

code:
1
AVZ A1.4 = !E1.3 3s
met deze regel gaat als de deur open gaat de lamp aan en na 3s uit
Alleen als de schakelaar er bij staat werkt deze regel niet meer :?

[ Voor 17% gewijzigd door HomePlayer op 13-12-2016 23:01 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • The-Source
  • Registratie: Augustus 2001
  • Laatst online: 22:44
Waar heb je je vraagteken verstopt :?

Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal


Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
openings- post wat aangepast

Acties:
  • 0 Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 23:14
HomePlayer schreef op dinsdag 13 december 2016 @ 17:40:
Regel 4, tja als ik van A1.4, A1.2 maak, dus uitgang 2 stuur ipv van 4, werkt het zo als ik het graag wil,
alleen de hal lamp zit op uitgang 4.

...

code:
1
AVZ A1.4 = !E1.3 3s
met deze regel gaat als de deur open gaat de lamp aan en na 3s uit
Alleen als de schakelaar er bij staat werkt deze regel niet meer :?
Hierdoor snap ik het nog steeds niet helemaal om eerlijk te zijn. je lijkt jezelf wat tegen te spreken, maar dat zal vermoedelijk komen omdat ik er geen touw aan vast kan knopen. Misschien is he thandig om ook de code van HalLampAan te posten, want daar gebeurt waarschijnlijk ook iets. Misschien is het zelfs handig om alle code te posten! Sowieso volg ik nog niet helemaal wat die HalLampAan is/doet en hoe deze wordt getriggerd. Maa rhet is ook al een tijdje geleden dat ik met PLC's heb gespeeld.

Het vermoeden wat ik echter heb is dat de code elkaar tegen werkt omdat het met de onafhankelijke A1.2 wel werkt blijkbaar. Misschien is het een idee om de code in delen te testen (dus echt de rest van de code weghalen!) om te kijken of de afzonderlijke stukken perfect werken. Dan kun je daarna kijken of de combinatie (en welke combinatie!) problemen geeft.

Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
De hele code heb ik reeds gepost,
regel 1,
TOR A1.4 = E1.2 <--- A(usgang)1.4, E(ingang)1.2. Puls drukker op de ingang, dit werkt zoals het hoort.

Syntax TOR
(Zielbit "%$) (Quellbit 1 "%$#&) ... [(Quellbit n "%$#&)]

Beschreibung;

Mit diesem Befehl kann ein Stromstoßschalter realisiert werden. Es werden alle Quellbits verodert und erst danach je nach Ergebnis (Ergebnis=1) getoggelt. Ist nur ein Quellbit angegeben wird das Zielbit getoggelt, wenn das Quellbit 1 ist.

Beispiel;

TOR !A1.1 = E1.1, E1.2, M1.1

TOR A1.2 = E1.1, M2.2 ;A1.2 toggelt, wenn E1.1 oder M2.2 gesetzt wird

TOR A1.3 = E2.8

TOR A1.4 = F7.15 ;A1.4 toggelt durch die Fernbedienung auf Adr. 7, Taste 15

wat natuurlijk mij niet echt helpt is dat het een Duits programma is en ik nergens een vertaling kan vinden.

Regel 3;
werkt zoals je verwacht, als de hal lamp aan is, springt hij naar "HalLampAan:"

Regel 4;
werkt ook zoals je zou verwachten, AVZ "Ausschaltverzögerung" wanneer deze een andere dan A1.4 stuurt.

Acties:
  • 0 Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 23:14
Nee dat heb je niet neem ik aan? Of heb je echt enkel een label "HalLampAan" aangemaakt met daar niks achter? (ik kan me dat namelijk niet voorstlellen). Verder, wat zijn dan de definities van "HAL LAMP AAN"? Ik kan me niet voorstellen dat die al in het systeem zitten. Dus die zul je ergens gedefiniëerd moeten hebben.
HomePlayer schreef op woensdag 14 december 2016 @ 11:15:
Regel 4;
werkt ook zoals je zou verwachten, AVZ "Ausschaltverzögerung" wanneer deze een andere dan A1.4 stuurt.
Blijkbaar werkt deze dus niet zoals je verwacht.

En ik vermoed dat dat komt door regel 3. Als je namelijk A1.4 gebruikt op regel 4, dan gaat de HAL LAMP AAN. Dus wordt regel 3 uitgevoerd, waardoor je naar regel 6 moet springen en de eventuele code daaronder uitvoert. Die kan conflicteren met wat je op regel 4 hebt staan! Het is ook logisch te verklaren waarom het met A1.2 dan wel wekrt. In dat geval gaat de HAL LAMP NIET AAN en dus spring je niet naar regel 6.

Nogmaals, post de complete code. Ook als je denkt dat deze er niets mee te maken heeft! Vaak zit het probleem namelijk ergens anders dan je zou verwachten.

[ Voor 69% gewijzigd door GENETX op 14-12-2016 11:51 ]


Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
SetGoto heeft dat nodig,

echter ben weer wat wijzer, die opdracht SETGOTO set de uitgang ook, dus dat werkt niet zoals bedoeld

code:
1
2
3
IFSET !A1.4 ;als HAL LAMP UIT IS
    AVZ A1.4 = !E1.3 3s ;als de hal deur open gaat
ENDIF


Hier test ik of de lamp uit is, zoja reageer op de hal deur.
de hal lamp gaat inderdaad aan, echter niet uit na 3 sec.

en nee er is geen andere code.

[ Voor 4% gewijzigd door HomePlayer op 14-12-2016 12:20 ]


Acties:
  • 0 Henk 'm!

  • avdriel
  • Registratie: Maart 2001
  • Niet online
Je kunt ook het signaal van de sensor een delay geven, zoals in voorbeeld 2:

code:
1
2
3
;Möglichkeit 2
AVZ E2.2 = E2.2 3s 
KOPIE A1.1 = E2.2


En dan deze de uitgang direct laten door de sensor of waarschijnlijk een schakelaar.
Iets in de trant van
code:
1
KOPIE A1.4 = !E1.3 OR E1.2


Ik weet niet of jouw voorbeeld met IFSET gaat werken aangezien de functie niet meer uitgevoerd wordt zodra de uitgang hoog gemaakt wordt. En dan zal de vertraging waarschijnlijk ook niet meer uitgevoerd worden. En als resultaat de uitgang hoog blijven.

[ Voor 29% gewijzigd door avdriel op 14-12-2016 12:26 ]


Acties:
  • 0 Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 23:14
HomePlayer schreef op woensdag 14 december 2016 @ 12:19:
SetGoto heeft dat nodig,

echter ben weer wat wijzer, die opdracht SETGOTO set de uitgang ook, dus dat werkt niet zoals bedoeld

code:
1
2
3
IFSET !A1.4 ;als HAL LAMP UIT IS
    AVZ A1.4 = !E1.3 3s ;als de hal deur open gaat
ENDIF


Hier test ik of de lamp uit is, zoja reageer op de hal deur.
de hal lamp gaat inderdaad aan, echter niet uit na 3 sec.

en nee er is geen andere code.
Aah, ik zie het nu, ";" is commentaar :+

Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
avdriel schreef op woensdag 14 december 2016 @ 12:20:
Je kunt ook het signaal van de sensor een delay geven, zoals in voorbeeld 2:

knip
voorbeeld 2 doet in principe het zelfde als 1

code:
1
2
3
4
5
6
TOR A1.4 = E1.2

IFSET !A1.4 ;HAL LAMP UIT IS
AVZ A1.1 = !E1.3 3s 

ENDIF

Als ik uitgang A1.1 stuur, werkt het perfect,
Hal lamp aan niets doen met deur contact,
Hal lamp uit, schakellen voor 3sec.

maak ik er uitgang A1.4 van, ik wil nl de hal lamp aandoen, werkt het niet, maw, lamp wel aan maar niet uit na 3sec.

[ Voor 26% gewijzigd door HomePlayer op 14-12-2016 13:43 ]


Acties:
  • 0 Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 23:14
avdriel schreef op woensdag 14 december 2016 @ 12:20:
Ik weet niet of jouw voorbeeld met IFSET gaat werken aangezien de functie niet meer uitgevoerd wordt zodra de uitgang hoog gemaakt wordt.
Dat dus. Ik zou proberen om die IFSET er uit te slopen.

Werk je vaker met PLC's? Je doet vrij "gevaarlijke" dingen door op 2 manieren A1.4 van waarde te veranderen. Het geheel wordt namelijk parallel uitgevoerd en niet sequentieel. Daarmee weet je dus niet welke regel het systeem zelf gebruikt om A1.4 aan te sturen aangezien de ene regel kan aangeven dat hij uit moet zijn en de andere dat deze aan moet staan. Het beste is om maar op 1 punt A1.4 aan/uit te schakelen door middel van combinatorische logica.

Ik zou denken aan zoiets;

code:
1
2
3
4
5
IFSET !E1.3
AVZ M1.1 = !E1.3 3s
ENDIF

TOR A1.4 = E1.2 OR M1.1


Of uiteraard een andere gheeugenlocatie. Het is ehct al een jaar of 10 geleden dat ik zelf met PLC's gewerkt heb. Ik hoop dat in zo'n oplossing regel 2 wel actief blijft. Anders helt dit wellicht:

code:
1
2
3
IFSET !E1.3 OR M1.1
AVZ M1.1 = !E1.3 3s
ENDIF

[ Voor 20% gewijzigd door GENETX op 14-12-2016 14:13 ]


Acties:
  • 0 Henk 'm!

  • avdriel
  • Registratie: Maart 2001
  • Niet online
De IFSET rond om de AVZ moet je volgens mij helemaal weg laten om dat de !E1.3 de trigger voor de AVZ is. In het voorbeeld van GENTEX loop je tegen hetzelfde probleem aan dat als de deur weer dicht is, E1.3 hoog, de AVZ niet meer wordt uigevoerd.

Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
Geen idee wat combinatorische logica. is;
echter, neem ik aan dat een x aantal inputs slechts 1 output zou moeten kunnen sturen,
en dat aan de hand van soort input die ene output ook anders korter gestuurd moet kunnen worden.

Acties:
  • 0 Henk 'm!

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 23:14
Dat zijn logische poortschakelingen, dus een combinatie van EN-poorten, OF-poorten, etc. Dat is uiteindelijk ook wat je beschrijft. En op jou manier zijn er (soms, afhankelijk of de ISSET waar is of niet) 2 regels die naar A1.4 proberen te schrijven. Dat blijft gevaarlijk. Alhoewel het mogleijk kan werken (afhankelijk van de oplossing van de fabrikant) kan ik er zelf geen soep van koken. Dat is voor mij een reden om het te ontwijken: ik probeer altijd code te schrijven die geen onduidelijkheid bevat.

Overigens, vaak zit de oplossing al in hetgeen dat je wil beantwoorden:
Ik probeer dus de code goed te krijgen,
met de schakelaar de hal lamp aan uit te kunnen zetten,
en als de deur open gaat en de hal lamp is uit, deze voor x seconden te laten branden
Als ik dat herschrijf krijg ik dit:
Ik wil de hal lamp (TOR A1.4) aan als (=) ik de schakelaar (E1.2) aan zet of (OR)
als de de deur open gaat (!E1.3) en de de lamp niet aan staat (!A1.4).
Die 2e regel moet dus indirect afgevangen worden met M1.1, maar de eerste regel beschrijft exact de logica die je moet inprogrammeren ;)
avdriel schreef op woensdag 14 december 2016 @ 14:14:
De IFSET rond om de AVZ moet je volgens mij helemaal weg laten om dat de !E1.3 de trigger voor de AVZ is. In het voorbeeld van GENTEX loop je tegen hetzelfde probleem aan dat als de deur weer dicht is, E1.3 hoog, de AVZ niet meer wordt uigevoerd.
Dat was denk ik voor mijn aanpassing. Ik denk inderdaad dat je gelijk hebt. Ik heb met name met Siemens Step 7 gespeeld vroegâh, maar ik vermoed dat dit iig de enable van een counter stopt... Mijn edit zou wel eens kunnen werken, anders zullen we wat anders moeten zoeken. Maar daarvoor zit ik te wienig in deze materie. Ik zit dan met name in de knup of (en hoe/wanneer) timers eventueel gereset worden of dat je een jojo/pingpong effect kan krijgen...

Acties:
  • 0 Henk 'm!

  • HomePlayer
  • Registratie: Maart 2005
  • Laatst online: 31-08-2022
code:
1
2
3
4
5
6
7
TOR M1.2 = E1.1

IFSET !M1.2
    AVZ A1.4 = !E1.3 3s
ENDIF

DYNS A1.4 = M1.2


Ben er uit, deze code werkt

Nu ook magneet contact voordeur er bij;
code:
1
2
3
4
5
6
7
8
9
10
TOR M1.2 = E1.2 ;hal scakelaar

IFSET !M1.2
 KOPIE M1.3 = !E1.3 ;haldeur
 KOPIE M1.4 = !E1.4 ;voordeur
    AVZ M1.3 = M1.3 3s
    AVZ M1.4 = M1.4 3s
ENDIF

DYNS A1.4 = M1.2, M1.3, M1.4


Ik wil graag geloven dat mijn code zeker niet perfect is, maw sta ik open voor commentaar,
mochten er mensen zijn die deze code herkennen en een verwijzing naar eng. nl. hebben hoor ik het graag.

Update;1
Na veel try en error
werkt het precies zoals bedoeld,
schakelaar - lamp aan/uit
bel - lamp 30sec
deuren - lamp 30sec.
als lamp (op bel deuren 30sec.) ook uit kunnen zetten met schakelaar
als lamp op schakelaar, niet reageren op actie deuren/bel

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
;hal lamp, op schakelaar deuren en de bel----------------------------------------

HFLANKE HFLANKE_voordeur = voordeur ;trigger van L --> H (van 0 naar 1)
HFLANKE HFLANKE_haldeur  = haldeur  ;zodat er geen trigger is bij deur dicht doen

TOR toggle_voordeur_30s    = HFLANKE_voordeur ;zet triger om in toggle
TOR toggle_haldeur_30s     = HFLANKE_haldeur  ;zet triger om in toggle
TOR toggle_bel_drukker_30s = bel_drukker
IFSET !M2.1 ;combi_deuren_bel vertraging andrers toggled die
    TOR toggle_wk_hal_2--hal_1 = wk_hal_2--hal_1
ENDIF

AUTOOFF toggle_voordeur_30s      30s ;zet om naar set,30seconden
AUTOOFF toggle_haldeur_30s       30s ;zet om naar set,30seconden
AUTOOFF toggle_bel_drukker_30s   30s ;zet om naar set,30seconden

OR combi_deuren_bel =   toggle_haldeur_30s      ;samen voegen
                        toggle_voordeur_30s 
                        toggle_bel_drukker_30s

RST toggle_haldeur_30s,
    toggle_voordeur_30s,
    toggle_bel_drukker_30s,
    = wk_hal_2--hal_1       ;uitschakelen op de pulsdrukker

AVZ M2.1 = combi_deuren_bel #14 ;#14 had ook 1s (seconde kunnen zijn)

OR hal_lamp = combi_deuren_bel, toggle_wk_hal_2--hal_1
;--------------------------------------------------------------------------------

Nu heb ik denk ik een beetje gesmokkeld, niet netjes opgelost met het volgende;
code:
1
2
3
4
5
IFSET !M2.1                   ;combi_deuren_bel met vertraging,(zie onder AVZ) anders toggle die mee
    TOR toggle_wk_hal_2--hal_1 = wk_hal_2--hal_1
ENDIF

AVZ M2.1 = combi_deuren_bel #14 ;#14 had ook 1s (seconde kunnen zijn)

Zal nog wel meer uitdagingen tegen komen, bij het uitbreiden van de code
tot zover bedankt allen

[ Voor 133% gewijzigd door HomePlayer op 22-12-2016 08:46 ]

Pagina: 1