Všechny diagnostické údaje o periferii se získají zavoláním systémové funkce Siemens, která je v každém PLC. Podrobný popis je v obsáhlém manuálu o ET200S, ale vytáhl jsem z něj jen těch několik podstatných stránek s popisem významu jednotlivých bitů. Určitě si jej přečtěte tady. Vyplyne z toho, že veškeré info se uloží do zvoleného PLC prostoru 64bytes. Udělal jsem tedy 64bytes velký datový blok s popisy jednotlivých bytes. Všem zájemcům jej věnuji, aby jste nemuseli každý byte pracně popisovat jako já. Je ke stažení na downloadu v sekci PLC. A jak to udělat si ukážeme níže, aspoň to ani já nezapomenu.
Pokusná sestava, kde je zatím vše v pořádku. Není nad to si nové věci vyzkoušet u kafe na stole. Fotka je pouze z mobilu, nemám baterky do foťáku, jedná se jen o informaci a ne o umělecké díla.
Na ET200S je vidět na profibusovém připojení konektor Erni bez přepínačů - žlutý jako koncový. O těchto konektorech je zmínka tady.
|
|
V HW konfiguraci je použitý IM151-1 Standard. To je důležité, protože pro IM151-1 Basic je strukura dat jiná, kratší. Ale to bude vidět níže a je to popsáno v manuálu.
|
|
Protože se vše provádí přes diagnostické adresy, je třeba si ji najít a někam poznačit. "Diagnostic Address" je ve vlastnostech periferie, tady konkrétně 1022.
|
|
Zavoláme někde v programu SFC13. Funkce není cyklická, tedy vrátí stav periferie jen na požadavek, změnu na "REQ". Já jsem ji vyvolával 1x za vteřinu nějakým blikacím merkrem. "LADDR" je diagnostická adresa uvedená výše v HEXa. A hlavně na "RECORD" je prostor, kam funkce "vrhne" informace o stavu periferie. Konkrétně do DB10.
|
|
Protože je vše OK tak v DB10 jsou hodnoty jednotlivých bitů tak jak mají být. Detaily si ověřte v patřičné části systémového manuálu k ET200S tady.
Pro zajímavost v DB10.DBB0 je stav linky, připojení k masteru atp. A v DB10.DBB7 každý bit informuje o stavu jednotlivých modulů, uvidíme níže.
|
|
Tady je část už okomentovaného datového bloku pro zápis stavu ET. První byte na nule = vše je OK. Jak je uvedeno v úvodu, všem zájemcům tento okomentovaný DB věnuji.
|
|
Vytrhneme za chodu jeden modul a zjistíme co se stalo. BF červený SF červená ale co dál?
|
|
Tak a je to tady. V DB10.DBB0 už jsou tři poruchy, detaily si z manuálu zjistěte za domácí úkol. A hlavně v DB10.DBB7 třetí bit říká že je porucha na třetím modulu periferie.
Dále se dá ještě přečíst v dalších bytes jaká je to porucha, zda vadný modul, chybí modul, nebo špatný typ modulu proti HW konfiguraci. Vyzkoušel jsem to, opravdu to funguje.
|
|
Tady je varianta přes OB86, kde se zapíše porucha i s adresou periferie. Hlavní rozdíl proti použití SFC je ten, že tady se data neaktualizují, tedy po vyhodnocení poruchy je nutno znovu do OB86 zapsat počáteční stav. Nelze tedy lehce eliminovat občasné výpadky na lince.
|
|
Závěrem : Původně jsem nepřikládal význam rozdílu obou variant diagnostiky, tedy přes OB86 nebo SFC13. Výsledek byl pořád stejný, někde je chyba. Ovšem detailnějším prozkoumáním se při použití SFC13 otvírají mnohem elegantnější možnosti. A samozřejmě ještě kombinací obou variant, třeba zavolat si SFC13 jen po vyhodnocení poruchy periferie v OB86 atp.
|