1 Naposledy upravil: Luděk C (2021-03-11 17:53:35)

Téma: [vyřešeno] SDS Micro-ST komunikace 485

Odkázal bych se na vlákno

http://forum.merenienergie.cz//viewtopic.php?id=980

Pokouším se komunikovat  přes 485 pomocí serial1_write(0,0,8)
text[0] = 0x01;
text[1] = 0x06;
text[2] = 0x00;
text[3] = 0x02;
text[4] = 0x01;
text[5] = 0x01;
text[6] = 0xE8;
text[7] = 0x5A;



Simulátor "simuluje" správná data, z SDS však odcházejí shodná pouze někdy, ovládané zařízení však vůbec nereaguje. Pošlu-li identických 8 bajtů z převodníku, ovládané zařízení reaguje.

Zašel jsem i tak daleko, že jsem vyzkoušel 3 různé budiče v domnění, že jsem je "odpravil", výstup je však identický.

Udělal jsem i opačný test, zasíláním do UART cache a výpisem obsahu do konzole. Cokoli větší než bajt způsobí zahryznutí a jediná cesta je restart desky. Na simulátoru identická operace OK.

2

Re: [vyřešeno] SDS Micro-ST komunikace 485

Jaká verze firmware ?

Jak máte sériovou sběrnici nastavenou ? viz http://wiki.merenienergie.cz/index.php/Sdsc_sysf#serialX_set.28.29

SDS MICRO-ST by mělo mít z výroby osazené zakončení linky - R62. Nemáte ho v zapojení na straně SDS vícekrát (třeba připojené ke svorkám ?)
Dále je tam osazené klidové napájení, R61, pokud už to vaše zařízení klidové napájení linky má, musíte to na jedné straně odstranit (třeba v SDS).

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

3

Re: [vyřešeno] SDS Micro-ST komunikace 485

Verze poslední.

serial1_set(9600, 9, 1, 1); pro 8bit, 1 stop bit, 1 bez parity.

Ještě bych upozornil, že běžně komunikuji se systémy na 485, ale napěťové úrovně máte jiné. Jsem zvyklý na pull-up rezistory na obou koncích, na koncích sběrnice 120ohm. Klidové napájení se zdá míníte  zřejmě totéž. R61 je osazen.

Co tedy doporučujete ?

4

Re: [vyřešeno] SDS Micro-ST komunikace 485

Nastavení pro 8bit 1stop bez parity má být
serial1_set(9600, 8, 1, 1);

Tu 9 tam dáte jen když chcete paritu, tzn. 8+1 bitů dat. Ale to není tento případ pokud jsem četl předchozí příspěvek správně.

HW MICRO-ST:
Zakončení linky je z výroby na SDS osazeno, rezistor R62 120R.
Pull-up tzn. první polovna klidového napájení je realizováno R61 10k (ze +3V3) do drátu A+.
Pull-down tzn. druhá polovina klidového napájení je realizována R59 820R (ze GND) do drátu B-.

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

5

Re: [vyřešeno] SDS Micro-ST komunikace 485

init
{
serial1_set(19200, 8, 1, 1);
}

