Page History
Database Operations
In this page:
Table of Contents maxLevel 2 minLevel 2 indent 10px exclude Steps style none
Reading and Writing Tags
C# TagSQL Database Access
csharp
// Reading tags
double temperature = @Tag.Process.Temperature;
bool motorRunning = @Tag.Motor1.Running;
string batchID = @Tag.Batch.ID;
DateTime timestamp = @Tag.System.CurrentTime;
// Writing tags
@Tag.Setpoint.Value = 75.5;
@Tag.Pump.Start = true;
@Tag.Message.Text = "Process started";
// Array access
double[] values = @Tag.Data.Array;
@Tag.Data.Array[0] = 100;
// Quality and timestamp
TagQuality quality = @Tag.Process.Temperature.Quality;
DateTime lastUpdate = @Tag.Process.Temperature.Timestamp;
Python Tag Access
python
# Reading tags
temperature = @Tag.Process.Temperature
motor_running = @Tag.Motor1.Running
batch_id = @Tag.Batch.ID
# Writing tags
@Tag.Setpoint.Value = 75.5
@Tag.Pump.Start = True
@Tag.Message.Text = "Process started"
# Array operations
import numpy as np
values = np.array(@Tag.Data.Array)
mean_value = np.mean(values)
@Tag.Statistics.Mean = mean_value
# Bulk operations
tags_to_read = ['Tag1', 'Tag2', 'Tag3']
values = @Tag.ReadMultiple(tags_to_read)
Tag Properties and Methods
csharp
C# Database Operations
public class DatabaseScript
{
public void ReadFromDatabase()
{
// Simple query
var result = @Dataset.Query("SELECT * FROM Production WHERE Date = TODAY");
// Parameterized query
var parameters = new Dictionary<string, object>
{
{ "StartDate", DateTime.Today },
{ "EndDate", DateTime.Now }
};
var data = @Dataset.ExecuteQuery(
"SELECT * FROM Production WHERE Timestamp BETWEEN @StartDate AND @EndDate",
parameters
);
// Process results
foreach (var row in data.Rows)
{
@Tag.Production.Count = row["Count"];
@Tag.Production.Quality = row["Quality"];
}
}
public void WriteToDatabase()
{
// Insert data
@Dataset.Execute(
"INSERT INTO BatchRecords (BatchID, StartTime, Product) VALUES (@ID, @Time, @Product)",
new {
ID = @Tag.Batch.ID,
Time = DateTime.Now,
Product = @Tag.Batch.Product
}
);
// Update data
@Dataset.Execute(
"UPDATE Equipment SET RunHours = @Hours WHERE ID = @EquipID",
new {
Hours = @Tag.Motor.RunHours,
EquipID = @Tag.Motor.ID
}
);
}
}
Transaction Management
csharp
// Transaction example
public void ExecuteTransaction()
{
using (var transaction = @Dataset.BeginTransaction())
{
try
{
// Multiple operations in transaction
@Dataset.Execute("INSERT INTO Orders ...", transaction);
@Dataset.Execute("UPDATE Inventory ...", transaction);
@Dataset.Execute("INSERT INTO Audit ...", transaction);
// Commit if all successful
transaction.Commit();
}
catch (Exception ex)
{
// Rollback on error
transaction.Rollback();
@Tag.Error.Message = ex.Message;
}
}// Tag properties
public class TagProperties
{
// Basic properties
string Name { get; }
object Value { get; set; }
TagQuality Quality { get; }
DateTime Timestamp { get; }
// Extended properties
double Min { get; set; }
double Max { get; set; }
string Units { get; }
string Description { get; }
// Methods
void ForceValue(object value);
void Subscribe(Action<TagChangeEvent> handler);
void Unsubscribe();
bool WriteWithConfirm(object value, int timeout);
}
In this section...
Page Tree | ||||
---|---|---|---|---|
|
Overview
Content Tools
Tasks