Jste zde

TEST – Převodník tenzometrických vážních snímačů TE485 – 2.díl

V 1. díle jsme si všeobecně představili český převodník tenzometrických snímačů TE485. Dnes se blíže prakticky podíváme na z pohledu konstruktéra strojů hlavní část, tedy komunikační rozhraní Spinel a Modbus RTU a jeho praktické používání pro ovládání a měření. Zpočátku se může zdát jeho použití docela složité, ale jakmile do ovládací struktury TE485 více proniknete, zjistíte, že prakticky se využívá jen několik jednoduchých příkazů. I když i zde jsou některé záludné "špeky", které je nutné vědět.

Ovládání a komunikace

Jak již bylo uvedeno v 1. díle, veškeré ovládání probíhá zasíláním příkazů přes sériovou sběrnici RS-485. Buď prostřednictví Papouch firemního protokolu SPINEL nebo pak přes standardizovaný protokol MODBUS RTU.  V obou případech při testování a potřebě nastavování  z PC je tedy nutné použít nějaký RS-485 převodník. Já osobně používám převodník RS485-USB Papouch SB485, u něhož je dvouvodičová sériová linka připojena na vstupy RxTx+ a RxTx-a DIP přepínači nastavený RS-485 režim a zapnuté zakončovací rezistory. Takto nastavený převodník fungoval s TE485 skvěle a bez problémů. Pokud je převodník připojený na programovatelný automat (PLC) je samozřejmě nejlepší přímo PLC vybavit RS-485 sériovým rozhraním, což je dnes vcelku běžné. Ale rozhodně pokud dostanete TE485 do ruky poprvé je lepší si komunikační strukturu a způsob čtení i ukládání dat a naměřených hodnot nejdříve osvojit prostřednictvím připojení na PC a využít Spinel či Modbus RTU master terminálový software k vyzkoušení a nalezení správné sekvence příkazů a naučení jejich syntaxe.

Společnost Papouch totiž pro ovládání TE485 z PC poskytuje zdarma hned dva velmi užitečné prográmky. A to SPINEL terminal, který umožňuje poměrně snadno se přes SPINEL na TE485 připojit nastavením příslušného COM portu, na který je připojený převodník RS485-USB, pak také tzv. Modbus configurator, což je utilita pro snadné přepnutí mezi komunikačními režimy Spinel a Modbus a také nastavení ID adresy dané konkrétní jednotky bez nutnosti "ručně" generovat poměrně složitou sekvenci příkazů.

Základní nastavení přes Modbus RTU configurator

Modbus RTU configurator by měl být prakticky prvním spuštěným softwarem při prvním napojení nebo napojení neznámé TE485 jednotky k PC. Umožňuje totiž nejdříve na sériové sběrnici RS-485 nalézt jednotku, zobrazit či i změnit její komunikační parametry, zobrazit číslo a verzi vnitřního firmwaru a zda má nastavený komunikační režim Spinel nebo Modbus.

Následně je možné změnit / libovolně nastavit identifikační ID adresu nalezené jednotky a přepnout na komunikaci Spinel či Modbus podle potřeby a vše do jednotky uložit. Po tomto kroku tedy vždy jasně víme, jak se můžeme na jednotku napojit pro samotné ovládání.

Komunikace s TE485 prostřednictvím protokolu SPINEL

Protokol SPINEL není nijak zvlášť složitý, ale svojí strukturou je trošku odlišný od protokolu Modbus. Lze se jej však poměrně snadno naučit. Přesto je pro nováčky se Spinelem nejlepší si jej osvojit z PC prostřednictvím Papouch terminálu Spinel. Ten se neinstaluje do Windows, ale spouští přímo z harddisku exe souborem. Lze jej tedy mít na USB Flash či kartě a snadno spustit na libovolném počítači.

Terminál Spinel prakticky tvoří jen jedno základní okno, které se také objeví hned po spuštění programu, přičemž zde pro rychlé vyzkoušení TE485 je nejdůležitější menu "File->New Connection..." pro navázání komunikace se sériovým COM portem, okno vlevo pro zadávání parametrů k vyslání a pravé velké okno pro zobrazení celých vyslaných i přijatých paketů. Vyslané pakety se vypisují zeleně, modře pak přijaté od slave jednotky, v mém případě TE485. A ještě bych zapomněl na tlačítko "Info" vlevo nahoře, které po jeho stisku vyšle "broadcast" spinel příkaz pro identifikaci jednotek na RS-485. Tím se dá snadno a rychle ověřit funkčnost přenosu dat mezi PC a spinel jednotkami a současně si zjistit jejich komunikační ID adresy. Po vyslání by totiž měla každá na spinel nastavená jednotka zpět poslat info o své adrese a názvu. Pokud nevyšle, je pravděpodobně něco špatně v jejím napájení či v samotném napojení sériové linky či nakonfigurování RS-485 převodníku.

