PDA

Просмотр полной версии : Разработка ФБ на C++



gregory9511
01.08.2025, 07:09
Добрый день. Делаю составной ФБ на С++, т.е. в этом ФБ будут экземпляры другого ФБ также написанного на С++, собственно вопрос - если тип(ФБ) создается как класс, можно ли определить функтор класса, чтобы вызывать экземпляр этого класса по типу языка ST - example(a,b); ?

Полигон
02.08.2025, 21:47
Добрый день!
Для С++ вызов другого блока выглядит несколько сложнее.
Данный функционал реализован сейчас только в ST.

gregory9511
04.08.2025, 03:30
Я правильно понимаю, что в рамках полигона - прямого доступа к классу нет, соответственно объявить другой тип/блок/класс членом разрабатываемого класса невозможно, а язык ST полигон не поддерживает?

Полигон
04.08.2025, 09:19
Объявить другой класс внутри блока возможно: объявление надо добавить в файл .hpp (он инклюдится внутрь основного класса), определение функций можно добавить в файл .cpp (единственная сложность это имя класса, оно будет составлено из префикса - имени раздела библиотеки, потом имя основного класса Вашего ФБ, потом :: и имя второго класса).
ST в Полигоне поддерживается внутри составных блоков, подробнее об этом написано в справке в разделе Структура проекта - Функциональный блок - Составной блок.

Если у Вас сложная система классов, то может имеет смысл написать библиотеку на С++?

gregory9511
06.08.2025, 08:17
Объявить другой класс внутри блока возможно: объявление надо добавить в файл .hpp (он инклюдится внутрь основного класса), определение функций можно добавить в файл .cpp (единственная сложность это имя класса, оно будет составлено из префикса - имени раздела библиотеки, потом имя основного класса Вашего ФБ, потом :: и имя второго класса).


Этот вариант я также рассматривал, но хочется все таки вызывать "по старинке".


Если у Вас сложная система классов, то может имеет смысл написать библиотеку на С++?

Сейчас реализовался на блоках, т.к. инструментария отладки кода для C++ пока нет. Я видимо плохо справку читал, но не увидел там инструкций по написанию библиотеки на C++