controllab / fmi-export-20sim

FMI export code generation template for 20-sim
GNU General Public License v3.0
3 stars 4 forks source link

Error in FMU build - undeclared identifier/subscript requires array or pointer type #19

Closed richardpaynea55 closed 8 years ago

richardpaynea55 commented 8 years ago

Trying to export an FMU from the SmartGrid_5_house.emx in the SmartGrid pilot study. I get the following output. I don't know if this is an issue with the moel or the FMU builder:


20-sim standalone co-simulation FMU export for 'Grid_5_house'

Creating an empty FMU Generating a GUID: 3ebc31ed-23d2-4bc0-bfc9-5d92a0e34eb6 Generating the modelDescription.xml

Collecting resources

Searching for Visual C++ compiler... Found Visual C++ 2015 Loading vsvar32 Microsoft (R) Build Engine version 14.0.23107.0 Copyright (C) Microsoft Corporation. All rights reserved.

EulerAngles.c motionprofiles.c xxfuncs.c xxinteg.c xxinverse.c xxmodel.c ....\src\xxmodel.c(145): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(145): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(148): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(148): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(154): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(154): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(160): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(160): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(166): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(166): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(201): error C2065: 'xx_a': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(201): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(205): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(205): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] xxmatrix.c fmi2Functions.c xxsubmod.c xxTable2D.c Generating Code... Microsoft (R) Build Engine version 14.0.23107.0 Copyright (C) Microsoft Corporation. All rights reserved.

EulerAngles.c motionprofiles.c xxfuncs.c xxinteg.c xxinverse.c xxmodel.c ....\src\xxmodel.c(145): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(145): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(148): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(148): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(154): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(154): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(160): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(160): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(166): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(166): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(201): error C2065: 'xx_a': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(201): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(205): error C2065: 'xx_A': undeclared identifier [c:\temp\G rid_5_house\project\VS2015\Grid_5_house.vcxproj] ....\src\xxmodel.c(205): error C2109: subscript requires array or pointer type [c:\temp\Grid_5_house\project\VS2015\Grid_5_house.vcxproj] xxmatrix.c fmi2Functions.c xxsubmod.c xxTable2D.c Generating Code...

Error: "Grid_5_house.dll failed to build! See ..\VS2015\Release\BuildLog.htm for details."

Press any key to exit...

frankgroen commented 8 years ago

It appears that your model contains algebraic loops/variables. Those are (not yet) supported in the current FMU's from 20-sim. We plan to implement the MeBDFi integration method in the near future, so that can handle these constraints.

richardpaynea55 commented 8 years ago

Ok, could you keep me informed of progress with that? It will be useful to have that support.

margro commented 8 years ago

I've added the missing arrays xx_A and xx_a to fix the compile error. This does NOT implement an algebraic loop solver. The FMU will run, but the result is probably not valid. Therefore, the compiler will now show a warning: "This model contains algebraic loops. Algebraic loop solving is not implemented in this code generation template."

Frank is working on an extension of the template with the MeBDF integration method. We hope to have this ready by the end of November.

richardpaynea55 commented 8 years ago

Thanks - I'll try and test this asap.