main
{
text[0] = 0x01;
text[1] = 0x06;
text[2] = 0x00;
text[3] = 0x02;
text[4] = 0x01;
text[5] = 0x01;
text[6] = 0xE8;
text[7] = 0x5A;
serial1_write(0,0,8);
wait(3000);

Výstup ze simulátoru :

O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A 01 06 00 02 01 01 E8 5A  | ......čZ......čZ
O 01 06 00 02 01 01 E8 5A                          | ......čZ

výstup z reálu :

01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA 
01 86 80 02 01 01 68 DA

6

Re: [vyřešeno] SDS Micro-ST komunikace 485

A má to být 9600 nebo 19200 ?

Luděk C napsal:

serial1_set(19200, 8, 1, 1);

Každopádně ještě si to pro jistotu prověřím na fyzickém kusu, jestli tam něco není.

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

7 Naposledy upravil: Luděk C (2021-03-12 09:41:10)

Re: [vyřešeno] SDS Micro-ST komunikace 485

zkouším všechny rychlosti, ale jak již jsem psal už jsem zkoušel kde co, včetně výměny budičů a je to stále stejné.

na rychlostech 9600 - 115200 identické výsledky, budiče RS485, MAX3486CSA, MAX487EESA+, a nějaký, který jsem zapomněl asi TI75176. Chová se to identicky.

8

Re: [vyřešeno] SDS Micro-ST komunikace 485

Projdu to jestli tam není nějaký problém ve firmware... uvidíme

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

9

Re: [vyřešeno] SDS Micro-ST komunikace 485

Zdravím opět, asi se nezadařilo...?

10

Re: [vyřešeno] SDS Micro-ST komunikace 485

Ještě jsem se k tomu nedostal, buď dnes nebo přes víkend.

Ale podle toho výpisu bych to tipoval na něco špatného v konfiguraci, rychlosti, šířka dat, parita...
Zkuste si s tím pohrát na straně přijímače (zkoušet různá nastavení), jestli náhodou není nějaká kombinace.

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

11

Re: [vyřešeno] SDS Micro-ST komunikace 485

Jakmile pomocí převodníku USB 485, který je připojen na 485 mezi SDS a desku relé, odešlu data 01 06 00 02 01 01 E8 5A, relé sepne. A to při všech rychlostech od 1200 po 115520.  Podotýkám, že vždy parametry nastavení SDS, relé a SW komunikujícím s převodníkem logicky nastavuji na stejné hodnoty.

12

Re: [vyřešeno] SDS Micro-ST komunikace 485

Pointa příspěvku je v tom, vzít SDS a nechat ho posílat data, a na straně přijímače zkoušet najít takovou kombinaci (rychlost, parita, atd.) která by ukázala původní správná data. Je to postup založený na tom, že ten uvedený záchyt vypadá právě přesně tak, jakoby vysílač (sds) byl na jiné konfiguraci než přijímač (usb rs485). Aby se ta hypotéza ověřila, je to potřeba vyzkoušet. Pokud se taková kombinace najde, pak je problém buď v sds nebo v sds-c programu v sds. Pokud ne, tak je třeba hledat dál. Pořád to může být chyba v sds, nebo jinde... ale k tomu to najít se teprve dostanu. Do té doby máte možnost provést ten úvodní test, jak je popsáno výše.

Luděk C napsal:

Podotýkám, že vždy parametry nastavení SDS, relé a SW komunikujícím s převodníkem logicky nastavuji na stejné hodnoty.

A to je přesně předpoklad, který může být chybný.
Je potřeba ověřit, že tomu tak skutečně je. Nejspíše jste to už ověřili na straně převodníku a desky s relé. Teď ještě to sds.

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

13

Re: [vyřešeno] SDS Micro-ST komunikace 485

Nejbližší výsledky jsou s serial1_set(rychlost, 9, 1, 1), to jste mi označil za chybné. Sem-tam se objeví správná kombinace, ale relé stejně nereaguje. S nastavením serial1_set(rychlost, 8, 1, 1)  jsou naopak výsledky konzistentně chybné u 06 , kdy přijmu 86 , 00 kdy přijmu 80 atd...

Nicméně relé po akci vrátí totéž zpět a při shodném nastavení převodníku i relé to UART monitor přijme korektně. Opticky na paměťovém osciloskopu se na na začátku třetího čtyřbitu jeví jako 0000000100010110. Kolega co umí obsluhovat osciloskop ale marodí a příliš jistoty nemám že skutečně koukám na to, co si myslím, že hledám.

14

Re: [vyřešeno] SDS Micro-ST komunikace 485

Jak jsem psal, předpoklad byl ale skutečnost se zdá být jiná.

Vzal jsem SDS, nahrál do něj zde uvedený  program, a připojil to přes USB-485 převodník do PC.
Tam jsem spustil terminál (realterm, ale to je celkem jedno) a postupně přepínal nastavení, až jsem našel takovou kombinaci, která ukázala v terminálu takový výstup jaký je původně očekáván (tzn. "shoda" s tím jak je sds uvnitř zrovna nastaveno).
Tím jsem zjistil, že SDS se starším firmware totiž, podle tohoto testu, vysílá s even paritou (8E1), i když to není přes serial1_set nastaveno.

Toto je opraveno v novém firmware, aktualizujte si svůj modul.

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

15

Re: [vyřešeno] SDS Micro-ST komunikace 485

Funguje vám to s novým FW tak jak má ?

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

16

Re: [vyřešeno] SDS Micro-ST komunikace 485

Ano, funguje dle očekávání.