Mikhail

Ответы в темах

Просмотр 15 сообщений - с 10,021 по 10,035 (из 10,048 всего)
  • Автор
    Записи
  • в ответ на: Расширенная поддержка #1495
    Mikhail
    Модератор

    Да, обучение — эффективный вариант, можем написать программу вместе в процессе обучения. Подробности предлагаю обсудить по e-mail.

    Mikhail
    Модератор

    Создавать массив VremayRab нужно в виде отдельной формулы.
    Формула для вычисления значения канала должна возвращать double.

    Я бы рекомендовал заказать разработку нужных формул, потому что это значительно сэкономит Ваше время. По крайней мере в 1-й раз, а далее по аналоги уже будет проще создать новые формулы самостоятельно.

    в ответ на: Расширенная поддержка #1489
    Mikhail
    Модератор

    Добрый день!

    1. Реализация новых или существующих программ и формул в Rapid SCADA является разработкой на заказ, стоимость которой оценивается отдельно и не входит в расширенную поддержку.

    2. Да.

    3. Да.

    4. В стоимость расширенной поддержки входит 1 час удалённой работы через TeamViewer. Подразумевается, что этот час будет использоваться в случае срочной необходимости решить какую-либо проблему. Можно заказать большее количество часов удалённого подключения, в этом случае стоимость поддержки будет рассчитана, исходя из необходимого количества часов.

    В дополнение к описанному выше, при заказе расширенной поддержки предоставляется учётная запись нашем в тикет трекере Redmine, что позволяет удобно контролировать статус и историю переписки по Вашим вопросам.

    На всякий случай ссылка на описание возможностей расширенной поддержки: http://rapidscada.ru/services/technical-support/

    Mikhail
    Модератор

    Чтобы «установить» значение канала из формулы, невозможно его так присвоить Val(100) = N. Нужно, чтобы формула для этого канала вернула нужное значение: return N. И затем использовать эту формулу в канале.
    Тип канала — дорасчётный ТИ.

    Mikhail
    Модератор

    Добрый день!
    С точки зрения синтаксиса не верно. Наверное, удобнее всего тестировать синтаксис в Microsoft Visual Studio 2015 Community. Она бесплатна. Вы можете создать простейший проект типа Console Application и проверять, компилируется код ил нет.

    В формулах для Rapid SCADA вся логика должна быть внутри методов (функций). Например, цикл for не может быть сам по себе. Используйте те примеры, которые уже есть в базе конфигурации.

    Созданный метод (формулу) Вы прописываете во входной канал или в канал управления. Эта формула будет вызываться только тогда, когда вычисляется значение канала.

    Mikhail
    Модератор

    Добрый день!
    Подобные разработки выполняются на заказ. Они выходят выходят за рамки технической поддержки и даже расширенной поддержки.

    в ответ на: Win10 #1478
    Mikhail
    Модератор

    Надеюсь, что поможет. Добейтесь сначала, чтобы http://localhost показывал стандартную страницу. После этого переходите к установке SCADA-Web.

    в ответ на: Win10 #1476
    Mikhail
    Модератор

    Rapid SCADA в Win 10 работает.
    Насколько можно рассмотреть скриншоты, необходимые компоненты установлены.
    Дело тут не в схемах, веб-приложение вообще не работает.
    Открывается ли нормально сайт по умолчанию http://localhost ?

    Mikhail
    Модератор

    С точки зрения синтаксиса попробуйте

    public double CnlKN(int dependOnCnl)
    {
      if (Flags[dependOnCnl])
      {
        Flags[dependOnCnl] = false;
        return 0;
      }
      else
      {
        return Val(dependOnCnl) > 1 ? Cnl + 1 : Cnl;
      }
    }
    

    А правильность логики нужно тестировать.

    Mikhail
    Модератор

    Не забудьте сбросить флаг в значение false.

    Mikhail
    Модератор

    Добрый день!
    Сложность в том, что Вы не сможете напрямую записать значение в канал N1 = 0.
    Поэтому в таблице формул нужно завести список или массив флагов:

    public bool[] Flags = new bool[65535];
    

    Список экономит память, но с массивом работать проще. В формуле канала управления Вы будете устанавливать флаг по команде, например, Flags[1]=true, а формуле входного канала его сбрасывать Flags[1]=false

    Mikhail
    Модератор

    Можно, чтобы не копировать одно и то же, завести в таблице формул такую формулу:

    public double IncCnl(int dependOnCnl)
    {
        return DayBeg() ? 0 : Val(dependOnCnl) > 1 ? Cnl + 1: Cnl;
    }
    

    А затем вызывать её в формуле входного канала: IncCnl(291)

    Mikhail
    Модератор

    Прошу меня извинить. Правильно так
    DayBeg() ? 0 : Val(291)>1 ? Cnl+1:Cnl

    Раньше DayBeg возвращала число, но потом стала возвращать bool

    в ответ на: Установка на Windows server 2003 r2 #1460
    Mikhail
    Модератор

    Да, 2003 сервер немного устарел )
    Вы правильно сделали, что воспользовались инструкцией по ручной установке.
    Нужно покопаться в настройках веб приложения в консоле управления IIS, чтобы настроить виртуальную директорию на http://localhost/Scada
    У меня, к сожалению, нет установленного Windows server 2003 r2, поэтому более точно не могу сказать.

    Ещё как вариант подключиться к Вам удалённо и настроить — это платная услуга.
    Ещё вариант — разместить файлы веб-приложения в C:\inetpub\wwwroot\Scada — так делали в предыдущих версиях Rapid SCADA.
    Либо использовать более свежую версию ОС.

    Mikhail
    Модератор

    Используйте Часовой ТИ, а не Часовой ТС.

    Чтобы обнулить входной канал раз в месяц, умножьте существующую для канала формулу на MonthBeg()
    Для проверки можно умножить на DayBeg() — обнуляет раз в сутки.

    Сбрасывать по команде сложнее:
    1. Нужно завести в таблице формул массив. Для каждого сбрасываемого значения будет отдельный элемент массива.
    2. Для канала управления (для команды) должна быть формула, которая поднимает в этом массиве флаг для нужного сбрасываемого входного канала.
    3. Нужно создать в таблице формул свою функцию для входного канала, которая будет равна 1, если флаг не поднят, и 0, если поднят и сразу сбрасывать флаг.
    4. На созданную в п.3 функцию Вам нужно умножить свой входной канал.

Просмотр 15 сообщений - с 10,021 по 10,035 (из 10,048 всего)