AnsweredAssumed Answered

"Calc failed" when data are calculated with Matlab - PI ACE

Question asked by Julio_Chinchilla on Jun 15, 2016
Latest reply on Jun 16, 2016 by gregor

Hi everyone!

 

I have this trouble:

I made a code in MatLab and I would like to invoke it toward PI-ACE.

I debug and test code in PI-ACE and it works perfect. So, I registered PI-ACE code and it runs hourly.

When I called data from any visualization platform, output tags appeared as "Calc Failed". There is not input tags.

 

I added Matlab COM Reference and I selected Framework as 3.0.

 

Matlab version is Ra2010a.

Visual Studio version is 2013.

 

I ask for your help to find a solution, please

 

Thanks in advance!

 

This is the code:

Imports OSIsoft.PI.ACE

 

Public Class Random_Load_Curve_Colombia

    Inherits PIACENetClassModule

    Private PI10_Cargabilidad_JCCG_LO_9_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_9_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_8_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_8_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_28_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_28_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_27_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_27_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_26_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_26_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_24_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_24_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_22_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_22_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_20_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_20_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_18_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_18_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_17_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_17_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_16_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_16_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_15_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_15_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_14_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_14_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_13_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_13_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_12_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_12_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_11_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_11_P As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_10_Q As PIACEPoint

    Private PI10_Cargabilidad_JCCG_LO_10_P As PIACEPoint

    Private mobjMatlab As MLApp.MLApp

    '

    '      Tag Name/VB Variable Name Correspondence Table

    ' Tag Name                                VB Variable Name

    ' ------------------------------------------------------------

  ' 10_Cargabilidad_JCCG-LO_10_P            PI10_Cargabilidad_JCCG_LO_10_P

  ' 10_Cargabilidad_JCCG-LO_10_Q            PI10_Cargabilidad_JCCG_LO_10_Q

  ' 10_Cargabilidad_JCCG-LO_11_P            PI10_Cargabilidad_JCCG_LO_11_P

  ' 10_Cargabilidad_JCCG-LO_11_Q            PI10_Cargabilidad_JCCG_LO_11_Q

  ' 10_Cargabilidad_JCCG-LO_12_P            PI10_Cargabilidad_JCCG_LO_12_P

  ' 10_Cargabilidad_JCCG-LO_12_Q            PI10_Cargabilidad_JCCG_LO_12_Q

  ' 10_Cargabilidad_JCCG-LO_13_P            PI10_Cargabilidad_JCCG_LO_13_P

  ' 10_Cargabilidad_JCCG-LO_13_Q            PI10_Cargabilidad_JCCG_LO_13_Q

  ' 10_Cargabilidad_JCCG-LO_14_P            PI10_Cargabilidad_JCCG_LO_14_P

  ' 10_Cargabilidad_JCCG-LO_14_Q            PI10_Cargabilidad_JCCG_LO_14_Q

  ' 10_Cargabilidad_JCCG-LO_15_P            PI10_Cargabilidad_JCCG_LO_15_P

  ' 10_Cargabilidad_JCCG-LO_15_Q            PI10_Cargabilidad_JCCG_LO_15_Q

  ' 10_Cargabilidad_JCCG-LO_16_P            PI10_Cargabilidad_JCCG_LO_16_P

  ' 10_Cargabilidad_JCCG-LO_16_Q            PI10_Cargabilidad_JCCG_LO_16_Q

  ' 10_Cargabilidad_JCCG-LO_17_P            PI10_Cargabilidad_JCCG_LO_17_P

  ' 10_Cargabilidad_JCCG-LO_17_Q            PI10_Cargabilidad_JCCG_LO_17_Q

  ' 10_Cargabilidad_JCCG-LO_18_P            PI10_Cargabilidad_JCCG_LO_18_P

  ' 10_Cargabilidad_JCCG-LO_18_Q            PI10_Cargabilidad_JCCG_LO_18_Q

  ' 10_Cargabilidad_JCCG-LO_20_P            PI10_Cargabilidad_JCCG_LO_20_P

  ' 10_Cargabilidad_JCCG-LO_20_Q            PI10_Cargabilidad_JCCG_LO_20_Q

  ' 10_Cargabilidad_JCCG-LO_22_P            PI10_Cargabilidad_JCCG_LO_22_P

  ' 10_Cargabilidad_JCCG-LO_22_Q            PI10_Cargabilidad_JCCG_LO_22_Q

  ' 10_Cargabilidad_JCCG-LO_24_P            PI10_Cargabilidad_JCCG_LO_24_P

  ' 10_Cargabilidad_JCCG-LO_24_Q            PI10_Cargabilidad_JCCG_LO_24_Q

  ' 10_Cargabilidad_JCCG-LO_26_P            PI10_Cargabilidad_JCCG_LO_26_P

  ' 10_Cargabilidad_JCCG-LO_26_Q            PI10_Cargabilidad_JCCG_LO_26_Q

  ' 10_Cargabilidad_JCCG-LO_27_P            PI10_Cargabilidad_JCCG_LO_27_P

  ' 10_Cargabilidad_JCCG-LO_27_Q            PI10_Cargabilidad_JCCG_LO_27_Q

  ' 10_Cargabilidad_JCCG-LO_28_P            PI10_Cargabilidad_JCCG_LO_28_P

  ' 10_Cargabilidad_JCCG-LO_28_Q            PI10_Cargabilidad_JCCG_LO_28_Q

  ' 10_Cargabilidad_JCCG-LO_8_P             PI10_Cargabilidad_JCCG_LO_8_P

  ' 10_Cargabilidad_JCCG-LO_8_Q             PI10_Cargabilidad_JCCG_LO_8_Q

  ' 10_Cargabilidad_JCCG-LO_9_P             PI10_Cargabilidad_JCCG_LO_9_P

  ' 10_Cargabilidad_JCCG-LO_9_Q             PI10_Cargabilidad_JCCG_LO_9_Q

    '

    Public Overrides Sub ACECalculations()

        Dim Pin(16, 0) As Double

        Dim Qin(16, 0) As Double

        Dim dblImag(16, 0) As Double

        Dim pufactorhabiles(23, 0) As Double

        Dim pufactorsabado(23, 0) As Double

        Dim pufactordomingo(23, 0) As Double

        Dim dblImagpu(23, 0) As Double

        Dim Pout(16, 0) As Double

        Dim Qout(16, 0) As Double

      

 

        Pin = {{100}, {50}, {60}, {10}, {11}, {38}, {16}, {10}, {83}, {20}, {127}, {50}, {80}, {50}, {75}, {8}, {46}}

        Qin = {{50}, {40}, {30}, {5}, {5}, {20}, {10}, {5}, {80}, {20}, {33}, {50}, {30}, {40}, {30}, {2}, {15}}

        pufactorhabiles = {{0.584}, {0.572}, {0.56}, {0.56}, {0.578}, {0.619}, {0.679}, {0.709}, {0.738}, {0.774}, {0.804}, {0.822}, {0.828}, {0.798}, {0.786}, {0.798}, {0.798}, {0.81}, {0.881}, {0.977}, {1.0}, {0.953}, {0.834}, {0.715}}

        pufactorsabado = {{0.633}, {0.62}, {0.608}, {0.595}, {0.608}, {0.62}, {0.646}, {0.671}, {0.747}, {0.772}, {0.797}, {0.823}, {0.835}, {0.797}, {0.772}, {0.754}, {0.734}, {0.747}, {0.848}, {0.975}, {1.0}, {0.949}, {0.861}, {0.759}}

        pufactordomingo = {{0.671}, {0.658}, {0.63}, {0.616}, {0.603}, {0.603}, {0.61}, {0.623}, {0.671}, {0.699}, {0.726}, {0.74}, {0.747}, {0.74}, {0.712}, {0.699}, {0.685}, {0.699}, {0.822}, {0.973}, {1.0}, {0.973}, {0.877}, {0.767}}

 

 

        mobjMatlab.PutFullMatrix("Pin", "base", Pin, dblImag)

        mobjMatlab.PutFullMatrix("Qin", "base", Qin, dblImag)

        mobjMatlab.PutFullMatrix("pufactorhabiles", "base", pufactorhabiles, dblImagpu)

        mobjMatlab.PutFullMatrix("pufactorsabado", "base", pufactorsabado, dblImagpu)

        mobjMatlab.PutFullMatrix("pufactordomingo", "base", pufactordomingo, dblImagpu)

 

 

        mobjMatlab.Execute("[Pout Qout] = Rand_pu_curve(Pin,Qin,pufactorhabiles,pufactorsabado,pufactordomingo);")

 

 

        mobjMatlab.GetFullMatrix("Pout", "base", Pout, dblImag)

        mobjMatlab.GetFullMatrix("Qout", "base", Qout, dblImag)

 

 

        PI10_Cargabilidad_JCCG_LO_8_P.Value = Pout(0, 0)

        PI10_Cargabilidad_JCCG_LO_9_P.Value = Pout(1, 0)

        PI10_Cargabilidad_JCCG_LO_10_P.Value = Pout(2, 0)

        PI10_Cargabilidad_JCCG_LO_11_P.Value = Pout(3, 0)

        PI10_Cargabilidad_JCCG_LO_15_P.Value = Pout(4, 0)

        PI10_Cargabilidad_JCCG_LO_14_P.Value = Pout(5, 0)

        PI10_Cargabilidad_JCCG_LO_13_P.Value = Pout(6, 0)

        PI10_Cargabilidad_JCCG_LO_16_P.Value = Pout(7, 0)

        PI10_Cargabilidad_JCCG_LO_17_P.Value = Pout(8, 0)

        PI10_Cargabilidad_JCCG_LO_20_P.Value = Pout(9, 0)

        PI10_Cargabilidad_JCCG_LO_22_P.Value = Pout(10, 0)

        PI10_Cargabilidad_JCCG_LO_24_P.Value = Pout(11, 0)

        PI10_Cargabilidad_JCCG_LO_26_P.Value = Pout(12, 0)

        PI10_Cargabilidad_JCCG_LO_28_P.Value = Pout(13, 0)

        PI10_Cargabilidad_JCCG_LO_18_P.Value = Pout(14, 0)

        PI10_Cargabilidad_JCCG_LO_12_P.Value = Pout(15, 0)

        PI10_Cargabilidad_JCCG_LO_27_P.Value = Pout(16, 0)

 

 

 

 

        PI10_Cargabilidad_JCCG_LO_8_Q.Value = Qout(0, 0)

        PI10_Cargabilidad_JCCG_LO_9_Q.Value = Qout(1, 0)

        PI10_Cargabilidad_JCCG_LO_10_Q.Value = Qout(2, 0)

        PI10_Cargabilidad_JCCG_LO_11_Q.Value = Qout(3, 0)

        PI10_Cargabilidad_JCCG_LO_15_Q.Value = Qout(4, 0)

        PI10_Cargabilidad_JCCG_LO_14_Q.Value = Qout(5, 0)

        PI10_Cargabilidad_JCCG_LO_13_Q.Value = Qout(6, 0)

        PI10_Cargabilidad_JCCG_LO_16_Q.Value = Qout(7, 0)

        PI10_Cargabilidad_JCCG_LO_17_Q.Value = Qout(8, 0)

        PI10_Cargabilidad_JCCG_LO_20_Q.Value = Qout(9, 0)

        PI10_Cargabilidad_JCCG_LO_22_Q.Value = Qout(10, 0)

        PI10_Cargabilidad_JCCG_LO_24_Q.Value = Qout(11, 0)

        PI10_Cargabilidad_JCCG_LO_26_Q.Value = Qout(12, 0)

        PI10_Cargabilidad_JCCG_LO_28_Q.Value = Qout(13, 0)

        PI10_Cargabilidad_JCCG_LO_18_Q.Value = Qout(14, 0)

        PI10_Cargabilidad_JCCG_LO_12_Q.Value = Qout(15, 0)

        PI10_Cargabilidad_JCCG_LO_27_Q.Value = Qout(16, 0)

 

    End Sub

 

 

    Protected Overrides Sub InitializePIACEPoints()

  PI10_Cargabilidad_JCCG_LO_10_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_10_P")

  PI10_Cargabilidad_JCCG_LO_10_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_10_Q")

  PI10_Cargabilidad_JCCG_LO_11_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_11_P")

  PI10_Cargabilidad_JCCG_LO_11_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_11_Q")

  PI10_Cargabilidad_JCCG_LO_12_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_12_P")

  PI10_Cargabilidad_JCCG_LO_12_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_12_Q")

  PI10_Cargabilidad_JCCG_LO_13_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_13_P")

  PI10_Cargabilidad_JCCG_LO_13_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_13_Q")

  PI10_Cargabilidad_JCCG_LO_14_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_14_P")

  PI10_Cargabilidad_JCCG_LO_14_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_14_Q")

  PI10_Cargabilidad_JCCG_LO_15_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_15_P")

  PI10_Cargabilidad_JCCG_LO_15_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_15_Q")

  PI10_Cargabilidad_JCCG_LO_16_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_16_P")

  PI10_Cargabilidad_JCCG_LO_16_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_16_Q")

  PI10_Cargabilidad_JCCG_LO_17_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_17_P")

  PI10_Cargabilidad_JCCG_LO_17_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_17_Q")

  PI10_Cargabilidad_JCCG_LO_18_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_18_P")

  PI10_Cargabilidad_JCCG_LO_18_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_18_Q")

  PI10_Cargabilidad_JCCG_LO_20_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_20_P")

  PI10_Cargabilidad_JCCG_LO_20_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_20_Q")

  PI10_Cargabilidad_JCCG_LO_22_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_22_P")

  PI10_Cargabilidad_JCCG_LO_22_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_22_Q")

  PI10_Cargabilidad_JCCG_LO_24_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_24_P")

  PI10_Cargabilidad_JCCG_LO_24_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_24_Q")

  PI10_Cargabilidad_JCCG_LO_26_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_26_P")

  PI10_Cargabilidad_JCCG_LO_26_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_26_Q")

  PI10_Cargabilidad_JCCG_LO_27_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_27_P")

  PI10_Cargabilidad_JCCG_LO_27_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_27_Q")

  PI10_Cargabilidad_JCCG_LO_28_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_28_P")

  PI10_Cargabilidad_JCCG_LO_28_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_28_Q")

  PI10_Cargabilidad_JCCG_LO_8_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_8_P")

  PI10_Cargabilidad_JCCG_LO_8_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_8_Q")

  PI10_Cargabilidad_JCCG_LO_9_P = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_9_P")

  PI10_Cargabilidad_JCCG_LO_9_Q = GetPIACEPoint("PI10_Cargabilidad_JCCG_LO_9_Q")

    End Sub

 

 

    '

    ' User-written module dependent initialization code

    '

    Protected Overrides Sub ModuleDependentInitialization()

        mobjMatLab = New MLApp.MLApp()

    End Sub

 

 

    '

    ' User-written module dependent termination code

    '

    Protected Overrides Sub ModuleDependentTermination()

        mobjMatLab = Nothing

    End Sub

End Class

Outcomes