016_Distributed Control Lab

48
Distributed Control Lab - A component-based application Overview Architecture Experiments

Transcript of 016_Distributed Control Lab

Page 1: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 1/48

Distributed Control Lab-

A component-based application

OverviewArchitecture

Experiments

Page 2: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 2/48

Outline

Motivation

The Distributed Control Lab (DCL) Architecture

“Foucault's Pendulum Details” – Hardware / Software Architecture

 – Control Algorithms

“Hau den Lukas”

 – Hardware Architecture

 – Control Software

Additional Experiments

Malicious Code Problem / Solutions

Page 3: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 3/48

Motivation

Online access to physical experiments over theWeb

Test-bed for interconnected middleware-

components and embedded systems

Reach a predictable system behaviour in unstableenvironments

Study techniques to prevent malicious codedamaging physical equipment

Foucault's Pendulum demonstrates usage of dynamic reconfiguration for online replacement of user control

Page 4: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 4/48

Distributed Control Lab

2001 project start at Hasso-Plattner-Institute

Practice of writing control algorithms for real-timecontrol problems

study of system predictability, availability and security incontext of middleware-based dynamic control systems

Extensible architecture for hosting physical controlexperiments

Investigation of algorithms for user code observationand replacement of control components

Experiment : physical installation and specific control

software

Page 5: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 5/48

The Distributed Control Lab

Page 6: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 6/48

Distributed Control Lab (V2)Architecture

Admin

Experiment

Manager 

Ticket Service

Job Queue

R

R

SOAPFrontend

R

R

Result Manager 

Job Results

Experiment

Controller 

Tickets Users

DCL

Frontend

User 

R

SOAP

Experiment

Controller 

R

R

SOAP

R

Experiment Service

DISCOURSE

Users

Page 7: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 7/48

ClientWeb-Browser 

DCL Messaging Protocols

http/htmlASP.NET

Page

IIS ASP.NET

Web/Application

Server 

DCL-

Web Service

IIS ASP.NET

Web/Application

Server 

DCLExperiment-/

Resultmanager 

.NET Remoting

Service

DCLExperiment-

Controller 

.NET Remoting

Service

EmbeddedControl

Device

RT-Linux PC

Brick OS

...

DBMS

SOAP

.NET

RemotingODBC

.NET

Remoting

TCP/IP

IrDA

Page 8: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 8/48

Page 9: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 9/48

Problem : Malicous Code

Investigation of Solution for malicious code detection

 – Source code analysis

 – Experiment-specific languages / Language limitations

 – .NET code access security

 – Simulation before execution on physical experiment

 – Analytic Redundancy

Online observation of user programs Replacement of user programs before reach of 

uncontrollable state

Dynamic reconfiguration of component-based controlapplication

Monitoring of environmental settings and component states

Page 10: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 10/48

Foucault’s 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

 – Using minimum energy – Reaching the highest amplitude

Page 11: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 11/48

Page 12: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 12/48

Page 13: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 13/48

Page 14: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 14/48

USB Host-

Controller 

User-

Controller 

Safety-

Controller 

Event

Duplication

Operating System I/O

Check HalfFull Flag

Configuration

Manager 

Binary Reader /

Filter, Smooth

Event Creation

Binary Writer 

Binary Stream

Generation

User Mode

Kernel Mode

Cypress EZ-USB

Read

Write

64 Byte

I/O request packetLight Sensor

Electro Magnet

FIFO-Memory

4 KBytes

ReadFile() WriteFile()

Pendulum Control – detailed

• Laser light barriers sampled into

4KByte FIFO-memorys with 23,4

kHz

• USB-Controller checks half-full-Flag

• 64 Byte blocks of data transferred

via USB 1.1

• Real-Time OS-Threads process in-

coming signals / produce out-going

bit stream

Page 15: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 15/48

Pendulum-API : Control Event

public class ControlEvent

{

public int nr ; // sensor or actuator identifier 

public int state; // actuator 1 ON - 0 OFF// light barrier 

// 1 light -> dark

// 0 dark -> light

public long timestamp; // global time stamp

}

Page 16: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 16/48

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();

}

