====== Použití protokolu IEC 60870-5-104 ======
#;;
Patron
Gate
#;;
Mervis RT disponuje funkcionalitou IEC 60870-5-104 serveru pro zpřístupnění dat třetím stranám. Používá se například pro regulaci výkonu výroben elektrické energie zapojených do sítě distributora.
===== Důležité informace =====
Pro fungování protokolu IEC 60870-5-104 je vyžadována aktivace Mervis RT pomocí rozšířené licence, jež zahrnuje i tento protokol. Pro její získání kontaktujte [[https://www.unipi.technology/cs/kontakty|obchodní oddělení Unipi]].
**Certifikováno pouze pro ČEZ** distribuci a použití s kontroléry Patron a Gate. Na jiných platformách aktuálně není možné protokol IEC 60870-5-104 využít.
===== Nastavení v Mervis IDE =====
Stejně jako v případě jiných protokolů je pro použití protokolu IEC 60870-5-104 potřeba definovat na úrovni PLC serverový kanál odpovídajícího typu.
Přidáme nový serverový kanál:
{{:cs:sw:01-mervis:iec-60870-5-104-server:add-server.png?direct|Přidání serverového kanálu}}
Jeho protokol nastavíme na IEC 60870-5-104 a nastavíme požadované [[#serverovy_komunikacni_kanal|parametry protokolu]].
{{:cs:sw:01-mervis:iec-60870-5-104-server:set-protocol.png?direct|Nastavení protokolu a parametrů IEC}}
Nyní přidáme serverové zařízení, rozklikneme jej a můžeme nastavit jeho [[#zarizeni|parametry serveru]] a přidat [[#datovy_bod|datové body]].
{{:cs:sw:01-mervis:iec-60870-5-104-server:add-device.png?direct|Přidání serverového zařízení a datových bodů}}
Na kanále může být dále definováno jedno nebo více zařízení, lišících se v nastavené Common Address (ASDU) a TCP portu.
===== Serverový komunikační kanál =====
* **Povolit** - True/False
* **Linkový protokol** - pouze TCP
**Parametry protokolu IEC 60870-5-104**
* **Maximální počet nepotvrzených APDU (K-value)**
* **Maximální počet nepotvrzených APDU (W-value)**
* **Časový limit potvrzení (t1)** - časový interval
* **Časový limit potvrzení prostřednictvím S-frame (t2)** - časový interval
* **Časový limit testovacího rámce (t3)** - časový interval
* **Zkontrolovat maximální zpoždění řídicích příkazů** - True/False
* **Maximální zpoždění řídicích příkazů** - časový interval
* **Přemapování typů pro dotazování** - True/False
* Při úvodním dotazování (interrogation) budou nahrazeny datové typy s časovou známkou datovými typy bez časové známky
===== Zařízení =====
Ve vlastnostech zařízení jsou parametry pro připojení klientů k serveru:
* **Povolit** - True/False
**TCP Parametry**
* **IP adresa**
* Adresa síťového rozhraní, na kterém má server naslouchat. Aktuálně podporována jen hodnota 0.0.0.0 pro všechna rozhraní.
* **Port** - TCP port, na kterém server naslouchá. Výchozí hodnota **2404**
**Parametry protokolu IEC 60870-5-104**
* **Společná adresa (ASDU)**
===== Datový bod =====
**Parametry datového bodu IEC 60870-5-104**
* **Adresa identifikačního objektu**
* **Typ identifikačního objektu**
* **Mapovaná proměnná**
===== Podporované datové typy =====
^ M_SP_NA_1 [1] | Single point information |
^ M_SP_TA_1 [2] | Single point information with time tag |
^ M_DP_NA_1 [3] | Double point information |
^ M_DP_TA_1 [4] | Double point information with time tag |
^ M_ST_NA_1 [5] | Step position information |
^ M_ST_TA_1 [6] | Step position information with time tag |
^ M_BO_NA_1 [7] | Bitstring of 32 bits |
^ M_BO_TA_1 [8] | Bitstring of 32 bits with time tag |
^ M_ME_NA_1 [9] | Measured normalized value |
^ M_ME_TA_1 [10] | Measured normalized value with time tag |
^ M_ME_NB_1 [11] | Measured scaled value |
^ M_ME_TB_1 [12] | Measured scaled value with time tag |
^ M_ME_NC_1 [13] | Measured short floating point value |
^ M_ME_TC_1 [14] | Measured short floating point value with time tag |
^ M_ME_ND_1 [21] | Measured normalized value without quality descriptor |
^ M_SP_TB_1 [30] | Single point information with CP56Time2a time tag |
^ M_DP_TB_1 [31] | Double point information with CP56Time2a time tag |
^ M_ST_TB_1 [32] | Step position information with CP56Time2a time tag |
^ M_BO_TB_1 [33] | Bitstring of 32 bits with CP56Time2a time tag |
^ M_ME_TD_1 [34] | Measured normalized value with CP56Time2a time tag |
^ M_ME_TE_1 [35] | Measured scaled value with CP56Time2a time tag |
^ M_ME_TF_1 [36] | Measured short floating point value with CP56Time2a time tag |
^ C_SC_NA_1 [45] | Single command |
^ C_DC_NA_1 [46] | Double command |
^ C_RC_NA_1 [47] | Regulating step command |
^ C_SE_NA_1 [48] | Set-point command, normalised value |
^ C_SE_NB_1 [49] | Set-point command, scaled value |
^ C_SE_NC_1 [50] | Set-point command, short floating point value |
^ C_BO_NA_1 [51] | Bitstring command, 32 bits |
^ C_SC_TA_1 [58] | Single command with CP56Time2a time tag |
^ C_DC_TA_1 [59] | Double command with CP56Time2a time tag |
^ C_RC_TA_1 [60] | Regulating step command with CP56Time2a time tag |
^ C_SE_TA_1 [61] | Set-point command, normalised value with CP56Time2a time tag |
^ C_SE_TB_1 [62] | Set-point command, scaled value with CP56Time2a time tag |
^ C_SE_TC_1 [63] | Set-point command, short floating point value with CP56Time2a time tag |
^ C_BO_TA_1 [64] | Bitstring command, 32 bits with CP56Time2a time tag |