24 38 Joos Siemens Introduction To SimTalk 2 0

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Tecnomatix Plant Simulation Worldwide User Conference 2016

Tecnomatix Plant Simulation


World Wide User Conference
2016
SimTalk 2.0
Moderate enhancements to increase user-friendliness

Michael Joos

© Siemens AG 2016 Realize innovation.

Working with Old Models

• When you load a model, which you saved in a previous


version of Plant Simulation, it will run without changes.
• SimTalk 1.0 Methods and SimTalk 2.0 Methods can be
used in the same model in parallel.
• The ribbon button Method > Tools > New Syntax
independently sets for each Method if the source code
has to be entered in SimTalk 1.0 or SimTalk 2.0 syntax.

© 2016 Siemens AG

Page 2 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

Less is More

is do end; is obsolete in SimTalk 2.0.


A completely empty Method is a correct Method.

© 2016 Siemens AG

Page 3 Michael Joos

Semicolon is not required anymore

• SimTalk 2.0 does not require a semicolon after a


statement

• The line end defines the end of the statement


• If the statement is not yet complete (e.g. y:=x+ )
then it will automatically continue in the next
line
• You can use parentheses to force the statement
to continue in the next line
• The semicolon separates multiple statements in
one line
© 2016 Siemens AG

Page 4 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

If-Then-Else

The if-statement does not require the keyword then


anymore

• Less source code to write


• then is still allowed if you prefer to use it

© 2016 Siemens AG

Page 5 Michael Joos

While-Loop

The while-loop does not require the keyword loop


anymore

• Less source code to write


• loop is still allowed if you prefer to use it

© 2016 Siemens AG

Page 6 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

For-Loop

The for-loop does not require the keyword loop


anymore

• Less source code to write


• loop is still allowed if you prefer to use it

The continue-statement skips the rest of the loop


iteration and continues with the next iteration

The exitloop-statement (which is available in both


SimTalk 1.0 and
in SimTalk 2.0) exits the loop

© 2016 Siemens AG

Page 7 Michael Joos

Local Variable Declaration

Local variables are declared with the keyword var

var is shorter than local and is used in Java and


JavaScript too

© 2016 Siemens AG

Page 8 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

Switch-Statement

The inspect-when-statement was replaced by the


switch-case-statement

switch is used in C++, Java and JavaScript too

© 2016 Siemens AG

Page 9 Michael Joos

Parameter and Return Value Declaration

• param declares method parameters


• Different parameter types (here object and integer)
are separated with a comma instead of a semicolon.
This reflects the call syntax better, for example
Method_2_0(SingleProc, 10, 20)

• The return value of a method is now declared with -


> instead of :

© 2016 Siemens AG

Page 10 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

Default Arguments (1/2)

Parameters can be predefined with default arguments


in the declaration (starting with Plant Simulation 12.2).

• If an argument is passed to the parameter, it will be


used in the Method
• If no argument is passed, the default value will be
used instead

Example:
param n: integer := 18

Method_2_0 -- prints 18
Method_2_0(19) -- prints 19
© 2016 Siemens AG

Page 11 Michael Joos

Default Arguments (2/2)

A default argument is allowed for the data types integer,


real, length, speed, acceleration, weight, time, boolean,
string, object, table, list, stack and queue.

It is not allowed for the data types date, datetime and


arrays.
For the data types object, table, list, stack and queue, the
only allowed default value is void.

3 4 5
A default argument is only allowed for the n last
3 4 parameters. It cannot be used in the middle of a
3.33
declaration.
3 0
3.33
param x:real, s:string, z:integer:=42
0 0
3.33 O.K.
param x:real, s:string:=“Hello”, z:integer:=42

© 2016 Siemens AG
O.K.
Page 12 Michael Joos

param x:real, s:string:=“Hello”, z:integer

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

Mathematical Operators Modulo and Integer Division

The mathematical operators modulo and integer


division now use the more intuitive keywords mod and
div.

• \\ was replaced by mod

• // was replaced by div

© 2016 Siemens AG

Page 13 Michael Joos

Easier Change of Values

New operators += , –= , *=
Example:
i := i + 1 –> i += 1

The value in the table cell [1,2] can be directly


increased by 5
The value of the global Variable can be directly
multiplied by 3

x += y is short for x := x + y
x –= y is short for x := x – y
x *= y is short for x := x * y
x /= y is “unequal” as in SimTalk 1.0

More is possible, for example SingleProc.cont.Length


–= 0.5
© 2016 Siemens AG

Page 14
The new operators also increase performance. Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

About-Equal-Operator

The about-equal-operator has been changed


• Improved readability
• Avoids misinterpretation as C++ or Java syntax

You now have to use:


• For about equal: ~= instead of ==
• For less than or about equal: <~= instead of <==
• For greater than or about equal: >~= instead of >==

© 2016 Siemens AG

Page 15 Michael Joos

Reading CardFiles

x := CardFile[1] Formulas behave


differently without
warning!

SimTalk 1.0:
When reading the contents of a cell of a CardFile or
stack with the bracket operator, Plant Simulation reads
and removes the cell.
The remaining cells move up one position.

SimTalk 2.0:
When reading the contents of a cell of a CardFile or
stack with the bracket operator, Plant Simulation reads
the cell and leaves it in
the CardFile/stack.

© 2016 Siemens AG

Page 16 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

Ref-Operator Replaced By &

The ref-operator is replaced by &


• Leads to more readable code
• ref() raised questions as it looked like a function
• The parentheses are not needed anymore
• The & is positioned where it is expected (right in
front of the Variable/Method)

& prevents the evaluation of a Variable or the execution


of a Method

© 2016 Siemens AG

Page 17 Michael Joos

Dereferencing using Parentheses

In SimTalk 1.0 parentheses could be used to


dereference an object.
This was hard to comprehend.

In SimTalk 2.0 you need to use the built-in method


value to dereference a global Variable, and execute to
dereference a Method.
(This is also possible in SimTalk 1.0)

© 2016 Siemens AG

Page 18 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

Waituntil/Stopuntil

The priority definition of the waituntil-statement and


the
stopuntil-statement is now optional.

If you do not define it explicitly, the priority is 1.

© 2016 Siemens AG

Page 19 Michael Joos

SimTalk 1.0 to 2.0 Converter (1/2)

For a single Method:


• Click the New Syntax button
• Press F7 or click the Apply Changes button to apply
the
converted source code

Bracket operators on CardFiles will be detected and


automatically handled correctly:
CardFile[1] := CardFile[2] ;
will be converted to
CardFile.insert(1, CardFile.remove(2))

© 2016 Siemens AG

Page 20 Michael Joos

Siemens Industry Software


Tecnomatix Plant Simulation Worldwide User Conference 2016

SimTalk 1.0 to 2.0 Converter (2/2)

For all Methods inside a folder or all Methods in the


entire model:
• Shift + right mouse click on a Folder or the basis in
the class library
• Select Convert all Methods to New Syntax

When you convert all Methods of the model, locked


libraries will not be converted.

© 2016 Siemens AG

Page 21 Michael Joos

Thank you!
Michael Joos
Tecnomatix Plant Simulation
Weissacher Str. 11
70499 Stuttgart

E-mail: [email protected]

siemens.com

© Siemens AG 2016
Page 22 22.06.2016 Michael Joos

Siemens Industry Software

You might also like