viatra / massif

Massif is a Matlab Simulink Integration Framework for Eclipse
https://viatra.github.io/massif/
Eclipse Public License 1.0
19 stars 14 forks source link

Export xx.simulink to xx.slx #46

Closed claudiazanabria closed 7 years ago

claudiazanabria commented 7 years ago

Hi,

I tried to export an EMF model to simulink using the Massif framework. This EMF model have been imported by the Massif Framework from a simulink project.

The Simulink project is composed of 2 Inports, 1 Outports and 1 Product components:

The import from simulink to EMF was fine. But the export from EMF to simulink gave me this error messages:

Warning: The block parameter 'DataType' on 'CEMS_only/In1' has been deprecated. Getting/Setting the value of this parameter is no longer allowed. You can get/set the data type using parameter 'OutDataTypeStr' instead.

I have replace the inports and outports components by constants and the inport from simulink to EMF was successfully done. I suppose that there is a problem with INPORT/OUTPORT objects.

Could you please help me?

THanks!

abelhegedus commented 7 years ago

Hi,

the problem is that when importing the models, we transform OutDataTypeStr parameter to DataType property, but the same conversion is not done when exporting. I will update the implementation by removing the explicit conversion soon.

Cheers

abelhegedus commented 7 years ago

I have uploaded a quick fix that you can try from the CI update site listed here: https://github.com/IncQueryLabs/massif#ci-update-site

claudiazanabria commented 7 years ago

Dear Abel,

I have tried the updated version of Massif. But I got the below error message: The transformation from EMF model to simulink was not successful. But at least one block with one inport block was created in Simulink. After that the transformation cracked. Please let me know when you will update it. Thanks!

Warning: The block parameter 'DataType' on 'SGAM_simulink_model/Conflict/WMaxLimPct_PV_Self_Consumption' has been deprecated. Getting/Setting the value of this parameter is no longer allowed. You can get/set the data type using parameter 'OutDataTypeStr' instead. Invalid setting in Inport block 'WMaxLimPct_PV_Self_Consumption' for parameter 'DataType'

abelhegedus commented 7 years ago

I have updated the implementation again, however, you will have to import the model again, as existing EMF models will have DataType properties in port blocks.

In case this version still causes issues, please post the EMF model that fails on export and the precise version of Massif (from Help -> Installation details, you can simply add a screenshot or right-click and copy on the Massif feature) and Matlab that you are using.

claudiazanabria commented 7 years ago

HI,

Thanks you for updating the framework.

I have tried again with the new release 293

The import from simulink to EMF was partially done. In the simulink model there is only 2 subsystems but only one of them was generated.

Here the message obtained:

ImporterTmpResult =

'systemModel/Subsystem'
'systemModel/Subsystem/In1'
'systemModel/Subsystem/Out1'

ImporterTmpResult =

Empty matrix: 0-by-1

SubSystem block parameter 'ActiveVariant' is read-only

... 15 more

A new block named 'systemModel/Subsystem' cannot be added

ImporterTmpResult =

 4

EMF model

image

simulink model before transformation

image

simulinkl after transformation

image

Installation details

image

claudiazanabria commented 7 years ago

Here a complete list of installation details image

Here my EMF model

systemModel.txt

Many thanks

Claudia

abelhegedus commented 7 years ago

Thanks for the detailed information, I will take a look again based on this.

I have an idea, could you try renaming "Subsystem" to "Subsystem2" and try importing and then exporting again?

It might be that since the library block is called subsystem, the second time it adds it to the model, the names collide before the correct name assignemt happens.

claudiazanabria commented 7 years ago

Hello,

Sorry for my late reply I tried the updated framework and now it works. I have to said that I updated the version of eclipse to Neon in order to install properly the new framework version. Besides of this, the Matlab version was 2014 and I used the Matlab connector: Command Evaluation Server

Many thanks for your help.

abelhegedus commented 7 years ago

Great to hear that, thanks for your reply. Closing as fixed for now.