• Blaja
  • Archiv
  • Záznam sériové komunikace CP341-RS232 z PLC Simatic S7-300

Záznam sériové komunikace CP341-RS232 z PLC Simatic S7-300

  • pátek, 15 únor 2008 03:00

 Logo software Záznam sériové komunikace CP341-RS232 z PLC Simatic S7.

Zařízení na sériovém portu komunikačního procesoru s atypickým protokolem, vyžaduje přesnou skladbu vysílaných znaků, ale hlavně možnost si tento telegram odchytit a ověřit. 

To se ukázalo jako hlavní nutnost pro odladění komunikace, včetně správnosti kontrolních součtů. Taky je třeba zvolit vhodný CP, který umožňuje vytvoření uživatelského protokolu. Není to zas tak složité, ale chybky se udělají a ty nejdou v PLC nijak vidět. Proto nastoupí možnost pro programy, které umí dění na RS232 odchytit a zaznamenat. Jsou skutečně nepostradatelné, existuje jich celá řada, ale mě se nejvíce osvědčil níže popsaný volně šiřitelný produkt. Pro jistotu jsem jej dal i na download, stojí opravdu za to.


Pro mé zařízení (bylo to nějaké zobrazování dat, to ovšem není důležité) je vhodný CP341 do řady S7-300.

1kB

Při rozbalení CP vypadne CD, z kterého si nainstalujte podporu, tedy "Point To Point spojení" včetně příkladů. Tam najdete komunikační bloky Siemens pro obsluhu procesoru při použití různých protokolů. Tyhle bloky nejsou součástí Stepu 7, jsou na CD u procesoru, nebo na webu Siemens jako celé CD a nebo tady na downloadu. Pak už v HW konfiguraci vybereme protokol. Pro uživatelsky definovaný je ti ASCII. Některé CP si právě i do ASCII protokolu natvrdo vrazí na první znak STX, tedy obvykle začátek komunikace. To ovšem nebylo pro moje zařízení přípustné, proto jsem vybral CP341, který umožní opravdu poskládat znaky tak jak potřebujete.

Jestli máte správně nainstalováno "Point To Point spojení", tak po klliknutí na obálku "Protocol" se otevře okno se základní definicí protokolu.

8kB

Teď už klasicky rychlost, počet datových bitů, stop bitů, paritu atd. To jsou základní věci které je nutno znát o druhém zařízení a podle toho nastavit. Je vidět že třeba na konec telegramu si můžete zvolit jaký koncový znak se tam má přidat atp. Nic z toho jsem nevyužil, uživatelské je uživatelské. 10kB

Tak a obsluhou sériového portu na CP341 se nemusíme zabývat, stačí celý protokol včetně dat naskládat po bytes do jednoho DB, a Siemens blok se už postará o to, aby data vyrazila po sériové lince k cíli. Jestli tam ale opravdu dorazí a jak, je už otázka pro zmíněný prográmek na monitorování sériového portu.

Vpravo je část protokolu s vysílanými znaky, uvidíme jestli znaky budou běhat i po lince.

Ještě připomínám, že dost často je vyžadováno před vysláním dat spočítat kontrolní součet všech znaků, který bývá obvykle funkce XOR každého předchozího znaku v telegramu. To je záležitost řešená v programu PLC přípravy dat na vysílání.

12kB

A teď už konečně k tomu správnému programu. Nejvíce se mě osvědčil "Terminal v1.9b", který je sice starší, autor jej už neinovuje, což je veliká škoda, chtělo by to pár vylepšení. Nic se neinstaluje, stačí program spustit z adresáře kde je umístěný.

11kB

Jedno velké okno programu a tam je vše. Nahoře nastavíme parametry komunikace a COM port PC, který je připojený do COM portu CP341. Je vhodný 5-ti žílový kabel i pro signály DTR a DSR. Dáme "Connect" a v horní polovině okna okamžitě vidíme jaké data a v jakém pořadí přišla. Text je stejný jako v DB v Simaticu. Znaky na začátku a konci jsou speciální řídíci znaky pro danné zařízení + kontrolní součet. Výborná je možnost logovat telegram do souboru a ten si pak prohlížet.

V dolní polovině okna je zase možnost odeslat uživatelsky definované znaky zpět, jako např. ANO12.

 

15kB

Tady je škoda, že na rozdíl od příjmu, kde si nastavíte formát zobrazení telegramu (HEX nebo String a pak i decimálně, binárně,..), při odeslání jsou čísla jen v jednom formátu, tedy např. znaky ACK atp. se nedají napsat. Musíte si je "najít" a uložit jako makro. To je věc, která by vylepšením přivedla tento prográmek k dokonalosti. No, nikdo zase není dokonalý.


Příjem dat od RS232 opět zajistí blok Siemens, který tyto data "vrhne" do určeného DB, tady konkrétně do DB95. V něm je přesně vidět struktura dat které přišla od komunikačního partnera. Tohle jsou znaky odeslané z programu "Terminal", běžně pak zařízení jen odpovídalo znakem ACK, nebo NAK, tedy rozumím zprávě a nerozumím zprávě. V hexa ASCII tabulce je to číslo 06 a 15.

10kB

Závěr : Nebojte se komunikace, výše uvedeným způsobem si vše vyzkoušíte a odladíte doma na stole. A u zařízení už jen kontrolujete jak to hezky běhá, pokud se vše podařilo odladit bez chyby. Ještě jedna příjemná funkce, prográmek po stisknutí tlačítka "ASCII table" otevře okno s kompletní ASCII tabulkou několika formátů. Znalost ASCII tabulky je pro sestavení protokolu nezbytná.


Pro psaní komentářů se přihlašte

Kontakt

email : blaja @blaja.cz
email reklama: info @blaja.cz
email adresy bez mezery 
před zavináčem

Jaroslav Blažek
Štěpánská 1888
755 01 Vsetín
+420 608 180 209