Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
cs:mervis-ide:30-communication-protocols:10-sscp [2017/06/14 10:24]
m.chlupac
cs:mervis-ide:30-communication-protocols:10-sscp [2017/11/22 10:57] (aktuální)
Řádek 1: Řádek 1:
 ====== SSCP protokol ====== ====== SSCP protokol ======
  
-Regulátory systému Mervis (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: {{:cs:mervis-ide:sharkprotocolspecification_user_2017_05_30.pdf|SSCP description}}.+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 ===== ===== 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é".
  
-  * ethernet TCP resp. RS485 +===== Přenos hodnot proměnných =====
-  * každé zařízení má svoji SSCP adresu (SlaveId?+
-  * každá komunikovaná má svoji SSCP adresu (CommId) +
-  * každá proměnná má svůj typ (Int16, UInt, …?) +
-  *+
  
 +  * 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}}.
  • © Energocentrum Plus, s.r.o. 2017 - 2024