38
INSTITUT F ¨ UR THEORETISCHE INFORMATIK – ANWENDUNGSORIENTIERTE FORMALE VERIFIKATION IMPROVE APS Structured Text and Test Tables Alexander Weigl | 16.11.2016 KIT Die Forschungsuniversitt in der Helmholtz-Gemeinschaft www.kit.edu

Structured Text and Test Tables

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Structured Text and Test Tables

INSTITUT FUR THEORETISCHE INFORMATIK – ANWENDUNGSORIENTIERTE FORMALE VERIFIKATION

IMPROVEAPS

Structured Text and Test Tables

Alexander Weigl | 16.11.2016

KIT Die Forschungsuniversitt in der Helmholtz-Gemeinschaftwww.kit.edu

Page 2: Structured Text and Test Tables

OverviewEnvironment

1 PLC softwareThe two parts...Variable DeclarationUser-defined Types

2 Structured TextOverviewStatementsNot mentioned hereType/Var-Example

3 Generalized Test TablesConcrete TableGeneralization

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 2/26

Page 3: Structured Text and Test Tables

Disclaimer

Everything is stripped down to the knowledgeneeded for this PSE.

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 3/26

Page 4: Structured Text and Test Tables

Environment

Reading Sensors

Logic

Setting Actuators

triggered by timer every n msunlimitedly often & hardrealtime

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 4/26

Page 5: Structured Text and Test Tables

Environment

Reading Sensors

Logic

Setting Actuators

triggered by timer every n msunlimitedly often & hardrealtime

Logic runtime is limitedNo RecurrenceBounded loopsBo infinite nested datastructures

Logic built-up from:FunctionsFunction Blocks (Functionwith state)Program (Function Block +callable by PLC)

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 4/26

Page 6: Structured Text and Test Tables

Environment

Reading Sensors

Logic

Setting Actuators

triggered by timer every n msunlimitedly often & hardrealtime

Logic runtime is limitedNo RecurrenceBounded loopsBo infinite nested datastructures

Logic built-up from:FunctionsFunction Blocks (Functionwith state)Program (Function Block +callable by PLC)

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 4/26

Page 7: Structured Text and Test Tables

Environment

Reading Sensors

Logic

Setting Actuators

triggered by timer every n msunlimitedly often & hardrealtime

PLC software can be composed:Structured Text (ST)Sequential Function Chart(SFC)Instruction List (IL)Ladder Diagram (LD)Function Block Diagram(FBD)

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 4/26

Page 8: Structured Text and Test Tables

The two parts

Every block has a variable declaration and an implementation body.

FUNCTION_BLOCK 〈name〉

〈DECL〉

〈BODY〉

END_FUNCTION_BLOCK

The same for PROGRAM and FUNCTION.

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 5/26

Page 9: Structured Text and Test Tables

Variable Declaration

vardecl :== ’VAR’ | ’VAR_INPUT’ | ’VAR_OUTPUT’ [’CONSTANT’]

〈names〉 ’:’ 〈datatype〉[’:=’ 〈literal〉] ’;’

VAR_INPUTx, y, z : INT;a :INT := 2;

END_VAR

Variables defined in the block scope

permissions:Caller Callee

Type Read Write Read Write

local - - x xinput x x x -output x - x x

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 6/26

Page 10: Structured Text and Test Tables

Datatypes

Boolean

BOOL

BYTE

WORD

DWORD

LWORD

Integers

INT

SINT

DINT

LINT

UINT

USINT

UDINT

ULINT

Floating-point

REAL

LREAL

Time, duration, date andcharacter string

TIME

DATE

TIME OF DAY

DATE AND TIME

STRING

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 7/26

Page 11: Structured Text and Test Tables

Datatypes

Boolean

BOOL

BYTE

WORD

DWORD

LWORD

Integers

INT

SINT

DINT

LINT

UINT

USINT

UDINT

ULINT

Floating-point

REAL

LREAL

Time, duration, date andcharacter string

TIME

DATE

TIME OF DAY

DATE AND TIME

STRING

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 7/26

Page 12: Structured Text and Test Tables

User-defined Types

Here only enumerations.

TYPE〈identifier〉 := ( 〈name〉, ... );

