Страница 768 из 779 ПерваяПервая ... 268668718758766767768769770778 ... ПоследняяПоследняя
Показано с 7,671 по 7,680 из 7789

Тема: Вопросы начинающего

  1. #7671

    По умолчанию

    Сделал расписание. Ничего не происходит не печатает отчеты и не выводит их на экран. Вот тренды выводятся по расписанию на экран.

  2. #7672

    По умолчанию

    Пришлите ваш проект (Проект - Экспортировать), укажите путь к проблемному отчету.
    Спасибо.

  3. #7673

    По умолчанию

    Если к расписанию управление документом добавить то работает.

  4. #7674

    По умолчанию

    Для отчетов как раз лучше этот ФБ и использовать - у него более гибкие настройки.
    Из расписания просто подавать импульс на начало формирования отчета.
    Спасибо.

  5. #7675

    По умолчанию

    Добрый день!
    Как в скрипте можно задать тип переменной? Через какое свойство?

  6. #7676

    По умолчанию

    Скрипт имеется в виду ФБ "Скрипт"?
    В правой части задается тип данных:
    https://support.mps-soft.ru/MasterSC..._vyhodami.html
    Спасибо.

  7. #7677

    По умолчанию

    Нет. Я имел ввиду, если у меня есть много переменных с типом Целый, мне надо у всех поменять на тип Вещественный.
    Например я Описание переменных меняю так:
    var FilePathNameTxt = Путь к файлу;
    string[] lines = File.ReadAllLines(FilePathNameTxt, Encoding.GetEncoding("windows-1251"));
    int N = lines.Length;
    string FBPath = HostFB.TreeItemHlp.Project.ObjectTreeRootItem.Disp layName + "." +
    HostFB.TreeItemHlp.Parent.GetRelativeName(TreeItem Mask.RootObject);

    for (int num = 1; num <= N; num++)
    {
    ITreePinHlp Str = (ITreePinHlp)HostFB.TreeItemHlp.Project.Item(FBPat h + ".Value" + (num + 8).ToString());
    Str.Description = lines[num-1];
    }

  8. #7678

    По умолчанию

    Пример в приложении
    Вложения Вложения
    Спасибо.

  9. #7679

    По умолчанию

    Добрый день!
    Есть переменные количеством более 125. Эти переменные нужно сохранять и подгружать из файла. Использую скрипт для сохранения и чтения:

    using System;
    using MasterSCADA.Script.FB;
    using MasterSCADA.Hlp;
    using FB;
    using System.Linq;
    using System.Windows.Forms;
    using MasterSCADALib;
    using System.IO;
    using MasterSCADA.Documents;
    using System.Collections.Generic;
    using System.Text;
    using InSAT.Library;

    public partial class ФБ : ScriptBase
    {

    Edge read = new Edge();
    Edge write = new Edge();
    Edge writeAdd = new Edge();
    public string Name;


    public override void Execute()
    {
    Name = ((bool)SaveAdd) ? RecipeNameAdd : RecipeName;
    var FilePathName = HostFB.TreeItemHlp.Parent.FolderPath+"Наименование _"+Name+".csv";
    Path = FilePathName;

    if (Load!= null)

    read.SetNewValue(Load.Value);
    if (read.LeadingEdge) //передний фронт входа Чтения
    {
    Error=false; //сброс ошибки
    if (RecipeName==string.Empty) //ничего не введено - ошибка
    {
    ReportError("Пустое имя набора");
    Error=true;
    return; //выход из процедуры
    }
    if (!File.Exists(FilePathName)) //проверка существования файла
    {
    ReportError("Набор не найден");
    return;
    }
    using(var file = new StreamReader(FilePathName, Encoding.GetEncoding(1251), false)) //открытие файла для чтения
    {
    var line=file.ReadLine();//считывание строк из файла
    ITreeItemHlp Obj=HostFB.TreeItemHlp.Parent; //объект в который вставлен ФБ
    while (line!=null)
    {
    String[] substrings = line.Split(';'); //разбор строки на составляющие
    var path = substrings[0];
    var name = substrings[1];
    var val = substrings[2];

    line = file.ReadLine();

    var pin = Obj.GetChild(path, false) as ITreePinHlp; //установление связи
    //с переменной имеющей номер сохранненый в файле
    if (pin==null) //если такая переменная не найдена
    {
    var str = string.Format("{0}:{1}","Не могу установить значение",name);
    ReportError(str);
    Error=true; //ошибка,
    continue; //но работа скрипта продолжается
    }
    pin.AddAssignValueTask(val,null); //присвоение команде значения из файла
    }
    Loading = false;
    }
    }


    if (Save!=null)

    write.SetNewValue(Save.Value);
    if (write.LeadingEdge) //передний фронта записи
    //сохранение наим наименование рецепта в файл
    {
    Error=false; //сброс ошибки
    if (RecipeName==string.Empty) //ничего не задано - ошибка
    {
    ReportError("Пустое имя набора");
    Error=true;
    return; //выход из процедуры
    }
    Directory.CreateDirectory(HostFB.TreeItemHlp.Paren t.FolderPath); //создание директории сохранения
    using(var file = new StreamWriter(FilePathName, false, Encoding.GetEncoding("windows-1251")))
    //открытие файла для записи
    {
    //перебор всех команд данного объекта
    HostFB.TreeItemHlp.Parent.NavigateChilds(delegate( ITreeObjectHlp item)
    {
    if (item.ObjectType != EObjectType.otValue)
    return true;
    ITreePinHlp command = (ITreePinHlp) item;
    var objValue = command.GetRTPin().ObjectValue;

    var commandPath = HostFB.TreeItemHlp.Project.GetRelativeName(HostFB. TreeItemHlp.Parent, item, false); //относительное имя команды
    var commandName=HostFB.TreeItemHlp.Project.GetRelative Name(HostFB.TreeItemHlp.Parent, command, true).Replace(";", "_");
    file.WriteLine("{0};{1};{2}", commandPath, commandName, objValue); //записываем в файл
    return true;
    }, TreeItemMask.Pin, (NavigateItemsFlags)0);
    }
    }

    if (SaveAdd!=null)

    writeAdd.SetNewValue(SaveAdd.Value);
    if (writeAdd.LeadingEdge) //передний фронта записи
    //сохранение наим наименование рецепта в файл
    {
    Error=false; //сброс ошибки
    if (RecipeNameAdd==string.Empty) //ничего не задано - ошибка
    {
    ReportError("Пустое имя набора");
    Error=true;
    return; //выход из процедуры
    }
    Directory.CreateDirectory(HostFB.TreeItemHlp.Paren t.FolderPath); //создание директории сохранения
    using(var file = new StreamWriter(FilePathName, false, Encoding.GetEncoding("windows-1251")))
    //открытие файла для записи
    {
    //перебор всех команд данного объекта
    HostFB.TreeItemHlp.Parent.NavigateChilds(delegate( ITreeObjectHlp item)
    {
    if (item.ObjectType != EObjectType.otValue)
    return true;
    ITreePinHlp command = (ITreePinHlp) item;
    var objValue = command.GetRTPin().ObjectValue;

    var commandPath = HostFB.TreeItemHlp.Project.GetRelativeName(HostFB. TreeItemHlp.Parent, item, false); //относительное имя команды
    var commandName=HostFB.TreeItemHlp.Project.GetRelative Name(HostFB.TreeItemHlp.Parent, command, true).Replace(";", "_");
    file.WriteLine("{0};{1};{2}", commandPath, commandName, objValue); //записываем в файл
    return true;
    }, TreeItemMask.Pin, (NavigateItemsFlags)0);
    }
    }


    }
    void ReportError (string Error) //метод записи ошибки в отчет
    {
    var ScriptName=HostFB.TreeItemHlp.ToString(); //имя скрипта
    HostFB.TreeItemHlp.Project.ErrorTracer.ReportError (string.Format("{0}: {1}",ScriptName,Error));
    }

    }

    Все эти переменные взаимосвязаны с переменными OPC. Если переменных менее 125 то загружается без ошибок, если больше, то в OPC в столбце качество появляется ПОПЫТКА ЗАПИСИ и качество переходит в BAD, но потом заново переходит в GOOD. При это выходит сообщение "Ошибка" по переменным OPC.
    Как лучше организовать загрузку переменных? Частями?

  10. #7680

    По умолчанию

    Какой ОРС сервер используется?
    Спасибо.

Страница 768 из 779 ПерваяПервая ... 268668718758766767768769770778 ... ПоследняяПоследняя

Похожие темы

  1. вопросы начинающего
    от Flomaster в разделе ПЛК1хх
    Ответов: 25
    Последнее сообщение: 11.03.2015, 20:50
  2. Ethernet - вопрос начинающего.
    от Продамщебень)) в разделе Сетевые технологии
    Ответов: 8
    Последнее сообщение: 20.06.2013, 15:35
  3. вопросы начинающего
    от Chifa в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 30.07.2010, 13:32
  4. вопрос начинающего
    от gladkiynikita в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 22.03.2010, 05:43
  5. Вопросы
    от Мурат в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 27.01.2007, 03:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •