The active CPI 8800 is a linux-based application that replaces a USEC MODCOMP II Unit Computer. All linux-based versions of the 8800 software are broken into two parts: the resident core and the user interface. The core will run automatically as part of the system start up sequence when PICS is running and available. To run the user interface, one must either use a local console (i.e. a directly attached keyboard and display) or remotely connect using an SSH (secure shell) client program across the 8800 network. When using the local console, the user interface display will look very much like the samples below. When using a remote shell, you may see more (or less) than is shown here because generally, remote shells allow the window to be any size, while the local console is fixed at 80 columns and 25 rows.
The user inerface program itself is named nc8800stat and is resident on the MUX machines. The commands stata and statb are provided to run the UI from the currently primary MUX. Other linux-based 8800 commands are documented here. If you are looking for CPI-specific entries for the 8800.conf file, please go to the bottom of this page.
Area Name Area Content Build Info Most of the top two lines of the primary screen contain build info. The first number shown is the current build of the user interface program, followed by the build string from the resident 8800 program. The next object is a greater than (or greater than or equal) sign, indicating how significant change testing is performed. The last items on the first line are the 8800 number and side, followed by the 8800's IP address. The second line contains the resident 8800 program's version number, build flags, hwardware type, watchdog type and the currently controlling MUX name (if any).
Status Line This line (plus the qSec item at the end of the fourth line) provide an overview of the 8800's current operational state. A functional and scanning 8800 should have a status of 'good', state of 'primary', control of 'online' and the MLC (main loop counter) and qSec (current quarter second) should be changing. Scan Info The 8800 counts every attempt to scan a point, whether or not the attempt succeeded and when a new (sigchg) or refreshed value is sent to PICS. This section shows the current values for those counters. Network Info Shows the number of network messages sent and received by the 8800. If any send/recv errors are detected, the number of those is also shown here. Memory Usage This section shows exactly how many bytes of memory are being used for various parts of the database used to scan, convert and alarm points. Message Logging Current settings for the 8800's message logging facility are shown here. The filters control which messages are logged and which are not. The debug option determines if the name and line number of the source file where the message originated are included. Warning: excessive logging will impact the 8800's performance and is only recommended when trying to track a particular problem. Typically, the default settings are more than adequate. Time Sync The 8800 core interfaces with EVI's time sync monitor program to determine the quality of the local clock relative to the time standard from the network. When the time is too far from the standard (or the standard is unknown) the 8800 considers the time unusable and marks the PICS Time point it provides accordingly. When the standard is known, the 'sync' value shows the IP address where the standard was found; the drift value shows how far from the standard the local clock is currently running; reference shows the UTC and local time that the standard was last accessed; update shows the most recent time update; and PICS Time shows whether or not the 8800 is marking the time point as usable. Hardware-specific: CPI The CPI section includes some byte and packet counters to show how much data has been sent/recv'd on the serial port (whose name and parameters are also shown). The 'State' section of the CPI panel shows two characters for each of the 16 possible 'sites'. The first character is the state of digital scanning and the second is the state of analog scanning. (To see text interpretations of the states, press 'w' a couple times, until the CPI State display is shown.) The CPI panel also shows whether or not analog (AI) and digital (DI) scanning is enabled. The final item is the number of records awaiting processing in the internal significant change queue. This number should normally be zero, or very quickly reduce back to zero; if this number grows and remains large, there may be a problem with the CPU and/or network. Menu The menu (usually shown in the bottom right corner of the display) is on a magenta background to separate it from the 8800 data. The keys show are case sensitive, so be careful to watch for CAPS lock being on. Some of the displays (like 'Big Log') use the entire lower part of the screen, so the menu is moved to the 4th and 5th lines of the screen in order to maximize the space available for the log (or other functions)
1.1.9 Core: 0.12 Platform: CPI 0.14 Wd-None > (21A) 192.168.1.43 Version Number: 0.12/0.14 Build Bits: x0004 HWT: CPI WDT: NONE MUX-A Status: Good State: Primary Ctrl: Online WD: None DISABLED MLC: b616 Scanning ---- Analog -- Digital --- Binary Network Total Errs qSec: 0072 Scans: 44 0 n/a Recv: 2097 0 Converted: 55 0 n/a Send: 2210 0 Failed: 767 0 n/a Message Logging ------------------- SigChgs: 829 0 0 Syslog: ACTIVE Debug: off Refreshes: 497 0 0 cFilter: x50000000 --- Count Memory --------- Count Memory ---- pFilter: x00800066 AI: 824 135136 AA Recs: 824 44496 Time Sync ------------------------- AO: 0 0 AA Sets: 824 6592 Sync: not available DI: 174 28536 DA Recs: 174 696 Drift: DO: 0 0 DA Sets: 174 1392 Reference: BI: 0 0 CC Recs: 128 1024 BO: 0 0 CC Sets: 64 512 Update: 2005/07/29 15:13:33 UTC -- CPI ---------------- [--State--] -Scan- 2005/07/29 11:13:33 EDT Bytes In : 392 .. 03 .. 03 AI ON PICSTime: Not usable Bytes Out: 464 .. 03 .. 03 DI ON <@> Packets In : 48 .. 03 .. A9 M h r s exit & halt, boot, systm Packets Out: 66 40 .. .. .. SgChgQ E c p edit filter l flip log BytesTossed: 0 0 N A D ana/dig tog U stat tog Serial Port: COM1:19200,8,O,1 U 0123456789)!@#$% reset site F12 EXIT progrm L big log
The [--State--] block shows the current status of all 16 CPI/RTP devices, with devices 0..3 on the first row, 4..7 on the next, etc. The values displayed may be two dots (..), indicating that no hardware is expected for that device or a pair of hexadecimal digits. The hex digits show the current state of the digital component (first character) and the analog component (second character). The CPI Platform Status screen shows the same information in a larger table, with the status codes translated to (hopefully meaningful) text (use the 'w' or 'W' key to cycle to the status screen). The meanings for the hex digits are shown in the following table:
| Hex | Symbol | Description | RTP Action |
|---|---|---|---|
| 0 | UNUSED | There are no points of the associated type (digital for the left digit (most significant), analog for the right digit (least significant)). | n/a |
| 1 | NONEXISTENT | The device does not exist. (Set if cpi88 receives a NAK6: non-existent RTP device) | n/a |
| 2 | IDLE | Idle, not currently performing any task. Typically this indicates that the device is either just starting up, or it is waiting for something. | n/a |
| 3 | MISSING | There are points defined for this device, but it is not responding on the communication network. | n/a |
| 4 | RPF_RESET | The device is going through a power-fail reset. | clear power fail reset flag |
| 5 | SDR_RESET | The device is going through s sofware-directed reset. | stop scanning, delete scan tables, reset device |
| 6 | SEND_TABLES | Scan tables are currently being sent to the device | Assign Scan Lists |
| 7 | START_SCANS | Starting automatic scans. | Start Continuous Scan |
| 8 | STOP_SCANS | Stopping automatic scans. | Stop Continuous Scan |
| 9 | SCAN_ANALOGS | Reading analog values. | Execute Input Scan |
| A | SCAN_DIGITALS | Reading digital values. | RTP Command/Input |
| B | SCAN_RTDS | Performing a reference value check. | RTP Output/Input on RDY |
| C | SCAN_OTDS | Performing an open thermocouple check. | RTP Output/Input on RDY |
| D | reserved for future use | ||
| E | |||
| F | |||
The [--State--] block may be replaced by the [--Sites--] block which shows the ID number of each CPI/RTP device in gray, red or green to indicate whether the device is unused, down or working, respectively. Pressing Shift+U (uppercase 'U') toggles between [--State--] and[--Sites--].
The --CPI-- block shows information about the serial data being sent and received by the 8800. Bytes In/Out show the total number of raw bytes that have been set/received while the Packets In/Out show the numbers of complete commands/responses.
The -Scan- block contains indicators showing whether or not analog scanning (AI) and digital scanning (DI) is ON or OFF. Pressing Shift+A (uppercase 'A') toggles AI on/off. Pressing Shift+D (uppercase 'D') toggles DI on/off.
When viewing the CPI status display via remote terminal, you might have space to set the remote window's width greater than 90 columns. If you do, then an additional status block will appear (to the right of the Time Sync block). The new block will show consecutive serial error counts for both the digital and analog data streams. If either of these counts reaches the configured limit (50 by default), the 8800 will declare itself to be broken and reboot (in the hope that rebooting will clear the serial error condition). On 80 column displays, this status block is not shown.
1.1.9 Core: 0.12 Platform: CPI 0.14 Wd-None > (21A) 192.168.1.43 Version Number: 0.12/0.14 Build Bits: x0004 HWT: CPI WDT: NONE MUX-A Status: Good State: Primary Ctrl: Online WD: None DISABLED MLC: b616 Scanning ---- Analog -- Digital --- Binary Network Total Errs qSec: 0072 Scans: 44 0 n/a Recv: 2097 0 Converted: 55 0 n/a Send: 2210 0 Failed: 767 0 n/a Message Logging ------------------- SigChgs: 829 0 0 Syslog: ACTIVE Debug: off Refreshes: 497 0 0 cFilter: x50000000 --- Count Memory --------- Count Memory ---- pFilter: x00800066 AI: 824 135136 AA Recs: 824 44496 Time Sync ------------------------- AO: 0 0 AA Sets: 824 6592 Sync: not available DI: 174 28536 DA Recs: 174 696 Drift: DO: 0 0 DA Sets: 174 1392 Reference: BI: 0 0 CC Recs: 128 1024 BO: 0 0 CC Sets: 64 512 Update: 2005/07/29 15:13:33 UTC -- CPI ---------------- [--Sites--] -Scan- 2005/07/29 11:13:33 EDT Bytes In : 392 00 01 02 03 AI ON PICSTime: Not usable Bytes Out: 464 04 05 06 07 DI ON <@> Packets In : 48 08 09 10 11 M h r s exit & halt, boot, systm Packets Out: 66 12 13 14 15 SgChgQ E c p edit filter l flip log BytesTossed: 0 0 N A D ana/dig tog U stat tog Serial Port: COM1:19200,8,O,1 U 0123456789)!@#$% reset site F12 EXIT progrm L big log
This is an example of the CPI primary screen with the [--Sites--] block visible instead of the [--Status--] block.
1.1.9 Core: 0.12 Platform: CPI 0.14 Wd-None > (21A) 192.168.1.43 Version Number: 0.12/0.14 Build Bits: x0004 HWT: CPI WDT: NONE MUX-A Status: Good State: Primary Ctrl: Online WD: None DISABLED MLC: b616 MENU h r s exit & halt, boot, system c p edit filter A D ana/dig qSec: 018a F12 EXIT program l flip log L big log U stat tog 0123456789)!@#$% rst [- Message Log -- up -- Jul 29 11:13:33 -] 21A: CFG: BrokenCheckTime = 5 min IdleDelay = 100 ms 21A: CFG: SendErrorLimit = 50 RecvErrorLimit = 50 21A: STATE: Ready/Backup 21A: STATE: Running/Primary 21A: STATE: Ready/Backup 21A: STATE: Running/Primary 21A: CPI Site 1/A not responding: recv timeout (QSec: 80) 21A: Failed 182 analogs on CPI Site 1/A 21A: CPI Site 3/A not responding: recv timeout (QSec: 84) 21A: Failed 149 analogs on CPI Site 3/A 21A: CPI Site 5/A not responding: recv timeout (QSec: 88) 21A: Failed 151 analogs on CPI Site 5/A 21A: CPI Site 7/A not responding: recv timeout (QSec: 92) 21A: Failed 158 analogs on CPI Site 7/A 21A: CPI Site 9/A not responding: recv timeout (QSec: 96) 21A: Failed 127 analogs on CPI Site 9/A 21A: CPI Site 12/D not responding: recv timeout (QSec: 115) 21A: Failed 23 digitals on CPI Site 12/D
Pressing Shift+L (uppercase 'L') toggles the "Big Log" on/off. On the local console, the display is limited to 80 columns and 25 lines, leaving little or no space for logging. Switching into the Big Log mode removes most of the status display and replaces it with the most recent n entries from the 8800's log (the actual number of lines will vary when using remote access because remote display sizes are adjustable). The top of the log block shows the title [- Message Log -- up -- Date Time -]. The Date/Time refer to the time tag for the most recent entry in the log. The up (or dn) indicates the direction that lines will move as new lines are added to the log. When lines move up, the newest entry will be at the bottom of the block. When lines move dn, the newest log entry will be at the top of the block (just below the title). This setting is to allow for personal preferences and experience.
Pressing d (lowercase 'd') toggles the log's DEBUG mode. When debug mode is anabled, the log includes the filename and line number (from the 8800 source code) where the logged message originated. This can be very helpful when trying to track down a problem. However, this option tends to make the lines significantly longer, often truncating information (when the lines get longer than 80 columns), so we tend to leave debug mode off by default.
1.1.9 Core: 0.12 Platform: CPI 0.14 Wd-None > (21A) 192.168.1.43 Version Number: 0.12/0.14 Build Bits: x0004 HWT: CPI WDT: NONE MUX-A Status: Good State: Primary Ctrl: Online WD: None DISABLED MLC: b616 MENU h r s exit & halt, boot, system c p edit filter A D ana/dig qSec: 018a F12 EXIT program l flip log L big log U stat tog 0123456789)!@#$% rst RTP Site# -- Digital -------- Analog --------- 0 UNUSED UNUSED 1 UNUSED MISSING 2 UNUSED UNUSED 3 UNUSED MISSING 4 UNUSED UNUSED 5 UNUSED MISSING 6 UNUSED UNUSED 7 UNUSED MISSING 8 UNUSED UNUSED 9 UNUSED MISSING 10 UNUSED UNUSED 11 SCAN_DIGITALS SCAN_ANALOGS 12 MISSING UNUSED 13 UNUSED UNUSED 14 UNUSED UNUSED 15 UNUSED UNUSED
Another way to navigate through the CPI displays is to use the w (lowercase 'w') to cycle through the different screens (and Shift+W (uppercase 'W') to cycle in reverse). One of the screens that will appear is the CPI Platform Status screen, shown above. The table displayed is a more detailed version of the [--State--] block (from the primary display). It shows the current state of each of the possible hardware CPI/RTP devices that are (or may be) attached to the 8800. All hardware that has no inputs assigned is shown as UNUSED and as such, is not even checked by the 8800 software. The MISSING status indicates that the 8800 is not receiving any responses from the device (all of the inputs assigned to the device will be flagged with a hardware error and taken off scan).
1.1.9 Core: 0.12 Platform: CPI 0.14 Wd-None > (21A) 192.168.1.43 Version Numb F12/Cancel, SPACE/Toggle, Enter/Commit WDT: NONE MUX-A Status: Good ( ) MDE State ( ) Recv Loc Msg None DISABLED MLC: e14f Scanning -- ( ) MDE Message ( ) Unused bit 17 Total Errs qSec: 0818 Scans: ( ) MDE Header ( ) Unused bit 18 2639 0 Converted: ( ) MDE Last Msg ( ) Unused bit 18 5009 0 Failed: ( ) MDE Point Rec ( ) Net Info ogging ------------------- SigChgs: ( ) MDE Ana Alarm ( ) Net Info : ACTIVE Debug: off Refreshes: ( ) MDE Conv Const ( ) Net Warning : x50000000 --- Count Me ( ) MDE Dig Alarm ( ) Net Error : x00800066 AI: 824 13 ( ) MDE Output Rec ( ) Time Deviation ------------------------- AO: 0 ( ) MDE Memory Use ( ) Indefinite FP : not available DI: 174 2 ( ) MDE Retry Msg ( ) CkPidRefreshes : DO: 0 ( ) MDE Info ( ) Check Pid : BI: 0 ( ) All Messages (*) HMI Command BO: 0 ( ) Send Status ( ) Database Prob : 2005/07/29 15:22:00 UTC -- CPI ----- ( ) Recv State Msg (*) 8800 State 2005/07/29 11:22:00 EDT Bytes In : ( ) Recv Unkn Msg ( ) Startup Info : Not usable Bytes Out: [--------------- Common ---------------] <@> Packets In : 48 08 09 10 11 M h r s exit & halt, boot, systm Packets Out: 66 12 13 14 15 SgChgQ E c p edit filter l flip log BytesTossed: 0 0 N A D ana/dig tog U stat tog Serial Port: COM1:19200,8,O,1 U 0123456789)!@#$% reset site F12 EXIT progrm L big log
The CPI Common Bits control the type of information being sent to the 8800's log (and the syslog) from all of the 8800 common core components. This panel is the same for all 8800s, regardless of the underlying hardware type.
1.1.9 Core: 0.12 Platform: CPI 0.14 Wd-None > (21A) 192.168.1.43 Version Numb F12/Cancel, SPACE/Toggle, Enter/Commit WDT: NONE MUX-A Status: Good ( ) Ana Scan Info ( ) CPI Commands None DISABLED MLC: e14f Scanning -- (*) Ana Scan Warn ( ) CPI Responses Total Errs qSec: 0818 Scans: (*) Ana Scan Error ( ) CPI Echoes 2639 0 Converted: ( ) Ana Scan Data ( ) Debug UTR Updt 5009 0 Failed: ( ) Dig Scan Info ( ) Debug ASL Cnst ogging ------------------- SigChgs: (*) Dig Scan Warn ( ) Debug Scan : ACTIVE Debug: off Refreshes: (*) Dig Scan Error ( ) Debug CPIO : x50000000 --- Count Me ( ) Dig Scan Data (*) Debug Config : x00800066 AI: 824 13 ( ) Ana Scan Table ( ) CPI States ------------------------- AO: 0 ( ) Dig Scan Table ( ) SigChg Queue : not available DI: 174 2 ( ) Command NAKs ( ) Comm Timeouts : DO: 0 ( ) Unused bit 11 ( ) Comm Errors : BI: 0 ( ) Network In ( ) Unused bit 28 BO: 0 ( ) CPI In Event ( ) Unused bit 29 : 2005/07/29 15:22:00 UTC -- CPI ----- ( ) CPI Out Event ( ) Quarter Sec 2005/07/29 11:22:00 EDT Bytes In : ( ) CPI I/O Data ( ) Main Loop Test : Not usable Bytes Out: [---------------- CPI -----------------] <@> Packets In : 48 08 09 10 11 M h r s exit & halt, boot, systm Packets Out: 66 12 13 14 15 SgChgQ E c p edit filter l flip log BytesTossed: 0 0 N A D ana/dig tog U stat tog Serial Port: COM1:19200,8,O,1 U 0123456789)!@#$% reset site F12 EXIT progrm L big log
The CPI Platform Bits control the type of information being send to the 8800's log (and the syslog) from the CPI-specific components of the 8800.
NOTE: The logging function can use up a significant amount of time if the volume is very high. When sending the 8800's syslog to MUX-A or MUX-B (done using the logmuxa, logmuxb or loglocal commands), the log will also be using network resources. Try to limit the number and type of messages being logged to those necessary to track a specific problem or, for normal operation, relatively infrequent error conditions.
Option Description CPI Serial Allows the default serial port and parameters to be altered. The port parameters are specified using a text string, formatted similar to the default: COM1:19200,8,O,1 CPI Safety Limit currently unused CPI Comm Timeout QSec Number of 1/4 second units before a serial communication timeout is declared. Internally, the program automatically increases this number when performing block scans. All other communications (command & response) must complete within the given time period, otherwise a comm timeout occurs. The default is 4 (that's 1sec). CPI Command Retries The maximum number of times to attempt a command before declaring a failure. Setting this too low will allow transient serial comm glitches to have a much more significant effect of the data stream (by triggering a device reset rather than merely slowing the scanning a bit for a retry). The default is 4. CPI Scan Retries The maximum number of times to attempt a scan before declaring a failure. Setting this too low will allow transient serial comm glitches to have a much more significant effect of the data stream (by triggering a device reset rather than merely slowing the scanning a bit for a retry). The default is 3. CPI Expect Command Echo When the hardware will be echoing the commands sent to it, this should be set TRUE (or 1 or YES). When the commands are not being echoed, set this FALSE (or 0 or NO). The default is NO. CPI RTD Check Minutes Specifies the number of minutes between RTD reference checks. The default is 5min. CPI OTD Check Minutes Specifies the number of minutes between OTD checks. The default is 60min. CPI OTD Gain Index The hardware manuals suggest performing the OTD Check using a gain index of 3 (+/-2.56V) and checking for a result value larger than 200mV. The CPI 8800 uses those suggestions as its default. This setting (and the next, "CPI OTD Threshold") allow these settings to be altered. The values should be selected using the OTD Gain Table provided below. The default is 3.
OTD Gain Table Index Input Range ----- ------------ 0 INVALID 1 +/- 10.24 V 2 +/- 5.12 V 3 +/- 2.56 V 4 +/- 1.28 V 5 +/- 640 mV 6 +/- 320 mV 7 +/- 160 mV 8 +/- 80 mV 9 +/- 40 mV 10 +/- 20 mV 11 +/- 10 mV 12 +/- 5 mV 13 +/- 2.5 mV 14 INVALID 15 INVALIDCPI OTD Threshold When an OTD check result value exceeds this setting, all points using the OTD are marked as "OPEN THERMOCOUPLE" The value is specified in VOLTS. See the previous entry ("CPI OTD Gain Index") for more information. The default is 0.200V (i.e. 200mV) CPI Broken Check Minutes Set the number of minutes between reset attempts for failed hardware. Because a reset is a time comsuning operation, setting this too low may seriously degrade the data stream from the functional devices. The default is 5min CPI Thread Idle Delay ms The number of milliseconds that the analog or digital thread will sleep after a cycle where there was no work to be done (i.e. not time to scan anything nor time for an RTD/OTD check, etc). This helps share the CPU between the analog and digital threads. The default is 100ms. CPI Send Error Limit The maximum number of consecutive serial transmit errors before a failure is declared. The default is 50. CPI Recv Error Limit The maximum number of consecutive serial receive errors before a failure is declared. The default is 50. CPI Log Filter Used to enable specific CPI debug logging bits.