Создание новых проектов

<< Click to Display Table of Contents >>

Navigation:  API MasterSCADA 4D > Функции, ФБ, Протоколы на С++ > API для ФБ и протоколов > Подготовка окружения > Подключение API >

Создание новых проектов

Для создания собственных протоколов и ФБ в C++ с нуля (а не редактирования встроенных примеров в Examples.sln) необходимо создать отдельный проект вида DLL в решении MasterPLC в папке include/core/masterplc/drivers. Проект следует наименовать в формате mplc_protocolname. Также нужно указать набор подключаемых заголовочных файлов в настройках проекта.

В открытом решении нужно выделить проект и открыть его свойства:

nastr_param_otladki

Необходимо указать выходные директории на вкладке General:

Output Directory: $(SolutionDir)\platform\$(Platform)\$(Configuration)\bin\

Intermediate Directory: $(SolutionDir)\platform\$(Platform)\$(Configuration)\obj\$(ProjectName)\

nastr_param_otladki_3

Далее нужно указать набор подключаемых заголовочных файлов в настройках проекта в главном разделе С/С++:

Additional Include Directories: ..\..\include;..\..\include\core;..\..\lib;..\..\lib\opcua

nastr_param_otladki_5

После этого необходимо указать в настройках препроцессора определения на вкладке Preprocessor:

PreprocessorDefenitions: BOOST_USER_CONFIG="mplc/detail/mplc_boost_config.hpp";<different options>

nastr_param_otladki_6

Далее необходимо в файле dllmain.cpp написать следующий код, в зависимости от ОС, на которую установлена исполнительная система:

 

#include <share/mplcshare.h>

 

#pragma comment(lib, MPLC_ADDIN_LIB(opcua))

#pragma comment(lib, MPLC_ADDIN_LIB(mplcshare))

#pragma comment(lib, MPLC_ADDIN_LIB(masterplc))

#pragma comment(lib, MPLC_INTEGRATED_LIB(lua))

 

BOOL DLLENTRY DllMain(DLLHANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)

{

   switch (ul_reason_for_call) {

   case DLL_PROCESS_ATTACH:

   case DLL_THREAD_ATTACH:

   case DLL_THREAD_DETACH:

   case DLL_PROCESS_DETACH:

       break;

   }

   return TRUE;

}

 

 

Затем нужно создать файл в проекте с названием mplc_projectname.cpp, в котором projectname - это название проекта. В нем должен быть следующий код:

 

#include <addincmn.h>

#include "drivers/drv_user.h"

 

int Init()

{

   PRINTLN("init projectname)");

 

   return 0;

}

 

EXTERN_C MPLC_DRIVER_API int InitAddin(ProcessRequestCallback func, int nInFlags, int* pnOutFlags)

{

   return Init();

}

 

После этого можно приступить к реализации конкретных вариантов.