Virtuaalisen työkoneen ohjaus Codesys-ohjaimella
Montén, Niko (2019)
Kandidaatintyö
Montén, Niko
2019
School of Energy Systems, Konetekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2019090627068
https://urn.fi/URN:NBN:fi-fe2019090627068
Tiivistelmä
Tässä kandidaatintyössä päätavoitteena oli löytää yhteysratkaisu reaaliaikaiseen tiedonsiirtoon MeVEAn ja Codesyksen välille. Tämä mahdollisti MeVEAn simulaatiomallin ohjauksen Codesyksen monipuolisen visuaalisen käyttöliittymän ohjainten avulla reaaliaikaisesti. Lisäksi tehtiin yleinen kirjallisuuskatsaus työkoneiden voimansiirrosta, ohjausjärjestelmistä sekä näiden simulaatiosta. Näin luotiin yleiskuva tarvittavasta tiedosta työkoneiden ja niiden ohjausjärjestelmien simulaatioon liittyen.
Reaaliaikainen tiedonsiirto onnistui MeVEAn ja Codesyksen välillä käyttäen C++-ohjelmaa, joka prosessoi ja välitti datan eteenpäin MeVEAlta Codesykselle ja päinvastoin. Näin tiedonsiirto onnistuttiin toteuttamaan reaaliaikaisesti molempiin suuntiin ja suoritettiin testiajo, jossa MeVEAn työkoneen simulaatiomallia ohjataan Codesyksen visuaalisen käyttöliittymän avulla reaaliaikaisesti. Tiedonsiirto Codesyksen ja C++-ohjelman välillä toteutettiin jaetun muistin menetelmällä, ja tiedonsiirto MeVEAn ja C++-ohjelman välillä toteutettiin MeVEAn tarjoaman Socket-yhteysratkaisun avulla. Muodostettua yhteysratkaisua on helppo muokata käytettäväksi monipuolisesti minkä tahansa MeVEAn simulaatiomallin ohjaukseen Codesyksestä käsin.
Dataa onnistuttiin myös lähettämään UDP-yhteydellä Codesykseltä C++-ohjelmalle, muttei vastakkaiseen suuntaan. MeVEAn simulaatiomallin ohjaus toimisi myös käyttäen UDP-yhteyttä, mutta vain avoimen silmukan kaltaisesti, koska tiedonsiirtoa ei onnistuttu lähettämään takaisin C++-ohjelmalta Codesykselle. The primary objective of this bachelor’s thesis was to find a solution for real-time communication between MeVEA and Codesys. This allowed the control of MeVEA simulation model through the versatile visualization interface of Codesys in real-time. In addition, a general literature review was conducted about power transmission and control systems in working machines, as well as simulations of them. This created a generalized picture of the needed knowledge for simulation of working machines and their control systems.
The real-time communication between MeVEA and Codesys was achieved by using a C++ program, which processed and forwarded the data from MeVEA to Codesys and vice versa. This way, the communication was achieved towards both directions and a test run was executed, where the simulation model from MeVEA was controlled through visualization interface in Codesys in real-time. The communication between Codesys and C++ program was done by using shared memory, and the communication between MeVEA and C++ program was carried out by a Socket communication method provided by MeVEA. The found communication solution can be easily modified to diversely control of any MeVEA simulation model through Codesys.
The data was also successfully transmitted from Codesys to C++ program over UDP connection, but not in the opposite direction. This would also allow the control of MeVEA simulation model from Codesys but only in an open loop way, because the data transmission from C++ program to Codesys was not successful.
Reaaliaikainen tiedonsiirto onnistui MeVEAn ja Codesyksen välillä käyttäen C++-ohjelmaa, joka prosessoi ja välitti datan eteenpäin MeVEAlta Codesykselle ja päinvastoin. Näin tiedonsiirto onnistuttiin toteuttamaan reaaliaikaisesti molempiin suuntiin ja suoritettiin testiajo, jossa MeVEAn työkoneen simulaatiomallia ohjataan Codesyksen visuaalisen käyttöliittymän avulla reaaliaikaisesti. Tiedonsiirto Codesyksen ja C++-ohjelman välillä toteutettiin jaetun muistin menetelmällä, ja tiedonsiirto MeVEAn ja C++-ohjelman välillä toteutettiin MeVEAn tarjoaman Socket-yhteysratkaisun avulla. Muodostettua yhteysratkaisua on helppo muokata käytettäväksi monipuolisesti minkä tahansa MeVEAn simulaatiomallin ohjaukseen Codesyksestä käsin.
Dataa onnistuttiin myös lähettämään UDP-yhteydellä Codesykseltä C++-ohjelmalle, muttei vastakkaiseen suuntaan. MeVEAn simulaatiomallin ohjaus toimisi myös käyttäen UDP-yhteyttä, mutta vain avoimen silmukan kaltaisesti, koska tiedonsiirtoa ei onnistuttu lähettämään takaisin C++-ohjelmalta Codesykselle.
The real-time communication between MeVEA and Codesys was achieved by using a C++ program, which processed and forwarded the data from MeVEA to Codesys and vice versa. This way, the communication was achieved towards both directions and a test run was executed, where the simulation model from MeVEA was controlled through visualization interface in Codesys in real-time. The communication between Codesys and C++ program was done by using shared memory, and the communication between MeVEA and C++ program was carried out by a Socket communication method provided by MeVEA. The found communication solution can be easily modified to diversely control of any MeVEA simulation model through Codesys.
The data was also successfully transmitted from Codesys to C++ program over UDP connection, but not in the opposite direction. This would also allow the control of MeVEA simulation model from Codesys but only in an open loop way, because the data transmission from C++ program to Codesys was not successful.