Page 17: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 17/48

Pendulum: Example Control Code

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 ms

pendel.SendEvent(new ControlEvent(ev.timestamp+6000,0,0));

}

}

Page 18: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 18/48

Pendulum Control ProcessGeneration

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));

}

}

send to DCL 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 secondspendel.SendEvent(new ControlEvent(ev.timestamp+6000,0,0));

}

}

Public Class UserControl

{

Public Static void Main(String[] args)

{

}

}

Configuration Code

Control Code

generate user control class

user control code

compile

control

Page 19: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 19/48

Pendulum : Increase of amplitude

1. Get current oscillation time Toz ( time for a fulloscillation )

2. Get current time the ball is covers the lightbarrier Ts ( indicates speed )

3. If ball enters light barrier :1. Queue Enable Magnet Event at Tcurrent+Toz/4

2. Queue Disable Mag. Event at :Tcurrent + Toz/2 + Ts/2 – Tmf 

1. Tmf  – duration of magnetic field shut down

4. Repeat steps 1-4

Page 20: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 20/48

Code Access Security-CAS in .NET

Supplements operating system security mechanisms

Trust to assemblies vary depending of origin and

publisher 

Based on evidences of assemblies

 – Application directory

 – Strong name

 – URL – Signature

Permissions restrict access to system resources

DCL: Configuration of usable class library classes

Page 21: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 21/48

Code Access Permissions

Represent access to a protected resource or 

the ability to perform a protected operation

Environment Variables

File Dialog

File I/O

Isolated Storage File

Reflection Registry

Security

User Interface

DNS

Printing

Event Log

Socket Access

Web Access

Performance Counter  Directory Services

Message Queue

Service Controller 

SQL Client

Page 22: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 22/48

Evidence Based Security

Assembly evidence is matched against codegroups to gain permission

Code group consist of  – Membership condition

 – Set of code access permissions

Security policies contain code groups that map

assemblies to permissions Policies in .Net : Enterprise, Machine, User,

Application Domain

Policy Evaluation: top-down

Page 23: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 23/48

.NET Security in the PendulumExperiment

Code group in machine policy applies only to

usercode.exe assembly

 – Custom Permission Set assign to the code group

No permissions, except: – Execution permission

 – Access to driver component via .NET Remoting

Localhost, one specified socket, one URI

 – File I/O in the local directory

Security exception if any restriction is violated

 – Check required permissions before code execution

 – .NET Attributes

Page 24: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 24/48

Pendulum ExperimentDynamic Properties

Code Access Security provides safe environment for 

execution of foreign code

There are still dynamic properties at the experiment

that can not be handled by CAS – 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

Page 25: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 25/48

Our Approach : Dynamic Reconfiguration

as safe-guard mechanism

Mapping of profiles to application configurations basedon environmental conditions and component states

Selection of application configuration according to

conditions provides best service for a given situation Definition of 

 – observer : monitoring of environmental settings and componentstates

 – profiles : mapping of environmental conditions to application

configurations

 – configurations of component-based applications

Online monitoring of environment and components

Change of application configuration using dynamicreconfiguration if required (changed conditions)

Page 26: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 26/48

Configuration Creator Tool

Page 27: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 27/48

Pendulum ExperimentControl Configurations

USB-Driver

Event Queuing

Safety

Controller 

User 

Program

Event

Duplicator 

User 

Program

Configuration 1 : safety controller 

Configuration 2 : user program (cold standby)

Configuration 3 : user program (warm standby)

USB

Safety

Controller 

Safety

Controller 

Page 28: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 28/48

Measurements:Abnormal Termination of User Program

Page 29: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 29/48

„Higher Striker“ – „Hau den Lukas“

Similar hardware to pendulum experiment – Parallel I/O / 38 kHz sample rate / 256 Byte buffer 

Use of Real Time OS – 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)

Combination of non-RT .Net and RTapplication

CE-PC Windows Ce.Net 4.2

Page 30: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 30/48

Page 31: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 31/48

“Higher Striker” - Architecture

A/D Transformation

FIFO-Memory

Optical Signal Gen.

CE-PC

Plattform

