Applies To:
  • CitectSCADA 3.30 4.10

Summary:
Question: If I set the LanA=-1 and startup Citect it does not communicate correctly across the network. If I change the LanA=0, Citect works perfectly, what is the cause of this problem? 

Solution:
Windows 95 has a limit of 42 pending NCB (NetBIOS Control Blocks). Once this limit is exceeded Windows 95 will start to do weird things with the network. This is a bug in Windows 95. You can verify this is the problem by starting up Citect with LanA=-1 and then display the NetBIOS window from the kernel. If this is your problem you will see thousands of NetBIOS commands being executed, and a lot with a status of 0xFF. The NetBIOS window will be displaying as fast as it can. If you set the V)erbose mode and D)isable the display, you will see in the order of 10,000 NetBIOS commands being executed every second.

You will get this error when setting the LanA=-1 because you have at least 3 NetBIOS LanA loaded and enabled all Citect servers. This can happen if you have all the following protocols loaded, NetBEUI, NetBIOS support for IPX/SPX-compatible Protocol and TCP/IP. It can also happen if you have the same protocol with multi network adaptors, eg multi Ethernet cards or RAS serial connection. If you have the Citect setup as Alarm/Trend/Report and I/O Server then all these servers will communicate on all NetBIOS at the same time. Citect uses up to 5 NCB's per server per LanA so Citect will use (4 (servers) + 1 (client) ) x 5 (NCB) x 3 (LanA) = 75 NCB. This is way over the limit.

On startup Citect will not use it's full limit of NCB's, so you may only get the problem under a running load. On startup Citect will allocate all it's receive NCB (2 per server) and listen NCB (1 per server). Citect will only start using send NCB (2 per server) when it must send data to a client. So on startup Citect may only use (5 x 3 x 3 = 45 NCB), so this is just over the limit and causes the problem. If you remove one server the startup limit will be 36 NCB and so Citect will startup. However under heavy load the 3 servers will start to use their transmit buffers (max 60 NCB), go over the limit and so cause the problem.

So just because you can startup Citect does not mean you will not have the problem. You must calculate the maximum number of NCB Citect can use and make sure it will always be less than 42.

You can work around this problem by:

  1. Reduce the maximum number of NCB Citect will use per server by reducing the [LAN]SesSendBuf and [LAN]SesRecBuf parameters.
  2. Reduce the number of LanA Citect will communicate over by setting the LanA to just the stack you want. See Q1855 for details.
  3. Reduce the number of NetBIOS protocols you have loaded. You can just remove the NetBIOS support for IPX/SPX-compatible Protocol, while keeping the IPX/SPX protocol to allow access to Netware file servers.
  4. Use Windows NT as it does not have this problem or any limits on number of NCBs.

Window for Workgroups 3.11 has the same 42 NCB limit when you use any of the Microsoft protected mode protocols.

 

Keywords:
 

Attachments