Prezentacja prof. F. Wagnera
Transkrypt
Prezentacja prof. F. Wagnera
Ferdynand Wagner Wirtualne otoczenie Koncept Wirtualne otoczenie pozwala na zdefiniowanie jednolitego środowiska, które może być wykorzystane do specyfikacji sterowania w softwarze. Moje wystąpienie ogranicza się do zdefiniowania konceptu, w którym teoria zbiorów jest wykorzystana do implementacji sygnałów i operacji boolowskich. Ten temat jest prezentowany na stronie www.stateworks.com. Znajdują się tam szczegółowe opisy i publikacje, ilustrujace implementacje metody, narzędzia specyfikacyjne oraz system wykonawczy. Wirtualne nazwy wejść VI Anames = {A1, A2, A3} Bnames = {B1, B2} Cnames = {C1, C2, C3, C4, C5} Voltagenames = {VoltageHIGH, VoltageLOW, VoltageIN, VoltageUNDEF} Temperaturenames = {TempHIGH, TempLOW, TempOK, TempUNDEF} Dinames = {DiHIGH, DiLOW, DiUNKNOWN} Parameternames = {ParINIT, ParUNDEF, ParDEF, ParCHANGED} Functionnames = {FunINIT, FunOK, FunNOTOK, FunERROR} Wirtualne wejście (VI) VI = {always, A1, B2, C4} VI = {always, VoltageHIGH, DiHIGH, ParDEF, FunERROR, TempHIGH} VI = {always, DiHIGH, ParDEF, FunOK} VI = {always} Operacje logiczne Iloczyn logiczny (AND) A1 & B2 & C4 => {A1, B2, C4} Suma logiczna (OR) A1 | B2 | C4 => [ ] { A1} { B2} {C4 } Negacja (~) ~A2 => {A1, A3} Wyrażenia logiczne A1 & B2 | A1 & B1 & C4 | C2 => [ ] { A1 B2 } { A1 B1 C4 } {C2 } Ewaluacja wyrażen logicznych Wartość (true, false) wyrażenia logicznego jest obliczana przez sprawdzenie czy jakikolwiek zbiór AND w tablicy OR jest podzbiorem wirtualnego wejścia VI. Wirtualne nazwy wyjść VO Xnames = {X1, X2} Ynames = {Y1, Y2} Motornames = {MotorOn, MotorOff} Actionnames = {ActionDisable, ActionEnable, ActionBreak} Wirtualne otoczenie (VE) Wirtualne nazwy wejść VI i Wirtualne nazwy wyjść VO uzupełnione nazwami stanów Automatu tworzą Wirtualne Otoczenie (VE), w którym jest specyfikowane zachowanie Automatu. Specyfikacja Implementacja (System wykonawczy) state Virtual Environment real inputs Virtual Input VI VFSM Executor Specification Virtual Output VO real outputs Przykład ((Voltage < Max_Voltage) && (Voltage > Min_Voltage) && (Cmd == Cmd_Start) && Supervision()) || (Timer == OVER) Definicja nazw wejsciowych Real Input Voltage (float: Voltage<5.2 → LOW, 5.2>=Voltage<6.1 –> OK, Voltage>=6.1 → HIGH) Cmd (integer: 1-> STOP; 2-> START, 3-> BREAK, 4-> CONTINUE) Input Names VoltageIN, VoltageHIGH, VoltageLOW, VoltageUNDEFINED CmdSTOP, CmdSTART, CmdBREAK, CmdCONTINUE Function Supervision which returns boolean ActionDISABLED, ActionENABLED value: false -> DISABLED, true -> ENABLED Timer (state: Reset(1) -> RESET, Running(2) -> RUN, Over(3) -> OVER) [ TimerRESET, TimerRUN, TimerOVER {VoltageIN CmdSTART {TimerOVER} ] SupervisionENABLED } VoltageIN & CmdSTART & SupervisionENABLED | TimerOVER 1978 F. Wagner Projektowanie urzadzen cyfrowych WNT, Warszawa Teoria Automatów, Elektronika 1987 J.N. Nicoud, F. Wagner Major microprocessors: A Unified Approach using CALM North-Holland ELSEVIER, Amsterdam Software, Elektronika 1994 F. Wagner The Virtual Finite State Machine: Executable Control Flow Specification Rosa Fischer-Löw Verlag, Gießen Teoria Automatów, Software 2006 Software, Teoria Automatów F. Wagner, R. Schmuki, T. Wagner, P. Wolstenholme Modeling Software with Finite State Machines: A Practical Approach Auerbach Publication Taylor & Francis Group New York