Komunikace Simatic S7-1200 a RS485 s protokolem Modbus RTU

  • středa, 24 červen 2015 04:00

Modbus RTU komunikační protokol umí spousta různých zařízení, nepotřebujete Profibus, natož Profinet, stačí běžná RS485. Vyzkoušíme si jak na něj z PLC Simatic.

Tohle je protokol, který umí snad každé zařízení s nějakou komunikací. Relativně jednoduchý a levný. RS485 není zase až tak pomalá linka a pro hodně zařízení je naprosto dostačující. Jen to nějak dokázat z PLC Simatic.


Vyzkoušíme si to prakticky z reálné situace. Převodník FLOMAG 3000 pro zpracování signálu z indukčních průtokoměrů brněnské firmy FLOMAG a PLC Simatic S7-1200.

Modbus RTU Simatic S7-1200


RS485 komunikačních procesorů pro řadu PLC S7-1200 je více, tento CB1241 je určen k osazení přímo na čelní stranu PLC. Při ceně cca 65,-EUR je to jedna z nejlevnějších variant komunikace. 

Existuje ještě verze procesoru jako samostatný velký modul CM1241 připojený k PLC z levé strany.

Modbus RTU Simatic S7-1200


Ovšem aby vše řádně fungovalo je nezbytný pro TIA portal V13 ještě SP1. Update 2 již není nutný.

Modbus RTU Simatic S7-1200


Máme totiž k dispozici jen Simatic S7-1200 s firmwarem 4.1.1, a to najdeme právě jen ve zmíněném SP1.

Klikněte na obrázek pro zvětšení.

Modbus RTU Simatic S7-1200


Je dobré si ověřit v online diagnostice jaký firmware v PLC máme, právě nově dodávaná CPU, již mají verzi 4.1.1. V opačném případě stáhneme soubor s firmwarem 4.1.1 z webu podpory Siemens a aktualizujeme jej.

Modbus RTU Simatic S7-1200


Hardwarově osadíme do Simatic také CB 1241 a předběžně nastavíme parametry portu (bity, paritu, atd.).

Modbus RTU Simatic S7-1200


Převodník Flomag 3000 s osazeným RS485 komunikačním modulem, protokol Modbus RTU (Remote Terminal Unit).

Modbus RTU Simatic S7-1200


Funkční bloky pro tento druh komunikace jsou v SP1 vylepšeny. Tyhle trojkové verze v základním TIA portal V13 nenajdete. My použijeme jen blok pro parametrizaci portu a master komunikaci. Bloky používají acyklickou komunikaci, což znamená, že si je spouštíme podle potřeby, v žádném případě ne v každém cyklu programu.

Slave z našeho PLC dělat nebudeme.

Modbus RTU Simatic S7-1200


Tento blok s parametrizací RS485 portu si vyvoláme jen jednou při startu PLC. Pokud potřebujeme změnit nějaký parametr komunikace, který není zde dostupný, musíme to udělat v systémovém datovém bloku funkce.

Klikněte na obrázek pro zvětšení. 

Modbus RTU Simatic S7-1200


Naše PLC je Modbus master s adresou 0, připojený průtokoměr má adresu 1. Registr s adresou 40089 je již záležitost připojeného slave, podle popisu protokolu musíme vědět "co kde je". Na této adrese 40089 jsou u Flomag 3000 sekundy vnitřních hodin, takže budeme vidět, jestli nám spojení funguje. Jakákoliv porucha v komunikaci nebo nesprávná data, nám zobrazí stavové slovo, klíč je v helpu.

Klikněte na obrázek pro zvětšení. 

Modbus RTU Simatic S7-1200


Stejně tak v helpu najdeme tabulku pro funkční kódy a adresy do programového bloku.

Klikněte na obrázek pro zvětšení. 

Modbus RTU Simatic S7-1200


Už to frčí jako po másle. PLC vyšle do slave telegram na přečtení proměnné a data se téměř okamžitě objeví v patřičném datovém bloku.

Modbus RTU Simatic S7-1200


Požadavek pro přečtení proměnné, hodnotu sekund  ze systémových hodin Flomag 3000, vyvoláme jednou za dvě sekundy, takže se hodnota přesně po dvou sekundách změní.

Modbus RTU Simatic S7-1200


Takhle pak vypadá komunikace zachycená osciloskopem, 2V/cm, časovka 2ms. Vysílání a příjem.

Modbus RTU Simatic S7-1200


 

Závěr: 

Díky funkčním blokům a diagnostickým slovům nemusíme vytvářet žádné složité telegramy a kontrolovat součty, vše si v podstatě dělá PLC samo. Na nás zbývá jen vyplnit správnou adresu registru a hodnotu proměnné.

Jaroslav Blažek


Doplňující odkazy k článku:

CPU Simatic S7-1200: http://stest1.etnetera.cz/ad/current/index.php?vw=0&ctxnh=5dc8474325&ctxp=home

Indukční průtokoměry FLOMAG: http://www.flomag.cz/                 

Blaja automation portal

1 komentář

  • Odkaz Komentáře Martin Vašíček pondělí, 18 květen 2020 11:02 napsal(a) Martin Vašíček

    Řešil jste použití funkčních bloků "Modbus" a "Modbus (RTU)"? Při použití "Modbus (RTU)" se mi nedaří zprovoznit ani parametrizaci RS485 (blok comm_load).

    Neřešil jste někdy tento problém?

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