PDA

Просмотр полной версии : MasterSCADA



TiO2
25.10.2009, 21:35
добрый день
мва8 + ас4
вопрос такого плана представим, что у меня есть датчик выдающий значения от 0 до 100 процентов к этому датчику в мнемосхеме прикреплен стрелочный прибор необходимо ,что бы стрелочный прибор на экране отображал: "на датчике 0-75%"-->"на стрелочном приборе 0-50%","на датчике 75-100%"-->"на стрелочном приборе 50-100%"

заранее спасибо

Sniper007
26.10.2009, 14:22
Итак получается. При значении меньше 75 на выходе будет в полтора раза меньше. При значении больше 75 на выходе будет: 50+(показания датчика - 75)*2.
Проще всего это реализовать в модуле Скрипт (версия не ниже 3.0). Создаете модуль скрипт, задаете один вход - "Датчик" и один выход "Выход).
Далее нужно прописать такой код (даю полный код скрипта):
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using System.Linq;

public partial class ФБ : ScriptBase
{
public override void Execute()
{
if (Датчик<=75) Выход=Датчик/1.5;
else Выход=(Датчик-75)*2+50;
}
}


Еще можно использовать "Расчет". Прилагаю такой код
ЕСЛИ( Датчик<=75, Датчик/1.5, 50+(Датчик-75)*2 )
Обращаю внимание, опять таки нужна версия 3.0 и старше, так как в ранних "Если" не реализована.

TiO2
26.10.2009, 16:53
огромное вам спасибо,
версия у меня 3.2 ,
оба варианта очень интересны.

Sniper007
26.10.2009, 20:46
пожалуйста. обращайтесь если что...
а что уже версия 3.2 вышла???

P.s. если у вас будет много таких нелинейных приборов то лучше использовать второй вариант (с модулем расчет) - это дешевле (экономит внешние тэги).

TiO2
26.10.2009, 23:54
пожалуйста. обращайтесь если что...
а что уже версия 3.2 вышла???

.


опечалси 3.1.133.29740 )

TiO2
31.10.2009, 10:58
пожалуйста. обращайтесь если что...
а что уже версия 3.2 вышла???

P.s. если у вас будет много таких нелинейных приборов то лучше использовать второй вариант (с модулем расчет) - это дешевле (экономит внешние тэги).
Скажите, а возможно ли при испольщовании этого метода сделать так , что бы например ЕСЛИ( Датчик<=75, Датчик/1.5, Else - переход в другое условие ЕСЛИ )


заранее спасибо

Sniper007
01.11.2009, 15:41
Да, можно.
Только else не надо. Вот примерно так надо:
ЕСЛИ( Датчик<=75,Датчик/1.5,
ЕСЛИ(Датчик>100,Датчик*2,Датчик*3 ) )
Если значение будет меньше 75, то будет деление на 1,5. Если значение больше 100 будет умножение на 2, а если больше 75 и меньше 100 умножение на 3.

TiO2
01.11.2009, 19:13
Принял, большое спасибо -буду пробовать