...
Only controllers that support downhole data will have records published to the downhole archives, if so enabled.
Card Type | Archive Type Name | Archive Sub-Type Name |
---|---|---|
Surface Present Buffer | Present | Surface |
Downhole Present Buffer | Present | Downhole |
Surface PumpOn Buffer | PumpOn | Surface |
Downhole PumpOn Buffer | PumpOn | Downhole |
Surface Shutdown Buffer | Shutdown | Surface |
Downhole Shutdown Buffer | Shutdown | Downhole |
Surface Event Buffer | Event | Surface |
Downhole Event Buffer | Event | Downhole |
Surface Fault Buffer | Fault | Surface |
Downhole Fault Buffer | Fault | Downhole |
Generating CSV Reports
Card data can be published to CSV reports for importation into third party systems for analysis. The type names and sub-type names listed in the prior table can be used to generate unique reports per archive type if needed. Create a CSV report object then configure.
...
The format of the generated CSV report is fixed and described below. All card buffer archives generate the same report format with one exception. If “Marking” is selected for position type for a controller that uses FC16 for card upload, the report format will differ. Both formats are described below.
Info |
---|
Card sets uploaded using FC16 or FC16EX will generate a single report record with all data points for all strokes in the one record. Card sets uploaded using FC25 will generate a report record for each individual stroke. |
The table describes a CSV report when the CSV Report Object is set to publish Record per Row.
Column | Column Header | Description and Values |
---|---|---|
0 | Timestamp | The time stamp of the card set. For FC16, this is the time the upload occurred. For FC16EX and FC25, this is the time the card was generated by the controller. |
1 | CardType | 'E' - Event 'F' - Fault 'N' - Pump On 'P' - Present 'S' - Shutdown |
2 | Location | 'S' - Surface 'D' - Downhole |
3 | Reason | The reason code for the card generation. See Reason Codes table below. |
4 | NumberOfStrokes | The number of pump strokes in the card data set. |
5 | StrokeIndex | The stroke index of the record as associated with the NumberOfStrokes field. Only cards uploaded using FC25 will create individual records for each stroke. Stroke index 1 is the oldest stroke in the set. |
6 | Points | The number of position/load pairs in the record. |
7 | LoadType | 'P' - Pounds 'F' - Fractional |
8 | PositionType | 'F' - Fractional 'S' - Synthesized 'M' - Marking 'V' - Voltage |
9 | PumpFillage | Pump fillage percent. Only valid for cards uploaded using FC25. |
10 | AlarmFlags | Alarm flags |
11 | Position0 | Position 0 |
12 | Load0 | Load 0 |
13 | Position1 | Position 1 |
14 | Load1 | Load 1 |
…. | ||
N | PositionN | The last position in the data set. |
N+1 | LoadN | The last load in the data set. |
Marker CSV Report Format
When Marking is selected as the position type, the report format differs from the prior table. The first ten fields of a record are the same as the prior table and are not repeated here.
Column | Column Header | Description and Values |
---|---|---|
11 | MarkerType | 'T' - Top of stroke 'B' - Bottom of stroke |
12 | MarkerCount | The number of marker and marker fraction pairs |
13 | Marker0 | Marker 0 index |
14 | MarkerFraction0 | Marker 0 fractional part |
… | Additional marker pairs up to MarkerCount | |
… | Load0 | Load 0. Next column after all marker pairs. |
… | Load1 | Load1 |
… | ||
N | LoadN | Last load in the data set. |
Alarm Flags
Alarm flag field is a 16 bit integer representing 16 bit-mapped fields.
Bit | Description |
---|---|
0 | Low Low load violation |
1 | Low load violation |
2 | High load violation |
3 | High High load violation |
4 | Low load average violation |
5 | Low load span violation |
6 | Pump was stopped by a violation |
7 | Position data is valid |
8 | Reserved |
9 | Downhole data available for stroke |
10-15 | Not used |
Reason Codes
Reason Code field is an integer that represents a reason the card was saved and the alarm bits associated with the reason. The four high-order bits contain the event type and are coded as follows.
Event Type Hex | Event Type Decimal | Type |
---|---|---|
0000 | 0 | Present (live) card set |
1xxx | 4096 | Fault |
2xxx | 8192 | Alarm |
3xxx | 12288 | Plain Event |
The lower twelve bits contain the actual reason code, which may or may not be associated with an alarm bit.
...
The Reason Codes table values are given in Hex with the ‘x' representing one of the Hex event types listed above. This provides for easy reason lookup without having to decode the reason’s bit pattern.
Alarm Bits Hex | Description |
---|---|
x000 | Plain Event - Live action data; Fault or Alarm Event - Control failure |
x001 | Low Load violation |
x002 | High Load violation |
x003 | Low Load Average violation |
x004 | Position Switch failure |
x005 | Multiple Position Switch failure |
x006 | Auto cleared position sensor problem |
x007 | Auto cleared Multiple Position Switch failure |
x008 | Low Load Span failure |
x009 | Load Input fault |
x00A | Continuous Position sensor fault |
x00B | Auto cleared Continuous Position sensor fault |
x00C | Attempted Software Timer mode with no timer value |
x00D | A/D Converter failure |
x00E | Manual Off Until Reset |
x00F | POC Override Timer Active |
x010 | Immediate Pumpoff |
x011 | Minimum Cycle Run Time violation |
x012 | Maximum Cycle Run Time violation |
x013 | Minimum Daily Run Time violation |
x014 | Parameters initialized (coldstart) |
x015 | Parameters Expanded |
x016 | Parameters restored from EEPROM backup |
x017 | EEPROM cell bad |
x018 | EEPROM failure |
x019 | Bad Status value at startup |
x01A | Bad Error Bits |
x01B | Time and/or Date value suspect |
x01C | Clock/Calendar chip failure |
x01D | Wrong Line Frequency |
x01E | Manual Control Transfer |
x01F | Manual Software Timer |
x020 | CPU Fell behind |
x021 | Auto cleared Clock/Calendar chip failure |
x022 | Motor Off too long violation |
x023 | DI1 Closed |
x024 | DI1 Open |
x025 | DI2 Closed |
x026 | DI2 Open |
x027 | AI1 as a digital closed |
x028 | AI1 as a digital open |
x029 | AI2 as a digital closed |
x02A | AI2 as a digital open |
x02B | AI3 as a digital closed |
x02C | AI3 as a digital open |
x02D | Immediate Upper load limit violation |
x02E | Reverse Pumpoff violation |
x02F | Air Balance Amps too low |
x030 | DI3 Closed |
x031 | DI3 Open |
x032 | DI4 Closed |
x033 | DI4 Open |
x034 | DI5 Closed |
x035 | DI5 Open |
x036 | DI6 Closed |
x037 | DI6 Open |
x038 | AI1 Low Limit violation |
x039 | AI1 High Limit violation |
x03A | AI2 Low Limit violation |
x03B | AI2 High Limit violation |
x03C | AI3 Low Limit violation |
x03D | AI3 High Limit violation |
x03E | Air Balance Add Air Forced |
x03F | Air Balance Release Air Forced |
x040 | DI7 Closed |
x041 | DI7 Open |
x042 | DI8 Closed |
x043 | DI8 Open |
x044 | Program Error |
x045 | Bad Shutdown |
x046 | AI4 Low Limit violation |
x047 | AI4 High Limit violation |
x048 | AI5 Low Limit violation |
x049 | AI5 High Limit violation |
x04A | AI6 Low Limit violation |
x04B | AI6 High Limit violation |
x04C | AI7 Low Limit violation |
x04D | AI7 High Limit violation |
x04E | AI8 Low Limit violation |
x04F | AI8 High Limit violation |
x050 | Run Time under 50% in cycle time stabilization |
x051 | Divide Error |
x052 | Gross Fluid Calculation Error |
x800 | Normal start up |
x801 | Normal shutdown |
x802 | Idle Time Parameter (20) set to zero |
x803 | Pump-off Position Parameter (21) set to zero |
x804 | Pump-off Load Parameter (23) set to zero |
x805 | Pump-off stroke count Parameter (24) set to zero |
x806 | Position Switch setup Parameter (130) set to zero |
FFFF | Out of range or buffer empty |