END_TYPE

Enumerations have properties of Integer:ordinal scalaiterable (for-loop)arithmetic

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 8/26

Page 13: Structured Text and Test Tables

Structured Text

Similar to Pascaltypical expressions (later)Statements:

assignment: 〈name〉 := 〈expr〉 ;RETURN, EXITFunction Block callIF

CASE

FOR

WHILE

REPEAT

(unbounded) loops are avoided

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 9/26

Page 14: Structured Text and Test Tables

Structured Text

Similar to Pascaltypical expressions (later)Statements:

assignment: 〈name〉 := 〈expr〉 ;RETURN, EXITFunction Block callIF

CASE

FOR

WHILE

REPEAT

(unbounded) loops are avoided

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 9/26

Page 15: Structured Text and Test Tables

Structured Text

Similar to Pascaltypical expressions (later)Statements:

assignment: 〈name〉 := 〈expr〉 ;RETURN, EXITFunction Block callIF

CASE

FOR

WHILE

REPEAT

(unbounded) loops are avoided

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 9/26

Page 16: Structured Text and Test Tables

Statement: Function Block Call

VAR fb : Stamp;

a,b : INT;END_VARfb.i1 := 1;

fb( i2 := 2, o1 => a);

b := fb.o2;

application of the function block definitionsdifferences between input/output variablesdifferent ways for assignment

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 10/26

Page 17: Structured Text and Test Tables

Statement: IF

IF 〈expr〉 THEN〈statements〉

[ELSEIF 〈expr〉 THEN〈statements〉]+

[ELSE〈statements〉]

END_IF

multiple ELSEIFoptional ELSE

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 11/26

Page 18: Structured Text and Test Tables

Statement: CASE

CASE 〈var〉 OF〈item〉:〈statements〉

〈item〉, 〈item〉, 〈item〉:〈statements〉

〈item〉 .. 〈item〉:〈statements〉

[ELSE〈statements〉]

END_CASE

distinction on the value of varsupport for enumeration and integerscases support constant values, value enumerations and ranges

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 12/26

Page 19: Structured Text and Test Tables

Statement: FOR

FOR 〈intvar〉 := 〈init〉 TO 〈end〉 [BY 〈step〉] DO〈statements〉

END_FOR

Looping over init ≤ intvar ≤ endbounds are inclusivealways counting upwards

step positive

no guarantee for termination

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 13/26

Page 20: Structured Text and Test Tables

Statement: WHILE/REPEAT

WHILE 〈boolexpr〉 DO 〈statements〉 END_WHILEREPEAT 〈statements〉 UNTIL 〈boolexpr〉 END_REPEAT

Whilepre-test loopiterates as long as boolexpr evaluates to true

Repeatpost-test loopalways one loop iterationiterates as long as boolexpr evaluates to false

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 14/26

Page 21: Structured Text and Test Tables

Not mentioned here...

User-defined datatypes (derived, structs)Direct addressesArraysPointer

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 15/26

Page 22: Structured Text and Test Tables

Example

TYPEStates : (Red, Yellow, Green);

LineState : STRUCTRunning : BOOL;Drive : MultiMotState;

END_STRUCT;END_TYPEVAR

Input AT %IB0 : ARRAY [0..4] OF BYTE;Index : UINT := 5;

Motor1 : MotorState;

FourMotors : MultiMotState;

MotorArray : ARRAY [0..3, 0..9] OF MotorState;

Line : ARRAY [0..2] OF LineState;

END_VAR

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 16/26

Page 23: Structured Text and Test Tables

Source

https://link.springer.com/book/10.1007%2F978-3-642-12015-2

and Beckhoff Infosys

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 17/26

Page 24: Structured Text and Test Tables

Test Tables

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 18/26

Page 25: Structured Text and Test Tables

State of the Industry

What we know: Functional testing

fπ(x) = fp(x)

Problem: How to test with state?

SolutionDescription of input and output values

i0

f(σinit , i0)

o0

i1

f(σ0, i1)

o1

i2

f(σ1, i2)

o2

i3

f(σ2, i3)

o3

. . .

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 19/26

Page 26: Structured Text and Test Tables

State of the Industry

What we know: Functional testing

