ChannelItem

<< Click to Display Table of Contents >>

Navigation:  Приложения > Автоматизированная разработка проектов >

ChannelItem

Тип ChannelItem соответствует элементу Канал.

Унаследован от класса Item.

Общие свойства для всех элементов (класса Item) смотрите в соответствующем разделе.

Для изменения настроек каналов используется свойство Settings или класс SettingItem.

Свойства и методы, характерные для ChannelItem, представлены в таблице:

Название

Значение свойства / Тип возвращаемого значения метода

Описание

Пример использования

Свойства (Properties)

Access

AccessTypes  

Тип доступа. Соответствует свойству Доступ в Панели свойств в категории Общие. Возможные значения свойства (AccessTypes):

Input;

Output;

InOut .

Методы доступа: get/set

var systemRoot = RootItemModel.System;

var MBTCPDevice = (IOModuleItem)RootItemModel.System.GetChildByNamePath("АРМ 1.Протоколы.Modbus TCP.ModbusTCP Device 1");

var sysFolder = MBTCPDevice.AddFolder("testFolder");

var testChannel= (ChannelItem)sysFolder.AddBaseChannel("testChannel");

  testChannel.Access = AccessTypes.Output;

ArchiveTemplate

Шаблон архивирования. С помощью данного свойства можно задавать параметры шаблона архивирования.

Методы доступа: get

var arch = (ArchiveTemplateItem)channel.ArchiveTemplate;

ArchiveTemplateType

Тип шаблона архивирования. Имя необходимо задавать в виде строки. Если ранее тип шаблона архивирования не был задан, то при обращении к шаблону архивирования (ArchiveTemplate) будет возвращаться null.

Шаблон архивирования можно задать с помощью имени и полного имени шаблона из библиотек, но стоит учесть, что поиск по имени может занять значительное время, так как поиск происходит во всех библиотеках, поэтому рекомендуется использовать полное имя. Также поиск по полному имени необходимо использовать, если у вас есть несколько шаблонов архивирования с одинаковым именем, чтобы гарантировать правильный выбор.

Методы доступа: get/set

   var channel = module.AddChannel("channel");

// Привязка шаблона архивирования

channel.ArchiveTemplateType = "Библиотеки.Стандартная.Шаблоны архивирования.Шаблон архивирования";

var arch = (ArchiveTemplateItem)channel.ArchiveTemplate;

arch.Deadband = "1";

// Мертвая зона

channel.ArchiveTemplate.Deadband = "1";

// Максимальный период записи в секундах

channel.ArchiveTemplate.MaxWritePeriod = "2";

// Минимальный период записи в секундах

channel.ArchiveTemplate.MinWritePeriod = "3";

// Флаг для написания всех значений

channel.ArchiveTemplate.WriteAll = false;

// Флаг для написания значений только при изменении

channel.ArchiveTemplate.WriteByChange = true;

// Флаг для написания значений только при остановке работы

channel.ArchiveTemplate.WriteOnShutdown = true;

DataSource

Определяет источник данных (элемент от которого будут передаваться значения). Если задать в свойстве null, связь будет разорвана.

Методы доступа: get/set

Создание связи для передачи значения из параметра в канал:

var aio = (ChannelItem)RootItemModel.GetItemByFullName("Система.АРМ 1.Протоколы.Modbus TCP.ModbusTCP Device 1.AIO 1");

var attr1 = (AttributeItem)RootItemModel.GetItemByFullName("Объекты.Объект 1.Параметр 1");

aio.DataSource = attr1;

Historizing

Необходимость архивирования значений канала.

Методы доступа: get/set

this.WriteConsole("\nHistorizing - " + channel.Historizing);

Scale

Шкала. С помощью данного свойства можно задавать параметры шкалы.

Методы доступа: get

var scaleAI = (ScaleAIItem)channel.Scale;

ScaleType

Тип шкалы, необходимо задавать в виде строки (Шкала/Шкала AI/Шкала DI). Если ранее тип шкалы не был задан, то при обращении к шкале (Scale) будет возвращаться null.

Если установить значение свойства в null, шкала элемента будет сброшена.

Тип шкалы можно задать с помощью имени и полного имени шкалы из библиотек, но стоит учесть, что поиск по имени может занять значительное время, так как поиск происходит во всех библиотеках, поэтому рекомендуется использовать полное имя. Также поиск по полному имени необходимо использовать, если у вас есть несколько шкал с одинаковым именем, чтобы гарантировать правильный выбор шкалы.

Методы доступа: get/set

var channel = module.AddChannel("channel");      

channel.ScaleType = "Библиотеки.Стандартная.Шкалы.Шкала AI";

channel.Scale.Format = "<формат>";

channel.Scale.Unit = "<единица измерения>";

//Пример настройки шкалы AI:

var scaleAI = (ScaleAIItem)channel.Scale;

scaleAI.DelayTime = 1551;     // Задержка времени отклика

scaleAI.ActiveHi = false;     // Флаг активности высокого порога

scaleAI.UseHi = false;     // Флаг использования высокого порога

scaleAI.Hi = 41;     // Значение высокого порога

scaleAI.HiPriority = 14111;     // Приоритет события высокого порога

scaleAI.RateOfChangePriority = 3533;     // Приоритет события скорости изменения

scaleAI.RateOfChangeText = "rateTex5t";     // Текст события скорости изменения

scaleAI.HiText = "Hi5hi";     // Текст события высокого порога

scaleAI.Hysteresis = "775";     // Гистерезис

//Пример настройки шкалы DI:

var scaleDI = (ScaleDIItem)channel.Scale;

scaleDI.DelayTime = 11;     // Задержка перед обработкой изменения сигнала

scaleDI.EventOff = "Отключено";     // Текст события при отключении

