PDA

Просмотр полной версии : Вопрос по скриптам



Hemann
07.10.2017, 07:07
Коллеги. приветствую!

Подскажите, пожалуйста, есть ли в скриптах EnLogic побитовые логические операторы (типа &, |,~ в языке С)? Нужно побитно разбирать целое число, и с этими операторами все было бы совсем просто.

capzap
07.10.2017, 09:13
т.е. документацию читать вовсе не хочется
раздел 1.4.6.6
по мне так инспектор кода больше поможет

Hemann
07.10.2017, 18:03
Честно говоря, пытался решить задачу "нахрапом", кривое решение сработало. Документацию читал, но по диагонали, вот, видимо, и упустил что-то. Но хочется иметь инструмент для элегантного кода. И еще. Мы, может быть, говорим о разных документах? Раздел 1.4.6.6 какого документа вы имеете в виду?

Яшина Татьяна
09.10.2017, 09:11
Да, данные операторы поддержаны, в том числе и побитовый сдвиг. Также разобрать/собрать число по битам могут помочь блоки "Дешифратор"-"Шифратор" из группы "Шифраторы"

Hemann
09.10.2017, 09:24
Таня, спасибо! Уже разобрался. Только не было возможности написать сюда об этом

Maddyson
06.10.2022, 10:15
Всем доброго времени суток! мучает вопрос касательно скриптов, в частности где он хранится (для того чтобы другим скриптом считать данные из скрипта скады), а второй момент заключается в работе функций записи bool\int и т.п. значений, в помощнике функция записи описывается так WriteDiscret(const VarName : string; const Value : boolean) : boolean, в руководстве описывается иначе function WriteBoolAddr (const VarAddr : integer, X: Bool) : bool, конкретно я пытался и то и другое, но везде компиляция => ошибка, свой пример прилагаю, если есть возможность у кого-нибудь скинуть пример работающего скрипта с записью значения переменной внутри скрипта в переменную с паспортом скады (имя clap, значение лог. 0, тип дискретный выход, шифр test tcp out, флаг 0)
//C++ script
int c1 = 1;
bool x;


{
if (c1 == 1)
{
x = TRUE;
WriteDiscret (clap, x);
}
else
{
clap = FALSE;
}
}