Re: SDS MICRO Light E - RS485
Díky za snahu a za nový testovací prográmek. Nepotřebuju nic složitého, potřebuju korektně nahodit jeden
výstup a zas ho shodit. Něco podobného:
Příklad: Dotaz – sepne relé 10
*B1OS10H
Odpověď
*B10
Dal jsem nový firmware, bohužel stále stejné. Díky j@m jsem zjistil, že alespoň nějaká snaha IO papoucha
reagovat je v sys140=1000, u ostatních sys to nedělá nic.
Pokud si dám echa do sys 140 =1000, tak vypisuju potvrzení:
66049048013042066049048013042, to jest přijmul paket a odpovídá ok /ty nuly mezi jsou sys48/ a náhodně
spíná výstupy, ale opravdu náhodně.
Myslím, že pokud papouch nemá vyjmuté všechny znaky z bufferu, tak neprovede pokyn-je to tak?
A tady asi je nějaký zádrhel, ale stále nevím, jestli je zádrhel u papoucha nebo u macra nebo u mne, fakt
nevím.
Pokud si dám tento pokus:
var _s;
init
{
echo('go');
serial_set(9600, 8, 1, 0);
}
main
{
echo (' 48:'sys[48]);
echo (' 49:'sys[49]);
echo (' 49:'sys[49]);
echo (' 49:'sys[49]);
echo (' 49:'sys[49]);
echo (' 49:'sys[49]);
if (sys[140]==1000) {
_s=0x4c; //L
if (sys[49]==-1)
{
serial_text_out('*B$OS',0x31, _s, 0x0D); //hex cislo 2
wait(500);
//sys[140]=0;
echo ('VYP 48:'sys[48]);
echo ('VYP 49:'sys[49]);
}
}
wait(1000);
if (sys[140]==100) {
_s=0x48;
if (sys[49]==-1)
{
serial_text_out('*B$OS',0x31, _s, 0x0D); //hex cislo 2
wait(100);
echo ('ZAP 48:'sys[48]);
echo ('ZAP 49:'sys[49]);
//sys[140]=0;
}
}
}
Tak při sys1000:
49:-1
VYP 48:1
VYP 49:-1
48:1
49:-1
49:-1
49:-1
49:-1
49:-1
VYP 48:1
VYP 49:-1
48:1
49:-1
49:-1
Při sys 100:
49:-1
49:-1
49:-1
49:-1
49:-1
ZAP 48:1
ZAP 49:-1
48:1
49:-1
49:-1
49:-1
A někdy s velkým spožděním to zapne nebo vypne výstup 1 a samozřejmě u toho vypíše potvrzovací sekvenci v sys49.
Co s tím??