Здравствуйте.
При написании блока на ST задался таким вопросом
В документации нашёл только обращение к стандартным ФБ
А если я хочу добавить в свой блок нестандартный (например, Генератор случайных чисел из paCore.rndgen) или свой другой ФБ, это возможно?Код:VAR tonTest: TON; END_VAR tonTest (IN:= xTest, PT:= tTest); xTonTest:= tonTest.Q;
Я не волшебник, я только учусь...
Да, в коде можно использовать и другие блоки из библиотек, открытых в Полигоне или другие блоки созданные в вашем проекте (за исключением составных, это временное ограничение).
При этом действуют те же ограничения на блоки, которые можно использовать в коде на ST: без циклических входов/выходов, только стандартные типы данных, без константных входов и указателей в качестве выходов (подробнее тут https://polygon2.ru/biblioteka/?libr...ng_limitations)
С этим разделом документации я уже ознакомился.
Разобрался, так как у меня резервирование нужно использовать DelayOn_sync
Код:VAR_INPUT xTest : BOOL tTest : DINT; // <- В миллисекундах не TIME END_VAR VAR_OUTPUT xTonTest: BOOL; END_VAR VAR tonTest: DelayOn_sync; END_VAR tonTest (I:= xTest, P:= tTest); xTonTest:= tonTest.Q;
Я не волшебник, я только учусь...
Добрый день.
А я правильно понял, что у AND нет приоритета перед OR? По крайней мере у этих двух строк:
xCondition := ((InVal >= InSetting) and IsHigh) or ((InVal < InSetting) and not IsHigh);
TempOut := (InVal >= InSetting) and IsHigh or (InVal < InSetting) and not IsHigh ;
результат получается разный...
У Полигона свой путь.Если говорить именно о классических языках программирования (C, C++, Java, C#, JavaScript, Python, Ruby, PHP, Swift, Kotlin, Go, Rust и т.*д.)*—*везде AND приоритетнее OR. Исключения либо связаны с правоассоциативностью (APL), либо с тем, что речь идёт не о логических операторах в обычном понимании.