Configurable Framework for managing data produced by multiple PLCs

The work was carried on in collaboration with the CO.S.E. Centre of Thales Alenia Space in Italy at the Turin site. Thales Alenia Space in Italy has over 40 years of experience in building systems and equipment for space exploration, telecommunications, navigation, Earth observation and science. In the world of software development, which engages this work, telemetry can offer automatic data collection from the real world. The telemetry, therefore, allows to collect important data that becomes valuable and usable when analyzed. The main goal of this work is to develop a Configurable Framework, which manage the communication among different devices and data produced by multiple PLCs. The PLCs are connected to different equipment, contained in a module, which manage the resources needed to survive: the use and recycling of water, the storage and distribution of electrical power, thermal control and air recycling, data management and processing, remote communication and control, medical treatment and many more. The module can be deployed in all kinds of environments (desert camps, oil and gas exploration camps, military outposts and polar bases) and is the ideal solution for survival in remote or hostile areas. The realized architecture, therefore, allows to monitor the status of the module once it has been deployed in a remote location. After the first phase, the requirements were collected in a document to keep track of the data needed to create the appropriate code, which was subsequently used to simulate the various components. Afterwards, it was defined what are the functionalities that a generic Configurable Framework shall implement, then all possible architectures that can satisfy the company needs were explored and finally a working prototype was developed. Furthermore, it is also an opportunity to work with software technologies outside the domain of existing business skills and discover which advantages they can bring to the company. To provide flexibility, the GUI was built as a Web Application, taking advantage from the Bootstrap library. In fact the architecture satisfy the requested modularity and it is compatible with different operating systems and several screen resolutions. The interfaces are suitable for many electronic devices, allowing the use of keyboard, mouse and touch-screens. To speed up the development it was used a Web Framework; different solutions were analyzed, but in the end it was chosen the Django Framework, since it works without having to install additional dependencies. The application was developed using SQLite as database solution, it runs from a folder and can be moved between different machines without worrying about databases and Web Servers configurations. The GUI consist of two Web Pages, the first one allows the users to perform the different requests. The second one shows which setting are available and it allows to interact with the defined models by creating, deleting or updating items. The sampled data is collected into a non-relational Database, using the JSON format, to keep track of it, and it is also displayed in real time in order to visualize updates. After simulating the behavior of the used boards, the next step was to test and validate code using physical devices. The primary purpose of testing is to detect software failures so that defects may be discovered and corrected. At the end of the testing phase a user manual was also produced.