Siemens#Simulink x SINAMICS DriveSim Basic

What is SINAMICS DriveSim Basic?

On May 31, 2021, Siemens will provide a model called SINAMICS DriveSim Basic that can be incorporated into Simulink and SIMIT.

Everyone, how do you make sure that the command and status are surely programming in the Drive before the program is put into the actual machine? With SINAMICS DriveSim Basic, you can check to some extent even before the actual machine is built. The SINAMICS DriveSim Basic is a PROFIdrive-Enabled FMU model (from my point of view, some parameters and Control words and Status words are used as input/output as they are). FMU = Functional Mockup Unit.

The FMU model can be imported into simulation applications such as SIMIT, Matlab Simulink and NX Motion.

Support Drive

Here are the Drives currently supported by DriveSimBasic:

  • SINAMICS G110M (CU240M) – V4.7 SP13
  • SINAMICS G115D – V4.7 SP13
  • SINAMICS G120 (CU230P-2, CU240B-2, CU240E-2, CU250S-2) – V4.7 SP13
  • SINAMICS G120C – V4.7 SP13
  • SINAMICS G120X – V1.03.00
  • SINAMICS G130/G150 – V5.2 SP3
  • SINAMICS S110 – V4.4 SP3
  • SINAMICS S120/S150 – V5.2 SP3
  • SINAMICS S210 – V5.2 SP3
  • SINAMICS V90 – V1.04.03
  • a simplified representation of the motor

Support Telegram

At this stage, it will be Telegram1,2,3,4.

Version

Engineering

You can image SINAMICS DriveSim Basic is a toolbox to help you simulate the drive, and you can link this toolbox with other virtual tools like Simatic S7 PLCsim advanced or nx.

And I will implement the simulation with simulink in this tutorial.

use case

PLC Virtual commissioning

When designing a machine, you need to check whether your PLC program and Siemens Sinamics Drives are working properly. After the PLC program is downloaded to PLCSim Advance, PLCSim Advance embeds the SINAMICS DriveSim Basic FMU model into SIMIT or Simulink S-functions (PLCSim Advance version libraries provided by Siemens). Finally, you can simulate and check how the device works with NX or other software.

CU(Control Unit) Selection

SINAMICS DriveSim Basic can run independently with Simulink without PLCSim Advance. In that case, SINAMICS DriveSim Basic can load profiles from the User and directly load various characteristics (torque, speed, etc., there is a Siemens Drive selection software called SIZER). Then, the optimal CU, Converter and Motor will be selected from the Sizer. (This is also interesting, I will try it when I have time.)

Download

Please access this link to download the document,FMU and example.

https://support.industry.siemens.com/cs/document/109798225/sinamics-drivesim-basic?dti=0&lc=en-WW

。It’s probably just released, so I wonder if the license and other relationships aren’t in place? License is required for FMU.

digitalization.drives@siemens.com

*If there is no license, an error will occur when simulating the FMU.

Licence

We need to request a license from 

digitalization.drives@siemens.com.

Then you will receive a file that named 

StartCode20.aut from the siemens support team.

Open your Auto License Manager and go to License Key>Offline Transfer。

Choose Generate Request code,Next.

Then you can load the start code from the file.

Please load the file that  received from Siemens support team.

Are you sure you want to load the file?Yes.

Next.

Press the save button to save your Request code.

Then you need to send the request code to Siemens support team.

An activation file is received from support team again.

Open your automation license manager again,

Go to License Key>offline transfer.

Choose activate license key(s) this time and press next.

Press the Load button.

Choose the file that received from the Support Team and Next.

Done!

Block

I will use several blocks in this tutorial and let me introduce them one by one.

Simulink / Signal Routing / Switch

That are 3 lines in the switch blocks, the output data is come from line 1 or line 3(Data input ) ,depending the logical result of line2(control input)

https://jp.mathworks.com/help/simulink/slref/switch.html

Sure that you can set the control condition of control input by double clicking the switch block.

Criteria for passing first input is the condition for using the value of link1.

