Téma: [vyřešeno] problém RS485 komunikace
Potřeboval bych poradit se syntaxí sériové komunikace po RS485 pro ovládání externího relé (resp. bloku 32 relé). Primárně bych chtěl používat serial1_text_out() kvůli omezení délky kódu.
Příklad 1:
text[1] = 0x01;
text[2] = 0x06;
text[3] = 0x00;
text[4] = 0x01;
text[5] = 0x01;
text[6] = 0x00;
text[7] = 0xD9;
text[8] = 0x9A;
serial1_write(0, 1, 8);
Příklad 2:
serial1_text_out(0x01, 0x06, 0x00, 0x01, 0x01, 0x00, 0xD9, 0x9A);
Pokud jsem já správně pochopil wiki, tak tyto dva kusy kódu by měly resultovat v identickou komunikaci. V SDS-C simulátoru to tak opravdu je. Konkrétně vyleze (HEX) "01 06 00 01 01 00 D9 9A" resp znaky "......Ůš". Problém je, že to tak není ve skutečnosti. Ve skutečnosti tato komunikace nastane pouze při použití kódu z příkladu 1. Příklad 2 vygeneruje úplně jinou komunikaci, a to (HEX) "31 36 30 31 31 30 32 31 37 31 35 34", což je ve znacích "160110217154".
Samozřejmě si nelze nevšimnout podobnosti těch výstupů. Výstup ve znacích z příkladu 2 vypadá (první část) jako hexa výstup z příkladu 1.
Může mi někdo vysvětlit důvod, proč je výstup simulátoru a výstup ve skutečnosti takhle liší?