PICS MUX Control

This program is the master controller for the EVI 8800 (mux) network.  The EVI 8800's are a family of devices that process data from field inputs, perform engineering unit conversion and alarming, and transmit the data, via a UDP/IP network to the MUXControl program. To read more about the two types of 8800 in use at USEC/PGDP (and the processing they perform), follow one of the links below:

AVCO 8800 (passive) 8800 Alarm Processing AVCO 8800 (active)
linux 8800 Config & Commands
CPI 8800 (passive) 8800 EU Conversions CPI 8800 (active)

MUX Control (hereafter referred to as MUXCTL) listens for new 8800s coming online (they broadcast a location/id request) and when it hears one, it sends a data record informing the unit both its own (the unit's) identity, but also the identity of the primary MUXCTL computer as well. The 8800 will then load the appropriate software and configuration from the primary MUXCTL (via an NFS file share) and begin execution (and scanning inputs). The 8800s transmit a data packet every 200ms, even if the packet contains nothing but the 8800's current time. MUXCTL sends out an 8800 status request every fifteen seconds to ensure that each 8800 is still responding.

When an 8800 stops responding (and tranmitting), then MUXCTL will use the last known values from the 8800 to provide a proxy data stream (the data will be marked as proxied in the extended status word). This feature keeps displays, timed averages, and other periodic processes alive while the 8800 restarts (hopefully).

MUXCTL may also be used to force an 8800 to restart either through the Control | 8800 menu, or by right-clicking on the 8800 in the MUXCTL main window and choosing reboot from the popup menu that appears. In either case, you will be prompted to confirm the reboot command. Also, all manual reboot commands are entered into the event log.

Screen Shots

The top left corner of the MUXCTL window shows the number IP for the 8800 network. The remainder of the information displayed in MUXCTL's main window is organized into the following columns:

Column Heading Content
## Number of the 8800 pair
Name Name of the 8800 pair
A/B
Side
IP IP address of the 8800. This address is matched with the addresses specified with the associated status point in the static database to determine the identity of 8800s when they first boot and request their ID. This is the number that replaces the * in the Net address show at the top left of the MUXCTL window.
Stat Current operational state of the 8800:
Stat Meaning
rst The 8800 is currently starting (or restarting)
rdy The 8800 is ready to scan data
RUN The 8800 is currently scanning data
qtx The 8800 has stopped communicating on the network
ntx MUXCTL has never heard from this 8800
off The 8800 has been taken off line
Boots Number of times that MUXCTL has detected and/or directed the 8800 to reboot.
Ver Version number of the 8800 software currently running
Status Point Name of the subsystem status point that tracks this 8800 pair's status.
H/W Type Hardware Type of the 8800 pair

At the bottom of MUXCTL's main window is a status bar that shows MUXCTL's current status (typically ready), MUXCTL's current primary/backup state (the sample shows standby because it was captured on an offline machine), the IP address MUXCTL is using on the 8800 network, and the current PICS time (again, the sample screens show a bad time because PICS wasn't running).

MUXCTL Main Window

MUXCTL Main Window, with context menu

8800 Control Panel

This was the original method MUXCTL had for commanding 8800 reboots. Using the right mouse button on the main window is the preferred method (except when no mouse is available, that's why this is still here).

Diagnostic Log

As a result of many years of tracking down MUXCTL/8800 issues, there is now a diagnostic log feature built into MUXCTL. The feature should be used sparingly and only at EVI's direction because the log may grow very large, very quickly and logging may have an impact on the performance of PICS as a whole (since all real time data passes through MUXCTL on its way into PICS).

Missed Settings

MUXCTL logs a message to the Application Event Log when it detects a number of missed significant changes from an 8800 that meets certain criteria:

MUXCTL also expects to receive at least four changes/second from each 8800 (the 8800's update PICS time every 1/4 second). This dialog also allows the user to adjust the time MUXCTL will wait before declaring a loss of communication with an 8800 and sending it reboot messages (in an attempt to clear the perceived communication problem).

Executable Naming Rules

In order to support 8800's running different operating systems, front-end hardware, and various (typically test) versions of the software, MUXCTL uses the following rules to find the name of the executable program file that each particular 8800 should download and run. The basename is specified in the static database in the 8800's subsystem status point record and typically changes based on the front-end hardware type. Currently, the only ostype (Operating System Type) supported is linux but there are hooks for others (for example DOS and/or Windows)

MUXCTL checks for the existence of each file in the list shown above, from top to bottom. The first match found is sent to the 8800 as the name of the executable program to be used. In the event that no executable file is found for an 8800, MUXCTL will log a message to that effect.