Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Написание программы с простой логикой
- В этой теме 54 ответа, 3 участника, последнее обновление 8 лет назад сделано Mikhail.
-
АвторСообщения
-
04.02.2016 в 15:54 #1486EvgenУчастник
и какой тип канала необходимо создать?
05.02.2016 в 10:11 #1487MikhailМодераторЧтобы «установить» значение канала из формулы, невозможно его так присвоить Val(100) = N. Нужно, чтобы формула для этого канала вернула нужное значение: return N. И затем использовать эту формулу в канале.
Тип канала — дорасчётный ТИ.08.02.2016 в 14:31 #1490EvgenУчастникЗдравствуйте!
я хочу входные каналы присвоить массиву
и затем после обработки вывести данные в скаде.
// присвоение массиву значение каналов
public double[] VremayRab()
{
double[] VremayRab = new double [30];
foreach (int i in VremayRab)
{
VremayRab[CnlNum + i] = Val(274 + i);}
return VremayRab;
}
// далее я создал дорасчётный ТИ
и как этому каналу присвоить значение из массива?
и как часто будут обновятся данные?(так же как и с ПЛК или будет временная задержка?)08.02.2016 в 14:42 #1491EvgenУчастникя перепробовал записать в столбце формула разными способами
08.02.2016 в 15:04 #1492MikhailМодераторСоздавать массив VremayRab нужно в виде отдельной формулы.
Формула для вычисления значения канала должна возвращать double.Я бы рекомендовал заказать разработку нужных формул, потому что это значительно сэкономит Ваше время. По крайней мере в 1-й раз, а далее по аналоги уже будет проще создать новые формулы самостоятельно.
08.02.2016 в 16:56 #1493EvgenУчастникв разработке формул будут объяснения?
просто если Вы все сделаете и не будет ни одного комментария то разбираться все равно будет не просто, и нужно будет сидеть анализировать все действия и разбираться в их очередности.09.02.2016 в 17:09 #1502MikhailМодераторДа, конечно. Но Ваша идея по поводу обучения лучше всего.
11.02.2016 в 16:15 #1517EvgenУчастникКак из канала управления присвоить значение входному каналу?
(не передавая его в плк или другое устройство)12.02.2016 в 11:11 #1519EvgenУчастникВот я возвращаю каналу значение другого канала,
public double InputChannels(int dependOnCnl)
{
return Val(dependOnCnl);
}как задать похожую функцию что бы возвращать входному каналу значение канала управления
12.02.2016 в 13:26 #1520MikhailМодераторСоздайте 3 разных формулы: CnlValDict, CnlValGet и CnlValSet
public Dictionary<int, double> CnlValDict = new Dictionary<int, double>(); public double CnlValGet(int cnlNum) { double val; return CnlValDict.TryGetValue(cnlNum, out val) ? val : Val(cnlNum); } public double CnlValSet(int cnlNum) { CnlValDict[cnlNum] = Cmd; return double.NaN; }
В формуле канала управления используйте CnlValSet, а в формуле входного канала CnlValGet. Параметр формул — номер входного канала. Тип входных каналов — дорасчётный ТИ.
12.02.2016 в 14:55 #1521EvgenУчастникСпасибо работает!
такой вопрос
что означает:
в канале управления: тип команды
и какая разница между Часов ТИ и часовой ТС
дорасчетный ТИ дорасчетный ТС?12.02.2016 в 16:58 #1522EvgenУчастникpublic int RepairTime(int dependOnCnl, int cnlNum)
{
if (Val(dependOnCnl) >= Val(cnlNum))
{
return 0;
}
return 1;
}
эта функция сравнивает 2 канала.
как сюда добавить обнуление канала (Val(dependOnCnl))»или вернуть значение 0″
если ввели команду в определенном канале управления.13.02.2016 в 14:00 #1523MikhailМодераторКанал типа ТИ отображается как число. ТС — перечислимое значение, например, Вкл и Откл.
Чтобы в формула устанавливала значение канала, она должна возвращать это значение. Формула должна использоваться для канала Дорасчётный ТИ (или ТС).
15.02.2016 в 09:47 #1524EvgenУчастникЗдравствуйте!
я написал функцию
public double VremyaRab(int CnlNumI, bool CnlNumBut) //время работы привода с током CnlNumI и кнопкой CnlNumBut
{
bool m = MinuteBeg(); //начало новой минуты
double V = Val(CnlNum); //текущее время работы
if (m) //если начало новой минуты
{
if (Val(CnlNumI) > 1) //если ток привода больше нуля
{
V++;
}
}
if (Val(CnlNumBut) == true)
{
V = 0;
}
return V;
}Вопрос как добавить кнопку( 2 значения true false) в визуализацию
кнопка нажата true не нажата false.
и привязать канал управления в мою функцию15.02.2016 в 12:29 #1525EvgenУчастникудалось реализовать следующим образом
канал управления Тип стандартный значение откл-вкл
и присвоил значение канала упр входному.
но приходится нажимать 2 раза что бы канал вернулся в исходное состояние
это не удобно -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.