Spartan 3 serial communication


Hi, I think I solved the problem, just add a sequence, wich wait stop to continue.

Thanks for your help

Tags: NI Software

Similar Questions

  • Programming of the digital I/o pins on the NOR myRIO-9100 for serial communication

    I use NEITHER myRIO for my robot and I want to use four reading of the distance sensors that communicate via the serial port. But the myRIO has only two UART ports on board so I was wondering if there is a way to program the digital pins use for serial communication. Any help appreciated.

    It is possible.  Here is an example that I could find.

    Example of reference to RS-232 for LabVIEW FPGA Interface

  • Serial communication error VISA with LUDL stage controller

    Hello

    I'm trying to control a micro-positionnement made by Ludl stage. The model is Ludl MAC2000. It seems that the RS232 comunnication is implemented because I can talk to the controller using HyperTerminal. However, when I want to do the same thing through Labview, I can't answer the controller at all. The vi is roughly the same as the visa basic read/write in the example. Looks like a very similar problem in this post:

    http://forums.NI.com/T5/instrument-control-GPIB-serial/visa-serial-communication-problem/m-p/567065#...

    But the trick of nature of endpoint does not help in my case: I tried to toggle the termination character setting in the property node and different combinations of '\r', '\n' as termination characters, but nothing has worked so far.

    Seems to me there is some difference between the interpretations of the same order to Hyper Terminal in Labview. But I just can't understand what it could be.

    Anyone with a similar experience could give me some comments/suggestions? Thank you very much!

    Another difference between hyperterminal and labview is the speed of sending characters.

    LabVIEW breaks out the whole string to the controller

    HyperTerminal is this character by character. So much slower and slow the controller can be affected by this.

    You could add a loop around the writing of visa (to make it easy convert the string into a byte array outside of the loop and convert it to a string inside and you have a shipment char by char in LabVIEW

  • Serial communication - ignore parity error

    I have a question about how LabVIEW opens a serial port for communication. I communicate with a device that uses a protocol owner. It sets and clears the parity bit to indicate the nature of the response. For example, the orders are sent with the parity bit higher while responses are sent with the weak parity bit (unless the answer is at the end of the transmission, in which case the device sets the parity bit high to indicate).

    My problem is the way that LabVIEW opens the serial port for communication. Using Portmon, that I captured the control indicators, that it sends to Windows to configure serial communication:

    IOCTL_SERIAL_SET_LINE_CONTROL   Serial0 SUCCESS StopBits: 1 Parity: MARK WordLength: 8IOCTL_SERIAL_SET_CHAR  Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13IOCTL_SERIAL_SET_HANDFLOW  Serial0 SUCCESS Shake:1 Replace:44 XonLimit:64 XoffLimit:64
    

    Note the values 'Shake' and 'replace '. In my view, they are originally bytes with parity errors is removed. A separate RS232 Comm Debug tool that I use with success looks like this:

    IOCTL_SERIAL_SET_LINE_CONTROL    Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8IOCTL_SERIAL_SET_CHAR  Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13IOCTL_SERIAL_SET_HANDFLOW  Serial0 SUCCESS Shake:0 Replace:80000000 XonLimit:128 XoffLimit:128
    

    Notice the difference in values. By using this tool, Windows does not packages with parity errors - that's what I want. Is there any way to change how LabVIEW opens the serial communication port to achieve?

    I tried to change the parity, where the ILO is defined differently, but I think that I am running in a race condition; LabVIEW can not run the code and change the mode of fast enough parity before the next byte of data is sent by the device.

    Ravens fan: the parity bit, in the proprietary protocol, that I use, is not used for parity checking. Basically, the protocol uses a 9-bit serial communication. The parity bit must be paid or compensated according to what byte do (if it is a command, if it is the end of transmission, etc.).

    I found an old post on this page which seems to answer my question (my apologies for not completely research before posting... I learn the right use/search phrases that I find more information). I download the 3.4.1 version of VISA now.

  • VISA + Serial Communication - need help!

    Hello world

    I have a lot of help with my project of this forum and I'm looking for more . Thank you for taking the time to help. Please bear with my as I ask a LOT of questions.

    I intend to control a frequency converter using its series terminals and send orders from my PC + LabVIEW it. The commands do the basic functions like, start, stop, speed up/down etc etc. I use a converter Series USB to transfer data.

    Now, I ve played with examples like SERIAL COMMUNICATION VI and others and I begin to understand the functioning of VISA.

    Q1. In order for LabVIEW + VISA contact my frequency converter, do I need to install some sort of a driver for him to recognize? The frequency controller is old ages, even I don't know and I don't think I can find a driver for it any time soon? What kind of driver I'm looking for? Is it possible to customize my own driver and which would be easy?

    accessory included - process.jpg

    I downloaded some pictures about the problems of data format. I need to send information to the converter to format "telegram" as shown in the image below. Each 'function' in the 'format telegram' has varied length in bytes: some have 1 others have 2, other 4...

    I also downloaded an image called "Format.jpg" which indicates what information each of these 'functions' will contain. Note:-the frequency converter uses only the last 4 bits.

    Say for example:

    START function will have this bit of information-

    Start the Byte - ASCII ' 59 "

    Address - 00

    Control character -? I'm not sure what it should be I need to use the converter based on parameter values - is confused on what to choose - C, U, I or r Start, stop, etc. have their own specific parameter values such as 402, 404 RESP, so I guess I want update (U)?

    Word of State control -? depends on the previous action

    Sign - do not necessary

    Data - 0

    Comma - is not necessary

    check the sum - is not necessary

    Stop the Byte - ' > ' (ASCII: 62)

    Phew... How would I go about clubbing this whole format together to send a control signal? Put all this information in a table allow somehow?

    Please help to me... to achieve desperately need...

    Thank you

    Sandeep

    It would be useful that you could find a driver, but it is not absolutely necessary to have a. You can write your own, use the Instrument i/o Assistant, or use VISA readings and some discreet.

    The format of the commands is a bit complicated but not impossible. You just need to be careful to have the exact number of bytes.

    What I don't see in the atttachments, it is possible words to control and the State and the number of parameter. I hope these are in another part of the manual.

    A bytes example (without the control and settings) to update the frequency to 12.34 could be '<00U________+123403??>'.

  • Problems with the simple serial communication.

    I followed a tutorial online to start learning basic communication series. The involved tutorial shorting pins 1 and 3 on port 1 Comm and write a simple program (attached). I've edited it a bit, the program to see varied results I get when trying to write and read a simple sentence via a serial port.

    Could someone explain what causes the kind of result shown in "Serial Comm example.png"? I think it has to do with timing. Why would be transmitted only the parts of the sentence?

    Thank you

    Sarah

    sarahzig wrote:

    The involved tutorial shorting pins 1 and 3 on the Comm 1 port

    What should be pins 2 and 3?  On a standard serial port DB-9, pin 2 is the receive and pin 3 is the transmission.

    Now for your code...

    1. move the Serial Port to be before the loop to set it up.  Simply configure the port once.

    2. close the port after the loop.

    3. managing your error after closing.

    4 stop your loop on an error or the stop button has been pressed.  You will need a RC in there.

    5. no need to Flush Buffer function.  Remove it.

    6. using the bytes to the Port is a dangerous thing.  It introduced all kinds of race conditions that are interesting.  Instead, say VISA reading to read the number of bytes that you expect to read.

    6a. Moreover, don't forget to send a character to end of line at the end of your data and all the number of bytes to read something a lot more than you ever expect read.  The VISA read will stop reading when he a) sees the number of bytes, it was said to read, b) sees the stop character (currently enabled and set to a line break, which is part of the end of line), or c) the time-out occurs.  Whichever comes first.

    7. with 6, the wait is no longer necessary.

  • Problem formatting of serial communication

    I am communicating with a host machine that spits out data on the serial port.  I'm using fairly standard settings (9600, 8, N-1) and I'm getting data.

    The problem is the formatting of the data.  Obviously, the data are supposed to be fixed width, but the fields are moved after each CR/LF.

    Some examples of data:

    0   |    0.925.    0,833 |   110.444 |   549.278 |    23.812 |
    |  2   |
    0   |    0,921 |    0,832 |   106.971 |   480.604 |    24.464 |
    |  3   |
    0   |    0.926 |    0.831 |   114.320 |   555.821 |    23,785 |
    |  4   |
    0   |    0.920 |    0.830 |   108.434 |   587.374 |    23.411 |
    |  5   |
    0   |    0.925.    0.836 |   106.459 |   554.808 |    23.717 |
    |  6   |
    0   |    0,923 |    0.830 |   112.048 |   507.875 |    24.242 |
    |  7   |     0
    |    0.924 |    0,837 |   103.943 |   605.860 |    23.181 |
    |  8   |     0
    |    0,921 |    0.831 |   108.303 |   582.447 |    23,459.
    |  9   |     0
    |    0.925.    0,827 |   118.501 |   426.680 |    25.118 |
    | 10.     0
    |    0,922 |    0,826 |   116.223 |   483.567 |    24.527 |
    | 11.     0   |

    Any ideas what may be the cause?  There the series parameters that may change the data format?  I get the same results using LabVIEW and hyperterminal.

    I have No control over the host (long story).

    Thanks for your help.

    Set the properties of your VISA to "activate the term on readings tank" = TRUE and "term char" = 0x0A (line feed).  Configure your reading to read MORE characters that you expect and each reading will end when we see a 0x0A. (you can remove the warning from VISA if you wish.

    -What happened to the cursor - this lack of cursor's post a little harder! Laura_F - is this known?

  • Serial communication cause the crash of LabView

    Hello

    I'm set to do a serial with Labview. The problem is that the program always crash (no popup error but only LabView don't freeze) when I read or write with VISA.

    I work with a module converter (ADAM 4571) that convert Ethernet to RS-232/422/485. The module is mapped to the computer and the similar work as a COM port. I tested the connection with the Terminal windows and its work. This means that it is not a hardware problem.

    I did the same communication a few weeks with the same material and did not have a problem. I don't understand why it does not work now.

    I give my code as an attachment, but it is not something special except for the block that buffered (which is required for my module), but if I remove it the problem persists.

    Does anyone have an idea what can be the problem?

    Thank you

    Jérôme

    OK, I solved the problem.

    The version of the driver for the converter module mapping was not exactly right, now I change it and its work.

    Jérôme

  • Cannot read serial communication in OHAUS Ranger 7000

    Hello

    I'm reading a balance OHAUS Ranger 7000 data. Communication is via a virtual USB port (drivers came with scale). I have configured the port according to the parameters of their manual series. But for some reason I'm not able to read all the data. The process is either expire or I read 0 bytes data. I have attached the snippet here. I'd appreciate really any suggestions on this.

    Thank you

    Naren

    I have tried several things and understood the mistake. The program worked when I wrote the one byte of orders at a time.

  • Serial communication does not work in an executable file.

    I created a vi that communicates with a serial device. It works fine on the computer on which it was created on. I then created an application and then built an installer to put it on another machine. The second machine doesn't have a LV 2009 on it. Once installed on the machine the vi does not work. When it is running on the computer with LV 2009 the com port control is a pull down, and it lists all agrees on the computer, and then you select the one you want to connect with. The vi is installed on the computer does not list the available com ports. This leads me to believe that there is no support Comms series in the installable version. What should I do now? I noticed that you can add "Additional installers" when you build the installer and one of them is NEITHER Serial 3.4. I'm trying to add this and a message says that he had to get, so I used it thinking it was more that I needed and this standard com port driver would be included. Am I mistaken or did I miss something? Any help is greatly appreciated.

    [email protected]

    I'm sure that NEITHER Serial is the driver for COM port cards of NEITHER, and that very probably that you have to install NI-VISA.  You can add the VISA installer as an extra Installer for your application.  It may ask you a DVD during the build process, because even if the software is already on your computer, the installer so it probably isn't.

  • Can't get bytes of CPU to read in LabVIEW * FTDI * Serial Communication *.

    I have trouble to get LabVIEW to display the bytes I send from a microcontroller with a FTDI chip.

    Specifications of communication are:

    baud-19200

    -8-bit word length

    -1 stop bit

    -no parity

    -no flow control

    I modified the demo of the chain of read-write of the here just reading the chip. I see that a few bytes have been read in the indicator "bytes read" but nothing appears in the buffer. Any ideas? I may have something hooked up wrong or something wrong in communication specifications


  • hex and serial communication

    Hello!

    I'm trying to get the information from a device that has only one-way communication, so I want my device sent a commando who opens a relay, and then I can measure whether or not the relay is opened using the CTS and check for voltage differers. The commandos must be five bytes long and hexadecimal code, I want to read a long 16-bit number. String constants are known orders and are written spell display.

    The code attached does not work and I suspect it's the type of Hex conversion that causes the problem?

    Hi ollef,

    Please refer to this actual thread, which deals with "hex" vs "decimal" in a fairly long way.

    And Yes, the conversion "to the hexadecimal string" wrong here

  • Serial communication is blocking my time loop

    Hello world. I need your help with my program. I use LabView2014 and a B2902A Agilent.
    I want to measure the current value with my instrument continuously, store the values of every second and the display of the messages received through the serial port when I'm gone.
    Everything works perfectly separately, but when I put everything together I have this problem: my instrument is waiting for a message from the serial port to take (and display) a measure.
    You have an idea to save my problem?
    Thank you!

    Pauline

    (Please find attached a screenshot of my program)

    Use the byte to serial port to check if a message is available and read only when a message is available.

  • serial communication - program is slow

    Hello community,

    I have a problem: I'm using LabVIEW to communicate with a CPU with RS232, but the program is extremely slow. In this configuration (it's a minimal example), it takes about 8 seconds to send a new string. What could be wrong? (I'm a beginner)

    The program of mission is to prepare a string containing incrementing values and send over the UART.

    Thanks for your help!

    Greetings!

    The yellow bulb is to highlight execution.  It is strictly a debugging tool.  Your turn that to slow down execution and be able to see how the data passes through the wires.

    Disable execution of climax, and it will run at full speed.

    But how do you use this VI?  You have not a while loop and you have not told me if an another VI call this VI.  So this VI runs only once and then stops.

    (Please don't tell me you use run continuously the button which is also strictly a debugging tool.)

    I recommend you watch the LabVIEW tutorials online
    LabVIEW Introduction course - 3 hours
    LabVIEW Introduction course - 6 hours

  • whille prob get bytes to the serial port for serial communication

    Hi all

    I have one using the series write vi to send the command to the instrument. the answer I get is read NICU playback vi. I use between read and write the serial port bytes accumulate bytes. BU what I observed is quite strange. When I run the vi with the debugger, I could c the bytes to port series is 201 and what I get in buffer is only 133.

    any1 can guess at what the problem would be b?...

    You don't show the function of VISA set up a Serial Port, but I guess you have the active stop character. Playback will end automatically when the character is detected and you should never allow when you try to read hex.

Maybe you are looking for