Просмотр полной версии : Помощь с функциональными блоками на ST
Марс0893
27.02.2025, 22:57
Доброго времени суток уважаемые форумчане. Я, как новичок, пытаюсь освоиться в OL, в частности со спецификой создания ФБ на st.
Заранее прошу прошения, если напишу какую-то дичь, сильно пожалуйста не кидайтесь тапками;)
Вопрос следующий, хотел сделать блок, который считает кол-во импульсов по переднему фронту, пришедших на вход. Имеется также вход N для задания порогового числа импульсов, после прохождения которого, счетчик сбрасывается на 0. Блок в принципе не вызывает никаких проблем и работает, если кол-во импульсов задавать внешней константой, но хотелось бы реализовать параметр задания кол-ва импульсов, как в блоке универсального счетчика CTN(закинул скрин примера, как хотелось бы реализовать). Пытался это сделать таким образом:
VAR_CONFIG
N : UDINT := 10; // Пороговое значение, задаваемое в свойствах блока
END_VAR
Но среда не дает использовать такие штуки. Можно ли как-то реализовать на st возможность задачи параметров внутри блока?
Доброго времени суток уважаемые форумчане. Я, как новичок, пытаюсь освоиться в OL, в частности со спецификой создания ФБ на st.
Заранее прошу прошения, если напишу какую-то дичь, сильно пожалуйста не кидайтесь тапками;)
Вопрос следующий, хотел сделать блок, который считает кол-во импульсов по переднему фронту, пришедших на вход. Имеется также вход N для задания порогового числа импульсов, после прохождения которого, счетчик сбрасывается на 0. Блок в принципе не вызывает никаких проблем и работает, если кол-во импульсов задавать внешней константой, но хотелось бы реализовать параметр задания кол-ва импульсов, как в блоке универсального счетчика CTN(закинул скрин примера, как хотелось бы реализовать). Пытался это сделать таким образом:
VAR_CONFIG
N : UDINT := 10; // Пороговое значение, задаваемое в свойствах блока
END_VAR
Но среда не дает использовать такие штуки. Можно ли как-то реализовать на st возможность задачи параметров внутри блока?
И чем вариант на скрине принципиально отличается от константы на входе?
Доброго времени суток уважаемые форумчане. Я, как новичок, пытаюсь освоиться в OL, в частности со спецификой создания ФБ на st.
Заранее прошу прошения, если напишу какую-то дичь, сильно пожалуйста не кидайтесь тапками;)
Вопрос следующий, хотел сделать блок, который считает кол-во импульсов по переднему фронту, пришедших на вход. Имеется также вход N для задания порогового числа импульсов, после прохождения которого, счетчик сбрасывается на 0. Блок в принципе не вызывает никаких проблем и работает, если кол-во импульсов задавать внешней константой, но хотелось бы реализовать параметр задания кол-ва импульсов, как в блоке универсального счетчика CTN(закинул скрин примера, как хотелось бы реализовать). Пытался это сделать таким образом:
VAR_CONFIG
N : UDINT := 10; // Пороговое значение, задаваемое в свойствах блока
END_VAR
Но среда не дает использовать такие штуки. Можно ли как-то реализовать на st возможность задачи параметров внутри блока?
В Лоджике только так: N : UDINT := 10; // Пороговое значение, задаваемое в свойствах блока
Мне кажется OwenLogic не поддерживает конструкцию VAR_CONFIG.
Но инициализацию можно сделать и в VAR и в VAR_INPUT.
Единственно, нужно проверить - нет ли присвоения 0 на незадействованный вход ФБ при его использовании в программе FBD.
Хотя и удобно неиспользовать часть входов, на мой личный взгляд - это сродни договору с дьяволом, что он лично Вас не обманет.
Мне кажется OwenLogic не поддерживает конструкцию VAR_CONFIG.
Но инициализацию можно сделать и в VAR и в VAR_INPUT.
Единственно, нужно проверить - нет ли присвоения 0 на незадействованный вход ФБ при его использовании в программе FBD.
Хотя и удобно неиспользовать часть входов, на мой личный взгляд - это сродни договору с дьяволом, что он лично Вас не обманет.
В VAR_INPUT - бесполезно, неподключенным входам будет присвоен 0
Имхо FPavel имел ввиду сравнить input с var, и если на входе <>0 то принять его.
Накой это нужно? Ретайн переинициализировать? Если что то менябельное, то (какой ПР то?) то что сразу из параметров не забрать?
Марс0893 В OWenLogic VAR_CONFIG не поддерживается (и, скорее всего, не будет).
Нужно будет сделать обычный вход через VAR_INPUT и задавать ему значение через константу снаружи.
kondor3000
28.02.2025, 11:40
Если константа не будет меняться, то в VAR присваиваете N : UDINT := 10;
Если надо менять, то в VAR_Input пишите N : UDINT; и меняете снаружи блока.
Марс0893
28.02.2025, 16:38
Дело в том, что я хотел сделать один большой ФБ, в котором можно было бы с внутреннего меню менять параметры Блока, а не лезть в него и каждый раз править. Но на нет и суда нет. В любом случае спасибо за ответ, пускай и не тот, который я хотел услышать.
Марс0893
28.02.2025, 16:42
Да я так и сделал, так как не нашел другого решения.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot