Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

One linerImport and manage dataset files.

ReferenceModulesDatasets → UIDBs | Queries | Query Editor | Tables | Files | Monitor


Datasets Files (Reference) enable reading and writing text-based data files for recipe management, configuration settings, and data exchange with external applications. DatasetFile provides:

  • cipe file management
  • Configuration import/export
  • Tag value persistence
  • XML data structures
  • Dynamic file naming
  • Batch data transfer

Files support ASCII, Unicode, and XML forma

Table of Contents
maxLevel2
minLevel2
indent10px
excludeSteps
stylenone


Configuration Properties

PropertyDescriptionRequired
NameUnique file identifier (no spaces)Yes
FileNameFull file path (supports tag embedding)Yes
FileTypeFormat: ASCII, Unicode, XMLYes
ObjectsTags to read/writeYes
XMLSchemaTypeXML structure typeFor XML only
DescriptionDocumentation textNo

Creating Dataset Files

  1. Navigate to Datasets → Files
  2. Click Plus icon
  3. Configure:
    • Name: Unique identifier
    • Description: Documentation
  4. Click OK
  5. Set properties:
    • FileName: Target file path
    • FileType: Select format
    • Objects: Map tags

File Types

ASCII Files

Plain text, single-byte encoding:

Tag1=100
Tag2=200.5
Tag3=Active

Unicode Files

Multi-byte character support:

??=25.5
??=101.3
??=???

XML Files

Structured data with schemas:

xml

<Tags>
  <Tag Name="Temperature" Value="25.5"/>
  <Tag Name="Pressure" Value="101.3"/>
  <Tag Name="Status" Value="Running"/>
</Tags>

File Path Configuration

Static Path

C:\Recipes\Recipe001.txt
\\Server\Share\Config.xml

Dynamic with Tags

C:\Recipes\Recipe{{Tag.RecipeNumber}}.txt
C:\Data\{{Tag.Year}}\{{Tag.Month}}\Data.csv
\\Server\{{Tag.Department}}\Settings.xml

Using Macros

{{ExecutionPath}}\Recipes\Current.txt
{{SolutionPath}}\Data\Config.xml

XML Schema Types

Tag List XML

Simple name-value pairs:

xml

<TagList>
  <Tag Name="Tank1_Level" Value="75.5"/>
  <Tag Name="Tank1_Temp" Value="22.3"/>
  <Tag Name="Pump1_Status" Value="1"/>
</TagList>

Tag Object XML

Complete tag hierarchy:

xml

<TagTree>
  <Folder Name="TankFarm">
    <Folder Name="Tank1">
      <Tag Name="Level" Value="75.5" Type="Double"/>
      <Tag Name="Temp" Value="22.3" Type="Double"/>
    </Folder>
  </Folder>
</TagTree>

Object Mapping

Configuration

  1. Click Objects ellipsis (...)
  2. Select tags to include:
    • Check individual tags
    • Select entire folders
    • Use search filter

Mapping Behavior

  • Read: File values → Tags
  • Write: Tags → File values
  • Automatic type conversion
  • Preserves tag structure

Execution Methods

Reading Files

csharp

// Load recipe file
@Dataset.File.Recipe001.Load();

// Check if successful
if (@Dataset.File.Recipe001.Status == "OK")
{
    // Tags now contain file values
    double temp = @Tag.Temperature;
}

Writing Files

csharp

// Set tag values
@Tag.Temperature = 25.5;
@Tag.Pressure = 101.3;
@Tag.Status = "Running";

// Save to file
@Dataset.File.Recipe001.Save();

Dynamic File Operations

csharp

// Change filename at runtime
@Tag.RecipeNumber = 5;
@Dataset.File.RecipeFile.FileName = 
    string.Format(@"C:\Recipes\Recipe{0}.txt", @Tag.RecipeNumber);

// Load specific recipe
@Dataset.File.RecipeFile.Load();

Recipe Management Example

Recipe Structure

# Recipe_001.txt
ProductCode=WIDGET-A
Temperature=185.5
Pressure=25.0
MixTime=300
Speed=1500

Load Recipe

csharp

public void LoadRecipe(int recipeNumber)
{
    // Set dynamic filename
    @Tag.CurrentRecipe = recipeNumber;
    
    // Load file
    @Dataset.File.RecipeFile.Load();
    
    // Verify loading
    if (@Dataset.File.RecipeFile.Status == "OK")
    {
        @Tag.RecipeLoaded = true;
        @Display.MessageBox("Recipe loaded successfully");
    }
}

Save Recipe

csharp

public void SaveRecipe()
{
    // Current values saved to file
    @Dataset.File.RecipeFile.Save();
    
    // Create backup
    string backup = string.Format(
        @"C:\Recipes\Backup\Recipe_{0}.txt",
        DateTime.Now.ToString("yyyyMMdd_HHmmss")
    );
    
    File.Copy(@Dataset.File.RecipeFile.FileName, backup);
}

Configuration Exchange

Export Settings

csharp

// Export current configuration
@Dataset.File.ConfigExport.FileType = "XML";
@Dataset.File.ConfigExport.XMLSchemaType = "TagObject";
@Dataset.File.ConfigExport.Save();

Import Settings

csharp

// Import from external system
@Dataset.File.ConfigImport.Load();

// Apply imported values
if (@Dataset.File.ConfigImport.Status == "OK")
{
    // Values automatically mapped to tags
    ApplyConfiguration();
}

Enabling Dataset Files

If Dataset Files menu is not visible:

  1. Click Home icon
  2. Under Solution Explorer Preferences
  3. Set Filter to Show All Modules and Features

Alternative:

  • Use Filter selector in sidebar
  • Select appropriate visibility level

Best Practices Checklist 

  •  Use absolute paths - Avoid relative paths in production
  •  Validate data - Check values after loading
  •  Handle errors - Check Status property
  •  Backup files - Before overwriting
  •  Use appropriate format - XML for structure, TXT for simple
  •  Document mappings - Clear tag-to-file relationships
  •  Test thoroughly - All file operations

Error Handling

csharp

try
{
    @Dataset.File.MyFile.Load();
    
    if (@Dataset.File.MyFile.Status != "OK")
    {
        string error = @Dataset.File.MyFile.ErrorMessage;
        LogError(error);
    }
}
catch (Exception ex)
{
    // Handle file system errors
    @Tag.FileError = ex.Message;
}

Troubleshooting

File not found:

  • Verify path exists
  • Check tag values in dynamic paths
  • Confirm permissions
  • Review network access

Load/Save fails:

  • Check file format matches FileType
  • Verify file not locked
  • Confirm write permissions
  • Review tag mappings

Data corruption:

  • Validate file encoding
  • Check decimal separators
  • Verify date formats
  • Review special characters

Missing menu option:

  • Change Solution Explorer filter
  • Enable all modules and features
  • Restart Designer if needed



In this section...

Page Tree
93DRAF
root@parentspaces