Pokud tedy jednotka odpoví na Info příkaz, pak již lze začít s vysíláním ovládacích instrukcí, ať již pro změnu nastavení TE485 či čtení aktuální naměřené hodnoty. Složení a vyslání příkazového paketu se zde snadno provede zadáním příslušných údajů do levého okna, přičemž po prvním nastavení položky ADR, což je ID adresa dané cílové jednotky, pak již stačí jen měnit / zadávat potřebná data v zadávacích polích INST, tedy řídicí instrukce a případně SDATA, tedy hodnoty, se kterými má být instrukce vykonána či které se mají uložit do jednotky. SDATA ale často nejsou potřeba, například při vysílání instrukce čtení aktuální naměřené hodnoty, a pak se políčko nechává prázdné. Položky délka paketu "LEN" a hlavně kontrolní součet "SUM" (checksum) se mění sámy automaticky.

Zbyla nám políčka "PRE", tedy úvodní bajt, který je vždy "*", políčko "CR" definující ukončovací znak paketu a pak políčko "FRM" definující typ rámce paketu. U komunikačního protokolu SPINELu totiž máte na výběr zde dvou různých struktur rámce paketu podle toho, jaký formát chcete využívat. Jestli použijete  tzv. ASCII formát "66", kde jsou příkazy ve formě sekvence ASCII znaků nebo tzv. HEXA formát "97", kde jsou příkazy tvořeny sekvencí hexadecimálních čísel. Já osobně dávám přednost hexa formátu 97, který je sice méně šikovný při ovládání z PC, ale lepší pro naprogramování sekvence např. z PLC, kde práce s ASCII může být zdlouhavá. Formát "97" je tedy i na všech zde přiložených obrázcích a příkladech.

Struktura rámce spinel formátu "66" (vlevo) a formátu "97" (vpravo).

Ovládacích Spinel příkazů (instrukcí) v dokumentaci k TE485 je sice velmi mnoho, ale prakticky vystačíte jen s následujícími:

  • Instrukce INST „5Fh“ = získání aktuální tzv. RAW hodnoty zatížení snímače, tedy hodnotu z výstupu A/D převodníku bez započítání vynulované mrtvé hmotnosti.
  • Instrukce INST "51h" = získání aktuální hodnoty zatížení snímače se započítáním nastavení a nulové hodnoty.
  • Instrukce INST "E4h" = povolující zápis do Flash paměti jednotky TE485, je nutné jej vyslat před každou instrukcí nastavení jednotky (např. viz dále) a je platná právě jen na tu jednu následující instrukci.
  • Instrukce INST „14h“ + SDATA "0h" nebo "1h" nebo "2h" = volba citlivosti připojeného snímače k převodníku 2 mV/V, 5 mV/V nebo 10 mV/V.
  • Instrukce INST  „11h“ = nastavení aktuální nulové hodnoty (vynulování mrtvé hmotnosti váhy), tedy aktuální zatížení snímače se následně při vážení odečítá (při čtení instrukcí 51h).
  • Instrukce INST „12h“ + SDATA "xxxxh" = nastavení vážícího rozsahu / kalibrace převodníku, kde za "xxxx" se uvádí hodnota hmotnosti aktuálně odpovídající zatížení snímače. Tedy při kalibraci závažím se nejdříve na snímače položí dané závaží a následně vyšle toto instrukce s hexa hodnotu závaží například v jednotkách gram.

 

Příklad sekvence vysílání instrukcí pro kalibraci vážení převodníku:

  • Vyslat instrukci INST "E4h"
  • Vyslat instrukci INST „14h“ + SDATA "0h" nebo "1h" nebo "2h"
  • Vyslat instrukci INST "E4h"
  • Vyslat instrukci INST „11h“ při aktuálně váze v režimu "naprázdno", tj. bez vážených produktů.
  • Vyslat instrukci INST "E4h"
  • Vyslat instrukci INST „12h“ + SDATA "xxxxh" při zatížená váhy závažím o hmotnosti xxxx gramů či kilogramů (podle rozsahu snímače).

