Страница 41 из 41 ПерваяПервая ... 31394041
Показано с 401 по 409 из 409

Тема: Вопросы по MasterSCADA 4D

  1. #401
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,483

    По умолчанию

    VladGC самый простой способ через Словарь массив строк командами, что написал выше. Парсить ничего не надо тогда специально.

  2. #402

    По умолчанию

    как обновиться в Masterscada4D? в меню не нашел - текущая версия 1.2.9 - поддержка внешнего кода у ФБ st есть как в вебинаре, только очень сложный алгоритм с подгрузкой библиотек - проект пока не удалось сделать.
    будет ли эл. ключ работать после обновления?
    Последний раз редактировалось nub; 14.01.2021 в 14:04.

  3. #403

    По умолчанию

    Цитата Сообщение от nub Посмотреть сообщение
    как обновиться в Masterscada4D? в меню не нашел - текущая версия 1.2.9 - поддержка внешнего кода у ФБ st есть как в вебинаре, только очень сложный алгоритм с подгрузкой библиотек - проект пока не удалось сделать.
    будет ли эл. ключ работать после обновления?
    Бесплатно можно обновляться год с момента покупки, можно написать в тп , что бы дали ссылку на скачивание новой версии.
    Затем надо переустановить как RT так и DT
    Только надо все забекапить, что бы случайно не сломать как проект так и архивы и прочее

  4. #404

    По умолчанию

    ясно. большое спасибо!!!
    попробую сначала через file to string прочитать txt файл, затем string - на части (с помощью функций работы со строками) и присвоить переменным; если не пойдет, обновлюсь.

    Кстати, а что будет в Masterscada4d при передачи данных командой file to string размер данных файла будет больше объема переменной типа string (к примеру в txt файле 1000 символов - и как теперь их прочитать все)

  5. #405

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    VladGC самый простой способ через Словарь массив строк командами, что написал выше. Парсить ничего не надо тогда специально.
    FileToString читает в одну строку, а ReadAllLines читает в массив строк, которые надо будет все равно разбить на столбцы,
    Получается что уходит одна итерация

    Цитата Сообщение от nub Посмотреть сообщение
    ясно. большое спасибо!!!
    попробую сначала через file to string прочитать txt файл, затем string - на части (с помощью функций работы со строками) и присвоить переменным; если не пойдет, обновлюсь.
    Думаю стоит обновиться или подождать версии 1.2.12 , должна скоро выйти по идее..
    По крайне мере, как предложил melky, может действительно лучше на с#, примеров в сети много, да и возможности побогаче


    Цитата Сообщение от nub Посмотреть сообщение
    Кстати, а что будет в Masterscada4d при передачи данных командой file to string размер данных файла будет больше объема переменной типа string (к примеру в txt файле 1000 символов - и как теперь их прочитать все)
    Все норм будет(одна большая строка):
    Вложение 53019

  6. #406

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    VladGC самый простой способ через Словарь массив строк командами, что написал выше. Парсить ничего не надо тогда специально.
    FileToString читает в одну строку, а ReadAllLines читает в массив строк, которые надо будет все равно разбить на столбцы,
    Получается что уходит одна итерация


    Попробовал ReadAllLines с примером из https://www.cyberforum.ru/csharp-beg...ad1736667.html
    Код:
    class Program
        {
            static void Main(string[] args)
            {
                string[] lines = File.ReadAllLines(@"D:\input.txt");
                int[,] num = new int[lines.Length, lines[0].Split(' ').Length];
                for (int i = 0; i < lines.Length; i++)
                {
                    string[] temp = lines[i].Split(' ');
                    for (int j = 0; j < temp.Length; j++)
                        num[i, j] = Convert.ToInt32(temp[j]);
                }
             Параметр_1=num;
            }
        }
    Ошибка: CS0029: Не удается неявно преобразовать тип "int[*,*]" в "int[]".
    Не удается неявно преобразовать тип "int[*,*]" в "int[]"
    Хотя сама переменная в MasterScada с типом ARRAY [*,*] OF DINT
    В принципе добить можно до рабочего состояния, по крайней мере все читает как надо


    Цитата Сообщение от nub Посмотреть сообщение
    ясно. большое спасибо!!!
    попробую сначала через file to string прочитать txt файл, затем string - на части (с помощью функций работы со строками) и присвоить переменным; если не пойдет, обновлюсь.
    Думаю стоит обновиться или подождать версии 1.2.12 , должна скоро выйти по идее..
    По крайне мере, как предложил melky, может действительно лучше на с#, примеров в сети много, да и возможности побогаче


    Цитата Сообщение от nub Посмотреть сообщение
    Кстати, а что будет в Masterscada4d при передачи данных командой file to string размер данных файла будет больше объема переменной типа string (к примеру в txt файле 1000 символов - и как теперь их прочитать все)
    Все норм будет(одна большая строка):
    Screenshot_1.png

  7. #407
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    7,483

    По умолчанию

    VladGC , эээ, пожалуй я приведу весь свой код, делал очень давно и возможно тут фокусы с Linq. я это делал в RapidScada, по этому не знаю, как эти же механизмы использовать в MasterScada, но может поможет понять и сделать как вам нужно.
    У меня это три "формулы" - скрипта.
    Чтение переменных - SetVal здесь встроенная функция Scada системы записать в канал № значение SetVal(1000, 23.6) пример
    Код:
    bool initRet = false;
    double LoadRet()
    {
    if (!initRet)
    {
    
    if (System.IO.File.Exists(pathRet))
    {
    string[] RetLoad = System.IO.File.ReadAllLines(pathRet, Encoding.UTF8);
    for (int i = 0; i < RetLoad.Length; i++)
    {
    SetVal(Convert.ToInt32(RetLoad[i].Substring(RetLoad[i].IndexOf("[")+1, RetLoad[i].IndexOf(", ")-(RetLoad[i].IndexOf("[")+1)),10),Convert.ToDouble(RetLoad[i].Substring(RetLoad[i].IndexOf(", ")+2,RetLoad[i].IndexOf("]")-(RetLoad[i].IndexOf(", ")+2))));
    }
    initRet = true;
    }
    
    }
    return Convert.ToDouble(initRet);
    }
    Объявление переменной как Retain
    Код:
    string pathRet = @"/home/pi/scada/ScadaServer/Config/retain.txt";
    Dictionary<int, double> DictRet = new Dictionary<int, double>();
    public double Retain (double ret)
    {
    DictRet[CnlNum] = ret;
    return ret;
    }
    Запись в файл
    Код:
    double SaveRet()
    {
    string[] RetSave = new string[DictRet.Count];
    bool eq = false;
    for (int i = 0; i < DictRet.Count; i++)
    {
    RetSave[i] = Convert.ToString(System.Linq.Enumerable.ElementAt(DictRet, i));
    }
    
    if (!System.IO.File.Exists(pathRet))
    {
    System.IO.File.WriteAllLines(pathRet, RetSave, Encoding.UTF8);
    return 0;
    }
    else
    {
    string[] RetOld = System.IO.File.ReadAllLines(pathRet, Encoding.UTF8);
    eq = System.Linq.Enumerable.SequenceEqual(RetOld, RetSave);
    if (!eq)
    {
    System.IO.File.WriteAllLines(pathRet, RetSave, Encoding.UTF8);
    }
    }
    return Convert.ToDouble(eq);
    }
    Все таки есть преобразования в строку при записи в файл и обратное преобразование в числа int и double
    Скобочки [ и ] это я оказывается для красоты замутил что ли хотч не, это скорее особенность какого-то механизма при записи.
    При записи я не парился с конвертированием Key и Value словаря, а сделал это через Linq. Обратно уже по одному. Вполне возможно можно обрезать лишние скобки и разделить строку и как то быстрее сделать при чтении но как-то особо не парился...
    Последний раз редактировалось melky; 15.01.2021 в 23:14.

  8. #408

    По умолчанию Ошибка при формировании отчёта в Мастерскада4Д1.2, блок ReportFB.

    Здравствуйте!
    Скачал бесплатную одночасовую версию Мастерскада4Д1.2.Формирую отчёт с помощью функции ReportFB. Старался сделать всё, как написано в хелпе ПО. Блок при запуске Execute выдаёт ошибку Can't parse response.
    Подскажите пожалуйста, что это и как исправить. Или где посмотреть: гугл и хелп не находят.

  9. #409

    По умолчанию

    Цитата Сообщение от Алекс. Посмотреть сообщение
    Здравствуйте!
    Скачал бесплатную одночасовую версию Мастерскада4Д1.2.Формирую отчёт с помощью функции ReportFB. Старался сделать всё, как написано в хелпе ПО. Блок при запуске Execute выдаёт ошибку Can't parse response.
    Подскажите пожалуйста, что это и как исправить. Или где посмотреть: гугл и хелп не находят.

    Дайте скриншот программы и отчета, что бы глянуть как оно выглядит

    Есть документация от производителя самого отчета, но это не ваш случай
    https://www.stimulsoft.com/ru/docume...e/user-manual/

Страница 41 из 41 ПерваяПервая ... 31394041

Похожие темы

  1. Вопросы по СИ-8
    от aleksandr87 в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 11.06.2016, 18:56
  2. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 15:39
  3. MasterScada v3.6 Основные вопросы
    от colorprint2008 в разделе Master SCADA 3
    Ответов: 7
    Последнее сообщение: 24.12.2013, 16:50
  4. конвертация проекта из Masterscada 3.5 в Masterscada 3.4
    от Сергей_SPB в разделе Master SCADA 3
    Ответов: 2
    Последнее сообщение: 01.04.2013, 17:56
  5. Вопросы по трендам MasterSCADA
    от 42ia в разделе Master SCADA 3
    Ответов: 9
    Последнее сообщение: 26.06.2012, 11:58

Ваши права

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