Pro společnost CeProgress jsem řešil instalaci programu PLCComS od splečnosti Teco a.s. PLCComS je to jednoduchá aplikace běžící pod Windows/Linux, která po TCP/IP komunikuje s PLC automatem řady Foxtrot pomocí protokolu EPSNET. Nadefinované proměnné přenese z PLC zařízení a dále je dokáže vypsat na portu 5010 pomocí telnetu a jednoduchého textového protokolu.
root@server:~$ telnet localhost 5010
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GETINFO:
GETINFO:VERSION,Ver 2.9 Aug 23 2012 14:09:38
GETINFO:VERSION_EPSNET,Ver 1.8 Aug 23 2012 13:22:47
GETINFO:VERSION_INI,Ver 3.2 Apr 24 2012 08:36:13
GETINFO:VERSION_PLC,CP1020K B 2.7 7.4
GETINFO:IPADDR_PLC,192.168.5.60
GETINFO:PUBFILE,2/82 [FIXED_Foxtrot.pub,//Hlavni_m.pub]
GETINFO:NETWORK,1/10 [127.0.0.1]
GETINFO:
...
EN:TOPENI_STAVY_2NP[211].POZTEPLOTA
GET:TOPENI_STAVY_2NP[211].POZTEPLOTA
GET:TOPENI_STAVY_2NP[211].POZTEPLOTA,10.000000
Rozhodl jsem se hodnoty z čidel zaznamenávat do Zabbixu a patřičně dále data reportovat skrze grafy. Zabbix disponuje monitorovacím typem - Telnet agent, který, bohužel vyžaduje autentizaci. A bez ni se mi Item pro hodnotu nepovedlo nastavit. PLCComS autentizaci nemá implementovánu. Pro získání hodnot jsem si napsal jednoduchý Perl script, využívající modul Net::Telnet. Na server, kde běží aplikace se ze Zabbixu přihlašuji pomoci SSH agenta a pouštím perlový script, který Telnet modulem ziska patřičné hodnoty.
Bylo by dobré, kdyby společnost Teco a.s. tento svuj SW vylepšila o Telnet s autentizaci. A ještě lepší by bylo implementovat protokol SNMP a možnost mapovat proměnné přímo na hodnoty získatelné pomocí MIBu, ale to jsem moc náročnej.
Jako další úkol si zadávám pomocí Zabbix API a patřičné PHP knihovny vykreslit grafy na jiném web serveru serveru než kde běží Zabbix.
Charitativní orientační závod MTB
-
Závod se koná 4.10.2024, start 15:00 v Černé Vodě, startovné dobrovolné
500,- na učet 11559889/5500
před 2 dny