Просмотр полной версии : Не работает наследование. Первый раз сталкиваюсь
84792
Всем привет! Проблема с наследованием! Создал ФБ FB_MY EXTENDS ETrigA.
84793
Теперь если я в PLC_PRG создаю экземпляр ФБ ETrigA - то он работает как нужно,
а если я создаю экземпляр FB_MY (который унаследован от ETrigA) - то он никак не реагирует на вход xExecute.
Первый раз в ООП, в чем проблема?
а что, наследникам уже не надо задавать переменные ? не знаю, как тут в ST, в C# пустого наследника не создашь (Студия начнет ругаться, что нет того или этого). Думаю тут так же, просто такого функционала проверок нет.
В дочернем ФБ добавлял переменные, но это ситуацию не меняет. Единственный момент - это то, что в материнском ФБ есть методы private. Но я пробовал их делать public - ситуация не меняется
https://dzen.ru/a/YQPuMEz3UwHwx1x4
Может поможет, не разбирался
а что, наследникам уже не надо задавать переменные ? .
Зачем? Необязательно
...Создал ФБ FB_MY EXTENDS ETrigA...
Теперь если я в PLC_PRG создаю экземпляр ФБ ETrigA - то он работает как нужно,
а если я создаю экземпляр FB_MY (который унаследован от ETrigA) - то он никак не реагирует на вход xExecute...
А кто будет реагировать? Вы же небось новый пустой код (";") объявили? Вот он и выполняется. Пишите свою реакцию.
Или вы хотите что-то своё и использовать код родителя? Тогда делайте свое и вызывайте в нужном месте код родителя*. Всё просто.
*
SUPER^();
ГИГАВОЛЬТ
19.10.2025, 16:29
Единственный момент - это то, что в материнском ФБ есть методы private...
Которые будут недоступны в наследниках, используйте protected. Хотя, похоже у вас и не в этом проблема, но тем не менее.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot