CANopen-laitteiden simulointi Robot Frameworkissa
Pihlajaniemi, Janne (2021)
Pihlajaniemi, Janne
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202105046924
https://urn.fi/URN:NBN:fi:amk-202105046924
Tiivistelmä
Tässä työssä käsitellään Robot Framework -testialustalle toteutettua CANopen-laitteiden simulointiin tarkoitetun kirjaston suunnittelua ja toteutusta. Projektissa luotiin konseptitodistus Robot Frameworkin käyttämisestä CANopen-laitteiden yhteensopivuustestauksessa ja laitteiden simuloinnista CAN-väylällä avointa lähdekoodia käyttäen. Pääpaino projektissa oli slave-laitteiden simuloinnin toteuttamisella.
Kirjasto toteutettiin avoimen lähdekoodin päälle käyttäen pääasiassa Christian Sandbergin CANopen for Python -kirjastoa, joka on avoimesti käytettävissä ja kehitettävissä Github-palvelussa. Kirjasto valittiin erityisesti sen tarjoaman EDS-toiminnallisuuden vuoksi, mikä mahdollisti laitemallin luomisen suoraan EDS-tiedoston avulla.
Toteutetun kirjaston toiminta perustuu simuloitujen slave-laitteiden luomiseen testiympäristön aliprosesseina, joiden kanssa pääprosessi kommunikoi sijaisobjektien kautta. Ensimmäinen kehitysversio sisältää valmiin aihion Robot Framework -avainsanojen toteuttamiseen helposti luomalla kirjastoihin uusia metodeja.
Toteutusta testattiin virtuaalisessa CAN-väylässä testaamalla kirjaston master- ja slave-toiminnallisuuksia toisiaan vasten. Esimerkissä luotiin yksinkertaiset testitapaukset CANopenin NMT- ja SDO-toiminnoille, jotka ajettiin kirjastossa toteutetuilla avainsanoilla. Testit todettiin toimiviksi tarkkailemalla CAN-väylää Linuxin candump-työkalulla.
Tuloksena projektista saatiin jatkokehitystä varten hyvä aihio, joka tullaan mahdollisesti julkaisemaan joko avoimena lähdekoodina tai lisensoituna tuotteena. Suurimpina etuina teollisiin testityökaluihin nähden huomattiin
mahdollisuus käyttää testejä virheenjäljitykseen ja testikirjaston tarjoamaparempi näkyvyys testien yksityiskohtiin verrattuna graafisilla käyttöliittymillä toteutettuihin työkaluihin. Potentiaalisena hyötynä huomattiin myös helpompi integraatio laajempiin testausjärjestelmiin.
Kirjasto toteutettiin avoimen lähdekoodin päälle käyttäen pääasiassa Christian Sandbergin CANopen for Python -kirjastoa, joka on avoimesti käytettävissä ja kehitettävissä Github-palvelussa. Kirjasto valittiin erityisesti sen tarjoaman EDS-toiminnallisuuden vuoksi, mikä mahdollisti laitemallin luomisen suoraan EDS-tiedoston avulla.
Toteutetun kirjaston toiminta perustuu simuloitujen slave-laitteiden luomiseen testiympäristön aliprosesseina, joiden kanssa pääprosessi kommunikoi sijaisobjektien kautta. Ensimmäinen kehitysversio sisältää valmiin aihion Robot Framework -avainsanojen toteuttamiseen helposti luomalla kirjastoihin uusia metodeja.
Toteutusta testattiin virtuaalisessa CAN-väylässä testaamalla kirjaston master- ja slave-toiminnallisuuksia toisiaan vasten. Esimerkissä luotiin yksinkertaiset testitapaukset CANopenin NMT- ja SDO-toiminnoille, jotka ajettiin kirjastossa toteutetuilla avainsanoilla. Testit todettiin toimiviksi tarkkailemalla CAN-väylää Linuxin candump-työkalulla.
Tuloksena projektista saatiin jatkokehitystä varten hyvä aihio, joka tullaan mahdollisesti julkaisemaan joko avoimena lähdekoodina tai lisensoituna tuotteena. Suurimpina etuina teollisiin testityökaluihin nähden huomattiin
mahdollisuus käyttää testejä virheenjäljitykseen ja testikirjaston tarjoamaparempi näkyvyys testien yksityiskohtiin verrattuna graafisilla käyttöliittymillä toteutettuihin työkaluihin. Potentiaalisena hyötynä huomattiin myös helpompi integraatio laajempiin testausjärjestelmiin.