> Or >=or not equal 0 can be configured.

Threshold is the value for comparison.

Threshold can be constant or variable.

For example, if threshold is 1, it means the first input day will output while control input is >1.

Here is another example where the first input is true and third input is false.

The output of this switch block is false because the condition of control input is >1 and the condition input is 1 now.

Simulink / Dashboard / Button

It is like a hmi button, the signal will be true if you press it, and the signal will be false if you release it.

https://jp.mathworks.com/help/simulink/slref/pushbutton.html

Insert a button into your model>one click > press the link button.

You can see the mouse icon has changed.

Select the block that you would like to connect with this button and finish the connection.

In the below example,I will connect the button to the switch block .

After these objects are linked,you can see the block will be highlighted while the button is selected.

Simulink / Sinks/ Display

It is a component that displays the input data.

https://jp.mathworks.com/help/simulink/slref/display.html

You can choose the display format from Block Parameters.

Simulink / Signal Routing / Selector

It is an object to let you choose which data that you would like to output.

In this tutorial I will use indexes to control the data flow.

U is the input of data,idx1 is the index control of your data set, finally y is the output.

https://jp.mathworks.com/help/simulink/slref/index-options-with-selector-block.html

you can configure the index option to match your application.

そして、Index選択するときは0から始まる(Zero-based)や1から始まる(One-based)の設定も可能です。

And also, a very great function that you can configure your index base- start from zero or start from one.

Here is a simple example. A vector that is configured as [1:10].now you would like to output the value from index 2 to 8.

These data will be output if you input a [2;8] into the indx1 parameter.

Simulink / Dashboard / Check Box

You can set the value of a parameter or variable during simulation by checking or unchecking this box.

The setting method of Connect is the same as the basic Button, so I won’t explain it in detail.

https://jp.mathworks.com/help/simulink/slref/checkbox.html

It is also OK to set the values ​​separately when Label or Check is removed or inserted in Block Parameters.

For example, in the example below, Constant2, which is connected to Checkbox, is set to  0 when not checked and set to 1 when checked.

Simulink / Dashboard / Lamp

Here is an element that displays colors that indicate the value of the input signal. It’s not much different from what you’re using on a touch panel.

The method of Connect is similar to Button and Checkbox, so I won’t explain it in detail.

https://jp.mathworks.com/help/simulink/slref/lamp.html

Simulink / Logic and Bit Operations / Set bit

Here is an element to set a specific bit of your stored integer to 1and Scaling is ignored.

You can specify which bit to set to 1 with the Bit index parameter. Bit 0 is the least bit.

https://jp.mathworks.com/help/simulink/slref/bitset.html

In this example, the block will set bit3 of input data to true.

You can configure which bit would be set in the block parameters.

Communications Toolbox / Utility Blocks Integer to Bit Converter

A block to convert integer to bit data.

https://jp.mathworks.com/help/comm/ref/integertobitconverter.html

For Block Parameters, you can make detailed settings such as how many Bit Patterns are output and Bit order.

Simulink / Ports & Subsystems / Model 

A block to call other models in your current model.

https://jp.mathworks.com/help/simulink/slref/model.html

You can configure which model would be called in the block parameters.

function_bit2word

Here is a block that I made to convert 16 bit data to a word.in plc it is used to group control word STW1.

The logic inside this block is very easy and just used the set block to set a temp variable from bit 0-15 to true and multiple with the block input, finally sum these values as output.

functiontest1

This is a block to separate one word to 16 bits .

It is used to encode the zsw.

This is what the model looks like inside.

Convert Input to Integer and convert to Vector of Bit. Then use Selector Block to specify Index from 0 to 15 and output.

Normalization

this is an example block that comes from siemens.it will convert the control speed (xxxrpm) command to drive speed command.

Here is the flow inside the block.p2000 is the max speed and 16384 (4000 hex) is the max value in max speed .

You can change the p2000 only if the max speed is changed.

Model

here is the model that I created.we have control command and display in the dashboard.

Result

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする