Escolar Documentos
Profissional Documentos
Cultura Documentos
Outline
Motivation The Distributed Control Lab (DCL) Architecture Foucault's Pendulum Details
Motivation
Online access to physical experiments over the Web Test-bed for interconnected middlewarecomponents and embedded systems Reach a predictable system behaviour in unstable environments Study techniques to prevent malicious code damaging physical equipment Foucault's Pendulum demonstrates usage of dynamic reconfiguration for online replacement of user control
Tickets
Users
Admin
Experiment Service Job Queue
DCL Frontend
R
Experiment Manager
Experiment Controller
User
SOAP
SOAP Frontend
R R
Result Manager
Experiment Controller
Job Results
ASP.NET Page
IIS ASP.NET Web/Application Server
SOAP
DCLWeb Service
IIS ASP.NET Web/Application Server
.NET Remoting
Embedded Control Device
RT-Linux PC Brick OS ...
ODBC
DBMS
TCP/IP IrDA
DCL ExperimentController
.NET Remoting Service
.NET Remoting
Foucaults Pendulum
First installation 1848 by Leon Foucault in the Pantheon in Paris Demonstrates earth rotation Today many installation including one in UN-building in New York Problem : Pendulum must be kept swinging Solution : electro magnet under an iron ball Experiment: Find best control algorithm to keep the pendulum swinging
SafetyController
Event Duplication
User Mode Kernel Mode
USB HostController
FIFO-Memory 4 KBytes
Write Cypress EZ-USB Electro Magnet
// sensor or actuator identifier // actuator 1 ON - 0 OFF // light barrier // 1 light -> dark // 0 dark -> light // global time stamp
Pendulum-API : Interface
public interface Pendulum { // Dequeue next event // Blocks if no event present until next event occurs public ControlEvent GetNext(); // Queue next event to put energy on / off public bool SendEvent(ControlEvent input); // Get global time stamp 1 micro seconds logical resolution public long GetTime(); }
while(true) { // get next event ControlEvent ev = pendel.GetNext(); if(ev.state == 1) // pendulum enters light barrier { // switch magnet on pendel.SendEvent(new ControlEvent(ev.timestamp+1000,0,1)); // switch it off after 5/23 seconds pendel.SendEvent(new ControlEvent(ev.timestamp+6000,0,0)); } }
compile
} }
control
Get current oscillation time Toz ( time for a full oscillation ) Get current time the ball is covers the light barrier Ts ( indicates speed ) If ball enters light barrier :
1. 2.
Queue Enable Magnet Event at Tcurrent+Toz/4 Queue Disable Mag. Event at : Tcurrent + Toz/2 + Ts/2 Tmf
1.
4.
Permissions restrict access to system resources DCL: Configuration of usable class library classes
Security policies contain code groups that map assemblies to permissions Policies in .Net : Enterprise, Machine, User, Application Domain Policy Evaluation: top-down
Custom Permission Set assign to the code group Execution permission Access to driver component via .NET Remoting
Localhost, one specified socket, one URI
No permissions, except:
File I/O in the local directory Check required permissions before code execution .NET Attributes
Expiration of available execution time (fairness) Expiration of available energy Overheating of the coil the pendulum falls below a critical amplitude (energy) - so it could not be kept swinging Unexpected termination of user programs Exaggerated use of memory
observer : monitoring of environmental settings and component states profiles : mapping of environmental conditions to application configurations configurations of component-based applications
Online monitoring of environment and components Change of application configuration using dynamic reconfiguration if required (changed conditions)
Safety Controller
Configuration 2 : user program (cold standby)
Safety Controller
USB-Driver
User Program
USB
Event Queuing
Safety Controller
Event Duplicator
User Program
Measurements:
Parallel I/O / 38 kHz sample rate / 256 Byte buffer Smaller Buffers, Higher Sampling Frequency Short control delay COTS x86 PC
Intel Celeron 633 MHz, 128 MB RAM (max 64 MB usable) 10 Mbit/s LAN (NE 2000 PCI)
User Code
Power
OS Image Debugging
CE-PC
Calculation before runtime, analysis of result after experiment execution for next run Calculation of control signals during runtime hard deadlines
Investigation of various operating systems .Net Compact Framework and real time
Definition before runtime Transformation into byte stream before runtime Simple checks possible (temperature of magnet) Generation of event list after runtime for analysis for next experiment runs Not flexible but simple to implement
power on
Init
70 sec
Active
signal
Stop
Hardware Watchdog connected / signaled via serial communication interface of control PC In case of system hang-up control PC will be rebooted Atmel AVR 8-Bit Tiny 12 microcontroller
Video Animation
Grid
Simulation
DRMAA Job Submission and Control for Clusters and Grids GLOBUS IDLE-Time
- Increased Throughput
Povray
Serial communication interface, 9600 Bits/sec 4+4 Digital Outputs, 8+8 Digital Inputs, 2 Analog Inputs Installation:
4 Intelligent Interfaces Pneumatic Actuators 1 robot arm ( 2 free degrees )
IIF
.NET Controller
ADS.NET
D C L
TwinCat PLC-Control
Mrklin Railway
Mrklin Digital Model Railway Control via serial interface 9600 Bit/sec S-88 Bus and controller Configurable train speed Feedback via rail sensors About 20 switches Controlled by x86 PC Currently running W2K
Rapid software development for embedded devices Object-oriented programming model, type safety Many available tools, know-how, many experts Code access security for remote lab experiments PC-based execution Communication to device for I/O Native execution of translated IL-Code Interpretation of stripped IL-Code on the device Running .NET on more powerful embedded devices to control small embedded devices
How ? Possibilities:
GCC
.Net Assembly CIL Front End
C#
ildasm
RTL
VB .Net
target binaries
Our gcc (Gnu Compiler Collection) frontend supports the full ECMA-335 standard and can parse any conformant .NET assembly. Port for Renesas/Hitachi H8-300 microcontroller underway
Extremely small footprint (32 KB memory) Variable and method definitions, method calls, integer ops up and running
Host
Micro IL Assembly
download
strip merge
Application Assembly
Interpreter
Application assemblies merged and striped (meta data, portable executable header, references) Application merged to one micro assembly and transferred to device embedded device Interpreter reads micro executions according instructions using a separate runtime
primitive datatypes: bool, byte, short, int classes, including instance attributes and properties. static and instance methods, including parameters, local variables, and constructors. arithmethic operations control flow operations: conditional and unconditional branch instructions.
most value types (enums, structs, delegates, floats, doubles) strings single-dimensional zero-based arrays (partially complete) multi-dimensional or non-zero-based arrays Inheritance, polymorphism, and late binding interfaces exceptions static class attributes, class constructors, events boxing and unboxing arithmetic instructions that detect overflows any predefined class except for System.Object
Related Work
Verbund Virtuelles Labor project at University Reutlingen / Germany iLab project (WebLab) at MIT Virtual Lab at University of Hagen /Germany Tele-Laboratory at University of Pisa Tele-Lab / Simplex architecture Ein ferngesteuertes Labor im Internet www.remote-lab.de