Ответы в темах
-
АвторЗаписи
-
MikhailМодераторДа, обучение — эффективный вариант, можем написать программу вместе в процессе обучения. Подробности предлагаю обсудить по e-mail.
MikhailМодераторСоздавать массив VremayRab нужно в виде отдельной формулы.
Формула для вычисления значения канала должна возвращать double.Я бы рекомендовал заказать разработку нужных формул, потому что это значительно сэкономит Ваше время. По крайней мере в 1-й раз, а далее по аналоги уже будет проще создать новые формулы самостоятельно.
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МодераторДобрый день!
Подобные разработки выполняются на заказ. Они выходят выходят за рамки технической поддержки и даже расширенной поддержки.
MikhailМодераторНадеюсь, что поможет. Добейтесь сначала, чтобы http://localhost показывал стандартную страницу. После этого переходите к установке SCADA-Web.
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
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 функцию Вам нужно умножить свой входной канал. -
АвторЗаписи