26

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??

27

Re: SDS MICRO Light E - RS485

Takhle se myslím kdysi dávno v době vývoje RS485 choval FW u MACRA. Pak se to ale vše odladilo a je to 100% funkční (tedy netestoval jsem poslední FW). Jestli je to MICRO-E, chtělo by to pro jistotu otestovat i FW.

Nezkoušel jsi ten poslední c-prog co jsem tu dal včera? Ten vypisuje to text[] odpovědi a vypisuje je do konzoly.

28

Re: SDS MICRO Light E - RS485

j@m
Díky, program z text jsem zkusil. Tady je konzole:
Pokus o sepnuti vstupu 8
Odpoved zarizeni
Pokus o sepnuti vstupu 8
Odpoved zarizeni
sepnuti se nezdarilo!
Pokus o sepnuti vstupu 9
Odpoved zarizeni *B10

9sepnuto
Pokus o sepnuti vstupu 10
Odpoved zarizeni *B10

10sepnuto
Pokus o sepnuti vstupu 11
Odpoved zarizeni
Pokus o sepnuti vstupu 11
Odpoved zarizeni
Pokus o sepnuti vstupu 11
Odpoved zarizeni
Pokus o sepnuti vstupu 11
Odpoved zarizeni
Pokus o sepnuti vstupu 11
Odpoved zarizeni
Pokus o sepnuti vstupu 11
Odpoved zarizeni
sepnuti se nezdarilo!
Pokus o sepnuti vstupu 12
Odpoved zarizeni
Pokus o sepnuti vstupu 12
Odpoved zarizeni
Pokus o sepnuti vstupu 12
Odpoved zarizeni
Pokus o sepnuti vstupu 12
Odpoved zarizeni
Pokus o sepnuti vstupu 12
Odpoved zarizeni
Pokus o sepnuti vstupu 12
Odpoved zarizeni
sepnuti se nezdarilo!
Pokus o sepnuti vstupu 13
Odpoved zarizeni
Pokus o sepnuti vstupu 13
Odpoved zarizeni
Náhodně se výstupy zapínají a vypínají. Vzdávám to, domluvil jsem se p. Prejdou, že mi Macro i papoucha odzkouší, takže to zasílám zpět.Jsem jen zvědavý, co to bylo, jestli macro, papouch nebo nějaká kravina u mne.
Díky všem za pomoc.

29

Re: SDS MICRO Light E - RS485

Nejprve je potřeba ověřit funkčnost sériové linky.
1. připojit MACRO (MICRO) a desku s relé přes sériovou linku
2. připojit PC k SDS
3. (Windows) spustit telnet.exe, otevřít spojení "o 192.168.1.250" <enter>
4. napsat příkaz, např: *B$OS1H (znaky se ihned odešlou přes TCP spojení do SDS, který to ihned předá do zařízení na sériové lince - terminál nemá automatické "echo" psaných znaků, pozor)
5. zařízení na sériové lince sepne relé (nebo rozepne, dle příkazu)
6. na obrazovce terminálu musí být vidět odpověď (podle funkce desky s relé).

Samozřejmě je možné udělat i test samotného SDS - pokud má RS232 nebo UART, stačí přímo spojit RX a TX drát, a co se pak v telnet terminálu napíše, se ihned zobrazí. Ve webovém rozhraní zařízení se pak musí úměrně počtu přenesených znaků zvyšovat počítadla znaků.
Pro RS485 je potřeba takový test udělat např. s druhým SDS MACRO - připojit se telnetem na oba (dva terminály) a co se napíše na jednom, se zobrazí i na druhém. Pozor u RS485, klasická chyba: pro RS485 se nekříží vodiče tak jako např. u RS232 (rx na tx, a tx na rx) - RS485 má A na A a B na B, pro všechny zařízení na RS485 sběrnici!

Pokud se tedy provede úvodní test, mělo by vše fungovat. Pokud ne, je potřeba zkontrolovat nastavení linky (bps, parita, počet stop bitů) - lze si napsat jednoduchý SDS-C program, který to obslouží:

main
{
 echo('nastavuji seriovou linku');

 // nastav seriovou linku
 serial_set(9600, 8, 1, 0); // 9600bps 8n1

 // a zde se zastavime, protoze nechci aby mi SDS-C program interferoval s pokusy pres telnet
 x: goto x;
}

Program co bude co 1 sec zapínat a vypínat první relé (bez kontroly zda se to povedlo):

main
{
 echo('nastavuji seriovou linku');

 // nastav seriovou linku
 serial_set(9600, 8, 1, 0); // 9600bps 8n1

 // nasledujici kod se bude neustale opakovat
znovu:

 echo('ZAP');

 serial_text_out('*B$OS1H', 0x0D);
 
 wait(1000);


 echo('VYP');

 serial_text_out('*B$OS1L', 0x0D);
 
 wait(1000);

 goto znovu;
}
Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

30

Re: SDS MICRO Light E - RS485

Tímto chci poděkovat p. Prejdovi za snahu a pomoc při řešení problému v komunikaci Macro a IO desky 485 od Papoucha. Sice se mi u Papoucha nepřiznali, že chyba byla u nich, ale po výměně jejich desky vše funkuje naprosto korektně.

Nemáte někdo představu co znamená chyba 2 v historii OS17 při odeslíní HTTP GET? Vždy mi to na Endoru fungovalo bez problémů a poslední dobou mi vynechává posílání, vždy to hodí chybu 2.  Zlobí to ze dvou různých SDS.

31

Re: SDS MICRO Light E - RS485

No myslel jsem, že jsem jediný komu papouch nejel. Taky šel na reklamaci hmm