Builder/

Debug Host

.Net DCL

Controller 

PC

OS Image

DebuggingParallel Port I/O

Download

COMPILED

User Control

Algorithms

User Code

light

barriers

Switch

Power

DCL

Page 32: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 32/48

„Higher Striker“Minimal Program

INITIALIZE;

do

{

READ();

 WRITE(buffer);

GETSTATUS()if(EMPTY_FLAG_LS) Sleep(1);

}

while(!EOF(buffer))

Page 33: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 33/48

Controlling the Experiment

Abstract from Direct Hardware Programming

Provide Higher Level API to the experiment

2 possible control scenarios : – 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

Page 34: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 34/48

„Higher Striker“ - Event List - API

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

0;1;

10;0;

20;2;

25;0;

50;4;80;0;

1111111111000000000

0222220000000000000

0000000000000000888

8888888888888888888

8888880000000000000

Page 35: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 35/48

Higher Striker Control API

int HDLInitialize ( );

int HDLInitialize ( unsigned char Writeahead,

unsigned char Initial[]);

int HDLStartClock( );

int HDLStopClock( );

int HDLPerform( unsigned char * Write,

unsigned char * Read );

int HDLGetStatus();

int HDLGetError( int * LSError, int * MSError );

Page 36: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 36/48

Higher Striker – Watch Dog

Init Active Stopsignal

not signaled for 5 reboots

if not signaled for 5 sec reboot

70 sec

power on

power off 

Hardware Watchdog connected / signaled via serialcommunication interface of control PC

In case of system hang-up control PC will be rebooted

Atmel AVR 8-Bit Tiny 12 microcontroller 

Page 37: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 37/48

Higher Striker Simulation

Used Buffer (0-255 Byte)

Cylinder Speed

Height

Video

Animation

Page 38: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 38/48

DCL - Grid Integration

Heterogeneous

 – X86,Itanium, PowerPC

 – Windows 2000/XP, Linux,

Mac OS X DRMAA – Job

Submission and Control

for Clusters and Grids

GLOBUS

IDLE-Time

 – Condor 

 – Sun Grid Engine, Condor 

Grid

Grid

- Increased Throughput

- Increased Response Time

 Povray

 Simulation

Page 39: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 39/48

Fischertechnik Production Line

Control via Fischertechnik Intelligent Interface

 – 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 )

Page 40: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 40/48

Controlling Fischertechnik usingBeckhoff Industrial-PCs and the DCL

D

C

L

.NET

Controller IIF

ADS.NET Visual Studio Plug-In

TwinCat PLC-Control

Page 41: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 41/48

Märklin Railway

Märklin 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

Page 42: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 42/48

Page 43: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 43/48

Running .NET on devices

Why ?

 – 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

How ? Possibilities:

 – 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

Page 44: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 44/48

CLI2RCX- .NET runtime for Lego Mindstorm

Our gcc (Gnu Compiler Collection) frontend supports the full

ECMA-335 standard and can parse any conformant .NETassembly.

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

ildasm.Net

AssemblyC#

VB .Net

C++ .Net

RCX

binary

(srec -

format)

target

binaries

GCC

CIL

Front EndRTL

Hitachi

H8-300

Back End

Backends

mnemonic

CIL

Assembly

Hitachi

H8300

Backend

Page 45: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 45/48

Mirco.NET - .NET Interpreter for Lego Mindstorm

• Application assemblies merged and striped (metadata, 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

Micro

IL

Assembly

Application

AssemblyDependencies

Base Class

Library

DependenciesDependency

Micro

IL

Assembly

Runtime

Interpreter 

Operating

System

Hardware

Embeddded Device Host

strip

mergedownload

Page 46: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 46/48

CLI2RCX- .NET – Current State

Version 1.0 release implements the following

features of the .NET platform:

 – 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.

Page 47: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 47/48

CLI2RCX- .NET – Current State

The following features are not yet supported (as aremost features not mentioned in either list): – 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

Page 48: 016_Distributed Control Lab

8/6/2019 016_Distributed Control Lab

http://slidepdf.com/reader/full/016distributed-control-lab 48/48

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