Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Как использовать формулы ?
- В этой теме 86 ответов, 12 участников, последнее обновление 3 года, 1 месяц назад сделано Mikhail.
-
АвторСообщения
-
29.01.2021 в 14:45 #18191vgУчастник
gel-dev_it
По второму пункту
Нужно создать канал управления для отправки почты.
В зависимости от того что хочется (ручная отправка или автоматическая) нужно будет вбивать строку вручную или автоматизировать модулем автоматического управления.Видео урок можно посмотреть на youtube.
29.01.2021 в 17:20 #18197evgУчастникПо второму пункту
Нужно создать канал управления для отправки почты.
В зависимости от того что хочется (ручная отправка или автоматическая) нужно будет вбивать строку вручную или автоматизировать модулем автоматического управления.Благодарю, сейчас попробую. Нужна автоматическая отправка заготовленного сообщения.
01.02.2021 в 16:27 #18226evgУчастникВсем привет. Нужна опять помощь по формуле. Нужно следующее.
Допустим если я вношу в 101 канал значение 10 и если это значение меньше 12, то передать в 102 канал единицу.
Затем если я опять вношу в 101 канал, значение 11 и если это значение меньше 12, то передать в 102 канал ещё одну единицу.
Итого в 102-м канале будет значение 2 и так далее. Т.е. переданные единицы суммируются.
Т.е. я так предполагаю формула должна реагировать на команду ТУ (Cmd) при вводе значения ниже 12, добавлять в 102 канал единицу.- Этот ответ был изменен 3 года, 1 месяц назад от evg.
01.02.2021 в 17:26 #18230evgУчастникТак же очень интересно как установить статус входному каналу через Команду — Rapid SCADA? Если я прописываю формулу SetStat(101, 10) присваивается 10-й статус каналу 101, при добавлении Cmd вместо 10 сервер падает.
Строка 3105, колонка 138: error CS1503: Argument 1: cannot convert from ‘double’ to ‘int’- Этот ответ был изменен 3 года, 1 месяц назад от evg.
01.02.2021 в 22:14 #18235manjey73УчастникВидимо тип переменных статусов это int
или (int)Cmd или Convert.Int(Cmd) ( не уверен что правильно по памяти, надо Студио запустить)
Или Convert.Int32(Cmd)- Этот ответ был изменен 3 года, 1 месяц назад от manjey73.
01.02.2021 в 22:31 #18238manjey73УчастникConvert.ToInt32(Cmd) по идее будет правильным
02.02.2021 в 11:16 #18242evgУчастникConvert.ToInt32(Cmd) по идее будет правильным
СПАСИБО! Помогло!
02.02.2021 в 19:21 #18250MikhailМодератор(int)Cmd
тоже должно сработать10.02.2021 в 11:57 #18328evgУчастникПриветствую. Есть такая задачка, сделать так чтобы если значение одного из входных каналов = 1, то три других канала должны быть = 0. Пробывал сделать по аналогии с той формулой которую давал мне «vg». Делал так
public double _LogicFunc(double i, double k, double z)
{
double valueCh = 0;
if(i == 1 | k == 1 | z == 1)
{
valueCh = 0;
}
return valueCh;
}Не сработало. Т.е. по логике должно быть так, я ставлю во входной канал эту формулу. И если канал i ИЛИ k ИЛИ z равен = 1, то текущий входной канал должен быть равен 0. Во входном канале пишу _LogicFunc(Val(101), Val(102), Val(103)).
10.02.2021 в 17:20 #18329MikhailМодераторДобрый день!
Логическое или обозначается двумя символами: ||12.02.2021 в 15:14 #18351evgУчастникПротестировал с двумя || не получается Сервер останавливается, как будто ругается на формулу. В целом получилось решить этот вопрос через модуль автоуправления.
12.02.2021 в 17:37 #18354MikhailМодераторХорошо. Но если Сервер останавливается, то нужны конкретные ошибки из его лога.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.