fπ(x) = fp(x)

Problem: How to test with state?

SolutionDescription of input and output values

i0

f(σinit , i0)

o0

i1

f(σ0, i1)

o1

i2

f(σ1, i2)

o2

i3

f(σ2, i3)

o3

. . .

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 19/26

Page 27: Structured Text and Test Tables

Test table with concrete values.

Inputs Outputs# A B C X Y Z duration

0 1 1 2 0 0 5 11 0 3 3 6 6 5 72 1 4 2 2 8 5 2

Syntaxdistinguish between input and output variablescells contain concrete valuesduration: repetition of a line

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 20/26

Page 28: Structured Text and Test Tables

Test table with concrete values.

Inputs Outputs# A B C X Y Z duration

0 1 1 2 0 0 5 11 0 3 3 6 6 5 72 1 4 2 2 8 5 2

SemanticA function block f is conform to a test table t , iff the output isexpected if the input described input is given.

f↓o (t↓i) = t↓o

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 20/26

Page 29: Structured Text and Test Tables

Example of a generalized test table

Inputs Outputs# A B C X Y Z duration

0 1 1 2 0 0 – 11 – p p 2 ∗ p X Z [−1] > 52 – p + 1 – [0,p] > Y [−1] 2 ∗ Z > Y ∗

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 21/26

Page 30: Structured Text and Test Tables

Overview

AbstractionCells in test tables describes the constraint on the variable.

References to other cellsCells in tables can contain a reference to values encountered inother cells.

Generalization of row durations.A table row may be repeated arbitrary often.

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 22/26

Page 31: Structured Text and Test Tables

Overview

AbstractionCells in test tables describes the constraint on the variable.

References to other cellsCells in tables can contain a reference to values encountered inother cells.

Generalization of row durations.A table row may be repeated arbitrary often.

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 22/26

Page 32: Structured Text and Test Tables

Overview

AbstractionCells in test tables describes the constraint on the variable.

References to other cellsCells in tables can contain a reference to values encountered inother cells.

Generalization of row durations.A table row may be repeated arbitrary often.

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 22/26

Page 33: Structured Text and Test Tables

Cell Expression

Following ST notation:base Literals: 2#11, "a string", TRUE

Variable names: XReferences: X[-1],

step Unary operators: NOT, -

Binary operators: +, -, *, /, **, MOD, <, >, <=, >=

, <>, =, AND, OR, XOR

Function call: f( ... )

AbbreviationsAbbrev. Constraint

n X = n< n X < n (same for >,≤,≥,,)[m,n] X ≥ m ∧ X ≤ na,b a ∧ b– true (don’t care)

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 23/26

Page 34: Structured Text and Test Tables

Cell Expression

Following ST notation:base Literals: 2#11, "a string", TRUE

Variable names: XReferences: X[-1],

step Unary operators: NOT, -

Binary operators: +, -, *, /, **, MOD, <, >, <=, >=

, <>, =, AND, OR, XOR

Function call: f( ... )

AbbreviationsAbbrev. Constraint

n X = n< n X < n (same for >,≤,≥,,)[m,n] X ≥ m ∧ X ≤ na,b a ∧ b– true (don’t care)

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 23/26

Page 35: Structured Text and Test Tables

Column: duration

Limitationrigid value, not state dependent, isolated constraintNo variable namesNo references

Example1, 6, 9–> 5, [6,−]

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 24/26

Page 36: Structured Text and Test Tables

Column: duration

Limitationrigid value, not state dependent, isolated constraintNo variable namesNo references

Example1, 6, 9–> 5, [6,−]

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 24/26

Page 37: Structured Text and Test Tables

Free Variables

Bind valuesLet you capture valuesReuse previous values

Back to the example...

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 25/26

Page 38: Structured Text and Test Tables

Semantics

Generalized Test TableA generalized test table g describes a set of test tables S(g).

The set isinfinite,finite test cases,created by unrolling.

ConformityA program f is conform to a generalized test table t iff every run of f :

(a) satisfies one test table from the set S(g) or(b) has no matching input sequence in the set S(g).

PLC software Structured Text Generalized Test Tables

Alexander Weigl – Structured Text and Test Tables 16.11.2016 26/26