|
<< 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 |
Коллекция полей группы Настройки канала. |
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); |