PDA

Просмотр полной версии : Функцианальный блок вопрос



zendo057
17.01.2014, 19:19
Задача:Нужно управлять 10ю одинаковыми узлами со своими входами и выходами.
Действия:Создаю ФБ.В главной программе(PLC_PRG)делаю 10 копий, каждой копии даю имя.
Вопрос:Подскажите как это будет работать,ведь в этих10и ФБ одни и теже переменные,а у каждого ФБ свои отдельные входы.Как они будут опрашиваться циклично,те 1й цикл 1й блок 10йцикл 10й блок или все сразу.Если по второму варианту то не понимаю как разные входы будут работать одвременно с одними и теми же переменными.Если по первому то увеличится время,а время критично.Может так делать нельзя? .Про ФБ прочитал что его в проекте можно применять сколько угодно раз под разным именем.Дайте пожалуйста разъяснение.

Василий Кашуба
17.01.2014, 19:28
Задача:Нужно управлять 10ю одинаковыми узлами со своими входами и выходами.
Действия:Создаю ФБ.В главной программе(PLC_PRG)делаю 10 копий, каждой копии даю имя.
Вопрос:Подскажите как это будет работать,ведь в этих10и ФБ одни и теже переменные,а у каждого ФБ свои отдельные входы.Как они будут опрашиваться циклично,те 1й цикл 1й блок 10йцикл 10й блок или все сразу.Если по второму варианту то не понимаю как разные входы будут работать одвременно с одними и теми же переменными.Если по первому то увеличится время,а время критично.Может так делать нельзя? .Про ФБ прочитал что его в проекте можно применять сколько угодно раз под разным именем.Дайте пожалуйста разъяснение.
Разные должны быть не только имена ФБ, но и имена переменных, сами же сказали что ФБ подключены к разным входам контроллера. Имена можно было не менять, а добавить порядковые номера, как для ФБ, так и для переменных.

zendo057
17.01.2014, 20:20
Я не совсем понял.Вот примерчик как я понимаю,а ВЫ подправте или разъясните что не так.

amn
17.01.2014, 20:46
Создали 10 копий. Представьте себе, что это 10 разных блоков, только программый код у них одинаковый, но все переменные у каждого будут свои.

У Вас же таких вопросов не возникает, когда используете таймер или триггер? Тут то же самое.

zendo057
17.01.2014, 21:56
Я понял так.Нужно создать в левой части не один а 10 одинаковых ФБ но со своими переменными.Но тогда чем они отличаются отPRG.
Гдето я прочитал PRG можно использовать только раз, а FB многократно вот я и решил так поступить.
Раньше Благодоря ВАМ amn я вроде как разобрался с PRG,теперь осталось сFB,а функция пока вообще темный лес.

Валенок
17.01.2014, 22:28
я вроде как разобрался с POU,теперь осталось сFB,а функция пока вообще темный лес.
Ну хоть бейсик знаком ?

zendo057
17.01.2014, 22:51
Да, профи сразу заметили косяк.Имелось в виду Нe POU aPRG
С настоящими высокоуровневыми языками програмирования не знаком.

capzap
17.01.2014, 23:01
Да, профи сразу заметили косяк.Имелось в виду Нe POU aPRG
С настоящими высокоуровневыми языками програмирования не знаком.

правила просты, код выполняется весь за цикл, сверху в низ, слева на право, в CFC для удобства показываются порядковые номера выполнения. Внутри ФБ и функции действую локальные переменные ни какого влияния не оказывающие на переменные родителя и проекта в целом, если конечно они не связаны специальными способами

amn
17.01.2014, 23:10
Я понял так.Нужно создать в левой части не один а 10 одинаковых ФБ но со своими переменными.Но тогда чем они отличаются отPRG.
Гдето я прочитал PRG можно использовать только раз, а FB многократно вот я и решил так поступить.
Раньше Благодоря ВАМ amn я вроде как разобрался с PRG,теперь осталось сFB,а функция пока вообще темный лес.



Не надо создавать 10 одинаковых ФБ :). Надо только объявить экземпляры одного блока (сколько угодно, Вам надо 10). В своем примере Вы правильно это сделали в разделе объявления переменных (это и есть те самые копии). Таймеры, триггеры - это тоже ФБ (Вы же ими пользовались?).

Валенок
18.01.2014, 00:49
С настоящими высокоуровневыми языками програмирования не знаком.
Ну с низкоуровневыми как ?

zendo057
18.01.2014, 12:40
Создал пример PRG и FB вроде все включается,но в FB в объявлениях одни вопросики почему?
а1-а4 физические входы
b1-b4 физические выходы

capzap
18.01.2014, 13:05
Создал пример PRG и FB вроде все включается,но в FB в объявлениях одни вопросики почему?
а1-а4 физические входы
b1-b4 физические выходы

во время онлайна, смотрите не редактируемый ПОУ, а в дереве двойным щелчком активируйте нужный ФБ, появится окно с предложением какой экземпляр открыть

zendo057
18.01.2014, 13:22
Понятно.Это только для визуального наблюдения?А работа происходит сама собой?Ведь выхода открываются и так и так.

capzap
18.01.2014, 13:28
Понятно.Это только для визуального наблюдения?А работа происходит сама собой?Ведь выхода открываются и так и так.

я не смотрел проект, если компилятор не ругался, то все должно работать