Jump to content

Bobillier

Members
  • Posts

    222
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Bobillier

  1. Finally my best solution is base on Ensegre solution, but to solve the previous issue, I have:

    1) Define list radio Button with
     "Authorize no selection" option
     (right click on radio button border
     to show this option.
    2) Replace click event by value change event.
    3) Force to "no selection" at start.
    4) Force to " no selection" just after value
    change for future "Value Change " detection  

     

    Bug radio Button V2.vi

  2. Hi

    I try to develop one UI with a selector button to choose between different buttons. For that, I use one radio button in event structure but the result (choix) is not that expected. It's always the previous value of radio button and not the clicked button.(see my VI (LV2018)) I can't use value change event because in this case if I clicked  on one button allready select, there is no change and no event.And I need to know clicked element.

    Eric

    Bug radio Button.vi

  3. In the context of a Tcp communication, I would like to know if, in case of a loss of this one, it is mandatory to close the connection before reopening it in order to release the resources, or the fact that the reference becomes invalid is sufficient-it to release it automatically at the PC level.

    I ask for this, because in my project, communication has to remain active for several months and it has to reconnect itself to maintain the service.

     

  4. Like I said before, it's not possible because In TIA struct (Like array) is a decorative declaration. It's just to facilitate the visualisation of a group of few data types in a same entity in TIA. But there is no sens of that in PLC, where struct datas  are stored sequentially without adding information about the struct itself.

    And like with S7 communication you can only accedd to memory, you can only acceed to few bytes list and define from this adress to this adress it's one int or one real. no information about struct it's self in memory. You need to collect each data type and recreate struct after like in my image.

    image.png.73a2d272ad5a7210b37946145faad265.png

  5. Hi pawhan11

    Few days ago I have experiment one similar problem about exe and a .NET compoment (look here). I have solved it by adding a small file before my exe to indicate what assembly runtime version using.

    I'm not sure than you can use similar thing to solve your problem (LV11 refer natively to  .NET 3.5), but perhaspse that can run. I have see something about that here

    Step 1: create a texte file named Labview.exe.config

    Step2: Place the text below in it

    <?xml version ="1.0"?>
    <configuration>
       <startup useLegacyV2RuntimeActivationPolicy="true">
          <supportedRuntime version="v4.8"/>
       </startup>
    </configuration>

    Take care about supportedRuntime version number because  it must be corresponding to your .NET constructor.

    Step3 : Save this file in same directory than your Labview version, and restart LabVIEW

    Step4 : Rebuild your assembly.

  6. To be more efficient with the workaround, follow this procedure:

    1) Copy the file "Your Application Name.exe.config"  and Post-build Action.vi in your project folder.

    2) Rename "Your Application Name.exe.config"  with the good name of your application

    3) Add it to your project.

    4) In executable construction windows, add "Your Application Name.exe.config" to the  source files\ always include list

    5) In executable construction windows, select Post-build Action.vi in "Pre and Post build Action

    6) Run construction.


    The post build vi is just to move "Your Application Name.exe.config" from data folder to those parent application folders automatically. Without it let it to data folder and you need to move it manually

    Post-Build Action.vi Your Application Name.exe.config

  7. 5 minutes ago, ShaunR said:

    LV 2011 uses .NET 3.5. Do you have that installed?

    On my machine I have V1.0, V1.1, V2.0, V3.0, V3.5 and V4.0.30319   installed. But If LV 2011 use 3.5,why I have the Labview tool to identify "Assembly .NET in memory"  who refer to V4.0 ?

     

    44 minutes ago, VDB said:

    Wonderful It's exactly the problem origine.  Like said ShaunR if LV2011 needs 3.5, and if IDE refers to 4.0, I will need to add the Application.exe.config file in the application folder to force exe to use 4.0.

    Thanks to all

  8. Hi Rolf

    It's first time I use .NET and I'm newbee about those technology . At start I just want send email through SMTP TLS in old application LV2011. Like secure SMTP is not present in LV2011, I have found one example who use them with .NET

    Like I said before this example run OK (with my own account (not ggogle)), but just in my LV IDE.

    I 'm not sure to understand what is signification of "strongly named" but when I use the Labview tool to identify "Assembly .NET in memory" I obtain this link:

    2 hours ago, Bobillier said:

    C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll"

    I think it's in GAC but i'm not sure and If it's the case , like you said "Something is wrong" , but what ?

  9. Hi

    I have created one program who call a DotNet assembly component (.NET4   system.dll) and all ok in my LV2011 development ide.

    But when I create EXE with it, each time I run the program it calls me .Net ddl path. I do that on the same PC.

    If I indicate the path, the program loads it and runs correctly. It's a bit painful and not very professional to do that each time.

    To solve this, I have tried lots of work around but without success.

    1) Add Dll caller Vi directly in project folder . (intialy in my user folder)

    2) Add a specific .ini file where I have added a key for the search path (viSearchPath= "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089") to Help LV to found assembly.

    3) Add DLL in my exe construction in data folder

    4) etc etc...

    I have read and test lots of things on NI website but it's not always clear for me.

    If someone can give me a good procedure it will  be christmas  for me.

    Eric

  10. Thanks Antoine

    I have tested your version, but it seems that it did not work if you have more levels of stacked case structures. I think it's because you don't use "Traverse for GObject.vi " like me.

    My approach is to select tunnels before applying the change and not the case structure itself.

    Here my new version with few corrections about your first remarks

    Set Tunnels Default Values.vi

  11. Thanks for this idea. Unfortunately this type of mechanism does not exist natively in the DQMH framework. A future evolution perhaps? I will suggest it on the DQMH forum.
    Either way, it would be nice if the LabVIEW IDE offered it natively without needing to code it in programs.
    It's like for the vi which have Modal windows and which we forget to close before launching their proprietary program and which blocks the front panel and prevents us from all actions. Also a small keyboard shortcut in the IDE would be useful.

  12. Ok Thanks Ensegre.

    But I have forgotten one detail, The DQMH 5 uses "Start asynchronous call.vi", which load and forget clones. In normal usages, it's DQMH that includes a mechanism to associate the clone to one numerical identifier (ID) and not the clone ref. When you when stopping the clone, you send specific command with ID. But in some cases of problems, the ID can be kill without stopping the clone. In this case, the clone stays in memory, and there is no simple possibility to stop it. I show it in memory with this kind of tool, but when I ask it to kill clone Vi, that generates one error message. The reason, I think, is that the clones are in "Load, run  and forget" mechanism and it's not possible to kill them directly.

    And like until one clone ref run, I can't pass source clone vi in edit mode.

    The only way stay to close the project, but it's a bit not practical.

      

  13. Hello
    I would like to know if there is a way to kill vi clones that are running in the background without needing to close the project to which they belong. I am currently working on the development of an application based on DQMH and I happen to lose my hand and its VI clones keep references open but not accessible. Preventing me from editing the source vi of these clones. The only solution in this case is to close the project so that it permanently stops these clones.

  14. Hi

    Today i have one problem with simple TCP client connexion on one serveur. My test program is very simple: Open connexion, Send order, wait reply and close connexion.

    It work few day correctly, but today it bug and i always obtein error 56 when i run it.

    image.png.14a5103ee14092603494e70368c6ef5d.png

    My server is ok because i have test in the same time with non LV program and with the same program on LV2011 and all run correctly.

    The only way is to restart LV2018 to un lock situation., but it's a bit strong as solution.

    Is there a way to avoid that and find a soft way to identity the blocking point  and reset low level tcp connexion ?

×
×
  • Create New...

Important Information

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