Jump to content

souske

Members
  • Posts

    16
  • Joined

  • Last visited

Posts posted by souske

  1. Hi all,

    I am trying to set up communication between Met\Cal (Fluke's Metrology Softwre) and LabView. I've noticed that Met\Cal 7.2 has support for NI-VISA driver. I tried to use it but I can't force Met\Cal to use "TCPIP::127.0.0.1::<port>::SOCKET" syntax, instead it tries to connect to "TCPIP::127.0.0.1::inst0::INSTR" and generates an error. Has anyone used this, or know how to set up TCPIP connection with Met\Cal?

    Regards

    souske

  2. Too much time with Windows, and I totally forgot that TimedLoops were made for RT targets. With TimedLoop on cRIO I also get nice 1.01 ms, but even cRIO can't squeeze 1ms from a standard "while" (with RT version of "wait until..." ).

    Thanks for the reminder! :)

  3. QUOTE(Yen @ Feb 20 2008, 07:35 PM)

    I'm not sure if you noticed Ton's original reply, but Wait Until Next MS Multiple is the wrong choice - it WILL wait until the next multiple, so if your code finished at xxxx36.001, it will wait an extra 2 ms until it will get to xxxx38. A better timing structure is the timed loop, but I'm not sure if it's available on the QNX.

    Another alternative is to place a 0 ms wait. This should tell the OS to run this as fast as possible if nothing else needs the CPU. Additionally, playing with the VI priorities might get you better results.

    Yes the are available and they "should work on QNX" (NI words). Setting the Period in the Timed Loop works (it is easy to see that), but I don't know

    how to check if the loops are actually executed with the set priorities.

    Is there any difference between 0 ms wait and not using wait at all? :)

  4. Hi

    I'm trying to run double loop program. One while loop acquires data the other transfers it via tcp/ip. Both loops are closed in a Flat Sequence Structure.

    Before the the sequence I put TCP Listen and set the timeout to -1 (forever). After the FSS I close the TCP connection.

    In client that receives the data I open the connection, while loop where I get the data and closing connection after.

    It happens that the Listen doesn't wait for the incomming connection. From the observations I see that the source of the problem

    might be not properly closed connection, because if I wait a moment I can run it again without a problem.

    Does anyone has any idea what might be keeping the connection open eventhough I close it myself?

    Is it possible that the error is somewhere else?

    I tried to use various ports - the results are the same.

  5. QUOTE(eaolson @ Feb 19 2008, 11:27 PM)

    OK, that's a valid point. But because the ms timer is limited in resolution to 1 ms, I had to do a bunch of iterations and average. And this is for an empty loop. Since that's boring and you'll want to do something inside the loop, that will slow it down considerably.

    And since the OP was talking about QNX, this is all probably a moot point.

    Well maybe not so moot :)

    Eventhough its QNX, when I run a loop similar to yours (without wait until next ms multiple) I get average execution time around 0.5ms. Which as you can see is not

    useful information if I want to set the frequency for the loop. And the puzzling fact is that when I checked exactly what the times of specific cycles are, they ranged

    from 0 to 3 ms. So it looks like in reality you actually take the largest value instead of an average.

  6. Hi

    I was trying to determine at what maximum frequency I can run my for loop.

    To do that I set the "wait until next ms multiple" to some value and then calculated

    the time it actually took the loop to execute and then compared them.

    If they mached I assumed that the loop executed all comands inside without a problem.

    I went from 6 ms to 1 ms and I got sth like this:

    wait node time [ms] - calculated time [ms]

    6 - 6.00

    5 - 5.00

    4 - 4.00

    3 - 3.00

    2 - 4.00

    1 - 3.00

    I suppose I can safely assume that 3ms is the minimal value I can use here.

    Question 1. What exactly happens at 2ms that it takes 4ms to execute the code?

    I suppose there is not enough time so some additional functions are being executed?

    Question 2. Are there any other methods for determining how fast one cycle can be executed?

    --

    regards

    souske

  7. Now that is really strange. Maybe mondays are not that bad. Today the inline C nodes ARE supported :)

    I really don't understand how is that possible, but I'm not going to agrue.

    After including .o file (in console application properties) C code works like a miracle and there problem

    with profibus drivers is no more :)

    --

    souske

  8. Well I found the "C inline node" but this one is also "Not supported by current target". This structure is visible in functions palette only

    if you writing software for a target that supports it so It took me some time to even find it, because if you're in qnx (or even blank vi without

    a project) it won't be there and you won't be able to find it using search option. I don't know if it's a problem of a trial version of my MicroSDK

    or is it just THAT limited? I find it hard to believe especially when you mention that NI treats CIN as a legacy.

    I'll keep on hitting that wall ;)

    --

    souske

  9. Thanks for the reply.

    As I wrote I'm using LabView Embedded Developmnet Module with some add-on that I found on ni.com that allows me to cross compile for QNX.

    The standard C code node (I assume you mean Code Interface Node) is not supported by QNX target, at least that's what the error says:

    "Code Interface Node: Node not supported in current target".

    Right now I'm trying to use Call Library Function Node. I compiled the windows dll example for qnx (I used QNX Momentics) but I still get

    some linking errors when I try to build it the project in LV:

    C:\tmpo\sysexec\QNX_Console\QNX_Application\sysexectest.o: In function `sysexectest_BlockDiagram':

    C:\tmpo\sysexec\QNX_Console\QNX_Application\sysexectest.o(.text+0x2b3): undefined reference to `avg_num'

    cc: C:/QNX632/host/win32/x86/usr/bin/ntox86-ld caught signal 1

    Any ideas what might cause the error?

    Thanks for the idea client-server arch. here, but I will keep trying to use EDM.

    --

    souske

  10. Hi,

    This problem is a mix of several smaller ones but I suppose the RT is the common ground here.

    Most of the drivers for a given OS are developed and copiled under given OS. How to solve the problem of software (and driver) development on a computer

    with a different OS than the target machine? For example software development in LV on Windows and execution on QNX OS?

    I know that it is possible to use EDM mod (Microprocessor SDK) to compile for other OS and architectures (I've done that and it works).

    But where do hardware drivers compiled for QNX fit in? Even if you use MHDDK (if I understand correctly) one compiles the driver (which is written in C)

    on the machine with QNX OS. How am I able to use it in a software that I'm developing under Windows?

    Including external code is limited. CIN and System Exec are not supported by qnx target and CLFN will probably join that group too (I'm checking it now).

    Does any one has any suggestions how to bite this problem? Or maybe my approach is wrong?

    Just to clarify. I develop software under Windows with LV8.2 and want to communicate with Hilscher Profibus card on a machine with QNX Neutrino 6.3.2.

    --

    regards

    souske

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.