scaleDI.EventOn = "Включено";     // Текст события при включении

scaleDI.EventOffPriority = 199;     // Приоритет события при отключении

scaleDI.EventOnPriority = 201;     // Приоритет события при включении

Settings

Коллекция полей группы Настройки канала.
Методы доступа: get

var ch = (ChannelItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.OPC UA.AI 1");

       

      // Перебор всех полей группы «Настройки»

      foreach (var setting in ch.Settings)

       {

          WriteConsole($"{setting.Name} = {setting.InitialValue} ({setting.ValueType})");

       }

InheritFromScale

Наследовать из шкалы. Соответствует свойству Наследовать из шкалы в Панели свойств в категории Масштабирование.

Методы доступа: get/set

var module = (IOModuleItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP.ModbusTCP Device 1");        

      if (module == null)

       {

          WriteConsole("Модуль не найден.");

          return;

       }

      var channel = module.FindChannel("AI 1");

      if (channel == null)

       {

          WriteConsole("Канал «AI 1» не найден.");

          return;

       }

      // --- Чтение текущих значений ---

      WriteConsole($"Наследовать из шкалы: {channel.InheritFromScale}");

      WriteConsole($"Включить масштабирование: {channel.UseScaling}");

      WriteConsole($"Source: {channel.SourceMin} .. {channel.SourceMax}");

      WriteConsole($"Target: {channel.TargetMin} .. {channel.TargetMax}");

 

      // --- масштабирование своими диапазонами

       channel.InheritFromScale = false;

       channel.UseScaling = true;

       channel.SourceMin = "0";      

       channel.SourceMax = "27648";  

       channel.TargetMin = "0";      

       channel.TargetMax = "100";    

      WriteConsole("После изменения:");

      WriteConsole($"  InheritFromScale = {channel.InheritFromScale}");

      WriteConsole($"  UseScaling       = {channel.UseScaling}");

      WriteConsole($"  Source           = {channel.SourceMin} .. {channel.SourceMax}");

      WriteConsole($"  Target           = {channel.TargetMin} .. {channel.TargetMax}");

SourceMin

Нижняя граница исходного диапазона в устройстве. Соответствует свойству SourceMin в Панели свойств в категории Масштабирование.

Методы доступа: get/set

SourceMax

Верхняя граница исходного диапазона в устройстве. Соответствует свойству SourceMax в Панели свойств в категории Масштабирование.

Методы доступа: get/set

TargetMin

Нижняя граница целевого диапазона в MasterSCADA 4D. Соответствует свойству TargetMin в Панели свойств в категории Масштабирование.

Методы доступа: get/set

TargetMax

Верхняя граница целевого диапазона в MasterSCADA 4D. Соответствует свойству TargetMax в Панели свойств в категории Масштабирование.

Методы доступа: get/set

UseScaling

Включить масштабирование. Соответствует свойству Включить масштабирование в Панели свойств в категории Масштабирование.

Методы доступа: get/set

Методы (Methods)

AddLink(ChannelItem)

 

Добавление ссылки на Канал (передача значений в канал). В качестве аргумента задается ChannelItem - канал, принимающий значения


AddLink(TagInstanceItem)

 

Добавление ссылки на Экземпляр тега (передача значений в экземпляр тег). В качестве аргумента задается TagInstanceItem - экземпляр тега, принимающий значения

AddLink(TagItem)

 

Добавление ссылки на Тег (передача значений в тег). В качестве аргумента задается TagItem - тег, принимающий значения

AddLink(VariableItem)

 

Добавление ссылки на переменную (передача значений в переменную). Универсальный метод, принимающий любой элемент типа VariableItem (включая AttributeItem, ProgramParamItem, StructFieldItem). В качестве аргумента задается элемент, принимающий значения.

channel.AddLink(variableItem);

DeleteArchiveTemplateType()

 

Удаление Шаблона архивирования

Channel.DeleteArchiveTemplateType();

DeleteScaleType()

 

Удаление Шкалы

Channel.DeleteScaleType();

FindAttribute(string name)

Поиск параметра по имени (возвращает первый подошедший по имени). Если не найден, возвращает null

var channel = (ChannelItem)RootItemModel.GetChildByNamePath("Система.АРМ 1.Протоколы.Modbus TCP.ModbusTCP Device 1.AI 1");

      var input = channel.FindAttribute("Вход");

      WriteConsole($"Имя: {input.Name}");

ResetHistorizing()

bool

Сброс необходимости архивирования к унаследованному или дефолтному значению.

channel.ResetHistorizing();

ResetInheritFromScale()

bool

Сброс наследования из шкалы к унаследованному или дефолтному значению.

channel.ResetInheritFromScale();

ResetUseScaling()

bool

Сброс включения масштабирования к унаследованному или дефолтному значению.

channel.ResetUseScaling();

ResetSourceMin()

bool

Сброс нижней границы исходного диапазона к унаследованному или дефолтному значению.

channel.ResetSourceMin();

ResetSourceMax()

bool

Сброс верхней границы исходного диапазона к унаследованному или дефолтному значению.

channel.ResetSourceMax();

ResetTargetMin()

bool

Сброс нижней границы целевого диапазона к унаследованному или дефолтному значению.

channel.ResetTargetMin();

ResetTargetMax()

bool

Сброс верхней границы целевого диапазона к унаследованному или дефолтному значению.

channel.ResetTargetMax();

ResetAccess()

bool

Сброс типа доступа к унаследованному или дефолтному значению.

channel.ResetAccess();

TryAddLink(Item)

 

Попытка добавить ссылку на Item. В качестве аргумента задается элемент (Item), к которому будет создана ссылка

Channel.TryAddLink(attribut);