Pokud je každá instrukce převodníkem správně "pochopena" musí převodník ve vráceném paketu vždy uvést v 7. slově (na 7. pozici) uvedena číslice "00". Pokud je tam jiná hodnota (např. "02","03" nebo "04"), jde o chybu a instrukce nebyla provedena.

Komunikace s TE485 prostřednictvím protokolu Modbus RTU

Protokol Modbus RTU je celosvětově standardizovaný, takže zde stačí si jen z manuálu TE485 zjistit jaké zadávací / čtecí registry jsou v jednotce k dispozici a co jejich hodnoty znamenají a pak například využít libovolný Modbus master PC terminál (viz například terminály v seriálu testů o Modbus terminálech - viz odkaz MODBUS Master terminál ModScan32) pro vysílání standardních Modbus funkcí do modbus slave jednotky a sledovat odpovědi. 

Zde u TE485 jsou nejdůležitější následující adresy registrů:

  • Adresa 30001 = status převodníku
  • Adresa 30002 = hodnota zatížení (ekvivalent Spinel instrukci 51h)
  • Adresa 30003 = hodnota RAW zatížení (ekvivalent Spinel instrukci 5Fh)
  • Adresa 40001 = povolení zápisu do paměti - je nutné před každým zápisem do níže uvedených instrukcí zde vložit hodnotu hexa FF = dekadicky 255!!
  • Adresa 40017 = volba citlivosti připojeného snímače k převodníku 2 mV/V, 5 mV/V nebo 10 mV/V (ekvivalent Spinel instrukci 14h)
  • Adresa 40019 = ruční nastavení aktuální nulové hodnoty / vynulování mrtvé hmotnosti váhy (ekvivalent Spinel instrukci 11h)
  • Adresa 40020 = ruční nastavení hodnoty A/D převodníku odpovídající zatížení v 4021 (ekvivalent Spinel instrukci 12h)
  • Adresa 40021 = ruční nastavení hodnoty zatížení při kalibrace převodníku (ekvivalent Spinel instrukci 12h)
  • Adresa 40022 = funkce spuštění poloautomatického nulování či kalibrace (ekvivalent Spinel instrukci 11h i 12h)

 

Příklad sekvence vysílání funkcí do TE485 pro kalibraci vážení převodníku:

  • Zapsat Modbus funkcí č. 6 hodnotu "255 (FFh)" do 40001.
  • Zapsat Modbus funkcí č. 6 hodnotu "0", "1" nebo "2" do 40017.
  • Zapsat Modbus funkcí č. 6 hodnotu "255 (FFh)" do 40001.
  • Zapsat Modbus funkcí č. 6 hodnotu "0" do 4022 při aktuálně váze v režimu "naprázdno", tj. bez vážených produktů.
  • Zapsat Modbus funkcí č. 6 hodnotu "255 (FFh)" do 40001.
  • Zapsat Modbus funkcí č. 6 hodnotu "xxxxx" do 40021 odpovídající hmotnosti kalibračního závaží.
  • Zapsat Modbus funkcí č. 6 hodnotu "255" do 40001.
  • Zapsat Modbus funkcí č. 6 hodnotu "256 (100h)" do 40022 při reálném zatížení snímače závažím hodnoty zadané do 40021.

Při zápisu hodnot je opět nutné sledovat, zda slave jednotka TE485 nevrací chybové hlášení 03 nebo 04, které by znamenalo neprovedení nastavení.

Příklad čtení a zápisu nastavovacích  Modbus registrů v jednotce TE485 prostřednictvím počítačového softwaru MODBUS Master terminál ModScan32.

Závěr

Převodník tenzometrických snímačů pro měření zatížení (vážení), přestavuje velmi cenově výhodnou alternativu ke konkurenčním převodníkům, které se obvykle cenově pohybují i vysoko nad hranicí 5000,- Kč a přitom někdy ani o moc více prostředků nenabízejí. A to platí i včetně rozšiřujících modulů pro různá PLC. Z nich navíc v případě poruchy PLC žádná data obvykle nedostanete, přičemž zde TE485 bude stále nezávisle pracovat.

Pokud tedy potřebujete řešit levně průmyslové vážení s PLC či přímo s napojením na PC bez přemrštěných nároků na přesnost, zdá se být TE485 velmi dobrá volba.

Odkazy:

Hodnocení článku: