Page 1 of 1

How to add tags to MonitorList of TagMonitor

Posted: Tue Jul 30, 2019 2:16 am
by v.shichanov
Hello!
I wanna have a table with a big quantity of tags to display their values to user.
As I can see one of the ways to implement it is TagMonitor.

If I understand correctly, if user added tag manually system saves it to tagsmonitordata.xml, but I don't know how to download it from device, update and upload back.

Another way is TagMonitorItem class. If I understand correctly, at creating new instance constructor bounds item to TagMonitor instance.

new Neo.ApplicationFramework.Controls.TagMonitor.TagMonitorItem(this.TagMonitor, Globals.Tags.UMPState, this);
-that's how I try to connect tag in script of page opening handler, where TagMonitor is located.

Also I've tryed to create new MonitorList instance and add to it TagItems, but I'm not understand how to connect this list to existing TagMonitorItem.

Also probably exists more easiest way like forming tagsmonitordata.xml and uploading it to device, or more suitable way to display tags names and its values (Preferable way is like table).

Thank you!

Re: How to add tags to MonitorList of TagMonitor

Posted: Tue Sep 03, 2019 7:01 am
by v.shichanov
public partial class TagsTable
{
void StateElectro_table_Opened(System.Object sender, System.EventArgs e)
{
TagMonitor.MonitorList.Clear();
AddTagToMonitor("Напряжение_вход_QM1_В");
AddTagToMonitor("Напряжение_вход_QM2_В");
AddTagToMonitor("Ток_ЗПТ_плюс_А");
AddTagToMonitor("Ток_ЗПТ_минус_А");
AddTagToMonitor("Напряжение_ЗПТ_плюс_В");
AddTagToMonitor("Напряжение_ЗПТ_минус_В");
AddTagToMonitor("Ток_UF1_А");
AddTagToMonitor("Ток_AF1_А");
AddTagToMonitor("Ток_AF2_А");
AddTagToMonitor("Ток_AF3_А");
AddTagToMonitor("Ток_AF4_А");
AddTagToMonitor("Ток_AF5_А");
AddTagToMonitor("Ток_AF6_А");
AddTagToMonitor("Ток_в_обмотке1_А");
AddTagToMonitor("Ток_в_обмотке2_А");
AddTagToMonitor("Ток_возбудителя_А");
AddTagToMonitor("Мощность_двигателя_заданная_кВт");
AddTagToMonitor("Обороты_двигателя_заданные_Об_мин");
AddTagToMonitor("Мощность_двигателя_измеренная_кВт");
AddTagToMonitor("Обороты_двигателя_измеренные_Об_мин");
AddTagToMonitor("Температура_внешний_контур_гр_Цельсия");
AddTagToMonitor("Температура_внутренний_контур_гр_Цельсия");
AddTagToMonitor("Давление_внутренний_контур_Бар");
AddTagToMonitor("Температура_AF1_гр_Цельсия");
AddTagToMonitor("Температура_AF2_гр_Цельсия");
AddTagToMonitor("Температура_AF3_гр_Цельсия");
AddTagToMonitor("Температура_AF4_гр_Цельсия");
AddTagToMonitor("Температура_AF5_гр_Цельсия");
AddTagToMonitor("Температура_AF6_гр_Цельсия");
AddTagToMonitor("Температура_UF1_гр_Цельсия");
AddTagToMonitor("Вентилятор_1_состояние");
AddTagToMonitor("Вентилятор_2_состояние");
AddTagToMonitor("Насос_1_состояние");
AddTagToMonitor("Насос_2_состояние");
AddTagToMonitor("Местное_Дистанционное_управление_БС");
AddTagToMonitor("Местное_Дистанционное_управление_БСУ");
AddTagToMonitor("Обороты_задатчик_экран");
AddTagToMonitor("Утечка_охлаждающей_жидкости");
AddTagToMonitor("Насосы_в_норме");
AddTagToMonitor("Оперативное_питание_в_норме");
AddTagToMonitor("Сеть_24В_в_норме");
AddTagToMonitor("Аварийное_отключение_от_кнопок_на_БС_и_БСУ");
AddTagToMonitor("Силовая_схема_собрать_разобрать");
AddTagToMonitor("Цепь_начального_заряда_в_работе");
AddTagToMonitor("Предохранители_выпрямителя_в_норме");
AddTagToMonitor("Температура_выпрямителя_в_норме");
AddTagToMonitor("Состояние_заземления");
AddTagToMonitor("Состояние_нагревателей");
AddTagToMonitor("Предупреждение_от_КСИ");
AddTagToMonitor("Авария_от_КСИ");
AddTagToMonitor("Моточасы_Дисплей_ч");
AddTagToMonitor("Моточасы_Насос1_ч");
AddTagToMonitor("Моточасы_Насос2_ч");
AddTagToMonitor("Моточасы_Вентилятор1_ч");
AddTagToMonitor("Моточасы_Вентилятор2_ч");
AddTagToMonitor("Моточасы_Инвертор_заряжен_ч");
AddTagToMonitor("Моточасы_Инвертор_ход_ч");
AddTagToMonitor("Моточасы_Инвертор_ход_с_неисправностью_ч");
AddTagToMonitor("Моточасы_Инвертор_авария_ч");

}

private void AddTagToMonitor(string tagToAdd)
{
var tag = GetTag(tagToAdd);

if (tag == null) {
return;
}

var tagMonitorItem = new TagMonitorItem(TagMonitor, tag, this);
tagMonitorItem.OnActivated();
TagMonitor.MonitorList.Add(tagMonitorItem);
}

private IBasicTag GetTag(string tagName)
{
FieldInfo tagProperty = typeof(Neo.ApplicationFramework.Generated.Tags).GetField(tagName);
if (tagProperty == null) {
return null;
} else {
return(IBasicTag)tagProperty.GetValue(Globals.Tags);
}
}
}