MQTT client implementation in IEC 61131-3 compatible programming environment
Välimaa, Lauri (2017)
Välimaa, Lauri
2017
Automaatiotekniikan koulutusohjelma
Teknisten tieteiden tiedekunta - Faculty of Engineering Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2017-02-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tty-201701191063
https://urn.fi/URN:NBN:fi:tty-201701191063
Tiivistelmä
Collecting data from various sources is essential for systems which leverage the ideology and advantages behind Internet of Things (IoT). Expanding device support in such systems is crucial since it allows collecting data on wider scale but also from more diverse sources. Expanding device support is especially important in terms of novel IoT applications that would require data which just is not yet available.
Major goal in this work is to expand device support of existing IoT system. System in question is IoT-Ticket which is a commercial product developed by Wapice Ltd. It enables remote monitoring and control of connected devices in addition to analyzing of collected data and automatic reporting via web-based user interface.
In this work IoT-Ticket’s device support is to be expanded so that CODESYS (COntroller DEvelopment SYStem) compatible devices can be used as valid data sources for this system in the future. CODESYS enabled devices are primarily programmable logic controllers (PLC) that are used to control various industrial processes in different environments. CODESYS itself is a manufacturer independent programming environment which is compatible with IEC 61131-3 standard.
Support for CODESYS enabled devices was required to be developed using MQTT (Message Queuing Telemetry Transport) protocol. MQTT is open application level protocol based on publish-subscribe messaging pattern. In addition to this, it was also required that the data which is sent to IoT-Ticket must be encrypted when it is transferred over unsecure communication channel. Both of these requirements were achieved with MQTT client which was developed for CODESYS in this work. Data encryption in developed client was implemented using symmetric encryption. Datan kerääminen erilaisista lähteistä on keskeistä järjestelmissä, jotka perustuvat asioiden Internetin (engl. Internet of Things, IoT) taustalla olevaan ideologiaan ja sen tarjoamiin hyötyihin. Tällaisissa järjestelmissä laitetuen kasvattaminen on keskeisessä roolissa, sillä se mahdollistaa datan keräämisen laajemmassa mittakaavassa, mutta myös monipuolisemmin erilaisista lähteistä. Laitetuen kasvattaminen on tärkeää erityisesti uudenlaisten IoT-sovellusten kannalta, joiden tarvitsemaa dataa ei yksinkertaisesti ole vielä saatavilla.
Tämän työn keskeinen tavoite on laajentaa olemassa olevan IoT-järjestelmän laitetukea. Kyseinen järjestelmä on Wapice Oy:n kehittämä kaupallinen IoT-Ticket-niminen tuote. Se mahdollistaa järjestelmään liitettyjen laitteiden etäseurannan ja -ohjauksen sekä kerätyn datan analysoinnin ja automaattisen raportoinnin web-pohjaisen käyttöliittymän kautta.
IoT-Ticketin laitetukea tullaan laajentamaan tämän työn myötä siten, että CODESYS (COntroller DEvelopment SYStem) -yhteensopivia laitteita voidaan käyttää datalähteinä järjestelmälle tulevaisuudessa. CODESYS-yhteensopivat laitteet ovat pääasiassa ohjelmoitavia logiikoita (engl. Programmable Logic Controller, PLC), joita käytetään teollisten prosessien ohjauksessa erilaisissa ympäristöissä. CODESYS itsessään on valmistajariippumaton IEC 61131-3 -standardin mukainen ohjelmointiympäristö.
Vaatimuksena oli toteuttaa CODESYS-laitetuki käyttäen MQTT (Message Queuing Telemetry Transport) -protokollaa. MQTT on avoin sovellustason protokolla, joka perustuu julkaise-tilaa-kommunikointimalliin (engl. publish-subscribe pattern). Vaatimuksena oli lisäksi salata IoT-Tickettiin lähetettävä data, kun sitä siirretään suojaamattoman kommunikointikanavan yli. Molemmat näistä vaatimuksista täyttyivät MQTT-asiakasohjelmalla, joka kehitettiin CODESYS:lle tässä työssä. Datan salaaminen kehitetyssä asiakasohjelmassa toteutettiin symmetrisellä salausmenetelmällä.
Major goal in this work is to expand device support of existing IoT system. System in question is IoT-Ticket which is a commercial product developed by Wapice Ltd. It enables remote monitoring and control of connected devices in addition to analyzing of collected data and automatic reporting via web-based user interface.
In this work IoT-Ticket’s device support is to be expanded so that CODESYS (COntroller DEvelopment SYStem) compatible devices can be used as valid data sources for this system in the future. CODESYS enabled devices are primarily programmable logic controllers (PLC) that are used to control various industrial processes in different environments. CODESYS itself is a manufacturer independent programming environment which is compatible with IEC 61131-3 standard.
Support for CODESYS enabled devices was required to be developed using MQTT (Message Queuing Telemetry Transport) protocol. MQTT is open application level protocol based on publish-subscribe messaging pattern. In addition to this, it was also required that the data which is sent to IoT-Ticket must be encrypted when it is transferred over unsecure communication channel. Both of these requirements were achieved with MQTT client which was developed for CODESYS in this work. Data encryption in developed client was implemented using symmetric encryption.
Tämän työn keskeinen tavoite on laajentaa olemassa olevan IoT-järjestelmän laitetukea. Kyseinen järjestelmä on Wapice Oy:n kehittämä kaupallinen IoT-Ticket-niminen tuote. Se mahdollistaa järjestelmään liitettyjen laitteiden etäseurannan ja -ohjauksen sekä kerätyn datan analysoinnin ja automaattisen raportoinnin web-pohjaisen käyttöliittymän kautta.
IoT-Ticketin laitetukea tullaan laajentamaan tämän työn myötä siten, että CODESYS (COntroller DEvelopment SYStem) -yhteensopivia laitteita voidaan käyttää datalähteinä järjestelmälle tulevaisuudessa. CODESYS-yhteensopivat laitteet ovat pääasiassa ohjelmoitavia logiikoita (engl. Programmable Logic Controller, PLC), joita käytetään teollisten prosessien ohjauksessa erilaisissa ympäristöissä. CODESYS itsessään on valmistajariippumaton IEC 61131-3 -standardin mukainen ohjelmointiympäristö.
Vaatimuksena oli toteuttaa CODESYS-laitetuki käyttäen MQTT (Message Queuing Telemetry Transport) -protokollaa. MQTT on avoin sovellustason protokolla, joka perustuu julkaise-tilaa-kommunikointimalliin (engl. publish-subscribe pattern). Vaatimuksena oli lisäksi salata IoT-Tickettiin lähetettävä data, kun sitä siirretään suojaamattoman kommunikointikanavan yli. Molemmat näistä vaatimuksista täyttyivät MQTT-asiakasohjelmalla, joka kehitettiin CODESYS:lle tässä työssä. Datan salaaminen kehitetyssä asiakasohjelmassa toteutettiin symmetrisellä salausmenetelmällä.