NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

LWTCPJSOCKWNDYCLASS Shutdown problem - Due to TestStand?

Hi All,

I have recently developed a system using two PCs (both NT4 sp6) which use TestStand (v2.0) remote sequence calls to communicate. The test code is all written in LV 6.0.2 and IMAQ 6.0.2 and I have implmemented a VB6 GUI. It all runs like a dream, and I have no comms problems during sequence execution.

However......... (you knew there'd be one didnt you!)

When I go to close down the slave PC (which runs the remote sequences) I get a task called LWTCPJSOCKWNDYCLASS which wont shutdown unless you force it to (and even then it takes 3-4 tries). It seems to be related to TestStand because this never occurs when I run the LV test code on the machine directly, only after having run a remote sequence.

Any
help will be greatly appreciated.

Thanks
Marlon
0 Kudos
Message 1 of 4
(4,846 Views)
Marlon,

Perhaps you could provide some more information specific to your application. Some of the following questions may be unrelated to the problem, but they address common areas of implementation when using remote sequence execution. We might be more easily able to diagnose the problem with your answers.

Does your remote system use NIDAQ? If so, what products are you using? What happens if you run a simple sequence (e.g. one with some empty statement steps) on the remote machine? What happens if you don't call LV VIs on your remote machine. I'd like to try and eliminate some variables.

I want to clarify what you mean by using remote sequence calls to communicate. By "communicate", I assume that your sequence on the local machine is using a sequence call
step to run a sequence on the remote machine. Is this the extent of it? Perhaps you have gone a step further and are passing ActiveX references to the remote sequence, and are then using the TS API on these references.

In configuring DCOM to give necessary permissions, did you you configure DCOM of just the remote machine? There are certain situation where the DCOM of the local machine must also be changed.

What exactly did you install on the remote machine? Did you create a TS engine installer using the Engine Installation Wizard tool, and use the created installer on the remote machine?

Hopefully we'll be able to deduce the cause with a little more information.

Thanks.
0 Kudos
Message 2 of 4
(4,846 Views)
Hi Nemo,

Okay lets go deeper!

PC Configurations.

Local PC

Windows NT4.0 sp6
Dual PIII 1GHz CPU card, 512MB, 30GB
NI PCI-6527 MIO card
Agilent Firewire VXI Comms card
Agilent PCI GPIB Card (82550?)
Full Test Stand System v2.0
NIDAQ 6.8.0f9
LabView 6.0.2
NI VISA 2.5.2
Agilent IO Libraries L.01
IVI Engine 1.83

Remote PC

Windows NT4.0 sp 6
Dual PIII 1GHz CPU card, 512MB, 30GB
Brainboxes Dual RS485 Comms card
2 PCI Frame grabber cards
NI PCI 6601 C/T Card
NIDAQ 6.8.0f9
LabView 6.0.2
NI VISA 2.5.2
Test Stand Base Deployment engine

1. The system is off-site (ie with the customer!) so I’ll try these out when I go there next week. I did do some of this before hand though to make sure the comms was good. I’ll check
my notes from that time………
2. NIDAQ? Yup see above.
3. Sorry for the vagueness here. I have generated a whole series of sequences, which I call from the Local PC to run on the Remote PC. They are various vision processing and motion control tasks. I am passing a single Active X reference, but only to the Runstate.Thread of my Local PC sequence. The remote PC uses this reference to throw up messages onto the Local PCs GUI. I am also flowing a set of custom data types (and their relevant data) between the systems (these are all strings, bools and numerics, no containers, no other Active Xs) This is all working great, but have I done something wrong here?
4. DCOM. I configured the DCOM on the remote PC to allow the local PC to launch and access the Rengine exe.
5. I built a setup disk as described in the (empty!) Test Stand Base Deployment Engine box. This was built on the local PC, burned to CD and then installed on the remote PC

Thanks for your time
Marlon
0 Kudos
Message 3 of 4
(4,846 Views)
Marlon,

Thanks for the info. There is only one correction in your setup that I can determine from you explanation, and it may not be the cause of the hang.

1) To use an ActiveX Reference that is passed as a parameter to a remote sequence, you must configure the local client machine to give access permission to the user that is logged into the remote server machine. This is in addition to the DCOM configuration that you have change on the remote machine.

In other words, when you try and use the thread object from the local PC on the remote PC, the remote PC tries to access the owning application of the thread object, which in this case is on the local machine. If permission is not granted to do this, problems can occur.

You can grant access either on an application level or system level on the local machine. For Windows NT, you must complete the following steps to configure the security permissions for the local client on a system level.

1. Login using a userid that has administrator privileges.
2. Run dcomcnfg from the command line, which displays the Distributed COM Configuration Properties application window.
3. On the Default Properties tab, make sure that the Enable Distributed COM on this computer option is checked.
4. On the Default Security tab of the Distributed COM Configuration Properties application window, edit the default access permissions. You must give access permission to the appropriate users so that they can access the local client machine.

If you want to grant access permission at the application level, the application to configure is listed as Sequence File in the dcomcnfg dialog box.

So, I would try configuring DCOM, however, if this was the cause of the hang, I would expect an error to occur while using the Thread object rather than at shut down.


2) I believe that LWTCPJSOCKWNDYCLASS is a window that the CVI engine creates to handle TCP communication and that it creates this whether or not there is TCP communication. It's hanging might not be it's fault. It could be caused by something else that is corrupting its memory. It may take a method of elimination to determine the cause.

I have found one reference to a problem involving LWTCPJSOCKWNDYCLASS and a 6608 board, although I don't think the underlying cause was ever determined. Specifically, when the user removed the 6608 from MAX, the problem went away. One test that I would recommend trying in your application is to remove the 6601 from MAX to see if the problem goes away. Although I do not currently have a 6601 I can work to get one so that I can try and reproduce the problem. I need to track one down first.

3) I would try running simple or empty sequence remotely and shutting down. I would do this **BEFORE** removing the 6601 from MAX to see if the problem is related to something in your sequences or to the 6601 being configured in MAX.

If the problem does not occur, then you could then add to the empty sequence simple steps that only use the 6601.

If the problem still does not occur, then you could add steps involving other hardware in your system, trying to shutdown after adding steps for each different hardware device.

I think you get the picture; remove/add one component (e.g. max config, hardware specific steps) at a time until the problem disappears/appears.


4) As a last option, I could see converting to more recent versions of software that you are using (NIDAQ, VISA, LabVIEW, etc.), but at the moment this would be more out of desperation. I know that the 6608 problem I previously mentioned occurred with NI-DAQ 6.9.2, LV 6.0.2, Windows 2000, TestStand 2.0.1beta and Switch Executive 1.0beta. My guess is that your TestStand system is problem using the CVI 5.x runtime engine (CVI is required for many of our NI step types) unless you have installed a more recent version of CVI (or Measurement Studio) on your system. Have you? We could try installing the CVI 6.0 runtime engine.


Let me know what you find.
0 Kudos
Message 4 of 4
(4,846 Views)