<< Click to Display Table of Contents >> Navigation: API MasterSCADA 4D > Функции, ФБ, Протоколы на С++ > API для ФБ и протоколов > Разработка функциональных блоков > Разработка ФБ с параметром структура > Реализация ФБ со структурой в C++ |
Пример реализации подключен к Examples.sln как mplc_fb:
Для разработки собственных ФБ нужно открыть пример и изменить те части проекта, которые отвечают за логику работы. Вспомогательные файлы, служащие для взаимодействия с исполнительной системой, редактировать не требуется.
Как и в случае с простым ФБ, нужно создать класс-наследник ScadaFB, объявить поля, реализовать метод Execute(), и зарегистрировать поля и ФБ макросами MPLC_OBJECT(FBWithStruct), MPLC_DECLARE_PROPERTIES и MPLC_FB_TYPE.
Так как в качестве одного поля используется структура, её необходимо определить отдельно как наследника ScadaStruct.
Как и в случае ФБ, для структур необходимо прописывать макрос MPLC_OBJECT(ExampleStruct).
Для этого в примере был создан заголовочный файл fb_with_struct.h:
Содержимое файла:
Скриншот |
Текст |
#pragma once #include <mplc/api.h>
struct ExampleStruct : mplc::api::ScadaStruct { MPLC_OBJECT(ExampleStruct); STRING str_string; DINT dint_field{}; };
struct FBWithStruct : mplc::api::ScadaFB { MPLC_OBJECT(FBWithStruct); ExampleStruct struct_field; STRING str_field; FBWithStruct() {} const STRING& GetStrField() { return struct_field.str_string; } ~FBWithStruct() override {} void Execute() override {} }; |
Структуру и её поля, как и в случае ФБ, необходимо регистрировать. Для этого используется макросы MPLC_DECLARE_PROPERTIES и MPLC_DECLARE_API.
Важно! Названия ExampleStruct и FBWithStruct должны совпадать с названиями структуры и ФБ в проекте MasterSCADA 4D.
Для этого был создан файл реализации для ФБ fb_with_struct.cpp:
Содержимое файла:
Скриншот |
Текст |
#include "fb_with_struct.h"
MPLC_DECLARE_PROPERTIES(ExampleStruct){ MPLC_InOut(str_string), MPLC_InOut(dint_field), }; MPLC_DECLARE_API(ExampleStruct, ExampleStruct);
MPLC_DECLARE_PROPERTIES(FBWithStruct){ MPLC_InOut(struct_field), MPLC_In(str_field), MPLC_Out(Result, GetStrField), }; MPLC_FB_TYPE(FBWithStruct, FBWithStruct); |
Далее можно компилировать проект.
Для компиляции проекта на ОС Windows нужно выполнить команду Build в контекстном меню проекта:
Скомпилированные файлы появятся в папке проекта: C:\mplc\api\platform\x64\bin\Release (адрес действителен, если название папок, которые делал разработчик, совпадают с названиями, которые давались в этой инструкции).
Чтобы произвести сборку под Linux платформы, нужно сохранить проект и перенести все файлы из папки C:\mplc\api (адрес действителен, если название папок, которые делал разработчик, совпадают с названиями, которые давались в этой инструкции) в созданный каталог на компьютере с ОС Linux. Подробнее смотрите в разделе Сборка под Linux платформы.
После сборки можно приступать к тестированию созданного ФБ.