Тема / Topic: Создание функциональных блоков программе
ZerGOOD89
Junior Member / Новичок
Участник № / Member № 5290
отправлено / posted
Здравствуйте!Подскажите пожалуйста как быть в следующей ситуации: В программе создаю функциональный блок с помощью блоков FBD (основная программа тоже написана с помощью этих блоков) в итоге получается пользовательский блок у которого есть вход и выход. Вставляю в основную программу несколько таких блоков у которых у каждого свой вход и свой выход. Когда все запускаю происходит сл. ситуация когда меняю значение входа у первого блока на выходе появляется некое значение, но это же значение появляется у всех остальных хотя у остальных вход не менялся...Как мне быть в данной ситуации? Мне необходимо что бы каждый блок работал сам по себе и не зависел от остальных. Заранее спасибо и подскажите побыстрее очень надо!!!
Сообщения / Posts 24 | Из / From: Росссия
| IP / IP: IP адрес / IP address |
отправлено / posted
Из описания "Пользовательских функций": "Следующие функции (функции-блоки) могут быть вызваны в основной программе только ОДНОКРАТНО: содержащие глобальные переменные программы; содержащие FBD-блоки с внутренними переменными "
Если в пользовательской функции используются функциональные блоки, которые содержат внутренние статические переменные, эти статические переменные будут общими для всех вызовов этой функции.
Сообщения / Posts 17336 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ZerGOOD89
Junior Member / Новичок
Участник № / Member № 5290
_Rupert
Junior Member / Новичок
Участник № / Member № 6388
отправлено / posted
Добрый день. Такая же проблема. Понаписал кучу блоков на FBD,Паскале и IL и теперь не могу их все использовать по нескольку раз в основной программе. Мне нужно организовать,к примеру, 10 однотипных циклов,т.е. 10 не зависящих друг от друга различных входов и 10 таких же выходов. Можно ли решить эту проблему путем:каждый цикл - отдельная программа (10 одинаковых шаблонов программ) и добавить их в Система.RTM_1? Спасибо
Сообщения / Posts 6 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Предлагаемое Вами решение правомочно, но избыточно.
Если речь идет о проблеме, озвученной выше, достаточно создать нужное количество копий пользовательских функций и блоков (содержащих внутренние статические переменные) и вызывать их в материнской программе отдельно.