Design and implementation of a framework extension for automated system testing of a CNC’s real time fieldbus

DSpace Repository

A- A A+

Design and implementation of a framework extension for automated system testing of a CNC’s real time fieldbus

Show full item record

Title: Design and implementation of a framework extension for automated system testing of a CNC’s real time fieldbus
Author: Rossetti, Arthur Sady Cordeiro
Abstract: O trabalho desenvolvido neste documento foi realizado na empresa Bosch Rexroth AG. Esta empresa, dentre muitos de seus produtos, também se especializa na criação de drives de controle e dispositivos de atuação para máquinas. Este projeto tratou especificamente com a criação de testes automáticos de conformidade para um dispositivo de comunicação de tempo real utilizado em um controlador de sistemas CNC conhecido como MTX. Os sistemas de comando numérico computadorizado que utilizam os controladores MTX são escaláveis podendo conter até 250 drives para eixos com controle de posição linear e 64 drives para eixos com controle de velocidade rotacional. O dispositivo de comunicação em questão, utilizado por estes sistemas, é um fieldbus de tempo real baseado em ethernet desenvolvido pela companhia conhecido como “Sercos III”. Dentro dos números de dispositivos mencionados, este dispositivo consegue garantir um tempo de sincronização entre os dispositivos de até 1μs e um tempo total de ciclo entre 500μs e 8ms. Os controladores CNC da companhia têm sido utilizados por diversas empresas em ramos diferentes, como por exemplo, usinagem, corte a laser, corte com jato d’agua, manufatura entre inúmeros outros setores como pode ser visto em [ 1 ]. Em várias destas áreas a capacidade de sincronizar as operações é crucial para garantir uma boa qualidade de produção, tornando a presença de um dispositivo Sercos indispensável. Estas máquinas, que utilizam o mesmo sistema de controle deste projeto, antes de chegarem aos clientes e mesmo durante as fases de desenvolvimento interno da empresa, passam por diversos tipos de teste, dentre eles, os testes de sistema. Estes precisam ser executados não apenas quando uma máquina é configurada pela primeira vez, mas toda vez que acontece uma atualização significativa de software ou firmware visando garantir que nenhuma funcionalidade tenha sido comprometida. Este processo de aplicar todos os testes novamente a cada atualização é chamado de “Regression Testing”. A utilização de testes automáticos neste contexto visa, portanto, melhorar o desempenho das verificações realizadas nos sistemas além de garantir aumento na qualidade dos produtos. Além de estes testes serem repetidos com alguma frequência, é interessante ressaltar que a empresa intenciona aplicar a metodologia de desenvolvimento direcionada por testes (“Test Driven Metodology”), que primeiro estabelece metas a serem alcançadas nos testes, e posteriormente desenvolve sistemas capazes de suprir estes objetivos. Existem argumentos de que esta metodologia não é a melhor tendo em vista que apenas se deseja alcançar o patamar estipulado pelos testes e não a solução ótima do problema. Entretanto até o momento acredita-se que esta metodologia traga um custo-benefício muito interessante para o desenvolvimento de novas tecnologias da empresa. Tendo isso em vista, a capacidade de criação de novos testes torna-se, também, muito importante. Dentro deste universo, o projeto visou expandir um framework para testes, já utilizado em outros sistemas da companhia, desenvolvido em C++ utilizando-se o ambiente de programação Visual Studio Pro da Microsoft. Além disso, foi necessária a criação de uma estrutura auxiliar que permitisse aprimorar a comunicação entre o framework e o sistema CNC, possibilitando aumentar a gama de informações e comandos que podia ser transferida entre eles. Possibilitando assim a automatização de testes já existentes, bem como facilitar sua utilização ou aperfeiçoamento no futuro e simplificar a criação de testes completamente novos. No fim, conseguiu-se atingir esses objetivos, entretanto isto não significa que o projeto na empresa tenha chegado ao fim, a equipe continuará aperfeiçoando os resultados assim como as estruturas criadas. Por fim, durante o projeto, foi decidido comparar as vantagens da criação destes testes automáticos em duas linguagens distintas, C++ e Lua, sendo estas linguagens compilada e interpretada, respectivamente. Este ponto era de interesse para o projeto, pois os profissionais responsáveis por testes, muitas vezes não são programadores experientes. Desta forma, havia interesse em avaliar ambas as linguagens, tendo em vista que na linguagem interpretada escolhida, o tratamento de variáveis é realizado em mais alto nível e não existe a necessidade de tratar com ponteiros, o que se acreditou configurar uma característica facilitadora. Este interesse também surgiu devido à implementação de um plugin em estado de protótipo que permite que o framework execute testes em Lua. Durante o projeto descobriu-se também que o framework apenas funciona com a versão Visual Studio Pro da Microsoft, o que necessitaria uma licença pra cada usuário, enquanto que, uma vez que o framework esteja compilado, os testes em Lua podem continuar a ser alterados sem a necessidade de nenhuma IDE. Essa comparação foi realizada baseando-se na opinião do desenvolvedor deste projeto e as conclusões são apresentadas posteriormente neste documento.The Project developed in this document was performed at the company Bosch Rexroth AG. Amidst its wide range of products, they also specialize in the development of control drives and actuators for machines. This project was specifically related to the development of automated system tests for a real time communication device used by a CNC controller known as MTX. The computer numeric control systems that use the MTX controllers can be scaled to have up to 250 drives for axis linear interpolation and 64 drives for spindle velocity control. The communication device mentioned is a real time fieldbus based on Ethernet, also developed by the company, known as “Sercos III”. If the number of devices respect the limits before mentioned, Sercos can ensure a synchronization time between the devices as small as 1μs with a cycle time for the whole structure that can range from 8ms to 500μs. The CNC machines produced with the company’s equipment are being used in different fields like, milling, grinding, hydro jet, laser cutting and so on, more information can be found at [ 1 ]. In many of these fields, the capability to synchronize the operations between drives is crucial, and also need to be performed very fast in order to guarantee a good production quality and output, which makes the presence of the Sercos device imperative. These machines, which use the same control system as the one in this project, before reaching the clients and even during the internal development in the company, are subjected to a wide variety of tests in which are included the system tests. These tests, specifically, must be performed not only when the machine is configured for the first time, but every time when there is a significant software or firmware update, aiming to ensure that no functionality has been compromised. This policy for repeating the tests for every new version of the system configuration is known as regression testing. The usage of automated testing in this universe aims to improve the quality checks performed in the systems, and guarantee a better quality for the products in the future. Aside from the fact that these tests are repeated with some frequency, it is also important to point out that the company is targeting to work with “Test Driven Development”, in which first are defined tests and goals to be cleared by the tested systems, and afterwards the systems are developed aiming to clear those tests, even though the methodology can’t be applied to every case. Some argue that this is not the best approach because it does not aim for the optimal solution and instead only to clear the set point established in the tests, but for the company the methodology is thought to present an interesting trade-off between quality and cost since the optimal solution is often more expensive. Taking this fact into account the ability to create new test cases becomes also really important in the project. Considering this scope, the project tried to expand an existing framework for tests already used by the company with other systems. The framework was developed in C++ using the Visual Studio Pro from Microsoft. Moreover it was also needed to create an auxiliary structure to enhance the communication between the framework and the MTX system, increasing the applications that could be used by the automatic tests, enabling the automation of existing tests as well as simplifying its usage, its enhancing and also the creation of new tests. In the end, this objectives were met, considering what could be done during six months, but this does not mean the project in the company was finished, the team will continue to perfect the results. Lastly, during the project it was also decided to compare the advantages or disadvantages between two programing languages, C++ and Lua, in the creation of automated tests, taking into account that one of them is compiled and the other interpreted. This topic was of interest because the users responsible for the tests may not be experienced programmers, and considering that in the interpreted language handling variables is done in a higher level, using Lua was considered a possible opportunity to make it less complex. Another reason why it was interesting to test this language was because there was a plugin developed in another project of the company related to the framework, which is in a prototype state and enables the usage of Lua scripts to create test cases. During this project it was also discovered that, since the framework uses some proprietary libraries, it can only be compiled using Visual Studio Pro, the Express version of the software is not enough, which makes the usage of this specific IDE, mandatory, at least for now. On the other hand, once the framework is compiled, the Lua tests can still be modified without the need for any development environment at all. The comparison between both languages was made taking into account the evaluation done this project and is presented further in this document.
Description: TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Engenharia de Controle e Automação.
URI: https://repositorio.ufsc.br/xmlui/handle/123456789/171559
Date: 2016-12-15


Files in this item

Files Size Format View
PFC_2016-1 Arthur_Sady_Cordeiro_Rossetti.pdf 2.495Mb PDF View/Open

This item appears in the following Collection(s)

Show full item record

Search DSpace


Browse

My Account

Statistics

Compartilhar