Uživatelské nástroje

Nástroje pro tento web


public:anybus:ctecka_profinet

Jak připojit čtečku čárového kódu do sítě profibus

Představte si situaci, kdy potřebujete do stávající sítě profinet připojit čtečku čárového kódu se sériovým rozhraním RS-232. Čtečka funguje tak, že při každém úspěšném naskenování čárového kódu, tento kód odešle na seriový port. Potřebujeme tedy nakonfigurovat Anybus tak, aby čekal na seriovém portu na řetezec dat, jakmile tento řetězec dorazí tak z něj extrahovat data (naskenovaný kód) a poskytnout je na profibus rozhraní. Zároveň by měl nadřízenému systému dát vědět, že je k dispozici nově naskenovaný kód.

Jedná se o tento případ:

maxresdefault.jpg

Pro náš případ tedy budeme potřebovat Anybus, který dokáže přenášet data ze sériového portu s obecnným ASCII protokolem na sběrnici profibus, kde bude v roli slave. Pomocí průvodce a zadáním potřebných rozhraní na obou stranách, získáme potřebný model Anybus.

V našem případě tedy budeme potřebovat AB7000

Ke konfiguraci použijeme Anybus configuration manager.

Jako první musíme zvolit správný typ sběrnice, ke které budeme Anybus připojovat. V našem případě bude Anybus v roli profibus slave tzn. zvolíme PROFIBUS-DP.

V druhém kroku volíme v jakém režimu (1) bude fungovat sériový port na který budeme připojovat čtečku čárového kódu. Na výběr je Master mode (AnyBus by vysílal dotazy do připojeného zařízení a očekával by odpovědi), Generic data mode (Anybus bude pouze poslouchat příchozí data na seriovém portu) a poslední možností je DF1-Master mode (pro připojení zařízení používající DF1 protokol). Našemu zadání odpovídá Generic data mod (čtečka odesílá data automaticky při úspěšném naskenování kódu).
Volbou (2) povolíme počítání příchozích zpráv ze čtečky a umístění hodnoty čítače v paměti Anybus. Při tomto nastavení se bude automaticky inkrementovat hodnota na adrese 30h při každém úspešném načtení kódu.

Dále je potřeba nastavit, parametry komunikace se čtečkou (1) rychlost komunikace a formát dat. Dále by šlo nastavit kterýcm znakem začíná, nebo končí jednotlivé bloky dat, nebo to lze zjednodušit a nastavit minimální dobu mezi jednotlivými bloky (2). V našem případě jsme nestavili 100x10uS = 1 ms. Tzn. pokud v příchozích datech mezera 1 ms, bude se to brát jako nový scan.

Další nastavení se týká definice formátu dat, které připojené zařízení posílá. V našem ukázkovém připadě budeme počítat s tím, že čtečka odesílá data ve formátu ASCII a každý oskenovaný kód bude začínat znakem #. Vytvoříme si tedy transakci typu Consume.

Do jejího těla přidáme dvě pole. První pole bude představovat očekávaný znak # tzn. konstanta 23h (ASCII hodnota znaku #)

a jako druhou položku dáme položku Variable data která bude obsahovat naskenovaný kód. U této položky již musíme zadat (1) adresu paměti a velikost paměti, kterou bude pro tato data rezervovat. V našem případě bude maximální délka naskenovaného kódu 48(30 hex) znaků a bude se ukládat od adresy 0. Volbou (2) nastavujeme jakou hodnotou budou vyplněna paměťová místa pro kódy kratší než 48 znaků.

Na následujícm obrazků je vidět rozložení paměťového prostoru. Na prvních 48 bytech je naskenovaný kód a na pozici 49 je počítadlo scanů.

Detailní postup je v následujícím videu:


Zpět

public/anybus/ctecka_profinet.txt · Poslední úprava: 2021/03/16 15:22 autor: friml