0
0
SimulinkHow-ToBeginner · 3 min read

How to Use Data Store in Simulink: Simple Guide

In Simulink, use Data Store Memory blocks to create shared data storage, Data Store Write blocks to update the data, and Data Store Read blocks to access the stored data anywhere in your model. This lets you share data between blocks without direct signal connections.
📐

Syntax

Simulink uses three main blocks to work with data stores:

  • Data Store Memory: Defines the shared variable (data store).
  • Data Store Write: Writes or updates the value in the data store.
  • Data Store Read: Reads the current value from the data store.

Each block requires the same Data store name to link them together.

plaintext
Data Store Memory (Data store name: 'myData')
Data Store Write (Data store name: 'myData')
Data Store Read (Data store name: 'myData')
💻

Example

This example shows how to create a data store named counter that increments its value every simulation step and reads it elsewhere.

plaintext
1. Add a <code>Data Store Memory</code> block and set its data store name to 'counter'.
2. Add a <code>Data Store Write</code> block with data store name 'counter'. Connect it to an <code>Add</code> block that adds 1 to the current value.
3. Add a <code>Data Store Read</code> block with data store name 'counter' to output the current count.
4. Connect a <code>Constant</code> block with value 1 to the <code>Add</code> block.
5. Run the simulation to see the counter increment.
Output
The output signal from the Data Store Read block shows values 1, 2, 3, ... incrementing each simulation step.
⚠️

Common Pitfalls

  • Using different Data store name values in Memory, Read, and Write blocks breaks the connection.
  • Not initializing the Data Store Memory block causes unexpected initial values.
  • Writing to the data store without proper timing can cause race conditions.
  • Forgetting to connect the Data Store Write block to a signal means the data never updates.
plaintext
Wrong:
Data Store Memory (Data store name: 'data1')
Data Store Write (Data store name: 'data2')  # Names don't match

Right:
Data Store Memory (Data store name: 'data')
Data Store Write (Data store name: 'data')
📊

Quick Reference

BlockPurposeKey Parameter
Data Store MemoryDefines shared data storageData store name
Data Store WriteUpdates data store valueData store name, Input signal
Data Store ReadReads data store valueData store name

Key Takeaways

Use the same data store name in Memory, Write, and Read blocks to share data.
Initialize Data Store Memory to avoid unexpected starting values.
Data Store Write blocks must be connected to signals to update data.
Data Store Read blocks let you access shared data anywhere in the model.
Avoid mismatched names and missing connections to prevent errors.