Simulink Interface Layer (SIL) – Overview and Future

Slides:



Advertisements
Similar presentations
New Release Announcements and Product Roadmap Chris DiPierro, Director of Software Development April 9-11, 2014
Advertisements

MotoHawk Training Model-Based Design of Embedded Systems.
OpenVMS System Management A different perspective by Andy Park TrueBit b.v.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
Exemplar CFS Architecture
1 Lecture 4: Threads Operating System Fall Contents Overview: Processes & Threads Benefits of Threads Thread State and Operations User Thread.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
Simulink ® Interface Course 13 Active-HDL Interfaces.
GLAST Large Area Telescope Instrument Flight Software Flight Unit Design Review 16 September 2004 Diagnostics Framework James Swain Stanford Linear Accelerator.
1 Schema Registries Steven Hughes, Lou Reich, Dan Crichton NASA 21 October 2015.
Oracle Data Integrator Procedures, Advanced Workflows.
MotoHawk™ Components Scalable, Secure, Model-Based Design of Embedded Systems.
Homework Assignment #1 J. H. Wang Oct. 6, 2011.
March 2004 At A Glance autoProducts is an automated flight dynamics product generation system. It provides a mission flight operations team with the capability.
Implementation of EIDE Gateway using ACES Callouts WECC DEWG EIDE Training.
1 MotoHawk Components Scalable, Secure, Model-Based Design of Embedded Systems MotoHawk Training.
Configuration Management CSCI 5801: Software Engineering.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
GLAST LAT Project LAT System Engineering 1 GLAST Large Area Telescope: LAT System Engineering Pat Hascall SLAC System Engineering Manager
Tracing the JWST Proposal from User Interface to Commanding of an Instrument Margaret Meixner & WIT Balzano, Robinson & CMD.
1 Process Description and Control Chapter 3. 2 Process A program in execution An instance of a program running on a computer The entity that can be assigned.
Homework Assignment #1 J. H. Wang Sep. 22, Homework #1 Chap.2: 2.10 Chap.3: 3.1, 3.4, 3.5* (or 3.6*) Chap.4: 4.6, 4.8* (Optional: End-of-chapter.
Chapter – 8 Software Tools.
SwCDR (Peer) Review 1 UCB MAVEN Particles and Fields Flight Software Critical Design Review Peter R. Harvey.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
SAP R/3 User Administration1. 2 User administration in a productive environment is an ongoing process of creating, deleting, changing, and monitoring.
NCI CBIIT LIMS ISIG Meeting– July 2007 NCI CBIIT LIMS Consortium Interface SIG Mission: focus on an overall goal of providing a library of interfaces/adapters.
Benefits of a Virtual SIL
Space FSW Conference 2016 Matthew Conte Software Engineer
cFS Platforms OSAL and PSP
Test Executive Trades (1)
cFS Workshop Ground Systems & Kits
Adopting the Python language for On-board Programmable Payload Autonomy Steven Doran 2016 Flight Software Workshop 12/14/2016.
Simulink Interface Layer (SIL)
Integration of OCP and SIMULINK
EmuOS Phase 3 Design Brendon Drew Will Mosley Anna Clayton
Flight Software Development Through Python
Data Virtualization Tutorial: Introduction to SQL Script
Code Generation from SEDS
cFE FSW at APL & FSW Reusability
Exemplar CFS Architecture
z/Ware 2.0 Technical Overview
Software Configuration Management
UT-Assert Library Presented by Charles Zogby, NASA-GSFC
TECH SESSION #1 STANDARDS AND BUILD TOOLS
Topics: ArduinoIO package Simulink with arduinoIO
WORKSHOP 3 GSE IMPORT.
CFS Community Day Core Flight System Command and Data Dictionary Utility December 4, 2017 NASA JSC/Kevin McCluney December 4, 2017.
Integrating CCSDS Electronic Data Sheets into Flight Software
Study of Tools for Command and Telemetry Dictionaries
JPL Autonomous Space Mission Simulation
CCSDS File Delivery Protocol (CFDP) for COSMOS in pure Ruby
Introduction to cosynthesis Rabi Mahapatra CSCE617
Module 2: Computer-System Structures
CS703 - Advanced Operating Systems
Process Description and Control
and Device Interfaces from CCSDS Electronic Data Sheets
Advanced Exploration Systems (AES) Core Flight Software (CFS) Project
NASA/ Johnson Space Center
ECI, SIL, & GSFC core Flight System Workshop
GSFC cFS Product Status
Module 2: Computer-System Structures
Implementation of EIDE Gateway using ACES Callouts
Overview of Workflows: Why Use Them?
Configuration management
Module 2: Computer-System Structures
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment. Phone:
Module 2: Computer-System Structures
Presentation transcript:

Simulink Interface Layer (SIL) – Overview and Future Steve Lentine GSFC 591 / Chesapeake Aerospace

Agenda SIL – “Simulink Interface Layer” Where did SIL come from? Not “Software-In-the-Loop” in this context Where did SIL come from? What does SIL do? How is SIL used? Where is SIL headed?

History of SIL Ames created original version for LADEE mission in partnership with Mathworks GSFC received SIL from Ames for use on NICER in 2013 NICER software development completed in 2015, launched in 2017, currently operating. GEDI software development completed in 2017, expected launch 2019. PACE development starting, expected launch 2022. Several enhancements were necessary to meet GSFC mission requirements CFE GetTime support Remove Ames naming requirements Conditional Message sending Model reference support Multiple table support Support multiple command ApIDs Moved table definition out for csc_sl_interface.h TLC updated through release 2017a This presentation is written by me from the Goddard perspective, so I’m not up-to-date on the activities at the other centers

History of SIL (con’t) Ames-SIL: JSC-SIL: Development continued for use on BioSentinel, RP rover, and drone project Several enhancements necessary to meet Ames mission requirements: Model variants and data dictionary integration Code cleaned up and optimized Simulink Buses include full CCSDS messages (similar to GSFC) Ansynchronous (conditional) messaging app_mid.h and csc_model_hz.h no longer needed Autogeneration of supporting files CMakeList.txt and cFS app folders cFE table file Install and Readme for cFS integration JSC-SIL: Unknown capabilities/history This presentation is written by me from the Goddard perspective, so I’m not up-to-date on the activities at the other centers

Provide Sequence Numbers SIL in Operation Simulink Application Bus Out Event Signals Bus In cFE Software Bus Event Processing Other Apps / Mission Ops cFE Event Services Mission Ops Queue Cmd/Tlm Messages Provide Sequence Numbers Error Check Messages SCH Execute House Keeping Table Management cFE Table Services SIL cFE Time Services Spacecraft Time Fetch Time Fault Flags App CFE Tlm Data

Autocoding Components Model Contains task-specific code Includes blocks from CSL library to access CFE functionality Implemented by pointing team Target Language Compiler (TLC) file Generates (model-specific) headers files for integration with (generic) SIL architecture Developed and maintained by Mathworks pilot engineers Simulink Interface Layer (SIL) Generic wrapper code which provides interfaces between autocode and CFE Provides FDC reporting, CFE event generation, Message I/O handling, Table management TLC file developed and maintained by mathworks pilot engineers

GSFC Autocoding Workflow Software requirements created by pointing team in partnership with FSW team Pointing team knows needed functionality to meet mission requirements These are FSW requirements, formally tested and verified by FSW test team Pointing team develops and tests algorithms in Matlab/Simulink environment Use of existing GNC Simulink libraries High code reuse between FSW and High Fidelity Simulations (HiFi’s) which pointing team already produces Early end-to-end testing of models/code as they’re developed/implemented Pointing team generates C code, delivers to FSW team for integration with FSW builds At GSFC this CFE/SIL Autocoding workflow has been used on NICER and GEDI, and now PACE Creating flight-software quality simulations does require additional effort from pointing team. Beneficial to have a specific FSW liaison on pointing team

