Differences
This shows you the differences between two versions of the page.
en:mervis-ide:30-communication-protocols:10-sscp [2017/06/19 14:37] m.chlupac |
en:mervis-ide:30-communication-protocols:10-sscp [2017/11/22 10:56] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== SSCP protocol ====== | ||
- | |||
- | Mervis controllers (a Merbon) umožňují základní komunikaci a správu prostřednictvím protokolu SSCP. Základní popis technických detailů tohoto protokolu je dostupný v souboru: {{: | ||
- | |||
- | ===== Základní charakteristiky ===== | ||
- | |||
- | * Protokol specifikován především na aplikační úrovni | ||
- | * V PLC je nyní implementován přenos po TCP a seriové lince. Částečně pak po UDP pro účely autodetekce a přenosu konfigurace. | ||
- | * Jednoduchá struktura přenosového rámce. | ||
- | * Bezpečně lze vypočítat délku rámce z hlavičky. | ||
- | * Pro různé fyzické vrstvy lze přidat hlavičky a patičky, vnitřní struktura zůstává stejná. | ||
- | * Každý telegram (kromě broadcastových) s sebou nese informaci o adrese cílového zařízení (8 bit slave ID). Pouze PLC s odpovídajícím ID na telegram odpovídá. | ||
- | * Využití pro veškerou komunikaci s PLC | ||
- | * Přenos statistik a nastavení, detekce PLC, přenos hodnot, vzdálené ladění PLC programu. | ||
- | * Umožňuje vyjednání délky přenosových bufferů mezi jednotlivými stranami, vyžaduje při jinicializaci komunikace ověření. | ||
- | * Podpora Mervis Proxy. | ||
- | * Protokol je verzován. Novější verze vždy podporuje i předchozí funkce, ale je silně doporučeno nevyužívat funkce označené jako " | ||
- | |||
- | ===== Přenos hodnot proměnných ===== | ||
- | |||
- | * Protokol podporuje přenos dlouhých bloků paměti. Pokud se hodnota proměnné nevejde do vyjednaných bufferů, přenese se pomocí stavového přenosu delších dat. | ||
- | * Každá proměnná je identifikována komunikačním ID. ID se může měnit (vývojové prostředí ho změní) v případě, že u proměnné dojde ke změně typu nebo jména. | ||
- | * Přenos hodnot je implementován jako přenos paměťové oblasti, kde je proměnná uložena. Lze definovat offset od začátku hodnoty proměnné a její délku. To je vhodné pro případy, kdy se například mění pouze jedno číslo ve složitější struktuře (pole, struktura, funkční blok). | ||
- | * Je nutné znát layout paměti. Ten se řídí standardními pravidly o zarovnávání proměnných dle paměťové náročnosti typu (1-8 bajtové zarovnání). | ||
- | |||