ForumPortal
Dein letzter Besuch: Aktuelle Zeit: 21. Jan 2019 08:48


Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
AbonnentenAbonnenten: 0
LesezeichenLesezeichen: 0
Zugriffe: 62

AutorNachricht
 Betreff des Beitrags: rol-jal-bim112 with automatic reference
BeitragVerfasst: 24. Dez 2018 15:52 

Registriert: 06.2015
Beiträge: 49
Geschlecht: nicht angegeben
hi
many roller shutter actuators are equipped with an automatic reference which, in the event of a black-out, leads, in case of absolute positioning request, the shutter to position 0% (top) itself, thus obtaining a precise reference for subsequent positioning.

I worked a bit on the firmware "rol-jal-bim112" modifying the file "channel.cpp" in the routine "Channel::objectUpdate" and precisely in the point:

case COM_OBJ_SET_POSITION:
if (! (activeLocks & LOCK_ABSOLUTE_POSITION))
{
// inizio modifica **************************************************
//--aggiunta per riferimento in caso di blackout
if (!positionValid) // verifico se necessito di riferimento
{
position=value;
_savePosition (features & FEATURE_RESTORE_AFTER_REF);

// indipendentemente da dove si trova la tapparella
// voglio che vada su per il tempo massimo stabilito in ETS, per essere sicuro
// che dopo sia effettivamente tutta aperta
position=255; // ora l'attuatore pensa che la tapparella sia tutta chiusa

moveTo (0); // tutto su per il riferimento
}

if (positionValid) // solo se la posizione risulta valida, vado alla posizione richiesta

// fine modifica *********************************************************

moveTo(value); // vai alla posizione... %

}
break;

this change seems to work for the moment, but you must also change the routine that manages the scenes because even here there is a "moveTo" that must verify the validity of the position.
I try to add the same changes made previously but in the routine of scene manage :

void Channel::handleScene(unsigned int value)
{
bool save = value & 0x80;
value &= 0x3F;

for (unsigned int i = 0; i < NO_OF_SCENES; i++)
{
if (sceneNumber [i] == value)
{
if (save)
{
if (features & FEATURE_STORE_SCENE)
{
if (_storeScene(i))
userEeprom.modified();
}
}
else //richiesta esecuzione di una scena

{
// inizio modifiche -----------------------------------------------------
if (!positionValid) // verifico se necessito di riferimento
{
position=value;
_savePosition (features & FEATURE_RESTORE_AFTER_REF);

position=255; // ora l'attuatore pensa che la tapparella i-esima sia tutta chiusa

moveTo (0); // tutto su per il riferimento
}

if (positionValid)
//fine modifiche ------------------------------------------

_moveToScene(i);
}
}
}
}

but in this case, when the position is not valid, the shutters go up (0%) validating the position but do not move to the position decided with the scene.

It seems that the call "_moveToScene (i)" is not executed!

I accept suggestions

thank you


Nach oben
Offline Profil  
 
 Betreff des Beitrags: Re: rol-jal-bim112 with automatic reference
BeitragVerfasst: 29. Dez 2018 09:59 

Registriert: 06.2015
Beiträge: 49
Geschlecht: nicht angegeben
possible that even the firmware author can not answer me?
yet it is an important function to implement (for safety!) :?:


Nach oben
Offline Profil  
 
 Betreff des Beitrags: Re: rol-jal-bim112 with automatic reference
BeitragVerfasst: 30. Dez 2018 10:16 

Registriert: 06.2015
Beiträge: 49
Geschlecht: nicht angegeben
all right, I answer myself ... this change seems to work for the scenes, at least for now.
The attached image shows the sequence of operations required by the actuator, CH1 and CH2 channels. With scene 1, i requested the actuator to place CH1 at 44% and CH2 at 25%.
At the Power-On the actuator does not know the position of the shutters, therefore for each of them positionValid = false, then executes the content of "if (! PositionValid)" bringing the shutters to the reference position 0% obtaining a valid position from which start to reach the desired position from the scene.

this the code.....

case COM_OBJ_SCENE: // object for scene
if (! (activeLocks & LOCK_SCENE))
{

if (!positionValid) // verifico la necessità di riferimento
{
savedPosition=scenePos[value]; // salvo le posizioni di arrivo stabilite nella
// scena per il successivo riferimento

position=255; // non conosco la posizione attuale, ma voglio pensare che
//sia tutto GIU

moveTo(0); // vai tutto SU
}

else
{
handleScene(value); // non c'è bisogno di riferimento, vai alla posizione... %
}

}
break;


any improvement proposal is welcome


Dateianhänge:
scena JALO.png
scena JALO.png [ 39.32 KiB | 24-mal betrachtet ]
Nach oben
Offline Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron
Powered by phpBB® Forum Software © phpBB Group | Theme created StylerBB.net
phpBB3 Forum von phpBB8.de
» Kontakt & Rechtliches Support / Hilfe Forum Gooof Webdesign Kostenloses Forum Dein Forumo Forum web tracker