Matlab Script Inputs

I'm trying to run the example file "MATLAB Script - Lorenz Diff Eq.vi" and get the following error. Any idea why?
Error 1047 occurred at LabVIEW: LabVIEW failed to send variable to the script server.
Server:"Inappropriate input array sizeE" in MATLAB Script - Lorenz Diff Eq.vi
Possible reason(s):
LabVIEW: LabVIEW failed to send variable to the script server.
Also, when I run the example code from the help file in a separate vi:
a=rand(50)
surf(a)
it works fine, but when I add inputs and outputs to the same script, the inputs and outputs work, but it never draws the surface 'a' or seems to update 'a'.
Thanks for your help!
Attachments:
matlabtest.vi ‏14 KB

Alejandro,
Thanks for your help. When I run the sample code for the rand() and surf() functions, Matlab runs the code properly, opens a new figure to display it, updates dynamically and even outputs the variable 'a' back to Labview correctly.
So, outputs seem to work fine, but I haven't been able to get any inputs to work. So that leads me to believe that the Matlab server is working (as it can crunch code and send back data), but perhaps it's not enabled to take an input or I'm trying to pass the input improperly.
Is there any trick to send an input to Matlab? In other words, if I send a constant, for example, the number '2' to Matlab, I wire a constant '2' to the input on the Matlab VI block and then set the data type as 'Real', and I get the
error.
Does the error have to do with the array size (as it claims, even though I'm trying to pass in a single real constant, not an array...), or is it really a communication error as you suggest? Thanks for your help!
Neville

Similar Messages

  • Using array as a MATLAB script input in a subVI - labview crashes

    Hello
    I am having troubles in creating a subVI that includes a matlab file which has an array as an input.
    I have created a VI, that executes a simple matlab script, having an array as an input and an array as an output. This worked fine, untill i assigned the terminals in order to use it as a subVI.
    After the terminals have been assigned, labview instantly crashes when running the file.
    I also created a VI to test the subVI, but I couldn't get it to work at all, labview always crashed...
    Does anyone know a solution to my problem? They only thing i can think of is to not use it as a subVI, but then my main file will get huge, as all the matlab code would be included in there...
    attached are both files, so that you better understand my problem. (test_... is the main file)
    any help will be greatly appreciated!
    - Jarno
    edit: I'm using labview 2013 with windows 7 and matlab 2014
    Solved!
    Go to Solution.
    Attachments:
    test_subVI_array_into_script.vi ‏8 KB
    subVI_array_into_script.vi ‏8 KB

    Hey Jarno, 
    I did some playing around with this (sorry for the delay) and another workaround we can use is adding an Always Copy to the array before passing it into the Script Node. This will allow you to continue using Double precision arrays instead of going to Singles.
    It looks like there is an issue with the array copy that is passed into the SubVI through the terminal, but we can get around it by making a new copy that the Script Node can properly work with. 
    Tim A.
    National Instruments

  • Input data type of Matlab script node

    Hi,
    I have 1D array of complex number in single precision.
    Matlab script node is used to import data into Matlab and do some data processing, and then export.
    Data type of input is currently double precision.
    How to re-define this input data type of the Matlab script node?
    Thanks,

    Right, arrays of singles are not supported. See Comparison of MathScript RT Module and the MATLAB® Software Data Types in LabVIEW
    As for memory usage, Profiling the VI should let you know how much memory Labview uses when running your code. Communication with MATLAB® is done through ActiveX, and I'm actually not 100% sure whether it will reflect memory usage from script execution. I think it'll be simple enough to profile your VI with and without the MATLAB Script node and note the memory usage difference...
    Misha

  • Sending time and voltage samples as input to matlab script block

    Hello,
    I am planning to use Matlab script in labview and the matlab scritp block needs inputs of time and voltage values of sampled signal to post process.
    Can someone explain me of how to send the sampled values of time and volatge after every  'x' interval of time to the matlab scritp block I mean if the sampling rate is 100Hz then 100samples will be collected in 1 sec but I want to send both time and votlage values collected after every 10 seconds to the matlab scritp block.
    Thanks.

    Hi,
    I am using DAQUnit 6016 that samples an analog signal of sensor.The vi I tried is attached below.
    Attachments:
    Labview&Matlab.vi ‏55 KB

  • Error produced when trying to pass variables to a Matlab script

    For some reason, LabVIEW produces an Error 1047 (Unable to pass variable to the script server) whenever I create an input variable to a Matlab code block.
    Outputs work fine (for example, connecting an output "a" to a Matlab code block that says "a=rand(50)" correctly produces a 50x50 array of random numbers that can be displayed in LabVIEW). However, creating any kind of input node, whether or not the associated variable is mentioned in the MATLAB script, brings up an error 1047.
    Any ideas what could be causing this? I'm using LabVIEW 7.0 and MATLAB 7 (R14). I've read the article
    >here and that's not the problem, and I've also updated my matscript.dll to the latest version, 7.0.0.2, which also made no difference.

    For what its worth,
    I work in a company with a lot of Matlab users, and I,m programming in Labview and Matlab.
    When I create a testrig measurement I always have to convert data into Malab format, so I used the script server a lot... exept we have a limited pool of Matlab
    licenses so my work was halted whenever the licences where gone.
    So I wrote a Write2Matlab vi.
    This vi can log data from a measurement and write it in a Matlab readable file format (Matlab6 R12).
    After logging you can append more data. It works with(Double,Single,Int32,Int16,U16,U8,String) matrix see for yourself in an example (Write2matlab_test.vi).
    Perhaps this is an alternative solution for your problem.
    Please send me a reply if you find it usefull.
    John
    Attachments:
    Write2Matlab.llb ‏1145 KB

  • How to insert data from file into matlab script node

    I have interfaced input data from file to be processed using matlab script node. But the problem is that I could not capture the multiple data into matlab script node and to convert it into matrix. Further to this I need to process the data by plotting graphs from it. Thank you in advance for the advice

    Zarina,
    To clarify your problem, you have a script node contaning your Matlab code. Are you then using the standard LV functions to load in your data from a file and pass it into the script node?
    Regards
    Tristan

  • How to load a variable using MATLAB Script?

    I need to load a selected variable from .mat file, using MATLAB script , and analyse it.
    the attched shows my vi, there are two inputs nodes 'file' contains the .mat file path, and 'varn' contains varibale name in that .mat file which can be selected by user. Using " load(file)" the whole .mat file is loaded in the workspace and become avaiable at output node, however I am not able to pass a selected variable name through string "varn" input, MATLAB script does not recognize the variable.
    any idea to reslove it is realy appreciated.
    Attachments:
    load a variable.JPG ‏18 KB

    Download the VI and .MAT file. Run the VI, and it'll plot the data inside of the .MAT file.
    Andy Chang
    National Instruments
    LabVIEW Control Design and Simulation
    Attachments:
    testfile.zip ‏5 KB

  • Getting error when passing variable to Matlab script

    Hi
    I am using LabVIEW 2013 Version 13.0f2 (32bit) and MATLAB R2014b (Version: 8.4.0.150421) in Windows 7 Professional  Version 6.1 (Build 7601: Service Pack 1).
    I am trying to pass measured data to a matlab script to plot but I get errors.
    I have made a small program to make the problem easyer to solve and I get this error
    Error 1050 occurred at LabVIEW:  Error occurred while executing script. Error message from server: ??? Reference to a cleared variable A.
    . in MatlabTest.vi
    I tried the solution mentioned in http://digital.ni.com/public.nsf/allkb/4475BC3CEB062C9586256D750058F14B though it was intended for an older version. This gave me this error instead
    Error 1048 occurred at LabVIEW:  LabVIEW failed to get variable from the script server. Server:"??? Undefined function or variable 'num'.
    " in MatlabTest.vi
    The problem occures when I try to access the input, in other words I can have inputs to my script as long as I do not use them.
    How can I solve this?
    Attachments:
    MatlabTest.vi ‏7 KB

    Thank you so very much.
    I shold of cours have realised that that was what happened but I always use the three clearing lines (close all, clear all, clc) in the beginning of a script to make sure that no old and irrelevant data corrupts my script and did not think about when the inputs were generated.
    Again, Thank you!

  • Variables not correctly sent to Matlab script server

    When using a Matlab script node in my LabVIEW code, I've noticed that variables are sometimes improperly sent to the script server. What happens is an m-by-n matrix in LabVIEW arrives in Matlab as a 0-by-n or 0-by-0 empty matrix. Typically the affected matrices are large -- 500 to 20,000 elements.
    Unfortunately, we haven't been able to recreate the error intentionally. On the other hand, when the error does occur by chance, it frequently continues to show up until the system is rebooted.
    This error has appeared using the same code on multiple systems, all of which are running Matlab 6.1 and LabVIEW 6.0.2.
    If anyone has encountered similar problems or has any insight into this problem, your help would be
    greatly appreciated.
    Zach Lerner
    OnWafer Technologies, Inc.

    I encountered this problem several times too.
    I passed a 'real vector' of size ~80 to a MatLAB input node, and it turned out to be a 0-by-0 empty matrix in MatLAB. This happens nearly every time after I reboot the computer.
    What I do is first to find out which variable is empty (from the MatLAB command window). Then stop the VI and rewire that input node.
    p.s. I have LabVIEW 6.0.2 with MatLAB 6.0.
    Dan

  • Open a file using matlab script block

    Hello!
    I want to open a file from a specified directory using matlab script block.
    The input of this block is a string with file's name......but it doesn't work in this way. I have to change the input data or I have to change it  into matlab matlab script?
    Some idea?
    Thanks!
    Attachments:
    example.PNG ‏4 KB

    Ooooppss!
    My computer is crazy....sorry.
    I'm near to solve my problem...
    The problem is that I have a column of strings like this
    str=['labview'
            'labview2'
           'labview3'
            'labview4']
    I use the double command but the byte array to string block only converts me an element, do you know is exist another block to change all the elements.
    I've tried to do with a for loop block....using an index array and changing with i the index element, but it doen'st work.
    You have some idea?

  • Using matlab script

    Hello!
    I'm using matlab script block in my aplication. The m-file (from matlab) contain an 'if' that depends of an input of labview.
    I want to pass trough this condition only once when input's value changes, but labview "covert" this 'if' in a 'while' and pass trough this sequence n times.
    How can I to impose to pass throug the sequence once the input's value change. It's better to specifie it from matab or from labview.
    Thank you in adavance 

    What is surrounding the matlab script block? LabVIEW should be modifying the matlab code, it should be connecting with matlab and matlab executes its code, returning the results to LabVIEW. Can you do a screen capture of the part of the code that contains the matlab stuff? If yes make sure that it is saved as a .jpg (not .bmp!) for size reasons. If not, if you can send the part of your code that includes the matlab stuff that would help.
    P.M.
    Putnam
    Certified LabVIEW Developer
    Senior Test Engineer
    Currently using LV 6.1-LabVIEW 2012, RT8.5
    LabVIEW Champion

  • Matlab script in Labview

    Hi there,
    I want to integrate my Matlab script in Labview,
    the input variable should be a Matrix like
    the following A = [ 0 256 ; 1 256 ;1.5 100 ; 1.55 110; 1.59 55; 1.6 56 ; 9 256; 14 256 ;15 100 ]
    How do I do this in Labview, I tried an array but
    no succes...
    Bye for now

    hi chris .. thanks for the reply ...
    here's the results from 'ver
    MATLAB Version 7.0.1.24704 (R14) Service Pack 1
    MATLAB License Number: 227039
    Operating System: Microsoft Windows XP Version 5.1 (Build 2600: Service Pack 2)
    Java VM Version: Java 1.4.2_04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM
    MATLAB                                               
    Version 7.0.1      (R14SP1)
    Simulink                                             
    Version 6.1        (R14SP1)
    Aerospace
    Blockset                                   
    Version 1.6.1      (R14SP1)
    Bioinformatics
    Toolbox                               
    Version 1.1.1      (R14SP1)
    CDMA Reference
    Blockset                              
    Version 1.1        (R14SP1)
    Communications
    Blockset                              
    Version 3.0.1      (R14SP1)
    Communications
    Toolbox                               
    Version 3.0.1      (R14SP1)
    Control System
    Toolbox                               
    Version 6.1        (R14SP1)
    Curve Fitting
    Toolbox                                
    Version 1.1.2      (R14SP1)
    Data Acquisition
    Toolbox                             
    Version 2.5.1      (R14SP1)
    Database
    Toolbox                                     
    Version 3.0.1      (R14SP1)
    Datafeed
    Toolbox                                     
    Version 1.6        (R14SP1)
    Embedded Target for Infineon C166 Microcontrollers    Version 1.1.1      (R14SP1)
    Embedded Target for Motorola
    HC12                    
    Version 1.1.1      (R14SP1)
    Embedded Target for Motorola
    MPC555                  
    Version 2.0.1      (R14SP1)
    Embedded Target for OSEK
    VDX                         
    Version 1.1.1      (R14SP1)
    Embedded Target for TI C2000
    DSP(tm)                 
    Version 1.1.1      (R14SP1)
    Embedded Target for TI C6000
    DSP(tm)                 
    Version 2.2.1      (R14SP1)
    Excel
    Link                                           
    Version 2.2.1      (R14SP1)
    Extended Symbolic
    Math                               
    Version 3.1.1      (R14SP1)
    Filter Design HDL
    Coder                              
    Version 1.1        (R14SP1)
    Filter Design
    Toolbox                                
    Version 3.1        (R14SP1)
    Financial Derivatives
    Toolbox                        
    Version 3.0.1      (R14SP1)
    Financial Time Series
    Toolbox                        
    Version 2.1.1      (R14SP1)
    Financial
    Toolbox                                    
    Version 2.4.2      (R14SP1)
    Fixed-Income
    Toolbox                                 
    Version 1.1        (R14SP1)
    Fixed-Point
    Toolbox                                  
    Version 1.1        (R14SP1)
    Fuzzy Logic
    Toolbox                                  
    Version 2.2        (R14SP1)

  • Using a 3D matrix with a matlab script block

    Hi all of you,
    it is possible to input a 3D matrix (e.g. 10x4x20) to a matlab script block or you have to unfold this data in a 2D array?
    Do you know what i have to do to input directly a 3D array (array of real numbers) to a matlab script block.
    P.D.; I'm using labview 7.0 and matlab 6.5
    Thank you very much
    Larson

    Hi,
    as far as I know there is only the possibility to have an input for a
    2D array to matlab scriptnode. Thus you should convert your 3D data to
    2D in LV and reconvert it in your matlab code into 3D.
    When you select 3D data as an output of a script node it automatically
    appears as 2D (but no data will be lost). So when you have to use it in
    LV again as 3D data, what you have to do is reconvert it back from 2D
    to 3D.
    Hope this helps!

  • Matlab script

    Hi everyone.
    I have a m.file in matlab used to simulate an optical scheme characterized by different parameters.
    I
    need  to combine different values of these parameters in order to
    obtain a kind of calibration. To do this I though to use labview
    creating a number of for loops to change the value of each parameter.
    Using the matlab script tool in labview the simulation runs ok.
    To
    change one parameter, for example Alfa_laser,  I created an input
    linked to the control and attached to the script. At this point, the
    simulation does not work.... and  I don't know why!!!!
    Someone can help me
    Thanks
    matomato
    Attachments:
    simulator.vi ‏51 KB

    matomato wrote:
    To
    change one parameter, for example Alfa_laser,  I created an input
    linked to the control and attached to the script. At this point, the
    simulation does not work.... and  I don't know why!!!!
    Someone can help me
    You have no inputs for the script node, so there is no link. All that you have is an output node tied to an array indicator. That's probably why the simulation doesn't work. Also, you have no loop. Do not use the "Run Continuously" button if that's what you're trying to do. 
    To learn more about LabVIEW it is recommended that you go through the tutorial(s) and look over the material in the NI Developer Zone's Learning Center which provides links to other materials and other tutorials. You can also take the online courses for free.

  • Dynamically import .m file into Matlab Script

    I would like to dynamically load a Matlab .m file into the Matlab Script function in a VI.
    In other words, based upon a path to a .m file (control on the FP), load the .m file into the Matlab Script and then execute it.
    Does anyone know how to do this?
    Solved!
    Go to Solution.

    Hi RedSoxFanatic,
    It's not possible to do what you're asking.  However, I can think of a couple options that will give you the same behavior.
    1.  If you only have a few of your .m files that will be called you can use a case structure with these files already loaded.  The user can then choose which case to run.
    2.  You can have the Matlab Script Node run you particular .m file based on an input (number maybe), but this does also require you to have a predefined list of your .m files.
    Justin D.
    Justin D.
    Applications Engineer
    National Instruments

Maybe you are looking for