Model Development – Message Interfaces Message Input Inport with datatype set to bus matching naming convention Message Output Outport with datatype set to bus matching naming convention Conditional Output Messages Pass through bus signal with conditional message to control Used to support asynchronous/periodic messaging

Model Development – Table Interface Table definition Define Simulink.Parameter object with datatype set to bus type matching structure GSFC-SIL will soon support multiple (separately managed) tables Referencing parameters: Structure Field (direct reference): Structure Field (bus routing):

Model Development – Time/FDC Interfaces GetTime In simulation: returns simulation clock + epoch In generated code: calls CFE_GetTime to return FSW time FDC reporting Fills fields of message to LC (Limit Checker)

Model Development – Event Interfaces CFE Event Generates event message

Code Generation Initial Setup: Subsequent Builds: Configure code generation settings as specified in SIL users guide Use provided custom TLC template to generate interface header file Specify datatype size settings for hardware Click ‘Build’ Deliver packaged code to FSW Subsequent Builds:

App Compilation Initial Setup: Subsequent Builds: Assign ApIDs values Assign PerfID values Add Wake-Up and HK request ApIDs to scheduler Add ApIDs to TO (Telemetry Output) tables Add application to startup script (Optional) Define table validation function Subsequent Builds: Drag and drop new generated sources files Update Makefiles Compile

Future of SIL GSFC/Mathworks work currently underway: Finish implementation of multi-table support (expected in 2017) Refactor SIL implementation to move away from TLC (which Mathworks is slowly depreciating) 3 versions of SIL exist (that we know of….) GSFC-SIL Ames-SIL JSC-SIL Others?? Looking to unify into a NASA-SIL Currently gathering requirements for the unified SIL to address common needs for each center/group

Splinter Meeting – 4pm Splinter meeting at 4pm with GSFC, Ames, and Mathworks representatives to discuss path forward Please attend if you have interest in using the SIL and/or defining requirements for future updates

Thanks

Backup

Baseline SIL Requirements Shall provide a method of receiving and issuing messages from/to the software bus Support asynchronous message output from model signals Support for arbitrary number of command APID in autocode Shall utilize CFE Table Management to provide tunable parameters to model Support generation of table from Model Simulink.Parameter objects Support for management of multiple tables Support updating/validating via hand-coded table validation function Shall provide a method of issuing events Support for setting Event ID, Mask, and Type Shall provide a method of reporting FDC status Support for setting FDC ID, enabling/disabling by ID Automatic tracking of latch state, generation of telemetry packet

Baseline SIL Requirements (con’t) Shall support generation of housekeeping telemetry generation Includes command execution/rejection and packet counters Shall support a method of accessing FSW time In simulation, block is a clock with settable epoch In codegen, results in hooks to get CFE time Shall support code generation from a model reference hierarchy

Future SIL Requirements? Support for multirate model Current workaround is to separate rate groups into separate models/CFE apps Could potentially be supported via CFE Child Task API, but may be complicated If not officially supported, perhaps prepare ‘official’ recommendation and/or examples on how to implement these models APL request Support for performance monitoring of sections of model Would be a block, placed into an atomic unit of the model (ie model reference, atomic subsystem) In simulation, would do nothing (or maybe run tic toc) In codegen, would code performance entry/exit API calls at the subsystem boundary

Future SIL Requirements? (con’t) Support for autogenerated table validation functions Utilize matlab coder to generate c code for a matlab function which implements checks on table parameters Support for issuing events/getting time within Matlab blocks Supports alternative modeling paradigms Allows issuing events within Matlab-based logic Support a method of logging FDC/Event signals In current implementation separate logging of these signals are required because blocks do not function in simulation mode Direct generation of app from code generation Advantages: Simplifies integration of code since no separate code or header files are required… everything is generated Disadvantages: Code generation process must now be aware of CFS API and updated to match rather than using header file as interface between generated and hand code