====== SSCP protokol ====== Regulátory systému Mervis umožňují základní komunikaci a správu prostřednictvím protokolu SSCP. Kompletní popis technických detailů tohoto protokolu je dostupný v souboru: {{:cs:mervis-ide:sharkprotocolspecification_user_2017_05_30.pdf|SSCP description}}. ===== 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ý rámec (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 rámec 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 inicializaci komunikace ověření. * Podpora [[:cs:mervis-proxy:00-start|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 "zastaralé". ===== 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 se zaručenou atomicitou. * Každá proměnná je identifikována komunikačním ID. * 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í). ===== .NET SDK ===== * K dispozici je SDK s .NET knihovnami. Lze stáhnout {{ :en:mervis-ide:30-communication-protocols:netsscpsdk.zip |zde}}.