Muti-channel read/write through FP data socket posible?

Hello,
I'm trying to talk to cFP-1808 module from desktop PC real-time host over Ethernet. I did not find any Fieldpoint driver for desktop RT so I'm forced to use data sockets to communicate with cFP-1808. It seems that one can only read or write to one FP data channel per socket. With typical latency of tens of milliseconds per such read/write and couple of hundreds channels present, I'm looking at SECONDS per cycle time, which is really slow.
Is there any workaround for this problem?

You can also read and write to channels in LabVIEW.  First you have to configure your 1808 in MAX and save the IAK file.  You then load the IAK file in LabVIEW by selecting browse in the FieldPoint IO Point In (constant or control).
In the FieldPoint Device Selection Dialog Windows select the View Configurations Tab.
In this tab navigate to your IAK file and name it in the text box next to where the full file path is displayed.
In the Browse FieldPoint Tab of the same window you should now be able to see all of your FieldPoint modules and channels. 
Message Edited by BLAQmx on 03-06-2008 01:12 PM
Mark
LabVIEW R&D

Similar Messages

  • What is the best software programs that I can use to read, write and modify data / files on external HD (NTFS format i.e.  Windows) ?

    Hi guys,
    I’m new to Mac and have a MacBook Pro Lion OS (10.6.8 I think !!!) with Parallels 7 (Windows 7) installed. Can someone please tell me what is the best software program that I can use to read, write and modify data / files on external HD (NTFS format) from the Mac OS ? I heard of Paragon and Tuxera NTFS. Are they free ? Are they good ? Are there any other software programs out there ? I heard that some people have issues with Paragon.
    Thanks.

    Your best bet would be to take the drive to the oldest/compatible with that drive Windows PC and grab the files off, right click and format it exFAT (XP users can download exFAT from Microsoft) and then put the files back on.
    Mac's can read and write all Windows files formats except write to NTFS (and in some cases not read) so if you can change the format of the drive to exFAT (all data has to be remove first) then you will have a drive that doesn't require paid third party NTFS software (a license fee goes to Microsoft) for updates.
    Also it's one less hassle to deal with too.
    .Drives, partitions, formatting w/Mac's + PC's

  • I am moving from PC to Mac.  My PC has two internal drives and I have a 3Tb external.  What is best way to move the data from the internal drives to Mac and the best way to make the external drive read write without losing data

    I am moving from PC to Mac.  My PC has two internal drives and I have a 3Tb external.  What is best way to move the data from the internal drives to Mac and the best way to make the external drive read write without losing data

    Paragon even has non-destriuctive conversion utility if you do want to change drive.
    Hard to imagine using 3TB that isn't NTFS. Mac uses GPT for default partition type as well as HFS+
    www.paragon-software.com
    Some general Apple Help www.apple.com/support/
    Also,
    Mac OS X Help
    http://www.apple.com/support/macbasics/
    Isolating Issues in Mac OS
    http://support.apple.com/kb/TS1388
    https://www.apple.com/support/osx/
    https://www.apple.com/support/quickassist/
    http://www.apple.com/support/mac101/help/
    http://www.apple.com/support/mac101/tour/
    Get Help with your Product
    http://docs.info.apple.com/article.html?artnum=304725
    Apple Mac App Store
    https://discussions.apple.com/community/mac_app_store/using_mac_apple_store
    How to Buy Mac OS X Mountain Lion/Lion
    http://www.apple.com/osx/how-to-upgrade/
    TimeMachine 101
    https://support.apple.com/kb/HT1427
    http://www.apple.com/support/timemachine
    Mac OS X Community
    https://discussions.apple.com/community/mac_os

  • Options for read/write form field data with VBA/Reader

    I have a project which requires reading and writing field data to a PDF form using VBA in PowerPoint. The code I have works properly with the full version of Acrobat, but the client this project is for will be using Reader. I'm looking for suggestions to what options I have to be able to access the form field data (I don't need any other features other than access to the field data). Ideally, I would love a solution which doesn't require the client to install anything extra for this to work, but I'm assuming that this isn't possible without an extra install.
    Is there a library that exists in Reader (or could be licensed to be installed on the client's machine) that would allow the data to be read without needing the full version of Acrobat?
    Does a plug-in exist for Reader, or could be written, that would allow this? Writing a plug-in would certainly be beyond my current capabilities, but I am interested in knowing every and any choices that are available.
    Are there any other options to do what I need to do?
    I had originally thought about exporting the form data and parsing it in the VBA program, but this would take a bit more work to write the parsing routine instead of accessing the fields directly. Plus, it appears to me that Exporting is not enabled in Reader.
    Thanks for any insight you may be able to provide.

    Thanks for the response; this was my original suggestion, but I don't think this is feasable for our client. I suggested to our account people that this might be the only way to do this (and the easiest, although possibly the costliest since it would have to be purchased for their entire sales force) and they initially said that this would not be an option, so I wanted to be able to cover all the bases, and explore any other ways that they could do what they want. Is this the absolute only option to do this?
    Someone also suggested to me that licensing the Acrobat PDF Library SDK might be a way to do this, or that it could possibly be done with a plug-in for Reader (although from what I have found, Reader plug-ins would have to be approved by Adobe). These options, if possible, are beyond my current knowledge but I do want to be able to give them a complete list of possibilities.
    Thanks again.

  • File transfer, read write through sockets in client server programming java

    Hello All, need help again.
    I am trying to create a Client server program, where, the Client first sends a file to Server, on accepting the file, the server generates another file(probably xml), send it to the client as a response, the client read the response xml, parse it and display some data. now I am successful sending the file to the server, but could not figure out how the server can create and send a xml file and send it to the client as response, please help. below are my codes for client and server
    Client side
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
    public class XMLSocketC
         public static void main(String[] args) throws IOException
              //Establish a connection to socket
              Socket toServer = null;
              String host = "127.0.0.1";     
              int port = 4444;
              try
                   toServer = new Socket(host, port);
                   } catch (UnknownHostException e) {
                System.err.println("Don't know about host: localhost.");
                System.exit(1);
            } catch (IOException e) {
                System.err.println("Couldn't get I/O for the connection to host.");
                System.exit(1);
              //Send file over Socket
            //===========================================================
            BufferedInputStream fileIn = null;
              BufferedOutputStream out = null;
              // File to be send over the socket.
              File file = new File("c:/xampp/htdocs/thesis/sensorList.php");
              // Checking for the file to be sent.
              if (!file.exists())
                   System.out.println("File doesn't exist");
                   System.exit(0);
              try
                   // InputStream to read the file
                   fileIn = new BufferedInputStream(new FileInputStream(file));
              }catch(IOException eee)
                   System.out.println("Problem, kunne ikke lage fil");
              try
                   InetAddress adressen = InetAddress.getByName(host);
                   try
                        System.out.println("Establishing Socket Connection");
                        // Opening Socket
                        Socket s = new Socket(adressen, port);
                        System.out.println("Socket is clear and available.....");
                        // OutputStream to socket
                        out = new BufferedOutputStream(s.getOutputStream());
                        byte[] buffer = new byte[1024];
                        int numRead;
                        //Checking if bytes available to read to the buffer.
                        while( (numRead = fileIn.read(buffer)) >= 0)
                             // Writes bytes to Output Stream from 0 to total number of bytes
                             out.write(buffer, 0, numRead);
                        // Flush - send file
                        out.flush();
                        // close OutputStream
                        out.close();
                        // close InputStrean
                        fileIn.close();
                   }catch (IOException e)
              }catch(UnknownHostException e)
                   System.err.println(e);
            //===========================================================
            //Retrieve data from Socket.
              //BufferedReader in = new BufferedReader(new InputStreamReader(toServer.getInputStream()));
              DataInputStream in = new DataInputStream(new BufferedInputStream(toServer.getInputStream()));
              //String fromServer;
            //Read from the server and prints.
              //Receive text from server
              FileWriter fr = null;
              String frn = "xxx_response.xml";
              try {
                   fr = new FileWriter(frn);
              } catch (IOException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
              try{
                   String line = in.readUTF();                    //.readLine();
                   System.out.println("Text received :" + line);
                   fr.write(line);
              } catch (IOException e){
                   System.out.println("Read failed");
                   System.exit(1);
            in.close();
            toServer.close();
    public class XMLSocketS
          public static void main(String[] args) throws IOException
              //Establish a connection to socket
               ServerSocket serverSocket = null;
                 try {
                     serverSocket = new ServerSocket(4444);
                 } catch (IOException e) {
                     System.err.println("Could not listen on port: 4444.");
                     System.exit(1);
              Socket clientLink = null;
              while (true)
                        try
                             clientLink = serverSocket.accept();
                           System.out.println("Server accepts");
                             BufferedInputStream inn = new BufferedInputStream(clientLink.getInputStream());
                             BufferedOutputStream ut = new BufferedOutputStream(new FileOutputStream(new File("c:/xampp/htdocs/received_from_client.txt")));
                             byte[] buff = new byte[1024];
                             int readMe;
                             while( (readMe = inn.read(buff)) >= 0)
                             {     //reads from input stream, writes the file to disk
                                  ut.write(buff, 0, readMe);
                             // close the link to client
                             clientLink.close();                         
                             // close InputStream
                             inn.close();                         
                             // flush
                             ut.flush();                         
                             // close OutputStream
                             ut.close();     
                             //Sending response to client     
                             //============================================================
                             //============================================================
                             System.out.println("File received");
              }catch(IOException ex)
              {System.out.println("Exception.");}
                        finally
                             try
                                  if (clientLink != null) clientLink.close();
                             }catch(IOException e) {}
                 clientLink.close();
                 //serverSocket.close();
    }

    SERVER
    import java.net.*;
    import java.io.*;
    public class XMLSocketS
          public static void main(String[] args) throws IOException
                   //Establish a connection to socket
               ServerSocket serverSocket = null;
                 try {
                     serverSocket = new ServerSocket(4545);
                 } catch (IOException e) {
                     System.err.println("Could not listen on port: 4444.");
                     System.exit(1);
              Socket clientLink = null;
                  try
                             clientLink = serverSocket.accept();
                         System.out.println("Server accepts the client request.....");
                         BufferedInputStream inn = new BufferedInputStream(clientLink.getInputStream());
                             BufferedOutputStream ut = new BufferedOutputStream(new FileOutputStream(new File("c:/xampp/htdocs/received_from_client.txt")));
                             byte[] buff = new byte[1024];
                             int readMe;
                             while( (readMe = inn.read(buff)) >= 0)
                             {     //reads from input stream, writes the file to disk
                                  ut.write(buff, 0, readMe);
                             ut.flush();                         
                             //Sending response to client     
                             //============================================================
                             BufferedInputStream ftoC = null;
                             BufferedOutputStream outtoC = null;
                             // File to be send over the socket.
                             File file = new File("c:/xampp/htdocs/thesis/user_registration_response.xml");
                             try
                                  // InputStream to read the file
                                   ftoC = new BufferedInputStream(new FileInputStream(file));
                             }catch(IOException eee)
                             {System.out.println("Problem reading file");}
                             // OutputStream to socket
                             outtoC = new BufferedOutputStream(clientLink.getOutputStream());
                             byte[] buffer = new byte[1024];
                             int noRead;
                             //Checking if bytes available to read to the buffer.
                             while( (noRead = ftoC.read(buffer)) >= 0)
                                  // Writes bytes to Output Stream from 0 to total number of bytes
                                  outtoC.write(buffer, 0, noRead);
                             outtoC.flush();
                             //============================================================
                             System.out.println("File received");
              }catch(IOException ex)
              {System.out.println("Exception.");}
                        finally
                             try
                                  if (clientLink != null) clientLink.close();
                             }catch(IOException e) {}
                 clientLink.close();
                 //serverSocket.close();
          }CLIENT SIDE
    import java.io.*;
    import java.net.*;
    public class XMLSocketC
              @SuppressWarnings("deprecation")
              public static void main(String[] args)
                   // Server: "localhost" here. And port to connect is 4545.
                   String host = "127.0.0.1";          
                   int port = 4545;
                   BufferedInputStream fileIn = null;
                   BufferedOutputStream out = null;
                   // File to be send over the socket.
                   File file = new File("c:/xampp/htdocs/thesis/sensorList.xml");
                   try
                        // InputStream to read the file
                        fileIn = new BufferedInputStream(new FileInputStream(file));
                   }catch(IOException eee)
                   {System.out.println("Problem");}
                   try
                             System.out.println("Establishing Socket Connection");
                             // Opening Socket
                             Socket clientSocket = new Socket(host, port);
                             System.out.println("Socket is clear and available.....");
                             // OutputStream to socket
                             out = new BufferedOutputStream(clientSocket.getOutputStream());
                             byte[] buffer = new byte[1024];
                             int numRead;
                             //Checking if bytes available to read to the buffer.
                             while( (numRead = fileIn.read(buffer)) >= 0)
                                  // Writes bytes to Output Stream from 0 to total number of bytes
                                  out.write(buffer, 0, numRead);
                             // Flush - send file
                             out.flush();
                             //=======================================
                             DataInputStream in = new DataInputStream(new BufferedInputStream(clientSocket.getInputStream()));
                             BufferedWriter outf = new BufferedWriter(new FileWriter("c:/xampp/htdocs/received_from_server.txt",true));
                             String str;
                             while(!(str = in.readLine()).equals("EOF")) {     
                                  System.out.println("client : Read line -> <" + str + ">");
                                  outf.write(str);//Write out a string to the file
                                  outf.newLine();//write a new line to the file (for better format)
                                  outf.flush();
                             //=======================================
                             // close OutputStream
                             out.close();
                             // close InputStrean
                             fileIn.close();
                             // close Socket
                             clientSocket.close();
                        }catch (IOException e)
                        {System.out.println("Exception.");}
         Could you please point where am I doing the stupid mistake, client to server is working properly, but the opposite direction is not.
    Thanks

  • Read/Write AS/400 Data Queues from PI.

    Hi experts !
    Here is my problem : We need to read or write on our AS/400 Data Queues from PI.
    Too many applications are written in order to use Data Queues on our AS so no way use File, or JMS adapter as I read on many threads on here.
    Any Ideas ?
    Thanks,
    JB.

    there are a few ways to get this integration done. Refer -
    JSON to XML
    you might want to buy a 3rd party adapter if the cost can be managed

  • Optimal read write performance for data with duplicate keys

    Hi,
    I am constructing a database that will store data with duplicate keys.
    For each key (a String) there will be multiple data objects, there is no upper limit to the number of data objects, but let's say there could be a million.
    Data objects have a time-stamp (Long) field and a message (String) field.
    At the moment I write these data objects into the database in chronological order, as i receive them, for any given key.
    When I retrieve data for a key, and iterate across the duplicates for any given primary key using a cursor they are fetched in ascending chronological order.
    What I would like to do is start fetching these records in reverse order, say just the last 10 records that were written to the database for a given key, and was wondering if anyone had some suggestions on the optimal way to do this.
    I have considered writing data out in the order that i want to retrieve it, by supplying the database with a custom duplicate comparator. If I were to do this then the query above would return the latest data first, and I would be able to iterate over the most recent inserts quickly. but Is there a performance penalty paid on writing to the database if I do this?
    I have also considered using the time-stamp field as the unique primary key for the primary database instead of the String, and creating a secondary database for the String, this would allow me to index into the data using a cursor join, but I'm not certain it would be any more performant, at least not on writing to the database, since it would result in a very flat b-tree.
    Is there a fundamental choice that I will have to make between write versus read performance? Any suggestions on tackling this much appreciated.
    Many Thanks,
    Joel

    Hi Joel,
    Using a duplicate comparator will slow down Btree access (writes and reads) to
    some degree because the comparator is called a lot during searching. But
    whether this is a problem depends on whether your app is CPU bound and how much
    CPU time your comparator uses. If you can avoid de-serializing the object in
    the comparator, that will help. For example, if you keep the timestamp at the
    beginning of the data and only read the one long timestamp field in your
    comparator, that should be pretty fast.
    Another approach is to store the negation of the timestamp so that records
    are sorted naturally in reverse timestamp order.
    Another approach is to read backwards using a cursor. This takes a couple
    steps:
    1) Find the last duplicate for the primary key you're interested in:
      cursor.getSearchKey(keyOfInterest, ...)
      status = cursor.getNextNoDup(...)
      if (status == SUCCESS) {
          // Found the next primary key, now back up one record.
          status = cursor.getPrev(...)
      } else {
          // This is the last primary key, find the last record.
          status = cursor.getLast(...)
      }2) Scan backwards over the duplicates:
      while (status == SUCCESS) {
          // Process one record
          // Move backwards
          status = cursor.getPrev(...)
      }Finally another approach is to use a two-part primary key: {string,timestamp}.
    Duplicates are not configured because every key is unique. I mention this
    because using duplicates in JE has more overhead than using a unique primary
    key. You can combine this with either of the above approaches -- using a
    comparator, negating the timestamp, or scanning backwards.
    --mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How do you transfer different types of data through a data socket (data types: clusters, images and boolean states)

    I am attempting to transfer positional data (on a predetermined route) overlaid on a map and indications of boolean output states to secondary computer through datasocket (LabVIEW 8.6, Datasocket 4.5).  Is it required to compress all these parts into an array which is bundled and transmitted to the secondary computer which then would have to be unbundled and separated out of the array?  Is this the only option, or are there other methods? Also how would we go about these methods?

    Hi Maruti,
    It seems like the way you described would be the way to do it unless you wanted to pass all the data seperately.
    Check out this KB relating to passing clusters through datasocket: http://digital.ni.com/public.nsf/allkb/1085057DB6F930058625672400646805?OpenDocument
    Kind Regards,
    Owen.S
    Applications Engineer
    National Instruments

  • How can I read realtime data from a data socket using DIAdem

    I am currently routing data from an instrument using LabView 7.1 to a data socket. I was trying to figure out how to access that data in real time in DIAdem through the data socket. Another option would be to use the downloaded LabView/DIAdem VI package, but I haven't figured out how to get that to work either, despite the forums here. I would prefer to access it through the data socket, if possible, as the amount of information being transferred is negligable (a string and a double).
    Thank you,
    Sinan Sutcu

    You have to use one of the ScriptDAC blocks. In your case, as you would like to fetch data from a LabVIEW vi, choose the out of the driver input palette. Inside the configuration dialog you can generate a sample script, which is then copied to the windows clipboard. It contains a lot of function prototypes which will be automatically called later during the measurement.
    Basically, the init functions are called during the start of the measurement - here you should connect to the activeX server, the deinit functions are called when stopping the measurement - disconnect from the server here.
    Then there is the function SFD_Readchannel, which is called once for eych tact and each channel you configured. Here, you should exchange the data with your VI.
    I am attatching an example I wrote to control a LabVIEW vi (doing a counter output operation)- that is why the data exchange works the other way around, but I hope it explains the principle.
    Additionally I am adding documentation about the ScriptDAC driver interface.
    Regards
    Ingo Schumacher
    Systems Engineer Sound&VibrationNational Instruments Germany
    Attachments:
    MultiCounterOut.zip ‏995 KB
    Script DAC Driver.zip ‏734 KB

  • Data socket. how to implement this?

    I need to write to a data socket server using a program that scans a multiple channel data logger. Up to 2 scans can be enabled and the scans run at selectable times and on selectable channels. For example, scan 1 might scan channels 0 to 19 at a two second interval and scan 2 might scan channels 20 - 99 at a 10 second interval. I would like to know the best way to implement the ds server so each scan will write it's own data at different times and they will not overwrite or otherwise interfer with one another. Possible?  Various seperate programs will access this data from the server and update their front panels as the new data is written to the ds server.  In the above example, my reader program which executes every 50 ms would update channels 0-19 every 2 seconds and channels 20-99 every 10 seconds.  Is it possible to open two ds servers using one for each scan? I've played with that without success.  I looked at the data socket server manager but couldn't determine if changing it would address my problem.  I'm using LV8.5.1 and the programs will be compiled to executables for running on multiple computers in the lab.  Thanks for any advice.  Hope this makes sense. 

    Hi Mike,
    You only have one DataSocket server available to you at a time.  You can write to a server from multiple locations, but you cannot have multiple servers.  You should be able to implement your idea in your code by alternating between write locations.  You would have to stagger the scans so that they don't overlap however.  Here are a couple of links that you might find useful:
    Configuring a DataSocket Server
    http://zone.ni.com/devzone/cda/tut/p/id/3123
    Can Multiple DataSocket Writers Connect to the Same Item?
    http://digital.ni.com/public.nsf/websearch/A8AC9A7​51404BAB18625672400630A3D?OpenDocument
    Nick Keel 
    Applications Engineering 
    National Instruments
    Nick Keel
    Product Manager - NI VeriStand and Model Interface Toolkit
    National Instruments

  • Error 42 occurred when writing to data socket server?

    Hi
    Attached are two programs which use data socket to transfer a boolean value. I want to make sure the value only transfer one time. It occurred error 42 at the test server.vi when it write to the data socket server. How can I solve that? Are there any methods to ensure the data can be transferred one time? Thanks.
    Bill
    Attachments:
    Test_client.vi ‏29 KB
    Test_server.vi ‏47 KB

    I am using LabVIEW 7 and I did not see the error on my machine when I ran your programs.
    From the way you want to transmitt data, I think you need to use TCP/IP instead of datasocket. This way you can be sure that the data only got read once. There are several shipping examples to get you started.
    If you have LabVIEW 7 you might consider using the buffered datasocket. I am not sure if it will work in the way you want so experiment.

  • Microchip 24LC16 EEPROM Read/Write

    hi... i am working on a project in which i have to write & Read EEPROM "Microchip 24LC16" at different locations. I am using NI 8451 card for read/write. I connect SDA, SCL & GND of EEPROM & NI-Card to each other. I tried two different i2c example code.
    1. General I2C Read/Write vi..
    2. Microchip 24lc512 Read/write script .vi.
    i am able to perform read & write through both example but facing different problem with each code.
    Problem in first code
    1. when i write 5 bytes or more than 3 bytes at 03CD location it writes & read it but as i Switch OFF the EEPROM & then Switch ON & try to read at location 03CD i find only 3 bytes(from 03CD to 03CF) & other bytes become zero.
    2. I try to write 16 bytes on different location i.e. 03D0, 03E0, 03F0. but i lost all the data when i read EEPROM after doing switch OFF & ON.
    Problem in second code
    1. when i write some bytes at a particular location ( say 03CD) & then perform read at any other location, i get same data which i wrote at 03CD.
    2. after writing at location 03CD, when i try to write at any other location it overwrite the last written bytes.
    Is there any specific code available for this particular EEPROM ? if yes then please send me the code.
    Please give me any solution, i have tried all my efforts .

    Hi Francis,
    From the sounds of things, you're looking at the Amtel AT25080A Read example VI found under the SPI Advanced folder in the Example Finder.  Is that correct?  If so, your description of the example's execution sounds correct.  The first byte indicates what sort of operation you'd like to perform, the next two indicate the starting address for this operation you would like to access and the remaining bytes are the number of bytes you would like to read beginning at that starting address (in this sense the address is auto-incremented based on the number of bytes you choose to read).
    In your case, it sounds like you want to do a very similar operation, only you will have one bit to determine the operation, 7 more bits to specify the address and the following bits to read the value at that address.  If you want to read the byte at that address and the next two beyond that, you can simply create an array of three bytes and build an array with this and your operation/address byte.  If you want to read bytes at disjointed addresses you will need to do multiple 845x SPI write read blocks and input the new address at that time (either in a sequential format or within a loop). 
    In general, if you are looking for more information concerning the operation of different blocks, it is helpful to have Context Help on (Help>>Context Help) and when you hover your mouse over wires or blocks the Context Help window will give you additional information.  Additionally, the NI-845x Software User Manual found under Start>>Programs>>National Instruments>>NI-845x could be helpful.  Hope this helps!
    Regards,
    Anna M.
    National Instruments

  • Urgent!!! Need help in file read/write data to a serial port

    Hi,
    I really need someone's help in order for me to complete my project. I have attached a vi which I have taken from an example and integrate to my project. In the vi, I have managed to get the encoder counts using Ni 9411. I need to read/write that data from ni9411 to ni9870 without using any serial port as they are connected to a NI 9104 chasis. May I know whether I am correct in writing the data to my ni9870 port using the vi I have attached? Does anyone know how i can convert the number of counts to a 8-bit data/byte so that I can send the data through the RS232 port? I really need someone's help as I need to finished in 2 weeks time.
    I have also attached an vi on controlling the epos2 controller using instrument driver. Does anyone know how can i integrate this vi to the fpga vi (the one which I need to read/write data to 9870) as I need to send those data to control my epos2 controller.
    Please help me!!!
    Attachments:
    Encoder Position & Velocity (FPGA).vi ‏23 KB
    SINGLEMOTORMODIFIED.vi ‏17 KB

    Afai,
    As I allready suggested you here, call your local NI Office and ask for assistance!
    You really need assistence in a higher level that we can provide via the forums. Otherwise I don't see a chance for you to finish your project in time.
    1. Convert I32 to U8 to write it to the 9870 could be done like this:
    2. The vi to control the epos2.
    There is NO way ( absolutely NO way) to port this vi to FPGA. It's based on VISA calls, uses an event-structure, both are not available at the FPGA.
    The only thing you could do is to analyze the VI, the instruction set and design an FPGA vi which handles the specific instructions you would need.
    I have no experience with epos2 and I'm not 100% sure if this would work as you would like to use it. And doing this needs deep knowledge of LabVIEW, VISA, Instrument Drivers, the epos hardware, FPGA programming, and so on... 
    Christian

  • Incorrect data type when writing to FPGA Read/Write Control

    I have run in to a problem this morning that is causing me substantial headache.  I am programming a CompactRIO chassis running in FPGA mode (not using the scan engine) with LabVIEW 2012.  I am using the FPGA Read/Write Control function to pass data from the RT Host to the FPGA Target.  The data the RT host is sending comes from a Windows host machine (acting as the UI) and is received by the RT Host through a network published variable.
    The network published shared variable (shared between the RT and Windows system) is a Type Def cluster containing several elements, one of which is a Type Def cluster of fixed point numerics.  The RT system reads this shared variable and breaks out the individual elements to pass along to various controls on the FPGA code's front panel.  The FPGA's front panel contains a type def cluster (the same type def cluster, actually) of fixed point numerics.
    The problem comes in the RT code.  After I read the shared variable I unbundle the cluster by name, exposing the sub-cluster of fixed point numerics.  I then drop an FPGA Read/Write Control on the RT block diagram and wire up the FPGA reference.  I left click on the FPGA Read/Write Control and select the cluster of fixed point numerics.  I wire these together and get a coercion dot.  Being a coercion dot hater, I hover over it the dot and see that the wire data type is correct (type def cluster of fixed point numerics), but the terminal data type is listed as a cluster containing a Boolean, code integer and source string, also known as an error cluster.  I delete the wire and check the terminal data type on the Read/Write Control, which is now correctly listed as a type def cluster of fixed point numerics.  Rewiring it causes the terminal to revert back to the error cluster.  I delete the wire again and right click on the terminal to add a control.  Sure enough, a type def cluster of fixed point numerics appears.  Right clicking and adding an indicator to the unbundle attached to the network shared variable produces the proper result.  So, until they are attached to each other, everything works fine.  When I wire these two nodes together, one spontaneously changes to a error cluster.
    Any thoughts would be appreciated.

    My apologies I never got back to responding on this.  I regret that now because I got it to work but never posted how.  I ran in to the exact same problem today and returned to this post to read the fix.  It wasn't there, so I had to go through it all over again.
    The manifestation of the problem this time was that I was now reading from the Read/Write FPGA front panel control and writing to a network published shared variable.  Both of these (the published shared variable and the front panel control) were based on a strict type defined cluster, just like in the original post.  In this instance, it was a completely different cluster in a completely different project, so it was not a one-off thing.
    In addition to getting the coercion dot (one instance becoming an error cluster, recall), LabVIEW would completely explode this time around.  If I saved the VI after changing type definition (I was adding to the cluster) I would get the following error:
    Compile error.  Report this problem to N.I. Tech Support.  Copy cvt,csrc=0xFF
    LabVIEW would then crash hard and shutdown without completing the save.  FYI, I'm running LabVIEW 12.0f3 32-bit.
    If I would then reopen the RT code, the same crash would occur immediately, ad nauseam.  The only way to get the RT code to open was to change the type defined cluster back to the way it was (prior to adding the new element).
    I didn't realize it last time around (what originally prompted this post), but I believe I was adding to a type def cluster when this occurred the first time.
    So, how did I fix it this time around? By this point I tried many, many different things, so it is possible that something else fixed it.  However, I believe that all I had to do was to build the FPGA code that the RT code was referencing.  I didn't even have to deploy it or run it... I just had to build it.  My guess is that the problem was the FPGA Reference vi (needed to communicate with the FPGA) is configured (in my case) to reference a bit file.  When the development FPGA Main.vi ceases to match the bit file, I think that bad things happen.  LabVIEW seems to get confused because the FPGA Main.vi development code is up and shows the new changes (and hence has the updated type def), but when you ask the RT code to do something substantial (Open, Save, etc), it refers to the old bit file that has not yet been updated.  That is probably why the error getting thrown was a compile error.
    I'm going to have to do an additional round of changes, so I will test this theory.  Hopefully I will remember to update this post with either a confirmation or a retraction.

  • Why can't I read what I have written to the data socket server?

    Hi,
    I have a problem with DataSocket: I open a socket and in a cycle I read from the socket and write a boolean "TRUE" to the socket. But reading from the socket I always get a "FALSE" value back.
    Monitoring the socket from a second VI where a boolean control is connected to the data socket shows that the "TRUE" value that I write is accepted on the DS-Server.
    Is this a bug or do I miss something?
    Regards
    Tobias
    Attachments:
    readwriteDS.zip ‏17 KB

    hi there
    i'd recommend to use two connections for read and write access (see attachment). The ReadWrite mode does not work properly with DS. you can establish the connections at startup of your app and use them until you are done. when using the URL as a input the server must check for a open connection or create one in each cycle.
    best regards
    chris
    Best regards
    chris
    CL(A)Dly bending G-Force with LabVIEW
    famous last words: "oh my god, it is full of stars!"
    Attachments:
    set_flag_v2_LV7.1.vi ‏43 KB

Maybe you are looking for

  • BPM: read value of simple container variable in mapping

    Hi everybody, is this possible via UDF? Regards Mario

  • Drinking straw inside my new MacBook Pro?

    Hi Guys, I'm hoping that someone here might be able to shed some light on this? I purchased a 17" MacBook Pro a couple of days ago, and when I went to upgrade the RAM last night, I found a piece of what looks like a plastic drinking straw inside the

  • Downgrade to Adobe Reader 9.2

    From 9.3.2 to 9. 2

  • Import Profile error in EPMA with DRM 11.1.2.3.300

    Hi All,        I am trying to create an import profile in EPMA for DRM, but I'm getting the error below : URI: http://DSVSRV/awb/imports.mapping.enumDrmVersionsAndExportProfiles.do Code: SVR_ERR_DRM_ERROR_CONTACTING Description: Error while contactin

  • Window and tab safari problems

    I updated Adobe flash player and it automatically updated safari as well without even asking me. Now when I highlight and click on a link there is no longer an "open link in new tab" option. I have gone into the safari preferences and tried to fix it